[HarfBuzz] harfbuzz: Branch 'master' - 6 commits

Behdad Esfahbod behdad at kemper.freedesktop.org
Wed Nov 1 18:36:59 UTC 2017


 .circleci/config.yml                                  |   26 +++++++++++++++---
 src/hb-buffer-private.hh                              |    2 -
 src/hb-buffer.cc                                      |    4 +-
 src/hb-open-file-private.hh                           |    2 -
 test/shaping/run-tests.sh                             |   21 +++++++++++---
 test/shaping/tests/cluster.tests                      |    4 +-
 test/shaping/tests/indic-consonant-with-stacker.tests |    8 ++---
 test/shaping/tests/indic-script-extensions.tests      |    2 -
 test/shaping/tests/vertical.tests                     |    2 -
 9 files changed, 51 insertions(+), 20 deletions(-)

New commits:
commit f1245013bf7e9d490b43d9b8bebd467b2c1d14cc
Author: Khaled Hosny <khaledhosny at eglug.org>
Date:   Wed Nov 1 12:06:59 2017 +0200

    [test] Run shaping tests with both ot and ft funcs

diff --git a/test/shaping/run-tests.sh b/test/shaping/run-tests.sh
index a7d331aa..bb1ba80e 100755
--- a/test/shaping/run-tests.sh
+++ b/test/shaping/run-tests.sh
@@ -27,18 +27,29 @@ for f in "$@"; do
 			continue
 		fi
 		$reference || echo "hb-shape $fontfile $options --unicodes $unicodes"
-		glyphs=`$hb_shape "$srcdir/$fontfile" $options --unicodes "$unicodes"`
+		glyphs1=`$hb_shape --font-funcs=ft "$srcdir/$fontfile" $options --unicodes "$unicodes"`
 		if test $? != 0; then
-			echo "hb-shape failed." >&2
+			echo "hb-shape --font-funcs=ft failed." >&2
 			fails=$((fails+1))
 			#continue
 		fi
+		glyphs2=`$hb_shape --font-funcs=ot "$srcdir/$fontfile" $options --unicodes "$unicodes"`
+		if test $? != 0; then
+			echo "hb-shape --font-funcs=ot failed." >&2
+			fails=$((fails+1))
+			#continue
+		fi
+		if ! test "x$glyphs1" = "x$glyphs2"; then
+			echo "FT funcs: $glyphs1" >&2
+			echo "OT funcs: $glyphs2" >&2
+			fails=$((fails+1))
+		fi
 		if $reference; then
-			echo "$fontfile:$options:$unicodes:$glyphs"
+			echo "$fontfile:$options:$unicodes:$glyphs1"
 			continue
 		fi
-		if ! test "x$glyphs" = "x$glyphs_expected"; then
-			echo "Actual:   $glyphs" >&2
+		if ! test "x$glyphs1" = "x$glyphs_expected"; then
+			echo "Actual:   $glyphs1" >&2
 			echo "Expected: $glyphs_expected" >&2
 			fails=$((fails+1))
 		fi
commit 70137e2b4b46918d9608f824a4b4b5cef2819158
Author: Khaled Hosny <khaledhosny at eglug.org>
Date:   Wed Nov 1 12:03:39 2017 +0200

    [test] We don’t care about glyph positions here
    
    Freetype and OT font functions give different positions for some glyphs
    in this font (OT seems to be correct), but that is not what we are
    interested in in this test.
    
    See https://github.com/behdad/harfbuzz/pull/590#issuecomment-341045223.

diff --git a/test/shaping/tests/cluster.tests b/test/shaping/tests/cluster.tests
index 24f04ddf..19da4cab 100644
--- a/test/shaping/tests/cluster.tests
+++ b/test/shaping/tests/cluster.tests
@@ -1,2 +1,2 @@
-fonts/sha1sum/6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf:--cluster-level=2:U+0078,U+030A,U+0058,U+030A:[gid2=0+1083|gid4=1 at -555,-8+0|gid1=2+1200|gid4=3 at -614,349+0]
-fonts/sha1sum/43ef465752be9af900745f72fe29cb853a1401a5.ttf:--cluster-level=1:U+05D4,U+05B7,U+05E9,U+05BC,U+05C1,U+05B8,U+05DE,U+05B4,U+05DD:[uni05DD=8+1359|uni05B4=7 at 111,0+0|uni05DE=6+1391|uni05B8=5+0|uni05BC=3+0|uni05C1=3+0|uni05E9=2+1451|uni05B7=1 at 28,0+0|uni05D4=0+1338]
+fonts/sha1sum/6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf:--cluster-level=2 --no-positions:U+0078,U+030A,U+0058,U+030A:[gid2=0|gid4=1|gid1=2|gid4=3]
+fonts/sha1sum/43ef465752be9af900745f72fe29cb853a1401a5.ttf:--cluster-level=1 --no-positions:U+05D4,U+05B7,U+05E9,U+05BC,U+05C1,U+05B8,U+05DE,U+05B4,U+05DD:[uni05DD=8|uni05B4=7|uni05DE=6|uni05B8=5|uni05BC=3|uni05C1=3|uni05E9=2|uni05B7=1|uni05D4=0]
commit 9234b364b178d44a11148d5c613169731667a2ae
Author: Khaled Hosny <khaledhosny at eglug.org>
Date:   Wed Nov 1 10:34:36 2017 +0200

    [test] Use ft functions for this test
    
    https://github.com/behdad/harfbuzz/pull/590#issuecomment-340967271

