texlive[54637] Build/source/libs: graphite2 1.3.14

commits+kakuto at tug.org commits+kakuto at tug.org
Fri Apr 10 05:54:17 CEST 2020


Revision: 54637
          http://tug.org/svn/texlive?view=revision&revision=54637
Author:   kakuto
Date:     2020-04-10 05:54:17 +0200 (Fri, 10 Apr 2020)
Log Message:
-----------
graphite2 1.3.14

Modified Paths:
--------------
    trunk/Build/source/libs/README
    trunk/Build/source/libs/graphite2/ChangeLog
    trunk/Build/source/libs/graphite2/TLpatches/ChangeLog
    trunk/Build/source/libs/graphite2/TLpatches/TL-Changes
    trunk/Build/source/libs/graphite2/configure
    trunk/Build/source/libs/graphite2/graphite2-src/ChangeLog
    trunk/Build/source/libs/graphite2/graphite2-src/include/graphite2/Font.h
    trunk/Build/source/libs/graphite2/graphite2-src/src/CMakeLists.txt
    trunk/Build/source/libs/graphite2/graphite2-src/src/Code.cpp
    trunk/Build/source/libs/graphite2/graphite2-src/src/Collider.cpp
    trunk/Build/source/libs/graphite2/graphite2-src/src/FeatureMap.cpp
    trunk/Build/source/libs/graphite2/graphite2-src/src/Pass.cpp
    trunk/Build/source/libs/graphite2/graphite2-src/src/direct_machine.cpp
    trunk/Build/source/libs/graphite2/graphite2-src/src/files.mk
    trunk/Build/source/libs/graphite2/graphite2-src/src/gr_face.cpp
    trunk/Build/source/libs/graphite2/graphite2-src/src/gr_slot.cpp
    trunk/Build/source/libs/graphite2/graphite2-src/src/inc/FeatureMap.h
    trunk/Build/source/libs/graphite2/version.ac

Modified: trunk/Build/source/libs/README
===================================================================
--- trunk/Build/source/libs/README	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/README	2020-04-10 03:54:17 UTC (rev 54637)
@@ -21,7 +21,7 @@
 gmp 6.2.0 - checked 20jan20
   http://ftp.gnu.org/gnu/gmp/
 
-graphite2 1.3.13 - checked 21dec18
+graphite2 1.3.14 - checked 10apr20
   http://sourceforge.net/projects/silgraphite/files/graphite2/
   (requires C++11)
 

Modified: trunk/Build/source/libs/graphite2/ChangeLog
===================================================================
--- trunk/Build/source/libs/graphite2/ChangeLog	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/graphite2/ChangeLog	2020-04-10 03:54:17 UTC (rev 54637)
@@ -1,3 +1,8 @@
+2020-04-10  Akira Kakuto  <kakuto at w32tex.org>
+
+	Import graphite2-1.3.14.
+	* version.ac: Adjusted.
+
 2018-12-21  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
 
 	Import graphite2-1.3.13.

Modified: trunk/Build/source/libs/graphite2/TLpatches/ChangeLog
===================================================================
--- trunk/Build/source/libs/graphite2/TLpatches/ChangeLog	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/graphite2/TLpatches/ChangeLog	2020-04-10 03:54:17 UTC (rev 54637)
@@ -1,3 +1,8 @@
+2020-04-10  Akira Kakuto  <kakuto at w32tex.org>
+
+	Imported graphite2-1.3.14 source tree from:
+	  http://sourceforge.net/projects/silgraphite/files/graphite2/
+
 2018-12-21  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
 
 	Imported graphite2-1.3.13 source tree from:

Modified: trunk/Build/source/libs/graphite2/TLpatches/TL-Changes
===================================================================
--- trunk/Build/source/libs/graphite2/TLpatches/TL-Changes	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/graphite2/TLpatches/TL-Changes	2020-04-10 03:54:17 UTC (rev 54637)
@@ -1,4 +1,4 @@
-Changes applied to the graphite2-1.3.13/ tree as obtained from:
+Changes applied to the graphite2-1.3.14/ tree as obtained from:
 	http://sourceforge.net/projects/silgraphite/files/graphite2/
 
 Removed setup.py

