freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2] master ba4bd5b99: Add `TT_CONFIG_OPTION_NO_BORING_EXPANSION`


From: Werner Lemberg
Subject: [freetype2] master ba4bd5b99: Add `TT_CONFIG_OPTION_NO_BORING_EXPANSION` configuration macro.
Date: Sat, 12 Nov 2022 11:12:46 -0500 (EST)

branch: master
commit ba4bd5b994f18f89a08908a44fe3ffeaa5643d11
Author: Dominik Röttsches <drott@chromium.org>
Commit: Werner Lemberg <wl@gnu.org>

    Add `TT_CONFIG_OPTION_NO_BORING_EXPANSION` configuration macro.
    
    This gives users a possibility to deactivate new features not (yet) in the
    OpenType standard.
    
    * include/freetype/config/ftoption.h, devel/ftoption.h
    (TT_CONFIG_OPTION_NO_BORING_EXPANSION): New macro.
    
    * src/truetype/ttgxvar.c (ft_var_load_avar): Use it to disable 'avar'
    version 2.0 support.
---
 devel/ftoption.h                   | 18 ++++++++++++++++++
 include/freetype/config/ftoption.h | 18 ++++++++++++++++++
 src/truetype/ttgxvar.c             | 15 +++++++++++++--
 3 files changed, 49 insertions(+), 2 deletions(-)

diff --git a/devel/ftoption.h b/devel/ftoption.h
index 740b6b3b8..6e3a2e605 100644
--- a/devel/ftoption.h
+++ b/devel/ftoption.h
@@ -739,6 +739,24 @@ FT_BEGIN_HEADER
 #define TT_CONFIG_OPTION_GX_VAR_SUPPORT
 
 
+  /**************************************************************************
+   *
+   * Define `TT_CONFIG_OPTION_NO_BORING_EXPANSION` if you want to exclude
+   * support for 'boring' OpenType specification expansions.
+   *
+   *   https://github.com/harfbuzz/boring-expansion-spec
+   *
+   * Right now, the following features are covered:
+   *
+   *   - 'avar' version 2.0
+   *
+   * Most likely, this is a temporary configuration option to be removed in
+   * the near future, since it is assumed that eventually those features are
+   * added to the OpenType standard.
+   */
+/* #define TT_CONFIG_OPTION_NO_BORING_EXPANSION */
+
+
   /**************************************************************************
    *
    * Define `TT_CONFIG_OPTION_BDF` if you want to include support for an
diff --git a/include/freetype/config/ftoption.h 
b/include/freetype/config/ftoption.h
index 1381de679..2f6cdc870 100644
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -739,6 +739,24 @@ FT_BEGIN_HEADER
 #define TT_CONFIG_OPTION_GX_VAR_SUPPORT
 
 
+  /**************************************************************************
+   *
+   * Define `TT_CONFIG_OPTION_NO_BORING_EXPANSION` if you want to exclude
+   * support for 'boring' OpenType specification expansions.
+   *
+   *   https://github.com/harfbuzz/boring-expansion-spec
+   *
+   * Right now, the following features are covered:
+   *
+   *   - 'avar' version 2.0
+   *
+   * Most likely, this is a temporary configuration option to be removed in
+   * the near future, since it is assumed that eventually those features are
+   * added to the OpenType standard.
+   */
+/* #define TT_CONFIG_OPTION_NO_BORING_EXPANSION */
+
+
   /**************************************************************************
    *
    * Define `TT_CONFIG_OPTION_BDF` if you want to include support for an
diff --git a/src/truetype/ttgxvar.c b/src/truetype/ttgxvar.c
index 458b958ab..370a92c7e 100644
--- a/src/truetype/ttgxvar.c
+++ b/src/truetype/ttgxvar.c
@@ -364,10 +364,13 @@
 
     FT_Long   version;
     FT_Long   axisCount;
-    FT_ULong  table_offset;
     FT_ULong  table_len;
+
+#ifndef TT_CONFIG_OPTION_NO_BORING_EXPANSION
+    FT_ULong  table_offset;
     FT_ULong  store_offset;
     FT_ULong  axisMap_offset;
+#endif
 
 
     FT_TRACE2(( "AVAR " ));
@@ -380,7 +383,9 @@
       return;
     }
 
+#ifndef TT_CONFIG_OPTION_NO_BORING_EXPANSION
     table_offset = FT_STREAM_POS();
+#endif
 
     if ( FT_FRAME_ENTER( table_len ) )
       return;
@@ -388,7 +393,11 @@
     version   = FT_GET_LONG();
     axisCount = FT_GET_LONG();
 
-    if ( version != 0x00010000L && version != 0x00020000L )
+    if ( version != 0x00010000L
+#ifndef TT_CONFIG_OPTION_NO_BORING_EXPANSION
+         && version != 0x00020000L
+#endif
+       )
     {
       FT_TRACE2(( "bad table version\n" ));
       goto Exit;
@@ -445,6 +454,7 @@
       FT_TRACE5(( "\n" ));
     }
 
+#ifndef TT_CONFIG_OPTION_NO_BORING_EXPANSION
     if ( version < 0x00020000L )
       goto Exit;
 
@@ -472,6 +482,7 @@
       if ( error )
         goto Exit;
     }
+#endif
 
 
   Exit:



reply via email to

[Prev in Thread] Current Thread [Next in Thread]