src/dev-run.sh   |   40 +++++++++++++++++++++++++++++++---------
 src/hb-subset.cc |    2 +-
 util/options.cc  |   33 ++++++++++++++++++++++++++++-----
 util/options.hh  |    6 ++++++
 4 files changed, 66 insertions(+), 15 deletions(-)

New commits:
commit 4f6f7c3b22ec788f609bdffc7e0893816657b3a0
Author: Ebrahim Byagowi <ebra...@gnu.org>
Date:   Fri Feb 23 02:54:12 2018 +0330

    [util] Implement ppem/ptem on hb-{shape,view} (#811)

diff --git a/util/options.cc b/util/options.cc
index 6d8064b9..d2444a49 100644
--- a/util/options.cc
+++ b/util/options.cc
@@ -481,6 +481,25 @@ parse_font_size (const char *name G_GNUC_UNUSED,
       return false;
   }
 }
+
+static gboolean
+parse_font_ppem (const char *name G_GNUC_UNUSED,
+                const char *arg,
+                gpointer    data,
+                GError    **error G_GNUC_UNUSED)
+{
+  font_options_t *font_opts = (font_options_t *) data;
+  switch (sscanf (arg, "%d%*[ ,]%d", &font_opts->x_ppem, &font_opts->y_ppem)) {
+    case 1: font_opts->y_ppem = font_opts->x_ppem;
+    case 2: return true;
+    default:
+      g_set_error (error, G_OPTION_ERROR, G_OPTION_ERROR_BAD_VALUE,
+                  "%s argument should be one or two space-separated numbers",
+                  name);
+      return false;
+  }
+}
+
 void
 font_options_t::add_options (option_parser_t *parser)
 {
@@ -513,12 +532,13 @@ font_options_t::add_options (option_parser_t *parser)
 
   GOptionEntry entries[] =
   {
-    {"font-file",      0, 0, G_OPTION_ARG_STRING,      &this->font_file,       
        "Set font file-name",                   "filename"},
-    {"face-index",     0, 0, G_OPTION_ARG_INT,         &this->face_index,      
        "Set face index (default: 0)",          "index"},
+    {"font-file",      0, 0, G_OPTION_ARG_STRING,      &this->font_file,       
        "Set font file-name",                           "filename"},
+    {"face-index",     0, 0, G_OPTION_ARG_INT,         &this->face_index,      
        "Set face index (default: 0)",                  "index"},
     {"font-size",      0, default_font_size ? 0 : G_OPTION_FLAG_HIDDEN,
-                             G_OPTION_ARG_CALLBACK,    (gpointer) 
&parse_font_size,    font_size_text,                         "1/2 numbers or 
'upem'"},
-    /* TODO Add font-ppem / font-ptem. */
-    {"font-funcs",     0, 0, G_OPTION_ARG_STRING,      &this->font_funcs,      
        text,                                   "impl"},
+                             G_OPTION_ARG_CALLBACK,    (gpointer) 
&parse_font_size,    font_size_text,                                 "1/2 
integers or 'upem'"},
+    {"font-ppem",      0, 0, G_OPTION_ARG_CALLBACK,    (gpointer) 
&parse_font_ppem,    "Set x,y pixels per EM (default: 0; disabled)", "1/2 
integers"},
+    {"font-ptem",      0, 0, G_OPTION_ARG_DOUBLE,      &this->ptem,            
        "Set font point-size (default: 0; disabled)",   "point-size"},
+    {"font-funcs",     0, 0, G_OPTION_ARG_STRING,      &this->font_funcs,      
        text,                                           "impl"},
     {nullptr}
   };
   parser->add_group (entries,
@@ -691,6 +711,9 @@ font_options_t::get_font (void) const
   if (font_size_y == FONT_SIZE_UPEM)
     font_size_y = hb_face_get_upem (face);
 
+  hb_font_set_ppem (font, x_ppem, y_ppem);
+  hb_font_set_ptem (font, ptem);
+
   int scale_x = (int) scalbnf (font_size_x, subpixel_bits);
   int scale_y = (int) scalbnf (font_size_y, subpixel_bits);
   hb_font_set_scale (font, scale_x, scale_y);
diff --git a/util/options.hh b/util/options.hh
index 411165bf..cfbbade2 100644
--- a/util/options.hh
+++ b/util/options.hh
@@ -452,6 +452,9 @@ struct font_options_t : option_group_t
     variations = nullptr;
     num_variations = 0;
     default_font_size = default_font_size_;
+    x_ppem = 0;
+    y_ppem = 0;
+    ptem = .0;
     subpixel_bits = subpixel_bits_;
     font_file = nullptr;
     face_index = 0;
@@ -478,6 +481,9 @@ struct font_options_t : option_group_t
   hb_variation_t *variations;
   unsigned int num_variations;
   int default_font_size;
+  int x_ppem;
+  int y_ppem;
+  double ptem;
   unsigned int subpixel_bits;
   mutable double font_size_x;
   mutable double font_size_y;
commit a6bd6bcee08c9522f9269b5c63f784688abddcff
Author: Ebrahim Byagowi <ebra...@gnu.org>
Date:   Thu Feb 22 16:52:56 2018 +0330

    [dev-run] minor

diff --git a/src/dev-run.sh b/src/dev-run.sh
index 40f6463c..3b2257b1 100755
--- a/src/dev-run.sh
+++ b/src/dev-run.sh
@@ -48,7 +48,7 @@ d|D )
        if [[ $CMAKENINJA ]]; then
                echo "Not supported on cmake builds yet"
        else
-               build/libtool --mode=execute $GDB hb-shape $@
+               build/libtool --mode=execute $GDB build/util/hb-shape $@
        fi
 ;;
 r|R )
commit fa13a04cf3345311a2434f0d7f6346f967491c45
Author: Ebrahim Byagowi <ebra...@gnu.org>
Date:   Thu Feb 22 16:48:03 2018 +0330

    [dev-run] Add gdb/lldb shortcuts

diff --git a/src/dev-run.sh b/src/dev-run.sh
index 5a7ae102..40f6463c 100755
--- a/src/dev-run.sh
+++ b/src/dev-run.sh
@@ -13,26 +13,48 @@
 [ $# = 0 ] && echo Usage: "src/dev-run.sh [FONT-FILE] [TEXT]" && exit
 command -v entr >/dev/null 2>&1 || { echo >&2 "This script needs `entr` be 
installed"; exit 1; }
 
+GDB=gdb
+# if gdb doesn't exist, hopefully lldb exist
+command -v $GDB >/dev/null 2>&1 || export GDB="lldb"
+
 [ -f 'build/build.ninja' ] && CMAKENINJA=TRUE
 # or "fswatch -0 . -e build/ -e .git"
 find src/ | entr printf '\0' | while read -d ""; do
        clear
+       echo '===================================================='
        if [[ $CMAKENINJA ]]; then
-               ninja -Cbuild hb-shape hb-view
-               build/hb-shape $@
-               build/hb-view $@
+               ninja -Cbuild hb-shape hb-view && {
+                       build/hb-shape $@
+                       build/hb-view $@
+               }
        else
-               make -Cbuild/src -j5 -s lib
-               build/util/hb-shape $@
-               build/util/hb-view $@
+               make -Cbuild/src -j5 -s lib && {
+                       build/util/hb-shape $@
+                       build/util/hb-view $@
+               }
        fi
 done
 
-read -n 1 -p "Run the tests (y/n)? " answer
-if [[ "$answer" = "y" ]]; then
+read -n 1 -p "[T]est, [D]ebug, [R]estart, [Q]uit?" answer
+case "$answer" in
+t|T )
        if [[ $CMAKENINJA ]]; then
                CTEST_OUTPUT_ON_FAILURE=1 CTEST_PARALLEL_LEVEL=5 ninja -Cbuild 
test
        else
                make -Cbuild -j5 check && .ci/fail.sh
        fi
-fi
+;;
+d|D )
+       if [[ $CMAKENINJA ]]; then
+               echo "Not supported on cmake builds yet"
+       else
+               build/libtool --mode=execute $GDB hb-shape $@
+       fi
+;;
+r|R )
+       src/dev-run.sh $@
+;;
+* )
+       exit
+;;
+esac
commit 2d0265242bb9a080886d6e0aa653c62e5770a15a
Author: Rod Sheeter <rshee...@google.com>
Date:   Wed Feb 21 09:42:46 2018 -0800

    [subset] keep the result of _subset

diff --git a/src/hb-subset.cc b/src/hb-subset.cc
index 418e481f..a4794f18 100644
--- a/src/hb-subset.cc
+++ b/src/hb-subset.cc
@@ -264,7 +264,7 @@ _subset_table (hb_subset_plan_t *plan,
       break;
   }
   DEBUG_MSG(SUBSET, nullptr, "subset %c%c%c%c %s", HB_UNTAG(tag), result ? 
"ok" : "FAILED");
-  return true;
+  return result;
 }
 
 static bool
_______________________________________________
HarfBuzz mailing list
HarfBuzz@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/harfbuzz

Reply via email to