summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Röttsches <drott@chromium.org>2022-11-07 10:52:33 +0200
committerWerner Lemberg <wl@gnu.org>2022-11-12 17:11:36 +0100
commitba4bd5b994f18f89a08908a44fe3ffeaa5643d11 (patch)
treefceb8efb518cdec8d7f719f4d2853bae66ac2d69
parente97cb9e8da39673caeadf4b99a3aa1fb9e4c7301 (diff)
downloadfreetype2-ba4bd5b994f18f89a08908a44fe3ffeaa5643d11.tar.gz
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.
-rw-r--r--devel/ftoption.h18
-rw-r--r--include/freetype/config/ftoption.h18
-rw-r--r--src/truetype/ttgxvar.c15
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
@@ -741,6 +741,24 @@ FT_BEGIN_HEADER
/**************************************************************************
*
+ * 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
* embedded 'BDF~' table within SFNT-based bitmap formats.
*/
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
@@ -741,6 +741,24 @@ FT_BEGIN_HEADER
/**************************************************************************
*
+ * 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
* embedded 'BDF~' table within SFNT-based bitmap formats.
*/
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: