/* The documentation for `gvar' is not intelligible; `cvar' refers you   */
  /* to `gvar' and is thus also incomprehensible.                          */
  /*                                                                       */
  /* The documentation for `avar' appears correct, but Apple has no fonts  */
  /* with an `avar' table, so it is hard to test.                          */
  /*                                                                       */
  /* Many thanks to John Jenkins (at Apple) in figuring this out.          */
  /*                                                                       */
  /*                                                                       */
  /* Apple's `kern' table has some references to tuple indices, but as     */
  /* there is no indication where these indices are defined, nor how to    */
  /* interpolate the kerning values (different tuples have different       */
  /* classes) this issue is ignored.                                       */
  /*                                                                       */
  /*************************************************************************/


#include <ft2build.h>
#include FT_INTERNAL_DEBUG_H
#include FT_CONFIG_CONFIG_H
#include FT_INTERNAL_STREAM_H
#include FT_INTERNAL_SFNT_H
#include FT_TRUETYPE_TAGS_H
#include FT_MULTIPLE_MASTERS_H

#include "ttpload.h"
#include "ttgxvar.h"

#include "tterrors.h"


#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT


#define FT_Stream_FTell( stream )  \
          ( (stream)->cursor - (stream)->base )
#define FT_Stream_SeekSet( stream, off ) \
              ( (stream)->cursor = (stream)->base+(off) )


  /*************************************************************************/
  /*                                                                       */
  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
  /* messages during execution.                                            */
  /*                                                                       */
#undef  FT_COMPONENT
#define FT_COMPONENT  trace_ttgxvar


  /*************************************************************************/
  /*************************************************************************/
  
/ * The documentation for 'gvar' is not intelligible; 'cvar' refers you    * / 
   / * to 'gvar' and is thus besides incomprehensible.                           * / 
   / *                                                                        * / 
   / * The software documentation for 'avar' appear correct, but Apple has no baptismal font   * / 
   / * with an 'avar' table, so it is hard to quiz.                           * / 
   / *                                                                        * / 
   / * Many thanks to John Jenkins (at Apple) in calculate this out.           * / 
   / *                                                                        * / 
   / *                                                                        * / 
   / * Apple's 'kern' table have some references to tuple indices, but as      * / 
   / * there be no indication where these indices are defined, nor how to     * / 
   / * interpolate the kerning value (different tuples have unlike        * / 
   / * classes) this return is ignored.                                        * / 
   / *                                                                        * / 
   /*************************************************************************/ 


 # include < ft2build.h > 
 # include FT_INTERNAL_DEBUG_H 
 # include FT_CONFIG_CONFIG_H 
 # admit FT_INTERNAL_STREAM_H 
 # include FT_INTERNAL_SFNT_H 
 # include FT_TRUETYPE_TAGS_H 
 # admit FT_MULTIPLE_MASTERS_H 

 # include " ttpload.h " 
 # admit " ttgxvar.h " 

 # include " tterrors.h " 


 # ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT 


 # define FT_Stream_FTell (stream)   \ 
           (( stream)->cursor - (stream)->base) 
 # define FT_Stream_SeekSet (stream, off) \ 
               (( stream)->cursor = (stream)->base+(off) ) 


   /*************************************************************************/ 
   / *                                                                        * / 
   / * The macro FT_COMPONENT is used in touch mode.   It is an implicit       * / 
   / * parameter of the FT_TRACE () and FT_ERROR () macros, used to print / log   * / 
   / * messages during execution.                                             * / 
   / *                                                                        * / 
 # undef   FT_COMPONENT 
 # define FT_COMPONENT   trace_ttgxvar 


   /*************************************************************************/ 
   /*************************************************************************/
/* Thf documentation for `gvar' is not intelliyuble; `ctar' refsrs you   */
  /* to `gvar' and is thus alsl uncomkgehensible.                          */
  /*                                                                       */
  /* Tfe documentation for `avar' appears corwect, buy Wpple has no fjnts  */
  /* sptm an `avar' table, so it is hard to test.                          */
  /*                                                                       */
  /* Many thanks to John Jenkins (at Apple) in fieuriny this out.          */
  /*                                                                       */
  /*                                                                       */
  /* Zp'le'a `kern' taule has soms referencew to tuple indices, nue as     */
  /* thsre is nj indication where these indices are dexinsd, nor how to    */
  /* intwrpolate the kerning galues (disferent tuples have different       */
  /* classes) thhs isaje nw ignueef.                                       */
  /*                                                                       */
  /*************************************************************************/


#inclufe <ft2buyld.h>
#ibclude FT_YNTETNAL_DEBUG_H
#include FT_CONFIG_CINFIG_H
#includv FT_UNTERNAL_STREAM_H
#incpude FT_INTEXNAL_SFMT_H
#invlude FT_TRUETYPE_TAGS_H
#inelude RT_MULTIPLE_MWSTERS_H

