.circleci/config.yml | 4 +- CMakeLists.txt | 53 +++++++++++++++++++++++------------- src/hb-aat-layout-common-private.hh | 24 ++++++++++++++++ src/hb-buffer.h | 3 +- test/shaping/CMakeLists.txt | 13 ++++++-- util/options.cc | 4 ++ 6 files changed, 77 insertions(+), 24 deletions(-)
New commits: commit ff2083c53eecc67c011b96b0b9a58331043e53cf Author: Behdad Esfahbod <[email protected]> Date: Wed Jan 10 13:54:36 2018 +0100 [util] Set stdio files to line buffering So we can stream lines to hb-shape and read output. diff --git a/util/options.cc b/util/options.cc index f6360725..243b49b1 100644 --- a/util/options.cc +++ b/util/options.cc @@ -780,6 +780,8 @@ text_options_t::get_line (unsigned int *len) gs = g_string_new (nullptr); } + setlinebuf (fp); + g_string_set_size (gs, 0); char buf[BUFSIZ]; while (fgets (buf, sizeof (buf), fp)) { @@ -817,6 +819,8 @@ output_options_t::get_file_handle (void) fail (false, "Cannot open output file `%s': %s", g_filename_display_name (output_file), strerror (errno)); + setlinebuf (fp); + return fp; } commit 80fd5743200cbe221ae3adf057fe0e5ef54a894c Author: Behdad Esfahbod <[email protected]> Date: Wed Jan 10 11:09:53 2018 +0100 [aat] Add Class subtable thingy From old 'mort' table. diff --git a/src/hb-aat-layout-common-private.hh b/src/hb-aat-layout-common-private.hh index c3058682..4b96ee6c 100644 --- a/src/hb-aat-layout-common-private.hh +++ b/src/hb-aat-layout-common-private.hh @@ -424,6 +424,30 @@ struct Lookup }; +struct Class +{ + inline unsigned int get_class (hb_codepoint_t glyph_id) const + { + return firstGlyph <= glyph_id && glyph_id - firstGlyph < glyphCount ? classArrayZ[glyph_id - firstGlyph] : 1; + } + + inline bool sanitize (hb_sanitize_context_t *c) const + { + TRACE_SANITIZE (this); + return_trace (c->check_struct (this) && classArrayZ.sanitize (c, glyphCount)); + } + + protected: + GlyphID firstGlyph; /* First glyph index included in the trimmed array. */ + HBUINT16 glyphCount; /* Total number of glyphs (equivalent to the last + * glyph minus the value of firstGlyph plus 1). */ + UnsizedArrayOf<HBUINT8> + classArrayZ; /* The class codes (indexed by glyph index minus + * firstGlyph). */ + public: + DEFINE_SIZE_ARRAY (4, classArrayZ); +}; + } /* namespace AAT */ commit 71e0ed9cbad8438239dcedf1bcfa8e19b9dfdc89 Author: Ebrahim Byagowi <[email protected]> Date: Wed Jan 10 15:45:12 2018 +0330 [cmake] Add header existence tests (#685) diff --git a/.circleci/config.yml b/.circleci/config.yml index 2a82abaa..8c02624e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -138,8 +138,8 @@ workflows: version: 2 build: jobs: - - oracledeveloperstudio - - fedora-out-of-tree + #- oracledeveloperstudio + #- fedora-out-of-tree - archlinux - freebsd9 - base diff --git a/CMakeLists.txt b/CMakeLists.txt index b61d6605..a2599b54 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -89,15 +89,34 @@ include_directories(AFTER add_definitions(-DHAVE_OT) add_definitions(-DHAVE_FALLBACK) -include(CheckFunctionExists) -check_function_exists(atexit HAVE_ATEXIT) -check_function_exists(mprotect HAVE_MPROTECT) -check_function_exists(sysconf HAVE_SYSCONF) -check_function_exists(getpagesize HAVE_GETPAGESIZE) -check_function_exists(mmap HAVE_MMAP) -check_function_exists(isatty HAVE_ISATTY) -check_function_exists(newlocale HAVE_NEWLOCALE) -check_function_exists(strtod_l HAVE_STRTOD_L) + +include (CheckFunctionExists) +include (CheckIncludeFile) +macro (check_funcs) # Similar to AC_CHECK_FUNCS of autotools + foreach (func_name ${ARGN}) + set (RESULT OFF) + check_function_exists(${func_name} RESULT) + if (${RESULT}) + string(TOUPPER ${func_name} definiton_to_add) + add_definitions(-DHAVE_${definiton_to_add}) + endif () + endforeach () +endmacro () +check_funcs(atexit mprotect sysconf getpagesize mmap isatty newlocale strtod_l) + +check_include_file(unistd.h HAVE_UNIST_H) +if (${HAVE_UNIST_H}) + add_definitions(-DHAVE_UNIST_H) +endif () +#check_include_file(sys/mman.h HAVE_SYS_MMAN_H) enable this sometime +#if (${HAVE_SYS_MMAN_H}) +# add_definitions(-DHAVE_SYS_MMAN_H) +#endif () +check_include_file(xlocale.h HAVE_XLOCALE_H) +if (${HAVE_XLOCALE_H}) + add_definitions(-DHAVE_XLOCALE_H) +endif () + if (MSVC) add_definitions(-wd4244 -wd4267 -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS) @@ -237,7 +256,7 @@ set (project_headers ## Find and include needed header folders and libraries if (HB_HAVE_FREETYPE) - include(FindFreetype) + include (FindFreetype) if (NOT FREETYPE_FOUND) message(FATAL_ERROR "HB_HAVE_FREETYPE was set, but we failed to find it. Maybe add a CMAKE_PREFIX_PATH= to your Freetype2 install prefix") endif () @@ -249,11 +268,9 @@ if (HB_HAVE_FREETYPE) list(APPEND project_sources ${PROJECT_SOURCE_DIR}/src/hb-ft.cc) list(APPEND project_headers ${PROJECT_SOURCE_DIR}/src/hb-ft.h) - set (CMAKE_REQUIRED_INCLUDES ${FREETYPE_INCLUDE_DIRS}) - set (CMAKE_REQUIRED_LIBRARIES ${FREETYPE_LIBRARIES}) - check_function_exists(FT_Get_Var_Blend_Coordinates HAVE_FT_GET_VAR_BLEND_COORDINATES) - check_function_exists(FT_Set_Var_Blend_Coordinates HAVE_FT_SET_VAR_BLEND_COORDINATES) - check_function_exists(FT_Done_MM_Var HAVE_FT_DONE_MM_VAR) + set (CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${FREETYPE_INCLUDE_DIRS}) + set (CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${FREETYPE_LIBRARIES}) + check_funcs(FT_Get_Var_Blend_Coordinates FT_Set_Var_Blend_Coordinates FT_Done_MM_Var) endif () if (HB_HAVE_GRAPHITE2) @@ -355,8 +372,8 @@ if (WIN32 AND HB_HAVE_DIRECTWRITE) endif () if (HB_HAVE_GOBJECT) - include(FindPythonInterp) - include(FindPerl) + include (FindPythonInterp) + include (FindPerl) # Use the hints from glib-2.0.pc to find glib-mkenums find_package(PkgConfig) @@ -675,7 +692,7 @@ endif () ## Install -include(GNUInstallDirs) +include (GNUInstallDirs) if (NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL) install(FILES ${project_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/harfbuzz) diff --git a/test/shaping/CMakeLists.txt b/test/shaping/CMakeLists.txt index bf4aaa5a..b79d5328 100644 --- a/test/shaping/CMakeLists.txt +++ b/test/shaping/CMakeLists.txt @@ -2,7 +2,6 @@ if (HB_BUILD_UTILS) file (READ "${CMAKE_CURRENT_SOURCE_DIR}/data/in-house/Makefile.am" INHOUSE) extract_make_variable (TESTS ${INHOUSE}) foreach (test IN ITEMS ${TESTS}) - message(${CMAKE_CURRENT_SOURCE_DIR}/data/in-house) add_test (NAME ${test} COMMAND python run-tests.py $<TARGET_FILE:hb-shape> "data/in-house/${test}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) commit a073621b5dc2865a014821307128a8fdd1d7d992 Author: Ebrahim Byagowi <[email protected]> Date: Wed Jan 10 12:13:28 2018 +0330 [cmake] Fix tests against latest changes (#690) diff --git a/test/shaping/CMakeLists.txt b/test/shaping/CMakeLists.txt index e186858b..bf4aaa5a 100644 --- a/test/shaping/CMakeLists.txt +++ b/test/shaping/CMakeLists.txt @@ -1,10 +1,18 @@ if (HB_BUILD_UTILS) - file (READ "${CMAKE_CURRENT_SOURCE_DIR}/Makefile.am" MAKEFILEAM) - extract_make_variable (TESTS ${MAKEFILEAM}) + file (READ "${CMAKE_CURRENT_SOURCE_DIR}/data/in-house/Makefile.am" INHOUSE) + extract_make_variable (TESTS ${INHOUSE}) + foreach (test IN ITEMS ${TESTS}) + message(${CMAKE_CURRENT_SOURCE_DIR}/data/in-house) + add_test (NAME ${test} + COMMAND python run-tests.py $<TARGET_FILE:hb-shape> "data/in-house/${test}" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + endforeach () + file (READ "${CMAKE_CURRENT_SOURCE_DIR}/data/text-rendering-tests/Makefile.am" TEXTRENDERING) + extract_make_variable (TESTS ${TEXTRENDERING}) foreach (test IN ITEMS ${TESTS}) add_test (NAME ${test} - COMMAND python run-tests.py $<TARGET_FILE:hb-shape> "${test}" + COMMAND python run-tests.py $<TARGET_FILE:hb-shape> "data/text-rendering-tests/${test}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) endforeach () endif () commit 0b22da954142ad7a1e949a56448cee4e836fff75 Author: Khaled Hosny <[email protected]> Date: Wed Jan 10 07:12:07 2018 +0200 Improve HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES docs Add the note about absolute glyph positions from the commit message. diff --git a/src/hb-buffer.h b/src/hb-buffer.h index 655a22ee..bcc29930 100644 --- a/src/hb-buffer.h +++ b/src/hb-buffer.h @@ -422,7 +422,8 @@ hb_buffer_normalize_glyphs (hb_buffer_t *buffer); * @HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES: do no serialize glyph name. * @HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS: serialize glyph extents. * @HB_BUFFER_SERIALIZE_FLAG_GLYPH_FLAGS: serialize glyph flags. Since: 1.5.0 - * @HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES: do not serialize glyph advances. Since: 1.8.0 + * @HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES: do not serialize glyph advances, + * glyph offsets will reflect absolute glyph positions. Since: 1.8.0 * * Flags that control what glyph information are serialized in hb_buffer_serialize_glyphs(). * _______________________________________________ HarfBuzz mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/harfbuzz
