Edit

kc3-lang/freetype/src/base/fttype1.c

Branch :

  • Show log

    Commit

  • Author : Werner Lemberg
    Date : 2002-06-22 13:35:41
    Hash : 9cbb166d
    Message : Minor fixes. Formatting.

  • src/base/fttype1.c
  • /***************************************************************************/
    /*                                                                         */
    /*  fttype1.c                                                              */
    /*                                                                         */
    /*    FreeType utility file for PS names support (body).                   */
    /*                                                                         */
    /*  Copyright 2002 by                                                      */
    /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
    /*                                                                         */
    /*  This file is part of the FreeType project, and may only be used,       */
    /*  modified, and distributed under the terms of the FreeType project      */
    /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
    /*  this file you indicate that you have read the license and              */
    /*  understand and accept it fully.                                        */
    /*                                                                         */
    /***************************************************************************/
    
    
    #include <ft2build.h>
    #include FT_INTERNAL_TYPE1_TYPES_H
    #include FT_INTERNAL_TYPE42_TYPES_H
    #include FT_INTERNAL_OBJECTS_H
    
    
      /* documentation is in t1tables.h */
    
      FT_EXPORT_DEF( FT_Error )
      FT_Get_PS_Font_Info( FT_Face          face,
                           PS_FontInfoRec*  afont_info )
      {
        PS_FontInfo  font_info = NULL;
        FT_Error     error     = FT_Err_Invalid_Argument;
        const char*  driver_name;
    
    
        if ( face && face->driver && face->driver->root.clazz )
        {
          driver_name = face->driver->root.clazz->module_name;
          if ( ft_strcmp( driver_name, "type1" ) == 0 )
            font_info = &((T1_Face)face)->type1.font_info;
          else if ( ft_strcmp( driver_name, "t1cid" ) == 0 )
            font_info = &((CID_Face)face)->cid.font_info;
          else if ( ft_strcmp( driver_name, "type42" ) == 0 )
            font_info = &((T42_Face)face)->type1.font_info;
        }
        if ( font_info != NULL )
        {
          *afont_info = *font_info;
          error = FT_Err_Ok;
        }
    
        return error;
      }
    
    
      /* XXX: Bad hack, but I didn't want to change several drivers here. */
    
      /* documentation is in t1tables.h */
    
      FT_EXPORT_DEF( FT_Int )
      FT_Has_PS_Glyph_Names( FT_Face  face )
      {
        FT_Int       result = 0;
        const char*  driver_name;
    
    
        if ( face && face->driver && face->driver->root.clazz )
        {
          /* Currently, only the type1, type42, and cff drivers provide */
          /* reliable glyph names...                                    */
    
          /* We could probably hack the TrueType driver to recognize    */
          /* certain cases where the glyph names are most certainly     */
          /* correct (e.g. using a 20 or 22 format `post' table), but   */
          /* this will probably happen later...                         */
    
          driver_name = face->driver->root.clazz->module_name;
          result      = ( ft_strcmp( driver_name, "type1"  ) == 0 ||
                          ft_strcmp( driver_name, "type42" ) == 0 ||
                          ft_strcmp( driver_name, "cff"    ) == 0 );
        }
    
        return result;
      }
    
    
    /* END */