diff --git a/test/shaping/tests/vertical.tests b/test/shaping/tests/vertical.tests
index 3586080f..e0b64d94 100644
--- a/test/shaping/tests/vertical.tests
+++ b/test/shaping/tests/vertical.tests
@@ -1,3 +1,3 @@
-fonts/sha1sum/191826b9643e3f124d865d617ae609db6a2ce203.ttf:--direction=t:U+300C:[uni300C.vert=0 at -512,-578+0,-1024]
+fonts/sha1sum/191826b9643e3f124d865d617ae609db6a2ce203.ttf:--direction=t --font-funcs=ft:U+300C:[uni300C.vert=0 at -512,-578+0,-1024]
 fonts/sha1sum/f9b1dd4dcb515e757789a22cb4241107746fd3d0.ttf:--direction=t --font-funcs=ft:U+0041,U+0042:[gid1=0 at -654,-2128+0,-2789|gid2=1 at -665,-2125+0,-2789]
 fonts/sha1sum/f9b1dd4dcb515e757789a22cb4241107746fd3d0.ttf:--direction=t --font-funcs=ot:U+0041,U+0042:[gid1=0 at -654,-2189+0,-2789|gid2=1 at -665,-2189+0,-2789]
commit afbfb9279cbebcd0a85ab2fcc822a3fdbb035272
Author: Khaled Hosny <khaledhosny at eglug.org>
Date:   Mon Oct 30 22:02:50 2017 +0200

    [test] Always use ft font funcs for these tests
    
    These are CFF fonts and ot functions don’t support CFF glyph names yet.
    The next commit will run all tests with ot functions.

diff --git a/test/shaping/tests/indic-consonant-with-stacker.tests b/test/shaping/tests/indic-consonant-with-stacker.tests
index 8890570c..6a6ea7c1 100644
--- a/test/shaping/tests/indic-consonant-with-stacker.tests
+++ b/test/shaping/tests/indic-consonant-with-stacker.tests
@@ -1,4 +1,4 @@
-fonts/sha1sum/a014549f766436cf55b2ceb40e462038938ee899.ttf::U+0CF1,U+0C95:[uni0CF1=0+1129|uni0C95_uni0CCD.blwf=1+358]
-fonts/sha1sum/55c88ebbe938680b08f92c3de20713183e0c7481.ttf::U+0CF2,U+0CAA:[uni0CF2=0+1539|uni0CAA_uni0CCD.blwf=1+245]
-fonts/sha1sum/341421e629668b1a1242245d39238ca48432d35d.ttf::U+0CF1:[uni0CF1=0+1129]
-fonts/sha1sum/663aef6b019dbf45ffd74089e2b5f2496ceceb18.ttf::U+0CF2:[uni0CF2=0+1539]
+fonts/sha1sum/a014549f766436cf55b2ceb40e462038938ee899.ttf:--font-funcs=ft:U+0CF1,U+0C95:[uni0CF1=0+1129|uni0C95_uni0CCD.blwf=1+358]
+fonts/sha1sum/55c88ebbe938680b08f92c3de20713183e0c7481.ttf:--font-funcs=ft:U+0CF2,U+0CAA:[uni0CF2=0+1539|uni0CAA_uni0CCD.blwf=1+245]
+fonts/sha1sum/341421e629668b1a1242245d39238ca48432d35d.ttf:--font-funcs=ft:U+0CF1:[uni0CF1=0+1129]
+fonts/sha1sum/663aef6b019dbf45ffd74089e2b5f2496ceceb18.ttf:--font-funcs=ft:U+0CF2:[uni0CF2=0+1539]
diff --git a/test/shaping/tests/indic-script-extensions.tests b/test/shaping/tests/indic-script-extensions.tests
index 2d15402e..e336bfcc 100644
--- a/test/shaping/tests/indic-script-extensions.tests
+++ b/test/shaping/tests/indic-script-extensions.tests
@@ -1,2 +1,2 @@
 fonts/sha1sum/3493e92eaded2661cadde752a39f9d58b11f0326.ttf::U+0BA4,U+0BC6,U+1133C,U+0BAA,U+1133C,U+0BC6,U+1133C:[u0BC6=0+2093|u1133C=0+0|u0BA4=0+1863|u0BC6=3+2093|u1133C=3+0|u0BAA=3+1706|u1133C=3+0]
