From ad0453fd392c914db66c1737bbf4721ddc76571c Mon Sep 17 00:00:00 2001 From: Parth Wazurkar Date: Sun, 5 Aug 2018 17:02:09 +0530 Subject: [PATCH] [gf, pk] Improve `attach_file' functions. --- src/gf/gfdrivr.c | 47 +++++++++++++++++++++++++---------------------- src/pk/pkdrivr.c | 46 ++++++++++++++++++++++++---------------------- 2 files changed, 49 insertions(+), 44 deletions(-) diff --git a/src/gf/gfdrivr.c b/src/gf/gfdrivr.c index 5cebaee23..a568dda55 100644 --- a/src/gf/gfdrivr.c +++ b/src/gf/gfdrivr.c @@ -483,37 +483,40 @@ FT_TRACE4(( "TFM_Read_Metrics: Invoking TFM_Service.\n" )); tfm = (TFM_Service)face->tfm; - - /* Initialise TFM Service */ - error = tfm->init( &parser, + if ( tfm->tfm_parser_funcs ) + { + /* Initialise TFM Service */ + error = tfm->tfm_parser_funcs->init( &parser, memory, stream ); - if ( !error ) - { - FT_TRACE4(( "TFM_Read_Metrics: Initialised tfm metric data.\n" )); - parser.FontInfo = fi; - parser.user_data = gf_glyph; + if ( !error ) + { + FT_TRACE4(( "TFM_Read_Metrics: Initialised tfm metric data.\n" )); + parser.FontInfo = fi; + parser.user_data = gf_glyph; - error = tfm->parse_metrics( &parser ); - if( !error ) - FT_TRACE4(( "TFM_Read_Metrics: parsing TFM metric information done.\n" )); + error = tfm->tfm_parser_funcs->parse_metrics( &parser ); + if( !error ) + FT_TRACE4(( "TFM_Read_Metrics: parsing TFM metric information done.\n" )); - FT_TRACE6(( "TFM_Read_Metrics: TFM Metric Information:\n" - " Check Sum : %ld\n" - " Design Size: %ld\n" - " Begin Char : %d\n" - " End Char : %d\n" - " font_bbx_w : %d\n" - " font_bbx_h : %d\n" - " slant : %d\n", parser.FontInfo->cs, parser.FontInfo->design_size, parser.FontInfo->begin_char, - parser.FontInfo->end_char, parser.FontInfo->font_bbx_w, - parser.FontInfo->font_bbx_h, parser.FontInfo->slant )); - tfm->done( &parser ); + FT_TRACE6(( "TFM_Read_Metrics: TFM Metric Information:\n" + " Check Sum : %ld\n" + " Design Size: %ld\n" + " Begin Char : %d\n" + " End Char : %d\n" + " font_bbx_w : %d\n" + " font_bbx_h : %d\n" + " slant : %d\n", parser.FontInfo->cs, parser.FontInfo->design_size, parser.FontInfo->begin_char, + parser.FontInfo->end_char, parser.FontInfo->font_bbx_w, + parser.FontInfo->font_bbx_h, parser.FontInfo->slant )); + tfm->tfm_parser_funcs->done( &parser ); + } } if ( !error ) { + printf("Hi I reached here\n"); /* Modify GF_Glyph data according to TFM metric values */ /*face->gf_glyph->font_bbx_w = fi->font_bbx_w; diff --git a/src/pk/pkdrivr.c b/src/pk/pkdrivr.c index 306d29dec..12056f913 100644 --- a/src/pk/pkdrivr.c +++ b/src/pk/pkdrivr.c @@ -479,33 +479,35 @@ FT_TRACE4(( "TFM_Read_Metrics: Invoking TFM_Service.\n" )); tfm = (TFM_Service)face->tfm; - - /* Initialise TFM Service */ - error = tfm->init( &parser, + if ( tfm->tfm_parser_funcs ) + { + /* Initialise TFM Service */ + error = tfm->tfm_parser_funcs->init( &parser, memory, stream ); - if ( !error ) - { - FT_TRACE4(( "TFM_Read_Metrics: Initialised tfm metric data.\n" )); - parser.FontInfo = fi; - parser.user_data = pk_glyph; + if ( !error ) + { + FT_TRACE4(( "TFM_Read_Metrics: Initialised tfm metric data.\n" )); + parser.FontInfo = fi; + parser.user_data = pk_glyph; - error = tfm->parse_metrics( &parser ); - if( !error ) - FT_TRACE4(( "TFM_Read_Metrics: parsing TFM metric information done.\n" )); + error = tfm->tfm_parser_funcs->parse_metrics( &parser ); + if( !error ) + FT_TRACE4(( "TFM_Read_Metrics: parsing TFM metric information done.\n" )); - FT_TRACE6(( "TFM_Read_Metrics: TFM Metric Information:\n" - " Check Sum : %ld\n" - " Design Size: %ld\n" - " Begin Char : %d\n" - " End Char : %d\n" - " font_bbx_w : %d\n" - " font_bbx_h : %d\n" - " slant : %d\n", parser.FontInfo->cs, parser.FontInfo->design_size, parser.FontInfo->begin_char, - parser.FontInfo->end_char, parser.FontInfo->font_bbx_w, - parser.FontInfo->font_bbx_h, parser.FontInfo->slant )); - tfm->done( &parser ); + FT_TRACE6(( "TFM_Read_Metrics: TFM Metric Information:\n" + " Check Sum : %ld\n" + " Design Size: %ld\n" + " Begin Char : %d\n" + " End Char : %d\n" + " font_bbx_w : %d\n" + " font_bbx_h : %d\n" + " slant : %d\n", parser.FontInfo->cs, parser.FontInfo->design_size, parser.FontInfo->begin_char, + parser.FontInfo->end_char, parser.FontInfo->font_bbx_w, + parser.FontInfo->font_bbx_h, parser.FontInfo->slant )); + tfm->tfm_parser_funcs->done( &parser ); + } } if ( !error )