commit harfbuzz for openSUSE:Factory
Hello community, here is the log from the commit of package harfbuzz for openSUSE:Factory checked in at 2019-11-29 15:57:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/harfbuzz (Old) and /work/SRC/openSUSE:Factory/.harfbuzz.new.26869 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "harfbuzz" Fri Nov 29 15:57:28 2019 rev:72 rq:750951 version:2.6.4 Changes: -------- --- /work/SRC/openSUSE:Factory/harfbuzz/harfbuzz.changes 2019-11-17 19:21:46.306901239 +0100 +++ /work/SRC/openSUSE:Factory/.harfbuzz.new.26869/harfbuzz.changes 2019-11-29 16:01:19.904844441 +0100 @@ -1,0 +2,6 @@ +Sun Nov 24 17:43:36 UTC 2019 - Andreas Stieger <andreas.stieger@gmx.de> + +- update to 2.6.4: + + small bug fixes and build fixes + +------------------------------------------------------------------- Old: ---- harfbuzz-2.6.3.tar.xz harfbuzz-2.6.3.tar.xz.sha256.asc New: ---- harfbuzz-2.6.4.tar.xz harfbuzz-2.6.4.tar.xz.sha256.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ harfbuzz.spec ++++++ --- /var/tmp/diff_new_pack.tPGdRr/_old 2019-11-29 16:01:20.704844113 +0100 +++ /var/tmp/diff_new_pack.tPGdRr/_new 2019-11-29 16:01:20.704844113 +0100 @@ -17,7 +17,7 @@ Name: harfbuzz -Version: 2.6.3 +Version: 2.6.4 Release: 0 Summary: An OpenType text shaping engine License: MIT ++++++ harfbuzz-2.6.3.tar.xz -> harfbuzz-2.6.4.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/ChangeLog new/harfbuzz-2.6.4/ChangeLog --- old/harfbuzz-2.6.3/ChangeLog 2019-10-28 22:47:23.000000000 +0100 +++ new/harfbuzz-2.6.4/ChangeLog 2019-10-29 20:50:01.000000000 +0100 @@ -1,3 +1,130 @@ +commit 3a74ee528255cc027d84b204a87b5c25e47bff79 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Oct 29 12:27:03 2019 -0700 + + 2.6.4 + + NEWS | 7 +++++++ + configure.ac | 2 +- + src/hb-version.h | 4 ++-- + 3 files changed, 10 insertions(+), 3 deletions(-) + +commit 3958f6fb2378d83dd5107d62a8464187c93707b0 +Author: Ebrahim Byagowi <ebrahim@gnu.org> +Date: Tue Oct 29 22:36:50 2019 +0330 + + Add in_range in hb_bytes_t to merge range_checker_t with it + + src/hb-array.hh | 9 +++++++++ + src/hb-ot-glyf-table.hh | 28 ++++++++++++-------------- + src/hb-ot-var-gvar-table.hh | 49 +++++++++++++++------------------------------ + 3 files changed, 38 insertions(+), 48 deletions(-) + +commit 7915c5d6fa3efac99df08a54d4437eca0b780033 +Author: Ebrahim Byagowi <ebrahim@gnu.org> +Date: Tue Oct 29 22:55:34 2019 +0330 + + [ci] Check the recipt introduce in 7152ac3 + + .circleci/config.yml | 1 + + 1 file changed, 1 insertion(+) + +commit aa3831e295540083350c640d4a630f53e70d822f +Author: Ebrahim Byagowi <ebrahim@gnu.org> +Date: Tue Oct 29 21:37:07 2019 +0330 + + [glyf] Use contour_bounds_t::empty to simplify get_extents logic + + src/hb-ot-glyf-table.hh | 20 ++++++-------------- + 1 file changed, 6 insertions(+), 14 deletions(-) + +commit d59ae5836d1349b885db980cbb741da33caebfde +Author: Ebrahim Byagowi <ebrahim@gnu.org> +Date: Tue Oct 29 21:30:04 2019 +0330 + + [glyf] Refactor contour_bounds_t use to make its fields protected + + src/hb-ot-glyf-table.hh | 47 ++++++++++++++++++++++++++--------------------- + 1 file changed, 26 insertions(+), 21 deletions(-) + +commit 773ee8041e8905bfb06c1a71d2b4fc99110b3dc6 +Merge: 47b4074d 0efbda7a +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Oct 29 10:58:56 2019 -0700 + + Merge pull request #2038 from ebraminio/glyf-contour + + Remove contour_point_t so we won't need to zero its unused var + +commit 0efbda7a40742cbdf30d5a85061ffb6a0a55bcc0 +Author: Ebrahim Byagowi <ebrahim@gnu.org> +Date: Tue Oct 29 21:03:26 2019 +0330 + + Remove contour_point_t so we won't need to zero its unused var + + src/hb-ot-glyf-table.hh | 27 +++++++++++++-------------- + 1 file changed, 13 insertions(+), 14 deletions(-) + +commit 47b4074d5f98d71d2983470602eff9b93f102af4 +Merge: dd8a8460 dd288840 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Oct 29 03:16:34 2019 -0700 + + Merge pull request #2034 from khaledhosny/cmap-notdef + + [cmap] Check GID before adding ranges in format 4 & 12 + +commit dd8a8460377ca54207877ea9da96931175dbb15f +Author: jfkthame <jfkthame@gmail.com> +Date: Tue Oct 29 09:20:41 2019 +0000 + + Use proper y-scale factor for height value + + src/hb-ot-cff1-table.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 7152ac3fcfe8a599aa0d20f8d02ef38c69111231 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Oct 28 17:12:55 2019 -0700 + + Fix build + + $ make CPPFLAGS="-DHB_TINY -DHB_NO_OT_FONT" libharfbuzz-subset.la + + src/hb-subset-plan.cc | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit dd288840d6f87acd13b99b71408dcdb35a2be9cb +Author: Khaled Hosny <khaledhosny@eglug.org> +Date: Tue Oct 29 01:45:49 2019 +0200 + + [cmap] Check GID before adding ranges in format 4 & 12 + + Fixes https://github.com/harfbuzz/harfbuzz/issues/2031 + + src/hb-ot-cmap-table.hh | 32 ++++++++++++++++++++++++-------- + test/api/fonts/cmunrm.otf | Bin 0 -> 330492 bytes + test/api/test-collect-unicodes.c | 22 ++++++++++++++++++++++ + 3 files changed, 46 insertions(+), 8 deletions(-) + +commit fd71c045b46380281ba8a7e351fac7248938c74c +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Oct 28 17:06:53 2019 -0700 + + Hopefully fix up previous commit and bots + + src/hb.hh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit e832dc4c642f604d2cbb8e6b2f0b8d37151936f1 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Oct 28 17:02:40 2019 -0700 + + [config] Make HB_NO_ERRNO work with systems defining errno as a macro + + src/hb.hh | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + commit ce11df1b5b8e49712bef249de19bc4768f3a691c Author: Behdad Esfahbod <behdad@behdad.org> Date: Mon Oct 28 14:45:31 2019 -0700 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/NEWS new/harfbuzz-2.6.4/NEWS --- old/harfbuzz-2.6.3/NEWS 2019-10-28 22:46:59.000000000 +0100 +++ new/harfbuzz-2.6.4/NEWS 2019-10-29 20:49:28.000000000 +0100 @@ -1,3 +1,10 @@ +Overview of changes leading to 2.6.4 +Monday, October 29, 2019 +==================================== +- Small bug fix. +- Build fixes. + + Overview of changes leading to 2.6.3 Monday, October 28, 2019 ==================================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/configure new/harfbuzz-2.6.4/configure --- old/harfbuzz-2.6.3/configure 2019-10-28 22:47:05.000000000 +0100 +++ new/harfbuzz-2.6.4/configure 2019-10-29 20:49:49.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for HarfBuzz 2.6.3. +# Generated by GNU Autoconf 2.69 for HarfBuzz 2.6.4. # # Report bugs to <https://github.com/harfbuzz/harfbuzz/issues/new>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='HarfBuzz' PACKAGE_TARNAME='harfbuzz' -PACKAGE_VERSION='2.6.3' -PACKAGE_STRING='HarfBuzz 2.6.3' +PACKAGE_VERSION='2.6.4' +PACKAGE_STRING='HarfBuzz 2.6.4' PACKAGE_BUGREPORT='https://github.com/harfbuzz/harfbuzz/issues/new' PACKAGE_URL='http://harfbuzz.org/' @@ -1485,7 +1485,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures HarfBuzz 2.6.3 to adapt to many kinds of systems. +\`configure' configures HarfBuzz 2.6.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1555,7 +1555,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of HarfBuzz 2.6.3:";; + short | recursive ) echo "Configuration of HarfBuzz 2.6.4:";; esac cat <<\_ACEOF @@ -1739,7 +1739,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -HarfBuzz configure 2.6.3 +HarfBuzz configure 2.6.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2557,7 +2557,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by HarfBuzz $as_me 2.6.3, which was +It was created by HarfBuzz $as_me 2.6.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3426,7 +3426,7 @@ # Define the identity of the package. PACKAGE='harfbuzz' - VERSION='2.6.3' + VERSION='2.6.4' # Some tools Automake needs. @@ -19316,8 +19316,8 @@ HB_VERSION_MAJOR=2 HB_VERSION_MINOR=6 -HB_VERSION_MICRO=3 -HB_VERSION=2.6.3 +HB_VERSION_MICRO=4 +HB_VERSION=2.6.4 @@ -19328,7 +19328,7 @@ -HB_LIBTOOL_VERSION_INFO=20600:3:20600 +HB_LIBTOOL_VERSION_INFO=20600:4:20600 @@ -22621,7 +22621,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by HarfBuzz $as_me 2.6.3, which was +This file was extended by HarfBuzz $as_me 2.6.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -22688,7 +22688,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -HarfBuzz config.status 2.6.3 +HarfBuzz config.status 2.6.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/configure.ac new/harfbuzz-2.6.4/configure.ac --- old/harfbuzz-2.6.3/configure.ac 2019-10-28 22:46:59.000000000 +0100 +++ new/harfbuzz-2.6.4/configure.ac 2019-10-29 20:49:28.000000000 +0100 @@ -1,6 +1,6 @@ AC_PREREQ([2.64]) AC_INIT([HarfBuzz], - [2.6.3], + [2.6.4], [https://github.com/harfbuzz/harfbuzz/issues/new], [harfbuzz], [http://harfbuzz.org/]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/docs/harfbuzz-docs.xml new/harfbuzz-2.6.4/docs/harfbuzz-docs.xml --- old/harfbuzz-2.6.3/docs/harfbuzz-docs.xml 2019-08-14 06:25:46.000000000 +0200 +++ new/harfbuzz-2.6.4/docs/harfbuzz-docs.xml 2019-08-14 07:10:53.000000000 +0200 @@ -130,8 +130,8 @@ <xi:include href="xml/tree_index.sgml"/> </chapter--> - <index id="deprecated-api-index" role="deprecated"><title>Index of deprecated API</title><xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include></index> <index id="api-index-full"><title>API Index</title><xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include></index> + <index id="deprecated-api-index" role="deprecated"><title>Index of deprecated API</title><xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include></index> <index id="api-index-2-6-0" role="2.6.0"><title>Index of new symbols in 2.6.0</title><xi:include href="xml/api-index-2.6.0.xml"><xi:fallback /></xi:include></index> <index id="api-index-2-5-0" role="2.5.0"><title>Index of new symbols in 2.5.0</title><xi:include href="xml/api-index-2.5.0.xml"><xi:fallback /></xi:include></index> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/docs/harfbuzz-sections.txt new/harfbuzz-2.6.4/docs/harfbuzz-sections.txt --- old/harfbuzz-2.6.3/docs/harfbuzz-sections.txt 2019-10-28 22:47:49.000000000 +0100 +++ new/harfbuzz-2.6.4/docs/harfbuzz-sections.txt 2019-10-29 20:50:32.000000000 +0100 @@ -612,14 +612,14 @@ <SECTION> <FILE>hb-ot-meta</FILE> -hb_ot_meta_t +hb_ot_meta_tag_t hb_ot_meta_get_entry_tags hb_ot_meta_reference_entry </SECTION> <SECTION> <FILE>hb-ot-metrics</FILE> -hb_ot_metrics_t +hb_ot_metrics_tag_t hb_ot_metrics_get_position hb_ot_metrics_get_variation hb_ot_metrics_get_x_variation diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/docs/html/api-index-full.html new/harfbuzz-2.6.4/docs/html/api-index-full.html --- old/harfbuzz-2.6.3/docs/html/api-index-full.html 2019-10-28 22:47:49.000000000 +0100 +++ new/harfbuzz-2.6.4/docs/html/api-index-full.html 2019-10-29 20:50:32.000000000 +0100 @@ -6,8 +6,8 @@ <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"> <link rel="home" href="index.html" title="HarfBuzz Manual"> <link rel="up" href="pt02.html" title="Part II. Reference manual"> -<link rel="prev" href="deprecated-api-index.html" title="Index of deprecated API"> -<link rel="next" href="api-index-2-6-0.html" title="Index of new symbols in 2.6.0"> +<link rel="prev" href="harfbuzz-hb-uniscribe.html" title="hb-uniscribe"> +<link rel="next" href="deprecated-api-index.html" title="Index of deprecated API"> <meta name="generator" content="GTK-Doc V1.29 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> @@ -46,8 +46,8 @@ <a class="shortcut" href="#idxV">V</a></span></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> <td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> -<td><a accesskey="p" href="deprecated-api-index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> -<td><a accesskey="n" href="api-index-2-6-0.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +<td><a accesskey="p" href="harfbuzz-hb-uniscribe.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="deprecated-api-index.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="index"> <div class="titlepage"><div><div><h2 class="title"> @@ -1799,6 +1799,10 @@ </dt> <dd></dd> <dt> +hb_ot_meta_tag_t, enum in hb-ot-meta +</dt> +<dd></dd> +<dt> hb_ot_metrics_get_position, function in hb-ot-metrics </dt> <dd></dd> @@ -1815,6 +1819,10 @@ </dt> <dd></dd> <dt> +hb_ot_metrics_tag_t, enum in hb-ot-metrics +</dt> +<dd></dd> +<dt> <a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-get-utf16" title="hb_ot_name_get_utf16 ()">hb_ot_name_get_utf16</a>, function in <a class="link" href="harfbuzz-hb-ot-name.html" title="hb-ot-name">hb-ot-name</a> </dt> <dd></dd> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/docs/html/harfbuzz-hb-uniscribe.html new/harfbuzz-2.6.4/docs/html/harfbuzz-hb-uniscribe.html --- old/harfbuzz-2.6.3/docs/html/harfbuzz-hb-uniscribe.html 2019-10-28 22:47:49.000000000 +0100 +++ new/harfbuzz-2.6.4/docs/html/harfbuzz-hb-uniscribe.html 2019-10-29 20:50:32.000000000 +0100 @@ -7,7 +7,7 @@ <link rel="home" href="index.html" title="HarfBuzz Manual"> <link rel="up" href="ch14.html" title="Integration API"> <link rel="prev" href="harfbuzz-hb-icu.html" title="hb-icu"> -<link rel="next" href="deprecated-api-index.html" title="Index of deprecated API"> +<link rel="next" href="api-index-full.html" title="API Index"> <meta name="generator" content="GTK-Doc V1.29 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> @@ -20,7 +20,7 @@ <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> <td><a accesskey="u" href="ch14.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> <td><a accesskey="p" href="harfbuzz-hb-icu.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> -<td><a accesskey="n" href="deprecated-api-index.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +<td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="harfbuzz-hb-uniscribe"></a><div class="titlepage"></div> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/docs/html/harfbuzz-hb-version.html new/harfbuzz-2.6.4/docs/html/harfbuzz-hb-version.html --- old/harfbuzz-2.6.3/docs/html/harfbuzz-hb-version.html 2019-10-28 22:47:49.000000000 +0100 +++ new/harfbuzz-2.6.4/docs/html/harfbuzz-hb-version.html 2019-10-29 20:50:32.000000000 +0100 @@ -184,7 +184,7 @@ <hr> <div class="refsect2"> <a name="HB-VERSION-MICRO:CAPS"></a><h3>HB_VERSION_MICRO</h3> -<pre class="programlisting">#define HB_VERSION_MICRO 3 +<pre class="programlisting">#define HB_VERSION_MICRO 4 </pre> </div> <hr> @@ -196,7 +196,7 @@ <hr> <div class="refsect2"> <a name="HB-VERSION-STRING:CAPS"></a><h3>HB_VERSION_STRING</h3> -<pre class="programlisting">#define HB_VERSION_STRING "2.6.3" +<pre class="programlisting">#define HB_VERSION_STRING "2.6.4" </pre> </div> </div> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/docs/html/harfbuzz.devhelp2 new/harfbuzz-2.6.4/docs/html/harfbuzz.devhelp2 --- old/harfbuzz-2.6.3/docs/html/harfbuzz.devhelp2 2019-10-28 22:47:49.000000000 +0100 +++ new/harfbuzz-2.6.4/docs/html/harfbuzz.devhelp2 2019-10-29 20:50:32.000000000 +0100 @@ -116,8 +116,8 @@ <sub name="hb-icu" link="harfbuzz-hb-icu.html"/> <sub name="hb-uniscribe" link="harfbuzz-hb-uniscribe.html"/> </sub> - <sub name="Index of deprecated API" link="deprecated-api-index.html"/> <sub name="API Index" link="api-index-full.html"/> + <sub name="Index of deprecated API" link="deprecated-api-index.html"/> <sub name="Index of new symbols in 2.6.0" link="api-index-2-6-0.html"/> <sub name="Index of new symbols in 2.5.0" link="api-index-2-5-0.html"/> <sub name="Index of new symbols in 2.4.0" link="api-index-2-4-0.html"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/docs/html/pt02.html new/harfbuzz-2.6.4/docs/html/pt02.html --- old/harfbuzz-2.6.3/docs/html/pt02.html 2019-10-28 22:47:49.000000000 +0100 +++ new/harfbuzz-2.6.4/docs/html/pt02.html 2019-10-29 20:50:32.000000000 +0100 @@ -24,7 +24,7 @@ <div><h1 class="title"> <a name="id-1.3"></a>Part II. Reference manual</h1></div> <div><p class="releaseinfo"> - This document is for HarfBuzz 2.6.3 + This document is for HarfBuzz 2.6.4 . </p></div> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/docs/html/shaping-opentype-features.html new/harfbuzz-2.6.4/docs/html/shaping-opentype-features.html --- old/harfbuzz-2.6.3/docs/html/shaping-opentype-features.html 2019-10-28 22:47:49.000000000 +0100 +++ new/harfbuzz-2.6.4/docs/html/shaping-opentype-features.html 2019-10-29 20:50:32.000000000 +0100 @@ -40,7 +40,8 @@ Other features are more generic and can apply to several (or any) script, and shaping engines are expected to implement them. By default, HarfBuzz activates several of these features - on every text run. They include <code class="literal">ccmp</code>, + on every text run. They include <code class="literal">abvm</code>, + <code class="literal">blwm</code>, <code class="literal">ccmp</code>, <code class="literal">locl</code>, <code class="literal">mark</code>, <code class="literal">mkmk</code>, and <code class="literal">rlig</code>. </p> @@ -48,8 +49,9 @@ In addition, if the text direction is horizontal, HarfBuzz also applies the <code class="literal">calt</code>, <code class="literal">clig</code>, <code class="literal">curs</code>, - <code class="literal">kern</code>, <code class="literal">liga</code>, - <code class="literal">rclt</code>, and <code class="literal">frac</code> features. + <code class="literal">dist</code>, <code class="literal">kern</code>, + <code class="literal">liga</code>, <code class="literal">rclt</code>, + and <code class="literal">frac</code> features. </p> <p> If the text direction is vertical, HarfBuzz applies diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/docs/usermanual-opentype-features.xml new/harfbuzz-2.6.4/docs/usermanual-opentype-features.xml --- old/harfbuzz-2.6.3/docs/usermanual-opentype-features.xml 2019-05-25 17:15:45.000000000 +0200 +++ new/harfbuzz-2.6.4/docs/usermanual-opentype-features.xml 2019-08-23 20:54:39.000000000 +0200 @@ -139,7 +139,8 @@ Other features are more generic and can apply to several (or any) script, and shaping engines are expected to implement them. By default, HarfBuzz activates several of these features - on every text run. They include <literal>ccmp</literal>, + on every text run. They include <literal>abvm</literal>, + <literal>blwm</literal>, <literal>ccmp</literal>, <literal>locl</literal>, <literal>mark</literal>, <literal>mkmk</literal>, and <literal>rlig</literal>. </para> @@ -147,8 +148,9 @@ In addition, if the text direction is horizontal, HarfBuzz also applies the <literal>calt</literal>, <literal>clig</literal>, <literal>curs</literal>, - <literal>kern</literal>, <literal>liga</literal>, - <literal>rclt</literal>, and <literal>frac</literal> features. + <literal>dist</literal>, <literal>kern</literal>, + <literal>liga</literal>, <literal>rclt</literal>, + and <literal>frac</literal> features. </para> <para> If the text direction is vertical, HarfBuzz applies diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/docs/version.xml new/harfbuzz-2.6.4/docs/version.xml --- old/harfbuzz-2.6.3/docs/version.xml 2019-10-28 22:47:16.000000000 +0100 +++ new/harfbuzz-2.6.4/docs/version.xml 2019-10-29 20:49:53.000000000 +0100 @@ -1 +1 @@ -2.6.3 +2.6.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/src/hb-array.hh new/harfbuzz-2.6.4/src/hb-array.hh --- old/harfbuzz-2.6.3/src/hb-array.hh 2019-10-22 22:38:05.000000000 +0200 +++ new/harfbuzz-2.6.4/src/hb-array.hh 2019-10-29 20:49:28.000000000 +0100 @@ -196,6 +196,15 @@ const T *as () const { return length < hb_null_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } + template <typename T, + unsigned P = sizeof (Type), + hb_enable_if (P == 1)> + bool in_range (const T *p, unsigned int size = T::static_size) const + { + return ((const char *) p) >= arrayZ + && ((const char *) p + size) <= arrayZ + length; + } + /* Only call if you allocated the underlying array using malloc() or similar. */ void free () { ::free ((void *) arrayZ); arrayZ = nullptr; length = 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/src/hb-ot-cff1-table.cc new/harfbuzz-2.6.4/src/hb-ot-cff1-table.cc --- old/harfbuzz-2.6.3/src/hb-ot-cff1-table.cc 2019-10-09 05:03:11.000000000 +0200 +++ new/harfbuzz-2.6.4/src/hb-ot-cff1-table.cc 2019-10-29 11:16:47.000000000 +0100 @@ -336,7 +336,7 @@ else { extents->y_bearing = font->em_scalef_y (bounds.max.y.to_real ()); - extents->height = font->em_scalef_x (bounds.min.y.to_real () - bounds.max.y.to_real ()); + extents->height = font->em_scalef_y (bounds.min.y.to_real () - bounds.max.y.to_real ()); } return true; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/src/hb-ot-cmap-table.hh new/harfbuzz-2.6.4/src/hb-ot-cmap-table.hh --- old/harfbuzz-2.6.3/src/hb-ot-cmap-table.hh 2019-10-28 21:46:56.000000000 +0100 +++ new/harfbuzz-2.6.4/src/hb-ot-cmap-table.hh 2019-10-29 11:16:47.000000000 +0100 @@ -342,14 +342,22 @@ count--; /* Skip sentinel segment. */ for (unsigned int i = 0; i < count; i++) { + hb_codepoint_t start = this->startCount[i]; + hb_codepoint_t end = this->endCount[i]; unsigned int rangeOffset = this->idRangeOffset[i]; if (rangeOffset == 0) - out->add_range (this->startCount[i], this->endCount[i]); + { + for (hb_codepoint_t codepoint = start; codepoint <= end; codepoint++) + { + hb_codepoint_t gid = (codepoint + this->idDelta[i]) & 0xFFFFu; + if (unlikely (!gid)) + continue; + out->add (codepoint); + } + } else { - for (hb_codepoint_t codepoint = this->startCount[i]; - codepoint <= this->endCount[i]; - codepoint++) + for (hb_codepoint_t codepoint = start; codepoint <= end; codepoint++) { unsigned int index = rangeOffset / 2 + (codepoint - this->startCount[i]) + i - this->segCount; if (unlikely (index >= this->glyphIdArrayLength)) @@ -522,10 +530,18 @@ void collect_unicodes (hb_set_t *out) const { - for (unsigned int i = 0; i < this->groups.len; i++) { - out->add_range (this->groups[i].startCharCode, - hb_min ((hb_codepoint_t) this->groups[i].endCharCode, - (hb_codepoint_t) HB_UNICODE_MAX)); + for (unsigned int i = 0; i < this->groups.len; i++) + { + hb_codepoint_t start = this->groups[i].startCharCode; + hb_codepoint_t end = hb_min ((hb_codepoint_t) this->groups[i].endCharCode, + (hb_codepoint_t) HB_UNICODE_MAX); + for (hb_codepoint_t codepoint = start; codepoint <= end; codepoint++) + { + hb_codepoint_t gid = T::group_get_glyph (this->groups[i], codepoint); + if (unlikely (!gid)) + continue; + out->add (codepoint); + } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/src/hb-ot-glyf-table.hh new/harfbuzz-2.6.4/src/hb-ot-glyf-table.hh --- old/harfbuzz-2.6.3/src/hb-ot-glyf-table.hh 2019-10-15 23:57:38.000000000 +0200 +++ new/harfbuzz-2.6.4/src/hb-ot-glyf-table.hh 2019-10-29 20:49:28.000000000 +0100 @@ -360,9 +360,9 @@ { typedef const CompositeGlyphChain *__item_t__; composite_iter_t (hb_bytes_t glyph_, __item_t__ current_) : - glyph (glyph_), current (current_), checker (range_checker_t (glyph.arrayZ, glyph.length)) + glyph (glyph_), current (current_) { if (!in_range (current)) current = nullptr; } - composite_iter_t () : glyph (hb_bytes_t ()), current (nullptr), checker (range_checker_t (nullptr, 0)) {} + composite_iter_t () : glyph (hb_bytes_t ()), current (nullptr) {} const CompositeGlyphChain &__item__ () const { return *current; } bool __more__ () const { return current; } @@ -380,14 +380,13 @@ bool in_range (const CompositeGlyphChain *composite) const { - return checker.in_range (composite, CompositeGlyphChain::min_size) - && checker.in_range (composite, composite->get_size ()); + return glyph.in_range (composite, CompositeGlyphChain::min_size) + && glyph.in_range (composite, composite->get_size ()); } private: hb_bytes_t glyph; __item_t__ current; - range_checker_t checker; }; struct Glyph @@ -537,7 +536,7 @@ template <typename T> static bool read_points (const HBUINT8 *&p /* IN/OUT */, contour_point_vector_t &points_ /* IN/OUT */, - const range_checker_t &checker) + const hb_bytes_t &bytes) { T coord_setter; float v = 0; @@ -546,7 +545,7 @@ uint8_t flag = points_[i].flag; if (coord_setter.is_short (flag)) { - if (unlikely (!checker.in_range (p))) return false; + if (unlikely (!bytes.in_range (p))) return false; if (coord_setter.is_same (flag)) v += *p++; else @@ -556,7 +555,7 @@ { if (!coord_setter.is_same (flag)) { - if (unlikely (!checker.in_range ((const HBUINT16 *) p))) return false; + if (unlikely (!bytes.in_range ((const HBUINT16 *) p))) return false; v += *(const HBINT16 *) p; p += HBINT16::static_size; } @@ -571,9 +570,8 @@ const bool phantom_only=false) const { const HBUINT16 *endPtsOfContours = &StructAfter<HBUINT16> (header); - range_checker_t checker (bytes.arrayZ, bytes.length); int num_contours = header.numberOfContours; - if (unlikely (!checker.in_range (&endPtsOfContours[num_contours + 1]))) return false; + if (unlikely (!bytes.in_range (&endPtsOfContours[num_contours + 1]))) return false; unsigned int num_points = endPtsOfContours[num_contours - 1] + 1; points_.resize (num_points + PHANTOM_COUNT); @@ -593,12 +591,12 @@ /* Read flags */ for (unsigned int i = 0; i < num_points; i++) { - if (unlikely (!checker.in_range (p))) return false; + if (unlikely (!bytes.in_range (p))) return false; uint8_t flag = *p++; points_[i].flag = flag; if (flag & FLAG_REPEAT) { - if (unlikely (!checker.in_range (p))) return false; + if (unlikely (!bytes.in_range (p))) return false; unsigned int repeat_count = *p++; while ((repeat_count-- > 0) && (++i < num_points)) points_[i].flag = flag; @@ -606,8 +604,8 @@ } /* Read x & y coordinates */ - return (read_points<x_setter_t> (p, points_, checker) && - read_points<y_setter_t> (p, points_, checker)); + return (read_points<x_setter_t> (p, points_, bytes) && + read_points<y_setter_t> (p, points_, bytes)); } }; @@ -808,20 +806,36 @@ struct contour_bounds_t { - contour_bounds_t () { min.x = min.y = FLT_MAX; max.x = max.y = -FLT_MAX; } + contour_bounds_t () { min_x = min_y = FLT_MAX; max_x = max_y = -FLT_MAX; } void add (const contour_point_t &p) { - min.x = hb_min (min.x, p.x); - min.y = hb_min (min.y, p.y); - max.x = hb_max (max.x, p.x); - max.y = hb_max (max.y, p.y); + min_x = hb_min (min_x, p.x); + min_y = hb_min (min_y, p.y); + max_x = hb_max (max_x, p.x); + max_y = hb_max (max_y, p.y); } - bool empty () const { return (min.x >= max.x) || (min.y >= max.y); } + bool empty () const { return (min_x >= max_x) || (min_y >= max_y); } - contour_point_t min; - contour_point_t max; + void get_extents (hb_font_t *font, hb_glyph_extents_t *extents) + { + if (unlikely (empty ())) + { + extents->width = 0; + extents->x_bearing = 0; + extents->height = 0; + extents->y_bearing = 0; + return; + } + extents->x_bearing = font->em_scalef_x (min_x); + extents->width = font->em_scalef_x (max_x - min_x); + extents->y_bearing = font->em_scalef_y (max_y); + extents->height = font->em_scalef_y (min_y - max_y); + } + + protected: + float min_x, min_y, max_x, max_y; }; #ifndef HB_NO_VAR @@ -919,27 +933,7 @@ contour_bounds_t bounds; for (unsigned int i = 0; i + PHANTOM_COUNT < all_points.length; i++) bounds.add (all_points[i]); - - if (bounds.min.x > bounds.max.x) - { - extents->width = 0; - extents->x_bearing = 0; - } - else - { - extents->x_bearing = font->em_scalef_x (bounds.min.x); - extents->width = font->em_scalef_x (bounds.max.x - bounds.min.x); - } - if (bounds.min.y > bounds.max.y) - { - extents->height = 0; - extents->y_bearing = 0; - } - else - { - extents->y_bearing = font->em_scalef_y (bounds.max.y); - extents->height = font->em_scalef_y (bounds.min.y - bounds.max.y); - } + bounds.get_extents (font, extents); } if (phantoms) for (unsigned int i = 0; i < PHANTOM_COUNT; i++) @@ -953,7 +947,7 @@ bool get_extents_var (hb_font_t *font, hb_codepoint_t gid, hb_glyph_extents_t *extents) const - { return get_var_extents_and_phantoms (font, gid, extents); } + { return get_var_extents_and_phantoms (font, gid, extents); } #endif public: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/src/hb-ot-var-gvar-table.hh new/harfbuzz-2.6.4/src/hb-ot-var-gvar-table.hh --- old/harfbuzz-2.6.3/src/hb-ot-var-gvar-table.hh 2019-10-15 23:57:38.000000000 +0200 +++ new/harfbuzz-2.6.4/src/hb-ot-var-gvar-table.hh 2019-10-29 20:49:28.000000000 +0100 @@ -78,23 +78,6 @@ } }; -struct range_checker_t -{ - range_checker_t (const void *data_, unsigned int length_) - : data ((const char *) data_), length (length_) {} - - template <typename T> - bool in_range (const T *p, unsigned int size = T::static_size) const - { - return ((const char *) p) >= data - && ((const char *) p + size) <= data + length; - } - - protected: - const char *data; - const unsigned int length; -}; - struct Tuple : UnsizedArrayOf<F2DOT14> {}; struct TuppleIndex : HBUINT16 @@ -233,10 +216,10 @@ { if (var_data->has_shared_point_numbers ()) { - range_checker_t checker (var_data, length); + hb_bytes_t bytes ((const char *) var_data, length); const HBUINT8 *base = &(var_data+var_data->data); const HBUINT8 *p = base; - if (!unpack_points (p, shared_indices, checker)) return false; + if (!unpack_points (p, shared_indices, bytes)) return false; data_offset = p - base; } return true; @@ -292,7 +275,7 @@ static bool unpack_points (const HBUINT8 *&p /* IN/OUT */, hb_vector_t<unsigned int> &points /* OUT */, - const range_checker_t &check) + const hb_bytes_t &bytes) { enum packed_point_flag_t { @@ -300,12 +283,12 @@ POINT_RUN_COUNT_MASK = 0x7F }; - if (unlikely (!check.in_range (p))) return false; + if (unlikely (!bytes.in_range (p))) return false; uint16_t count = *p++; if (count & POINTS_ARE_WORDS) { - if (unlikely (!check.in_range (p))) return false; + if (unlikely (!bytes.in_range (p))) return false; count = ((count & POINT_RUN_COUNT_MASK) << 8) | *p++; } points.resize (count); @@ -314,7 +297,7 @@ uint16_t i = 0; while (i < count) { - if (unlikely (!check.in_range (p))) return false; + if (unlikely (!bytes.in_range (p))) return false; uint16_t j; uint8_t control = *p++; uint16_t run_count = (control & POINT_RUN_COUNT_MASK) + 1; @@ -322,7 +305,7 @@ { for (j = 0; j < run_count && i < count; j++, i++) { - if (unlikely (!check.in_range ((const HBUINT16 *) p))) + if (unlikely (!bytes.in_range ((const HBUINT16 *) p))) return false; n += *(const HBUINT16 *)p; points[i] = n; @@ -333,7 +316,7 @@ { for (j = 0; j < run_count && i < count; j++, i++) { - if (unlikely (!check.in_range (p))) return false; + if (unlikely (!bytes.in_range (p))) return false; n += *p++; points[i] = n; } @@ -345,7 +328,7 @@ static bool unpack_deltas (const HBUINT8 *&p /* IN/OUT */, hb_vector_t<int> &deltas /* IN/OUT */, - const range_checker_t &check) + const hb_bytes_t &bytes) { enum packed_delta_flag_t { @@ -358,7 +341,7 @@ unsigned int count = deltas.length; while (i < count) { - if (unlikely (!check.in_range (p))) return false; + if (unlikely (!bytes.in_range (p))) return false; uint8_t control = *p++; unsigned int run_count = (control & DELTA_RUN_COUNT_MASK) + 1; unsigned int j; @@ -368,7 +351,7 @@ else if (control & DELTAS_ARE_WORDS) for (j = 0; j < run_count && i < count; j++, i++) { - if (unlikely (!check.in_range ((const HBUINT16 *) p))) + if (unlikely (!bytes.in_range ((const HBUINT16 *) p))) return false; deltas[i] = *(const HBINT16 *) p; p += HBUINT16::static_size; @@ -376,7 +359,7 @@ else for (j = 0; j < run_count && i < count; j++, i++) { - if (unlikely (!check.in_range (p))) + if (unlikely (!bytes.in_range (p))) return false; deltas[i] = *(const HBINT8 *) p++; } @@ -611,10 +594,10 @@ if (unlikely (!iterator.in_range (p, length))) return false; - range_checker_t checker (p, length); + hb_bytes_t bytes ((const char *) p, length); hb_vector_t<unsigned int> private_indices; if (iterator.current_tuple->has_private_points () && - !GlyphVarData::unpack_points (p, private_indices, checker)) + !GlyphVarData::unpack_points (p, private_indices, bytes)) return false; const hb_array_t<unsigned int> &indices = private_indices.length ? private_indices : shared_indices; @@ -622,11 +605,11 @@ unsigned int num_deltas = apply_to_all ? points.length : indices.length; hb_vector_t<int> x_deltas; x_deltas.resize (num_deltas); - if (!GlyphVarData::unpack_deltas (p, x_deltas, checker)) + if (!GlyphVarData::unpack_deltas (p, x_deltas, bytes)) return false; hb_vector_t<int> y_deltas; y_deltas.resize (num_deltas); - if (!GlyphVarData::unpack_deltas (p, y_deltas, checker)) + if (!GlyphVarData::unpack_deltas (p, y_deltas, bytes)) return false; for (unsigned int i = 0; i < deltas.length; i++) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/src/hb-subset-plan.cc new/harfbuzz-2.6.4/src/hb-subset-plan.cc --- old/harfbuzz-2.6.3/src/hb-subset-plan.cc 2019-10-09 05:03:11.000000000 +0200 +++ new/harfbuzz-2.6.4/src/hb-subset-plan.cc 2019-10-29 01:12:37.000000000 +0100 @@ -71,7 +71,10 @@ const hb_set_t *unicodes, hb_set_t *glyphset) { - face->table.cmap->table->closure_glyphs (unicodes, glyphset); + OT::cmap::accelerator_t cmap; + cmap.init (face); + cmap.table->closure_glyphs (unicodes, glyphset); + cmap.fini (); } static inline void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/src/hb-version.h new/harfbuzz-2.6.4/src/hb-version.h --- old/harfbuzz-2.6.3/src/hb-version.h 2019-10-28 22:46:59.000000000 +0100 +++ new/harfbuzz-2.6.4/src/hb-version.h 2019-10-29 20:49:28.000000000 +0100 @@ -38,9 +38,9 @@ #define HB_VERSION_MAJOR 2 #define HB_VERSION_MINOR 6 -#define HB_VERSION_MICRO 3 +#define HB_VERSION_MICRO 4 -#define HB_VERSION_STRING "2.6.3" +#define HB_VERSION_STRING "2.6.4" #define HB_VERSION_ATLEAST(major,minor,micro) \ ((major)*10000+(minor)*100+(micro) <= \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/src/hb.hh new/harfbuzz-2.6.4/src/hb.hh --- old/harfbuzz-2.6.3/src/hb.hh 2019-09-30 19:40:11.000000000 +0200 +++ new/harfbuzz-2.6.4/src/hb.hh 2019-10-29 20:17:51.000000000 +0100 @@ -370,10 +370,12 @@ #define getenv(Name) nullptr #endif -#ifdef HB_NO_ERRNO -static int errno = 0; /* Use something better? */ +#ifndef HB_NO_ERRNO +# include <errno.h> #else -#include <errno.h> +static int HB_UNUSED _hb_errno = 0; +# undef errno +# define errno _hb_errno #endif #if defined(HAVE_ATEXIT) && !defined(HB_USE_ATEXIT) Binary files old/harfbuzz-2.6.3/test/api/fonts/cmunrm.otf and new/harfbuzz-2.6.4/test/api/fonts/cmunrm.otf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/harfbuzz-2.6.3/test/api/test-collect-unicodes.c new/harfbuzz-2.6.4/test/api/test-collect-unicodes.c --- old/harfbuzz-2.6.3/test/api/test-collect-unicodes.c 2019-05-06 21:14:20.000000000 +0200 +++ new/harfbuzz-2.6.4/test/api/test-collect-unicodes.c 2019-10-29 11:16:47.000000000 +0100 @@ -50,6 +50,27 @@ } static void +test_collect_unicodes_format12_notdef (void) +{ + hb_face_t *face = hb_test_open_font_file ("fonts/cmunrm.otf"); + hb_set_t *codepoints = hb_set_create(); + hb_codepoint_t cp; + + hb_face_collect_unicodes (face, codepoints); + + cp = HB_SET_VALUE_INVALID; + g_assert (hb_set_next (codepoints, &cp)); + g_assert_cmpuint (0x20, ==, cp); + g_assert (hb_set_next (codepoints, &cp)); + g_assert_cmpuint (0x21, ==, cp); + g_assert (hb_set_next (codepoints, &cp)); + g_assert_cmpuint (0x22, ==, cp); + + hb_set_destroy (codepoints); + hb_face_destroy (face); +} + +static void test_collect_unicodes_format12 (void) { hb_face_t *face = hb_test_open_font_file ("fonts/Roboto-Regular.abc.format12.ttf"); @@ -101,6 +122,7 @@ hb_test_add (test_collect_unicodes); hb_test_add (test_collect_unicodes_format4); hb_test_add (test_collect_unicodes_format12); + hb_test_add (test_collect_unicodes_format12_notdef); return hb_test_run(); }
participants (1)
-
root