Modified: trunk/Build/source/libs/graphite2/configure
===================================================================
--- trunk/Build/source/libs/graphite2/configure	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/graphite2/configure	2020-04-10 03:54:17 UTC (rev 54637)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for graphite2 (TeX Live) 1.3.13.
+# Generated by GNU Autoconf 2.69 for graphite2 (TeX Live) 1.3.14.
 #
 # Report bugs to <tex-k at tug.org>.
 #
@@ -579,8 +579,8 @@
 # Identity of this package.
 PACKAGE_NAME='graphite2 (TeX Live)'
 PACKAGE_TARNAME='graphite2--tex-live-'
-PACKAGE_VERSION='1.3.13'
-PACKAGE_STRING='graphite2 (TeX Live) 1.3.13'
+PACKAGE_VERSION='1.3.14'
+PACKAGE_STRING='graphite2 (TeX Live) 1.3.14'
 PACKAGE_BUGREPORT='tex-k at tug.org'
 PACKAGE_URL=''
 
@@ -1253,7 +1253,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 graphite2 (TeX Live) 1.3.13 to adapt to many kinds of systems.
+\`configure' configures graphite2 (TeX Live) 1.3.14 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1320,7 +1320,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of graphite2 (TeX Live) 1.3.13:";;
+     short | recursive ) echo "Configuration of graphite2 (TeX Live) 1.3.14:";;
    esac
   cat <<\_ACEOF
 
@@ -1418,7 +1418,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-graphite2 (TeX Live) configure 1.3.13
+graphite2 (TeX Live) configure 1.3.14
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1557,7 +1557,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by graphite2 (TeX Live) $as_me 1.3.13, which was
+It was created by graphite2 (TeX Live) $as_me 1.3.14, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3481,7 +3481,7 @@
 
 # Define the identity of the package.
  PACKAGE='graphite2--tex-live-'
- VERSION='1.3.13'
+ VERSION='1.3.14'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -6544,7 +6544,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by graphite2 (TeX Live) $as_me 1.3.13, which was
+This file was extended by graphite2 (TeX Live) $as_me 1.3.14, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -6610,7 +6610,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-graphite2 (TeX Live) config.status 1.3.13
+graphite2 (TeX Live) config.status 1.3.14
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/libs/graphite2/graphite2-src/ChangeLog
===================================================================
--- trunk/Build/source/libs/graphite2/graphite2-src/ChangeLog	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/graphite2/graphite2-src/ChangeLog	2020-04-10 03:54:17 UTC (rev 54637)
@@ -1,3 +1,9 @@
+1.3.14
+    . Bug fixes
+    . Allow features to be hidden (for aliases)
+    . Move to python3
+    . Rename doc files from .txt to .asc
+
 1.3.13
     . Resolve minor spacing issue in rtl non-overlap kerning
     . python3 for graphite.py

Modified: trunk/Build/source/libs/graphite2/graphite2-src/include/graphite2/Font.h
===================================================================
--- trunk/Build/source/libs/graphite2/graphite2-src/include/graphite2/Font.h	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/graphite2/graphite2-src/include/graphite2/Font.h	2020-04-10 03:54:17 UTC (rev 54637)
@@ -30,7 +30,7 @@
 
 #define GR2_VERSION_MAJOR   1
 #define GR2_VERSION_MINOR   3
-#define GR2_VERSION_BUGFIX  13
+#define GR2_VERSION_BUGFIX  14
 
 #ifdef __cplusplus
 extern "C"

Modified: trunk/Build/source/libs/graphite2/graphite2-src/src/CMakeLists.txt
===================================================================
--- trunk/Build/source/libs/graphite2/graphite2-src/src/CMakeLists.txt	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/graphite2/graphite2-src/src/CMakeLists.txt	2020-04-10 03:54:17 UTC (rev 54637)
@@ -111,7 +111,7 @@
         add_definitions(-mfpmath=sse -msse2)
     endif()
     if (CMAKE_COMPILER_IS_GNUCXX)
-        add_definitions(-Wdouble-promotion)
+        add_definitions(-Wno-class-memaccess -Wdouble-promotion)
     endif()
     message(STATUS "Compiler ID is: ${CMAKE_CXX_COMPILER_ID}")
     if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
@@ -136,9 +136,12 @@
 
 if  (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
     set_target_properties(graphite2 PROPERTIES
-        COMPILE_FLAGS   "-Wall -Wextra -Wno-unknown-pragmas -Wimplicit-fallthrough -Wendif-labels -Wshadow -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -fno-rtti -fno-exceptions -fvisibility=hidden -fvisibility-inlines-hidden -mfpmath=sse -msse2"
+        COMPILE_FLAGS   "-Wall -Wextra -Wno-unknown-pragmas -Wimplicit-fallthrough -Wendif-labels -Wshadow -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -fno-rtti -fno-exceptions -fvisibility=hidden -fvisibility-inlines-hidden"
         LINK_FLAGS      "-nodefaultlibs"
         LINKER_LANGUAGE C)
+    if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86|i.86")
+        add_definitions(-mfpmath=sse -msse2)
+    endif()
     target_link_libraries(graphite2 c)
     include(Graphite)
     nolib_test(stdc++ $<TARGET_SONAME_FILE:graphite2>)

Modified: trunk/Build/source/libs/graphite2/graphite2-src/src/Code.cpp
===================================================================
--- trunk/Build/source/libs/graphite2/graphite2-src/src/Code.cpp	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/graphite2/graphite2-src/src/Code.cpp	2020-04-10 03:54:17 UTC (rev 54637)
@@ -101,6 +101,7 @@
     bool        valid_upto(const uint16 limit, const uint16 x) const throw();
     bool        test_context() const throw();
     bool        test_ref(int8 index) const throw();
+    bool        test_attr(attrCode attr) const throw();
     void        failure(const status_t s) const throw() { _code.failure(s); }
 
     Code              & _code;
@@ -381,6 +382,7 @@
             valid_upto(gr_slatMax, bc[0]);
             if (attrCode(bc[0]) == gr_slatUserDefn)     // use IATTR for user attributes
                 failure(out_of_range_data);
+            test_attr(attrCode(bc[0]));
             test_context();
             break;
         case IATTR_SET_SLOT :
@@ -388,6 +390,7 @@
                 failure(underfull_stack);
             if (valid_upto(gr_slatMax, bc[0]))
                 valid_upto(_max.attrid[bc[0]], bc[1]);
+            test_attr(attrCode(bc[0]));
             test_context();
             break;
         case PUSH_SLOT_ATTR :
@@ -396,6 +399,7 @@
             test_ref(int8(bc[1]));
             if (attrCode(bc[0]) == gr_slatUserDefn)     // use IATTR for user attributes
                 failure(out_of_range_data);
+            test_attr(attrCode(bc[0]));
             break;
         case PUSH_GLYPH_ATTR_OBS :
         case PUSH_ATT_TO_GATTR_OBS :
@@ -422,6 +426,7 @@
                 test_ref(int8(bc[1]));
                 valid_upto(_max.attrid[bc[0]], bc[2]);
             }
+            test_attr(attrCode(bc[0]));
             break;
         case PUSH_IGLYPH_ATTR :// not implemented
             ++_stack_depth;
@@ -441,6 +446,7 @@
                 failure(underfull_stack);
             if (valid_upto(gr_slatMax, bc[0]))
                 valid_upto(_max.attrid[bc[0]], bc[1]);
+            test_attr(attrCode(bc[0]));
             test_context();
             break;
         case PUSH_PROC_STATE :  // dummy: dp[0] no check necessary
@@ -681,7 +687,15 @@
         }
     }
     else
-        return valid_upto(_max.rule_length, _slotref + _max.pre_context + index);
+    {
+      if (_max.rule_length == 0
+          || (_slotref + _max.pre_context + index >= _max.rule_length)
+          || (_slotref + _max.pre_context + index < 0))
+      {
+        failure(out_of_range_data);
+        return false;
+      }
+    }
     return true;
 }
 
@@ -695,6 +709,22 @@
     return true;
 }
 
+bool Machine::Code::decoder::test_attr(attrCode) const throw()
+{
+#if 0   // This code is coming but causes backward compatibility problems.
+    if (_passtype < PASS_TYPE_POSITIONING)
+    {
+        if (attr != gr_slatBreak && attr != gr_slatDir && attr != gr_slatUserDefn
+                                 && attr != gr_slatCompRef)
+        {
+            failure(out_of_range_data);
+            return false;
+        }
+    }
+#endif
+    return true;
+}
+
 inline
 void Machine::Code::failure(const status_t s) throw() {
     release_buffers();

Modified: trunk/Build/source/libs/graphite2/graphite2-src/src/Collider.cpp
===================================================================
--- trunk/Build/source/libs/graphite2/graphite2-src/src/Collider.cpp	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/graphite2/graphite2-src/src/Collider.cpp	2020-04-10 03:54:17 UTC (rev 54637)
@@ -1081,8 +1081,8 @@
         return;
     const sparse &p = glyphFace->attrs();
     _flags = p[aCol];
-    _limit = Rect(Position(p[aCol+1], p[aCol+2]),
-                  Position(p[aCol+3], p[aCol+4]));
+    _limit = Rect(Position(int16(p[aCol+1]), int16(p[aCol+2])),
+                  Position(int16(p[aCol+3]), int16(p[aCol+4])));
     _margin = p[aCol+5];
     _marginWt = p[aCol+6];
 

Modified: trunk/Build/source/libs/graphite2/graphite2-src/src/FeatureMap.cpp
===================================================================
--- trunk/Build/source/libs/graphite2/graphite2-src/src/FeatureMap.cpp	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/graphite2/graphite2-src/src/FeatureMap.cpp	2020-04-10 03:54:17 UTC (rev 54637)
@@ -71,7 +71,7 @@
 
 FeatureRef::FeatureRef(const Face & face,
     unsigned short & bits_offset, uint32 max_val,
-    uint32 name, uint16 uiName, uint16 flags,
+    uint32 name, uint16 uiName, flags_t flags,
     FeatureSetting *settings, uint16 num_set) throw()
 : m_face(&face),
   m_nameValues(settings),
@@ -79,8 +79,8 @@
   m_max(max_val),
   m_id(name),
   m_nameid(uiName),
-  m_flags(flags),
-  m_numSet(num_set)
+  m_numSet(num_set),
+  m_flags(flags)
 {
     const uint8 need_bits = bit_set_count(m_mask);
     m_index = (bits_offset + need_bits) / SIZEOF_CHUNK;
@@ -163,7 +163,8 @@
         }
 
         ::new (m_feats + i) FeatureRef (face, bits, maxVal,
-                                       label, uiName, flags,
+                                       label, uiName, 
+                                       FeatureRef::flags_t(flags),
                                        uiSet, num_settings);
     }
     new (&m_defaultFeatures) Features(bits/(sizeof(uint32)*8) + 1, *this);

Modified: trunk/Build/source/libs/graphite2/graphite2-src/src/Pass.cpp
===================================================================
--- trunk/Build/source/libs/graphite2/graphite2-src/src/Pass.cpp	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/graphite2/graphite2-src/src/Pass.cpp	2020-04-10 03:54:17 UTC (rev 54637)
@@ -704,7 +704,7 @@
         {
             slot_out = smap.segment.last();
             ++delta;
-            if (!smap.highwater())
+            if (!smap.highwater() || smap.highwater() == slot_out)
                 smap.highpassed(false);
         }
         else

Modified: trunk/Build/source/libs/graphite2/graphite2-src/src/direct_machine.cpp
===================================================================
--- trunk/Build/source/libs/graphite2/graphite2-src/src/direct_machine.cpp	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/graphite2/graphite2-src/src/direct_machine.cpp	2020-04-10 03:54:17 UTC (rev 54637)
@@ -56,6 +56,26 @@
 
 namespace {
 
+// The GCC manual has this to say about labels as values:
+//   The &&foo expressions for the same label might have different values
+//   if the containing function is inlined or cloned. If a program relies
+//   on them being always the same, __attribute__((__noinline__,__noclone__))
+//   should be used to prevent inlining and cloning.
+//
+// is_return in Code.cpp relies on being able to do comparisons, so it needs
+// them to be always the same.
+//
+// The GCC manual further adds:
+//   If &&foo is used in a static variable initializer, inlining and
+//   cloning is forbidden.
+//
+// In this file, &&foo *is* used in a static variable initializer, and it's not
+// entirely clear whether this should prevent inlining of the function or not.
+// In practice, though, clang 7 can end up inlining the function with ThinLTO,
+// which breaks at least is_return. https://bugs.llvm.org/show_bug.cgi?id=39241
+// So all in all, we need at least the __noinline__ attribute. __noclone__
+// is not supported by clang.
+__attribute__((__noinline__))
 const void * direct_run(const bool          get_table_mode,
                         const instr       * program,
                         const byte        * data,

Modified: trunk/Build/source/libs/graphite2/graphite2-src/src/files.mk
===================================================================
--- trunk/Build/source/libs/graphite2/graphite2-src/src/files.mk	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/graphite2/graphite2-src/src/files.mk	2020-04-10 03:54:17 UTC (rev 54637)
@@ -47,7 +47,6 @@
     $($(_NS)_BASE)/src/gr_segment.cpp \
     $($(_NS)_BASE)/src/gr_slot.cpp \
     $($(_NS)_BASE)/src/json.cpp \
-    $($(_NS)_BASE)/src/CachedFace.cpp \
     $($(_NS)_BASE)/src/CmapCache.cpp \
     $($(_NS)_BASE)/src/Code.cpp \
     $($(_NS)_BASE)/src/Collider.cpp \
@@ -74,7 +73,6 @@
     $($(_NS)_BASE)/src/inc/bits.h \
     $($(_NS)_BASE)/src/inc/debug.h \
     $($(_NS)_BASE)/src/inc/json.h \
-    $($(_NS)_BASE)/src/inc/CachedFace.h \
     $($(_NS)_BASE)/src/inc/CharInfo.h \
     $($(_NS)_BASE)/src/inc/CmapCache.h \
     $($(_NS)_BASE)/src/inc/Code.h \

Modified: trunk/Build/source/libs/graphite2/graphite2-src/src/gr_face.cpp
===================================================================
--- trunk/Build/source/libs/graphite2/graphite2-src/src/gr_face.cpp	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/graphite2/graphite2-src/src/gr_face.cpp	2020-04-10 03:54:17 UTC (rev 54637)
@@ -163,14 +163,25 @@
 unsigned short gr_face_n_fref(const gr_face* pFace)
 {
     assert(pFace);
-    return pFace->numFeatures();
+    int res = 0;
+    for (int i = 0; i < pFace->numFeatures(); ++i)
+        if (!(pFace->feature(i)->getFlags() & FeatureRef::HIDDEN))
+            ++res;
+    return res;
 }
 
 const gr_feature_ref* gr_face_fref(const gr_face* pFace, gr_uint16 i) //When finished with the FeatureRef, call destroy_FeatureRef
 {
     assert(pFace);
-    const FeatureRef* pRef = pFace->feature(i);
-    return static_cast<const gr_feature_ref*>(pRef);
+    int count = 0;
+    for (int j = 0; j < pFace->numFeatures(); ++j)
+    {
+        const FeatureRef* pRef = pFace->feature(j);
+        if (!(pRef->getFlags() & FeatureRef::HIDDEN))
+            if (count++ == i)
+                return static_cast<const gr_feature_ref*>(pRef);
+    }
+    return 0;
 }
 
 unsigned short gr_face_n_languages(const gr_face* pFace)

Modified: trunk/Build/source/libs/graphite2/graphite2-src/src/gr_slot.cpp
===================================================================
--- trunk/Build/source/libs/graphite2/graphite2-src/src/gr_slot.cpp	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/graphite2/graphite2-src/src/gr_slot.cpp	2020-04-10 03:54:17 UTC (rev 54637)
@@ -95,8 +95,9 @@
     if (font)
     {
         scale = font->scale();
-        if (face && font->isHinted())
-            res = (res - face->glyphs().glyph(p->gid())->theAdvance().x) * scale + font->advance(p->gid());
+        int gid = p->glyph();
+        if (face && font->isHinted() && gid < face->glyphs().numGlyphs())
+            res = (res - face->glyphs().glyph(gid)->theAdvance().x) * scale + font->advance(gid);
         else
             res = res * scale;
     }

Modified: trunk/Build/source/libs/graphite2/graphite2-src/src/inc/FeatureMap.h
===================================================================
--- trunk/Build/source/libs/graphite2/graphite2-src/src/inc/FeatureMap.h	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/graphite2/graphite2-src/src/inc/FeatureMap.h	2020-04-10 03:54:17 UTC (rev 54637)
@@ -56,9 +56,12 @@
     static const uint8  SIZEOF_CHUNK = sizeof(chunk_t)*8;
 
 public:
+    enum flags_t : uint16 {
+        HIDDEN = 0x0800
+    };
     FeatureRef() throw();
     FeatureRef(const Face & face, unsigned short & bits_offset, uint32 max_val,
-               uint32 name, uint16 uiName, uint16 flags,
+               uint32 name, uint16 uiName, flags_t flags,
                FeatureSetting *settings, uint16 num_set) throw();
     ~FeatureRef() throw();
 
@@ -75,6 +78,7 @@
     uint16 getNumSettings() const { return m_numSet; }
     uint16 getSettingName(uint16 index) const { return m_nameValues[index].label(); }
     int16  getSettingValue(uint16 index) const { return m_nameValues[index].value(); }
+    flags_t getFlags() const { return m_flags; }
     uint32 maxVal() const { return m_max; }
     const Face & getFace() const { assert(m_face); return *m_face;}
     const FeatureMap* getFeatureMap() const;// { return m_pFace;}
@@ -88,9 +92,9 @@
     chunk_t m_mask,             // bit mask to get the value from the vector
             m_max;              // max value the value can take
     uint32  m_id;               // feature identifier/name
-    uint16  m_nameid,            // Name table id for feature name
-            m_flags,             // feature flags (unused at the moment but read from the font)
-            m_numSet;            // number of values (number of entries in m_nameValues)
+    uint16  m_nameid,           // Name table id for feature name
+            m_numSet;           // number of values (number of entries in m_nameValues)
+    flags_t m_flags;            // feature flags see FeatureRef::flags_t.
     byte    m_bits,             // how many bits to shift the value into place
             m_index;            // index into the array to find the ulong to mask
 
@@ -103,8 +107,8 @@
 : m_face(0),
   m_nameValues(0),
   m_mask(0), m_max(0),
-  m_id(0),
-  m_nameid(0), m_flags(0), m_numSet(0),
+  m_id(0), m_nameid(0), m_numSet(0), 
+  m_flags(flags_t(0)),
   m_bits(0), m_index(0)
 {
 }

Modified: trunk/Build/source/libs/graphite2/version.ac
===================================================================
--- trunk/Build/source/libs/graphite2/version.ac	2020-04-10 03:40:48 UTC (rev 54636)
+++ trunk/Build/source/libs/graphite2/version.ac	2020-04-10 03:54:17 UTC (rev 54637)
@@ -8,4 +8,4 @@
 dnl --------------------------------------------------------
 dnl
 dnl  m4-include this file to define the current graphite2 version
-m4_define([graphite2_version], [1.3.13])
+m4_define([graphite2_version], [1.3.14])



More information about the tex-live-commits mailing list.