tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

psauxmod.c (4847B)


      1 /****************************************************************************
      2 *
      3 * psauxmod.c
      4 *
      5 *   FreeType auxiliary PostScript module implementation (body).
      6 *
      7 * Copyright (C) 2000-2025 by
      8 * David Turner, Robert Wilhelm, and Werner Lemberg.
      9 *
     10 * This file is part of the FreeType project, and may only be used,
     11 * modified, and distributed under the terms of the FreeType project
     12 * license, LICENSE.TXT.  By continuing to use, modify, or distribute
     13 * this file you indicate that you have read the license and
     14 * understand and accept it fully.
     15 *
     16 */
     17 
     18 
     19 #include "psauxmod.h"
     20 #include "psobjs.h"
     21 #include "t1decode.h"
     22 #include "t1cmap.h"
     23 #include "psft.h"
     24 #include "cffdecode.h"
     25 
     26 #ifndef T1_CONFIG_OPTION_NO_AFM
     27 #include "afmparse.h"
     28 #endif
     29 
     30 
     31  FT_CALLBACK_TABLE_DEF
     32  const PS_Table_FuncsRec  ps_table_funcs =
     33  {
     34    ps_table_new,     /* init    */
     35    ps_table_done,    /* done    */
     36    ps_table_add,     /* add     */
     37    ps_table_release  /* release */
     38  };
     39 
     40 
     41  FT_CALLBACK_TABLE_DEF
     42  const PS_Parser_FuncsRec  ps_parser_funcs =
     43  {
     44    ps_parser_init,             /* init             */
     45    ps_parser_done,             /* done             */
     46 
     47    ps_parser_skip_spaces,      /* skip_spaces      */
     48    ps_parser_skip_PS_token,    /* skip_PS_token    */
     49 
     50    ps_parser_to_int,           /* to_int           */
     51    ps_parser_to_fixed,         /* to_fixed         */
     52    ps_parser_to_bytes,         /* to_bytes         */
     53    ps_parser_to_coord_array,   /* to_coord_array   */
     54    ps_parser_to_fixed_array,   /* to_fixed_array   */
     55    ps_parser_to_token,         /* to_token         */
     56    ps_parser_to_token_array,   /* to_token_array   */
     57 
     58    ps_parser_load_field,       /* load_field       */
     59    ps_parser_load_field_table  /* load_field_table */
     60  };
     61 
     62 
     63  FT_CALLBACK_TABLE_DEF
     64  const PS_Builder_FuncsRec  ps_builder_funcs =
     65  {
     66    ps_builder_init,          /* init */
     67    ps_builder_done           /* done */
     68  };
     69 
     70 
     71  FT_CALLBACK_TABLE_DEF
     72  const T1_Builder_FuncsRec  t1_builder_funcs =
     73  {
     74    t1_builder_init,          /* init */
     75    t1_builder_done,          /* done */
     76 
     77    t1_builder_check_points,  /* check_points  */
     78    t1_builder_add_point,     /* add_point     */
     79    t1_builder_add_point1,    /* add_point1    */
     80    t1_builder_add_contour,   /* add_contour   */
     81    t1_builder_start_point,   /* start_point   */
     82    t1_builder_close_contour  /* close_contour */
     83  };
     84 
     85 
     86  FT_CALLBACK_TABLE_DEF
     87  const T1_Decoder_FuncsRec  t1_decoder_funcs =
     88  {
     89    t1_decoder_init,               /* init                  */
     90    t1_decoder_done,               /* done                  */
     91 #ifdef T1_CONFIG_OPTION_OLD_ENGINE
     92    t1_decoder_parse_charstrings,  /* parse_charstrings_old */
     93 #else
     94    t1_decoder_parse_metrics,      /* parse_metrics         */
     95 #endif
     96    cf2_decoder_parse_charstrings  /* parse_charstrings     */
     97  };
     98 
     99 
    100 #ifndef T1_CONFIG_OPTION_NO_AFM
    101  FT_CALLBACK_TABLE_DEF
    102  const AFM_Parser_FuncsRec  afm_parser_funcs =
    103  {
    104    afm_parser_init,  /* init  */
    105    afm_parser_done,  /* done  */
    106    afm_parser_parse  /* parse */
    107  };
    108 #endif
    109 
    110 
    111  FT_CALLBACK_TABLE_DEF
    112  const T1_CMap_ClassesRec  t1_cmap_classes =
    113  {
    114    &t1_cmap_standard_class_rec,
    115    &t1_cmap_expert_class_rec,
    116    &t1_cmap_custom_class_rec,
    117    &t1_cmap_unicode_class_rec
    118  };
    119 
    120 
    121  FT_CALLBACK_TABLE_DEF
    122  const CFF_Builder_FuncsRec  cff_builder_funcs =
    123  {
    124    cff_builder_init,          /* init */
    125    cff_builder_done,          /* done */
    126 
    127    cff_check_points,          /* check_points  */
    128    cff_builder_add_point,     /* add_point     */
    129    cff_builder_add_point1,    /* add_point1    */
    130    cff_builder_add_contour,   /* add_contour   */
    131    cff_builder_start_point,   /* start_point   */
    132    cff_builder_close_contour  /* close_contour */
    133  };
    134 
    135 
    136  FT_CALLBACK_TABLE_DEF
    137  const CFF_Decoder_FuncsRec  cff_decoder_funcs =
    138  {
    139    cff_decoder_init,              /* init    */
    140    cff_decoder_prepare,           /* prepare */
    141 
    142 #ifdef CFF_CONFIG_OPTION_OLD_ENGINE
    143    cff_decoder_parse_charstrings, /* parse_charstrings_old */
    144 #endif
    145    cf2_decoder_parse_charstrings  /* parse_charstrings     */
    146  };
    147 
    148 
    149  static
    150  const PSAux_Interface  psaux_interface =
    151  {
    152    &ps_table_funcs,
    153    &ps_parser_funcs,
    154    &t1_builder_funcs,
    155    &t1_decoder_funcs,
    156    t1_decrypt,
    157    cff_random,
    158    ps_decoder_init,
    159    t1_make_subfont,
    160 
    161    (const T1_CMap_ClassesRec*) &t1_cmap_classes,
    162 
    163 #ifndef T1_CONFIG_OPTION_NO_AFM
    164    &afm_parser_funcs,
    165 #else
    166    0,
    167 #endif
    168 
    169    &cff_decoder_funcs,
    170  };
    171 
    172 
    173  FT_DEFINE_MODULE(
    174    psaux_module_class,
    175 
    176    0,
    177    sizeof ( FT_ModuleRec ),
    178    "psaux",
    179    0x20000L,
    180    0x20000L,
    181 
    182    &psaux_interface,  /* module-specific interface */
    183 
    184    (FT_Module_Constructor)NULL,  /* module_init   */
    185    (FT_Module_Destructor) NULL,  /* module_done   */
    186    (FT_Module_Requester)  NULL   /* get_interface */
    187  )
    188 
    189 
    190 /* END */