xref: /inferno-os/libfreetype/ftbdf.c (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
1*37da2899SCharles.Forsyth /***************************************************************************/
2*37da2899SCharles.Forsyth /*                                                                         */
3*37da2899SCharles.Forsyth /*  ftbdf.c                                                                */
4*37da2899SCharles.Forsyth /*                                                                         */
5*37da2899SCharles.Forsyth /*    FreeType API for accessing BDF-specific strings (body).              */
6*37da2899SCharles.Forsyth /*                                                                         */
7*37da2899SCharles.Forsyth /*  Copyright 2002 by                                                      */
8*37da2899SCharles.Forsyth /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
9*37da2899SCharles.Forsyth /*                                                                         */
10*37da2899SCharles.Forsyth /*  This file is part of the FreeType project, and may only be used,       */
11*37da2899SCharles.Forsyth /*  modified, and distributed under the terms of the FreeType project      */
12*37da2899SCharles.Forsyth /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
13*37da2899SCharles.Forsyth /*  this file you indicate that you have read the license and              */
14*37da2899SCharles.Forsyth /*  understand and accept it fully.                                        */
15*37da2899SCharles.Forsyth /*                                                                         */
16*37da2899SCharles.Forsyth /***************************************************************************/
17*37da2899SCharles.Forsyth 
18*37da2899SCharles.Forsyth 
19*37da2899SCharles.Forsyth #include <ft2build.h>
20*37da2899SCharles.Forsyth #include FT_INTERNAL_BDF_TYPES_H
21*37da2899SCharles.Forsyth #include FT_INTERNAL_OBJECTS_H
22*37da2899SCharles.Forsyth 
23*37da2899SCharles.Forsyth 
24*37da2899SCharles.Forsyth   FT_EXPORT_DEF( FT_Error )
FT_Get_BDF_Charset_ID(FT_Face face,const char ** acharset_encoding,const char ** acharset_registry)25*37da2899SCharles.Forsyth   FT_Get_BDF_Charset_ID( FT_Face       face,
26*37da2899SCharles.Forsyth                          const char*  *acharset_encoding,
27*37da2899SCharles.Forsyth                          const char*  *acharset_registry )
28*37da2899SCharles.Forsyth   {
29*37da2899SCharles.Forsyth     FT_Error     error;
30*37da2899SCharles.Forsyth     const char*  encoding = NULL;
31*37da2899SCharles.Forsyth     const char*  registry = NULL;
32*37da2899SCharles.Forsyth 
33*37da2899SCharles.Forsyth 
34*37da2899SCharles.Forsyth     error = FT_Err_Invalid_Argument;
35*37da2899SCharles.Forsyth 
36*37da2899SCharles.Forsyth     if ( face != NULL && face->driver != NULL )
37*37da2899SCharles.Forsyth     {
38*37da2899SCharles.Forsyth       FT_Module  driver = (FT_Module) face->driver;
39*37da2899SCharles.Forsyth 
40*37da2899SCharles.Forsyth 
41*37da2899SCharles.Forsyth       if ( driver->clazz && driver->clazz->module_name         &&
42*37da2899SCharles.Forsyth            ft_strcmp( driver->clazz->module_name, "bdf" ) == 0 )
43*37da2899SCharles.Forsyth       {
44*37da2899SCharles.Forsyth         BDF_Public_Face  bdf_face = (BDF_Public_Face)face;
45*37da2899SCharles.Forsyth 
46*37da2899SCharles.Forsyth 
47*37da2899SCharles.Forsyth         encoding = (const char*) bdf_face->charset_encoding;
48*37da2899SCharles.Forsyth         registry = (const char*) bdf_face->charset_registry;
49*37da2899SCharles.Forsyth         error    = 0;
50*37da2899SCharles.Forsyth       }
51*37da2899SCharles.Forsyth     }
52*37da2899SCharles.Forsyth 
53*37da2899SCharles.Forsyth     if ( acharset_encoding )
54*37da2899SCharles.Forsyth       *acharset_encoding = encoding;
55*37da2899SCharles.Forsyth 
56*37da2899SCharles.Forsyth     if ( acharset_registry )
57*37da2899SCharles.Forsyth       *acharset_registry = registry;
58*37da2899SCharles.Forsyth 
59*37da2899SCharles.Forsyth     return error;
60*37da2899SCharles.Forsyth   }
61*37da2899SCharles.Forsyth 
62*37da2899SCharles.Forsyth 
63*37da2899SCharles.Forsyth /* END */
64