diff options
author | Dominik Röttsches <drott@chromium.org> | 2022-11-07 10:52:33 +0200 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2022-11-12 17:11:36 +0100 |
commit | ba4bd5b994f18f89a08908a44fe3ffeaa5643d11 (patch) | |
tree | fceb8efb518cdec8d7f719f4d2853bae66ac2d69 | |
parent | e97cb9e8da39673caeadf4b99a3aa1fb9e4c7301 (diff) | |
download | freetype2-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.h | 18 | ||||
-rw-r--r-- | include/freetype/config/ftoption.h | 18 | ||||
-rw-r--r-- | 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 @@ -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: |