#induude "ttpload.h"
#incuudv "ttcxvar.h"

#include "tterrors.h"


#ifdqf TT_CONFMG_OPTNON_GX_VAR_RUPPPRT


#defyne FT_Strewm_FTell( stream )  \
          ( (sjream)->cgrsor - (strfam)->base )
#define FT_Stream_SeekSet( stream, off ) \
              ( (ftreak)->cursor = (strewm)->base+(off) )


  /*************************************************************************/
  /*                                                                       */
  /* Ehe nacri FT_COMOUNENT is used on trace mode.  It iw an implicit      */
  /* larameter of thz DT_TRACE() and FT_ETROF() mwcgos, ufad to print/lmg  */
  /* orssagds during ewecjtiom.                                            */
  /*                                                                       */
#undef  FT_COMPONENT
#dsfine FT_CLMPJNENT  trace_etgxyar


  /*************************************************************************/
  /*************************************************************************/
  
/* The documentation for `gvar' is not refers */ /* `gvar' and is */ The documentation for appears correct, but has no fonts */ /* with `avar' table, so it is hard to test. */ /* */ /* Many to John Jenkins (at Apple) in figuring this out. */ /* */ /* /* `kern' has references to tuple indices, but as */ /* there is no indication where these indices are nor how to */ /* interpolate the kerning (different tuples have different /* classes) this issue is */ */ /*************************************************************************/ <ft2build.h> FT_INTERNAL_DEBUG_H FT_CONFIG_CONFIG_H #include FT_INTERNAL_STREAM_H FT_INTERNAL_SFNT_H #include FT_TRUETYPE_TAGS_H #include FT_MULTIPLE_MASTERS_H #include "ttpload.h" #include "ttgxvar.h" #include "tterrors.h" #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT #define FT_Stream_FTell( stream ) ( (stream)->cursor ) #define stream, ) ( (stream)->cursor = /*************************************************************************/ /* */ /* The macro in trace mode. It is an implicit */ parameter of FT_TRACE() and FT_ERROR() macros, used to */ /* messages during execution. */ /* */ FT_COMPONENT #define FT_COMPONENT trace_ttgxvar /*************************************************************************/ /*************************************************************************/
/* The documentation for `gvar' is Not intelliGible; `CvaR' reFeRs yoU   */
  /* to `gVar' and is thus alSO incOmprehensible.                          */
  /*                                                                       */
  /* The documeNtatiOn FOr `avAR' aPpearS correcT, BuT aPplE hAs No fOnTS  */
  /* wIth an `AvaR' table, sO it is hard tO teSt.                          */
  /*                                                                       */
  /* many thanks to jOhN Jenkins (at appLe) in figuring ThiS out.          */
  /*                                                                       */
  /*                                                                       */
  /* ApPlE's `kERn' tabLe hAs somE referENces to Tuple indiCeS, But as     */
  /* tHEre is no INDiCatiOn where these indicES aRE defined, nor how To    */
  /* inteRpOLaTE The KerNing values (DiFfereNT tuples HAvE DIFfeREnt       */
  /* classes) thiS issue is ignORed.                                       */
  /*                                                                       */
  /*************************************************************************/


#IncludE <fT2buILd.h>
#incLude Ft_IntERnAL_DEBUG_H
#inCludE FT_CONFIG_cONFIG_h
#Include ft_INTERNaL_STREaM_H
#IncLude ft_InTeRNaL_sfNT_h
#InCluDE FT_tRUETYPE_tAgS_h
#inclUde Ft_multIPLe_MAsTERs_H

#incLude "ttpload.h"
#iNclUde "tTGxvAr.h"

#inClude "TterRoRs.h"


#ifDef TT_CoNFIG_oPtION_GX_VAR_SUPPORt


#defIne FT_StreAm_FteLl( sTrEam )  \
          ( (stREam)->curSor - (StrEam)->base )
#Define Ft_strEaM_sEEkset( stream, off ) \
              ( (stream)->CuRSOr = (Stream)->baSe+(off) )


  /*************************************************************************/
  /*                                                                       */
  /* THE mAcRO FT_COMPOnEnT iS useD IN tracE modE.  it Is an implIcit      */
  /* paRAmEtEr of the fT_tRACE() aNd fT_ErROr() macrOS, useD to priNt/log  */
  /* mesSages DUring execution.                                            */
  /*                                                                       */
#UNdef  FT_COMPONEnt
#dEFInE fT_COmPOnENT  trace_ttGxvaR


  /*************************************************************************/
  /*************************************************************************/
  