-fonts/sha1sum/b151cfcdaa77585d77f17a42158e0873fc8e2633.ttf::U+0BAA,U+11301,U+11303:[uni0BAA=0+535|u11301=0+0|u11303=0+310]
+fonts/sha1sum/b151cfcdaa77585d77f17a42158e0873fc8e2633.ttf:--font-funcs=ft:U+0BAA,U+11301,U+11303:[uni0BAA=0+535|u11301=0+0|u11303=0+310]
commit 33e62636f739680ffbc1875391f05e80039a3259
Author: ebraminio <ebrahim at gnu.org>
Date:   Wed Nov 1 03:05:46 2017 -0700

    [ci] Add FreeBSD9 (gcc4) (#595)

diff --git a/.circleci/config.yml b/.circleci/config.yml
index 85635908..336a200c 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -2,6 +2,14 @@ version: 2
 
 jobs:
 
+  freebsd9:
+    docker:
+      - image: donbowman/freebsd-cross-build
+    steps:
+      - checkout
+      - run: apt update && apt install -y pkg-config ragel
+      - run: ./autogen.sh --prefix=/freebsd --host=x86_64-pc-freebsd9 && make
+
   base:
     docker:
       - image: dockcross/base
@@ -63,6 +71,7 @@ workflows:
   version: 2
   build:
     jobs:
+      - freebsd9
       - base
       - psvita
       - android-arm
@@ -73,4 +82,4 @@ workflows:
 
 branches:
   ignore:
-      - gh-pages
+    - gh-pages
commit 102f5ead493ad2eac6c11c3fc8f2e793d3d57058
Author: ebraminio <ebrahim at gnu.org>
Date:   Wed Nov 1 02:10:18 2017 -0700

    Enable PSVita (arm-none-eabi) compile again and add it to CI (#594)

diff --git a/.circleci/config.yml b/.circleci/config.yml
index d4835e44..85635908 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,8 +1,5 @@
 version: 2
 
-branches:
-  ignore:
-      - gh-pages
 jobs:
 
   base:
@@ -13,6 +10,15 @@ jobs:
       - run: apt update && apt install ragel
       - run: cmake -Bbuild -H. -GNinja && ninja -Cbuild
 
+  psvita:
+    docker:
+      - image: dockcross/base
+    steps:
+      - checkout
+      - run: apt update && apt install ragel
+      - run: git clone https://github.com/vitasdk/vdpm && cd vdpm && ./bootstrap-vitasdk.sh
+      - run: cmake -Bbuild -H. -GNinja -DCMAKE_TOOLCHAIN_FILE=/usr/local/vitasdk/share/vita.toolchain.cmake && ninja -Cbuild
+
   android-arm:
     docker:
       - image: dockcross/android-arm
@@ -58,8 +64,13 @@ workflows:
   build:
     jobs:
       - base
+      - psvita
       - android-arm
       - browser-asmjs
       - linux-arm64
       - linux-mips
       - windows-x64
+
+branches:
+  ignore:
+      - gh-pages
diff --git a/src/hb-buffer-private.hh b/src/hb-buffer-private.hh
index 1aa87b65..0b8d7c89 100644
--- a/src/hb-buffer-private.hh
+++ b/src/hb-buffer-private.hh
@@ -311,7 +311,7 @@ struct hb_buffer_t {
 				     unsigned int cluster) const
   {
     for (unsigned int i = start; i < end; i++)
-      cluster = MIN (cluster, info[i].cluster);
+      cluster = MIN<unsigned int> (cluster, info[i].cluster);
     return cluster;
   }
   void
diff --git a/src/hb-buffer.cc b/src/hb-buffer.cc
index 73b3e4bd..f0791780 100644
--- a/src/hb-buffer.cc
+++ b/src/hb-buffer.cc
@@ -554,7 +554,7 @@ hb_buffer_t::merge_clusters_impl (unsigned int start,
   unsigned int cluster = info[start].cluster;
 
   for (unsigned int i = start + 1; i < end; i++)
-    cluster = MIN (cluster, info[i].cluster);
+    cluster = MIN<unsigned int> (cluster, info[i].cluster);
 
   /* Extend end */
   while (end < len && info[end - 1].cluster == info[end].cluster)
@@ -585,7 +585,7 @@ hb_buffer_t::merge_out_clusters (unsigned int start,
   unsigned int cluster = out_info[start].cluster;
 
   for (unsigned int i = start + 1; i < end; i++)
-    cluster = MIN (cluster, out_info[i].cluster);
+    cluster = MIN<unsigned int> (cluster, out_info[i].cluster);
 
   /* Extend start */
   while (start && out_info[start - 1].cluster == out_info[start].cluster)
diff --git a/src/hb-open-file-private.hh b/src/hb-open-file-private.hh
index a6d5a6b1..741e74cc 100644
--- a/src/hb-open-file-private.hh
+++ b/src/hb-open-file-private.hh
@@ -90,7 +90,7 @@ typedef struct OffsetTable
       if (start_offset >= tables.len)
         *table_count = 0;
       else
-        *table_count = MIN (*table_count, tables.len - start_offset);
+        *table_count = MIN<unsigned int> (*table_count, tables.len - start_offset);
 
       const TableRecord *sub_tables = tables.array + start_offset;
       unsigned int count = *table_count;


More information about the HarfBuzz mailing list