From 507804479a81672ec0c089313adad9fa308d78fd Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Tue, 13 Feb 2018 21:46:28 -0800 Subject: [PATCH] [use] Add dump-use-data --- src/Makefile.am | 4 +++ src/dump-use-data.cc | 38 ++++++++++++++++++++++++++ src/gen-use-table.py | 2 +- src/hb-ot-shape-complex-use-private.hh | 2 +- src/hb-ot-shape-complex-use-table.cc | 2 +- src/hb-ot-shape-complex-use.cc | 4 +-- 6 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 src/dump-use-data.cc diff --git a/src/Makefile.am b/src/Makefile.am index f90b2ac2f..1ccd8438d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -355,6 +355,7 @@ check_PROGRAMS += \ dump-indic-data \ dump-khmer-data \ dump-myanmar-data \ + dump-use-data \ $(NULL) dump_indic_data_SOURCES = dump-indic-data.cc hb-ot-shape-complex-indic-table.cc dump_indic_data_CPPFLAGS = $(HBCFLAGS) @@ -365,6 +366,9 @@ dump_khmer_data_LDADD = libharfbuzz.la $(HBLIBS) dump_myanmar_data_SOURCES = dump-myanmar-data.cc hb-ot-shape-complex-indic-table.cc dump_myanmar_data_CPPFLAGS = $(HBCFLAGS) dump_myanmar_data_LDADD = libharfbuzz.la $(HBLIBS) +dump_use_data_SOURCES = dump-use-data.cc hb-ot-shape-complex-use-table.cc +dump_use_data_CPPFLAGS = $(HBCFLAGS) +dump_use_data_LDADD = libharfbuzz.la $(HBLIBS) check_PROGRAMS += test-ot-tag TESTS += test-ot-tag diff --git a/src/dump-use-data.cc b/src/dump-use-data.cc new file mode 100644 index 000000000..0e64688f1 --- /dev/null +++ b/src/dump-use-data.cc @@ -0,0 +1,38 @@ +/* + * Copyright © 2018 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Behdad Esfahbod + */ + +#include "hb-ot-shape-complex-use-private.hh" + +int +main (void) +{ + for (hb_codepoint_t u = 0; u <= 0x10FFFF; u++) + { + unsigned int category = hb_use_get_category (u); + if (category != USE_O) + printf("U+%04X %u\n", u, category); + } +} diff --git a/src/gen-use-table.py b/src/gen-use-table.py index 5391f27eb..06817255c 100755 --- a/src/gen-use-table.py +++ b/src/gen-use-table.py @@ -449,7 +449,7 @@ page_bits = 12 print "}; /* Table items: %d; occupancy: %d%% */" % (offset, occupancy) print print "USE_TABLE_ELEMENT_TYPE" -print "hb_use_get_categories (hb_codepoint_t u)" +print "hb_use_get_category (hb_codepoint_t u)" print "{" print " switch (u >> %d)" % page_bits print " {" diff --git a/src/hb-ot-shape-complex-use-private.hh b/src/hb-ot-shape-complex-use-private.hh index 3e763ae39..f7ded133d 100644 --- a/src/hb-ot-shape-complex-use-private.hh +++ b/src/hb-ot-shape-complex-use-private.hh @@ -92,6 +92,6 @@ enum use_category_t { }; HB_INTERNAL USE_TABLE_ELEMENT_TYPE -hb_use_get_categories (hb_codepoint_t u); +hb_use_get_category (hb_codepoint_t u); #endif /* HB_OT_SHAPE_COMPLEX_USE_PRIVATE_HH */ diff --git a/src/hb-ot-shape-complex-use-table.cc b/src/hb-ot-shape-complex-use-table.cc index a67ef0611..6823392f4 100644 --- a/src/hb-ot-shape-complex-use-table.cc +++ b/src/hb-ot-shape-complex-use-table.cc @@ -690,7 +690,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = { }; /* Table items: 5424; occupancy: 73% */ USE_TABLE_ELEMENT_TYPE -hb_use_get_categories (hb_codepoint_t u) +hb_use_get_category (hb_codepoint_t u) { switch (u >> 12) { diff --git a/src/hb-ot-shape-complex-use.cc b/src/hb-ot-shape-complex-use.cc index 62acd697b..ee7653b51 100644 --- a/src/hb-ot-shape-complex-use.cc +++ b/src/hb-ot-shape-complex-use.cc @@ -262,7 +262,7 @@ setup_masks_use (const hb_ot_shape_plan_t *plan, unsigned int count = buffer->len; hb_glyph_info_t *info = buffer->info; for (unsigned int i = 0; i < count; i++) - info[i].use_category() = hb_use_get_categories (info[i].codepoint); + info[i].use_category() = hb_use_get_category (info[i].codepoint); } static void @@ -505,7 +505,7 @@ insert_dotted_circles (const hb_ot_shape_plan_t *plan HB_UNUSED, hb_glyph_info_t dottedcircle = {0}; if (!font->get_nominal_glyph (0x25CCu, &dottedcircle.codepoint)) return; - dottedcircle.use_category() = hb_use_get_categories (0x25CC); + dottedcircle.use_category() = hb_use_get_category (0x25CC); buffer->clear_output ();