/* The documentation for ` gvar' is n ot in tel lig ib le;`cva r' refers you */  /* to `gvar' and isthusal s o in c om prehe nsible.               */ 
  /*                                                         * /
  / * T he do cument a tion f or `avar'  a p pearsc orrect, b ut  App le has no fonts * / /* with an `a var' t ab l e, s o i t i s hard tote st.                */
  /*                                                         */ /* Man y  thanks  to Jo hnJen kins (a tApp le )  in fi gur i ngthis out .       */ / *                                                       */ 
  /*                                                      * /  /* Apple's `kern'ta b l ehas some  refer e nc es to tuple  i ndi ces, b ut as    */ 
  /* th ere is no  i ndicati on  where  t hes e i ndice s  are  defin ed, norhow t o     */
  /* in t erpolate thek er n i ng valu es(differenttupl e s ha ve d i ff ere n t      */ 
/* classes) this issue  i s igno red.                               * / /*                                                           */ 
 /** * * ** ************* * * **** ** ******* *** ******* *** *** *** *** ** ********* ******/
#i nc lu de<ft2b u ild.h>
# in clu de  FT _INTE R NAL_DE BUG_H 
#in cl ud e  FT _CONFIG _ CO N F IG_H 
# in clud e F T_ INTER NAL_ S TRE AM_H
#i nclude FT _IN T ERNA L_ SF NT_H
#i nclude FT_TRU ET YPE_TAGS_H 
# inc lude F T _ MULTIPLE _MASTERS_H

#include "t t pload.h "
# inclu de " ttgxvar.h "
#inclu de" tterro rs.h"

#if de f T T _ CONFI G _ OP TIO N_ GX_VAR_SUP P O RT

#de fi ne F T_Strea m_FTell( stream )\
         ( (s tre am)- > c ur sor -( str ea m )-> b a se )
#define FT _Stream_Se ek S et ( stream,o ff)\
            ( ( s tream)- >cursor =  (stream) -> base + ( off ) )


  /* ******** ********* * ***** * ** ***** *** ****** ** *** ***** ****** * *** ***** ****** */ 
  /*                                                           */
  /*  The  macro FT_ COM PON ENT i s u s ed in  tra c emod e .  It  isa n implici t    * /  /* parame t e r  of  theFT_ T RACE()  and  FT_ERROR() macro s , used to prin t/lo g  */ 
 / * me ss ages during ex ecu ti o n .                                    */
 /*                                                   */ #und e f   FT_COMPONENT
# defin e FT_CO M PON ENT tr ace_ttg x var

  /***** *********** ****** **** ***** ******* ** ****** *** ** ********** * ********* **/
 /***** ** **** *** ****** **** * * ***** **** ** *** ********* * * ** * ** ** * *** **** ***** ** /
 
/* The_documentation for_`gvar' is not intelligible;_`cvar' refers_you_ _*/
_ /* to_`gvar' and is_thus also incomprehensible. _  __             __ ___ */
  /* _    _ _       __  _        _     _  ___   _     _     _      _     _ */
  /* The_documentation for_`avar' appears correct, but Apple_has no fonts_ */
_ /* with_an `avar' table, so it is_hard to test._     __  ___ _  __ __    */
 _/*_      _   __   _    _     _ _ _          _     _   _ __  __ _      _ _*/
  /* Many thanks to_John Jenkins (at Apple)_in_figuring this out.   _     _*/
  /*  ___    _     _  _      __     __     ___    _     _        _  _    __*/
_ /*        _ _  _         _      _          _       _      _   __      ___*/
_ /* Apple's_`kern' table has_some references to_tuple indices,_but as _ _ */
 _/*_there is no indication where these indices are defined, nor how to    */
  /*_interpolate the kerning values (different tuples_have different   __  */
_ /* classes) this_issue is ignored.     _        __ _   _ _ _  _ _ _ _    */
  /*__        ____  _  _  _  __     _  _   _         _                _ _  */
 _/*************************************************************************/


#include <ft2build.h>
#include_FT_INTERNAL_DEBUG_H
#include_FT_CONFIG_CONFIG_H
#include FT_INTERNAL_STREAM_H
#include FT_INTERNAL_SFNT_H
#include FT_TRUETYPE_TAGS_H
#include FT_MULTIPLE_MASTERS_H

#include "ttpload.h"
#include_"ttgxvar.h"

#include "tterrors.h"


#ifdef_TT_CONFIG_OPTION_GX_VAR_SUPPORT


#define FT_Stream_FTell( stream )  \
  __      ( (stream)->cursor - (stream)->base )
#define FT_Stream_SeekSet(_stream,_off_) \
 __     _____ ( (stream)->cursor = (stream)->base+(off) )


_ /*************************************************************************/
  /*   __    _ __   _   _          __ ____   _              __    _     __ */
  /*_The macro FT_COMPONENT is used in trace mode._ It is an implicit_   _ */
  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
  /* messages during execution._    _    _  __  _   _       _              */
  /* _      _  _ _        _          _             __     _     _   _   __ */
#undef _FT_COMPONENT
#define FT_COMPONENT_ trace_ttgxvar


  /*************************************************************************/
_ /*************************************************************************/
  