Add support for the hexadicimal representation of binary data
started with `StartData' in CID-keyed Type 1 fonts. * include/freetype/internal/t1types.h (CID_FaceRec): Add new members `binary_data' and `cid_stream'. * src/cid/cidload.c (cid_read_subrs): Use `face->cid_stream'. (cid_hex_to_binary): New auxiliary function. (cid_face_open): Add new argument `face_index' to return quickly if less than zero. Updated all callers. Call `cid_hex_to_binary', then open and assign memory stream to `face->cid_stream' if `parser->binary_length' is non-zero. * src/cid/cidload.h: Updated. * src/cid/cidobjs.c (cid_face_done): Free `binary_data' and `cid_stream'. * src/cid/cidparse.c (cid_parser_new): Check arguments to `StartData' and set parser->binary_length accordingly. * src/cid/cidparse.h (CID_Parser): New member `binary_length'. * src/cid/cidgload.c (cid_load_glyph): Use `face->cid_stream'. * docs/CHANGES: Updated. include/freetype/config/ftstdlib.h (ft_atoi): Replaced with... (ft_atol): This. * src/base/ftdbgmem.c: s/atol/ft_atol/. * src/type42/t42drivr.c: s/ft_atoi/ft_atol/.
This commit is contained in:
parent
6cda9c489d
commit
ef512e3ec6
34
ChangeLog
34
ChangeLog
|
@ -1,3 +1,37 @@
|
||||||
|
2004-01-22 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
|
Add support for the hexadicimal representation of binary data
|
||||||
|
started with `StartData' in CID-keyed Type 1 fonts.
|
||||||
|
|
||||||
|
* include/freetype/internal/t1types.h (CID_FaceRec): Add new
|
||||||
|
members `binary_data' and `cid_stream'.
|
||||||
|
|
||||||
|
* src/cid/cidload.c (cid_read_subrs): Use `face->cid_stream'.
|
||||||
|
(cid_hex_to_binary): New auxiliary function.
|
||||||
|
(cid_face_open): Add new argument `face_index' to return quickly
|
||||||
|
if less than zero. Updated all callers.
|
||||||
|
Call `cid_hex_to_binary', then open and assign memory stream to
|
||||||
|
`face->cid_stream' if `parser->binary_length' is non-zero.
|
||||||
|
* src/cid/cidload.h: Updated.
|
||||||
|
|
||||||
|
* src/cid/cidobjs.c (cid_face_done): Free `binary_data' and
|
||||||
|
`cid_stream'.
|
||||||
|
|
||||||
|
* src/cid/cidparse.c (cid_parser_new): Check arguments to
|
||||||
|
`StartData' and set parser->binary_length accordingly.
|
||||||
|
* src/cid/cidparse.h (CID_Parser): New member `binary_length'.
|
||||||
|
|
||||||
|
* src/cid/cidgload.c (cid_load_glyph): Use `face->cid_stream'.
|
||||||
|
|
||||||
|
* docs/CHANGES: Updated.
|
||||||
|
|
||||||
|
2004-01-21 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
|
include/freetype/config/ftstdlib.h (ft_atoi): Replaced with...
|
||||||
|
(ft_atol): This.
|
||||||
|
* src/base/ftdbgmem.c: s/atol/ft_atol/.
|
||||||
|
* src/type42/t42drivr.c: s/ft_atoi/ft_atol/.
|
||||||
|
|
||||||
2004-01-20 Masatake YAMATO <jet@gyve.org>
|
2004-01-20 Masatake YAMATO <jet@gyve.org>
|
||||||
|
|
||||||
* include/freetype/ftcache.h: Delete duplicated definition of
|
* include/freetype/ftcache.h: Delete duplicated definition of
|
||||||
|
|
|
@ -38,6 +38,11 @@ LATEST CHANGES BETWEEN 2.1.8 and 2.1.7
|
||||||
`tttables.h') is available to get the language ID of a
|
`tttables.h') is available to get the language ID of a
|
||||||
TrueType/SFNT cmap.
|
TrueType/SFNT cmap.
|
||||||
|
|
||||||
|
- The hexadecimal format of data after the `StartData' command in
|
||||||
|
CID-keyed Type 1 fonts is now supported. While this can't occur
|
||||||
|
in file-based fonts, it can happen in document-embedded
|
||||||
|
resources of PostScript documents.
|
||||||
|
|
||||||
- The cache sub-system has been rewritten.
|
- The cache sub-system has been rewritten.
|
||||||
|
|
||||||
- There is now support for deinstallation of faces.
|
- There is now support for deinstallation of faces.
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
/* ANSI-specific library and header configuration file (specification */
|
/* ANSI-specific library and header configuration file (specification */
|
||||||
/* only). */
|
/* only). */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright 2002, 2003 by */
|
/* Copyright 2002, 2003, 2004 by */
|
||||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
@ -110,7 +110,7 @@
|
||||||
#define ft_qsort qsort
|
#define ft_qsort qsort
|
||||||
#define ft_exit exit /* only used to exit from unhandled exceptions */
|
#define ft_exit exit /* only used to exit from unhandled exceptions */
|
||||||
|
|
||||||
#define ft_atoi atoi
|
#define ft_atol atol
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
/* Basic Type1/Type2 type definitions and interface (specification */
|
/* Basic Type1/Type2 type definitions and interface (specification */
|
||||||
/* only). */
|
/* only). */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright 1996-2001, 2002, 2003 by */
|
/* Copyright 1996-2001, 2002, 2003, 2004 by */
|
||||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
@ -173,6 +173,8 @@ FT_BEGIN_HEADER
|
||||||
void* psaux;
|
void* psaux;
|
||||||
CID_FaceInfoRec cid;
|
CID_FaceInfoRec cid;
|
||||||
void* afm_data;
|
void* afm_data;
|
||||||
|
FT_Byte* binary_data; /* used if hex data has been converted */
|
||||||
|
FT_Stream cid_stream;
|
||||||
CID_Subrs subrs;
|
CID_Subrs subrs;
|
||||||
|
|
||||||
/* since FT 2.1 - interface to PostScript hinter */
|
/* since FT 2.1 - interface to PostScript hinter */
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* Memory debugger (body). */
|
/* Memory debugger (body). */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright 2001, 2002, 2003 by */
|
/* Copyright 2001, 2002, 2003, 2004 by */
|
||||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
@ -604,7 +604,7 @@
|
||||||
p = getenv( "FT2_ALLOC_TOTAL_MAX" );
|
p = getenv( "FT2_ALLOC_TOTAL_MAX" );
|
||||||
if ( p != NULL )
|
if ( p != NULL )
|
||||||
{
|
{
|
||||||
FT_Long total_max = atol(p);
|
FT_Long total_max = ft_atol(p);
|
||||||
|
|
||||||
if ( total_max > 0 )
|
if ( total_max > 0 )
|
||||||
{
|
{
|
||||||
|
@ -616,7 +616,7 @@
|
||||||
p = getenv( "FT2_ALLOC_COUNT_MAX" );
|
p = getenv( "FT2_ALLOC_COUNT_MAX" );
|
||||||
if ( p != NULL )
|
if ( p != NULL )
|
||||||
{
|
{
|
||||||
FT_Long total_count = atol(p);
|
FT_Long total_count = ft_atol(p);
|
||||||
|
|
||||||
if ( total_count > 0 )
|
if ( total_count > 0 )
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* CID-keyed Type1 Glyph Loader (body). */
|
/* CID-keyed Type1 Glyph Loader (body). */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright 1996-2001, 2002, 2003 by */
|
/* Copyright 1996-2001, 2002, 2003, 2004 by */
|
||||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
CID_FaceInfo cid = &face->cid;
|
CID_FaceInfo cid = &face->cid;
|
||||||
FT_Byte* p;
|
FT_Byte* p;
|
||||||
FT_UInt fd_select;
|
FT_UInt fd_select;
|
||||||
FT_Stream stream = face->root.stream;
|
FT_Stream stream = face->cid_stream;
|
||||||
FT_Error error = 0;
|
FT_Error error = 0;
|
||||||
FT_Byte* charstring = 0;
|
FT_Byte* charstring = 0;
|
||||||
FT_Memory memory = face->root.memory;
|
FT_Memory memory = face->root.memory;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* CID-keyed Type1 font loader (body). */
|
/* CID-keyed Type1 font loader (body). */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright 1996-2001, 2002, 2003 by */
|
/* Copyright 1996-2001, 2002, 2003, 2004 by */
|
||||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
@ -363,7 +363,7 @@
|
||||||
{
|
{
|
||||||
CID_FaceInfo cid = &face->cid;
|
CID_FaceInfo cid = &face->cid;
|
||||||
FT_Memory memory = face->root.memory;
|
FT_Memory memory = face->root.memory;
|
||||||
FT_Stream stream = face->root.stream;
|
FT_Stream stream = face->cid_stream;
|
||||||
FT_Error error;
|
FT_Error error;
|
||||||
FT_Int n;
|
FT_Int n;
|
||||||
CID_Subrs subr;
|
CID_Subrs subr;
|
||||||
|
@ -399,7 +399,7 @@
|
||||||
|
|
||||||
/* read the subrmap's offsets */
|
/* read the subrmap's offsets */
|
||||||
if ( FT_STREAM_SEEK( cid->data_offset + dict->subrmap_offset ) ||
|
if ( FT_STREAM_SEEK( cid->data_offset + dict->subrmap_offset ) ||
|
||||||
FT_FRAME_ENTER( ( num_subrs + 1 ) * dict->sd_bytes ) )
|
FT_FRAME_ENTER( ( num_subrs + 1 ) * dict->sd_bytes ) )
|
||||||
goto Fail;
|
goto Fail;
|
||||||
|
|
||||||
p = (FT_Byte*)stream->cursor;
|
p = (FT_Byte*)stream->cursor;
|
||||||
|
@ -487,11 +487,111 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static FT_Error
|
||||||
|
cid_hex_to_binary( FT_Byte* data,
|
||||||
|
FT_Long data_len,
|
||||||
|
FT_ULong offset,
|
||||||
|
CID_Face face )
|
||||||
|
{
|
||||||
|
FT_Stream stream = face->root.stream;
|
||||||
|
FT_Error error;
|
||||||
|
|
||||||
|
FT_Byte buffer[256];
|
||||||
|
FT_Byte *p, *plimit;
|
||||||
|
FT_Byte *d, *dlimit;
|
||||||
|
FT_Byte val;
|
||||||
|
|
||||||
|
FT_Bool upper_nibble, done;
|
||||||
|
|
||||||
|
|
||||||
|
if ( FT_STREAM_SEEK( offset ) )
|
||||||
|
goto Exit;
|
||||||
|
|
||||||
|
d = data;
|
||||||
|
dlimit = d + data_len;
|
||||||
|
p = buffer;
|
||||||
|
plimit = p;
|
||||||
|
|
||||||
|
upper_nibble = 1;
|
||||||
|
done = 0;
|
||||||
|
|
||||||
|
while ( d < dlimit )
|
||||||
|
{
|
||||||
|
if ( p >= plimit )
|
||||||
|
{
|
||||||
|
FT_ULong oldpos = FT_STREAM_POS();
|
||||||
|
FT_ULong size = stream->size - oldpos;
|
||||||
|
|
||||||
|
|
||||||
|
if ( size == 0 )
|
||||||
|
{
|
||||||
|
error = CID_Err_Syntax_Error;
|
||||||
|
goto Exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( FT_STREAM_READ( buffer, 256 > size ? size : 256 ) )
|
||||||
|
goto Exit;
|
||||||
|
p = buffer;
|
||||||
|
plimit = p + FT_STREAM_POS() - oldpos;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ft_isdigit( *p ) )
|
||||||
|
val = *p - '0';
|
||||||
|
else if ( *p >= 'a' && *p <= 'f' )
|
||||||
|
val = *p - 'a';
|
||||||
|
else if ( *p >= 'A' && *p <= 'F' )
|
||||||
|
val = *p - 'A' + 10;
|
||||||
|
else if ( *p == ' ' ||
|
||||||
|
*p == '\t' ||
|
||||||
|
*p == '\r' ||
|
||||||
|
*p == '\n' ||
|
||||||
|
*p == '\f' ||
|
||||||
|
*p == '\0' )
|
||||||
|
{
|
||||||
|
p++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if ( *p == '>' )
|
||||||
|
{
|
||||||
|
val = 0;
|
||||||
|
done = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
error = CID_Err_Syntax_Error;
|
||||||
|
goto Exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( upper_nibble )
|
||||||
|
*d = val << 4;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*d += val;
|
||||||
|
d++;
|
||||||
|
}
|
||||||
|
|
||||||
|
upper_nibble = 1 - upper_nibble;
|
||||||
|
|
||||||
|
if ( done )
|
||||||
|
break;
|
||||||
|
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
|
||||||
|
error = CID_Err_Ok;
|
||||||
|
|
||||||
|
Exit:
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
FT_LOCAL_DEF( FT_Error )
|
FT_LOCAL_DEF( FT_Error )
|
||||||
cid_face_open( CID_Face face )
|
cid_face_open( CID_Face face,
|
||||||
|
FT_Int face_index )
|
||||||
{
|
{
|
||||||
CID_Loader loader;
|
CID_Loader loader;
|
||||||
CID_Parser* parser;
|
CID_Parser* parser;
|
||||||
|
FT_Memory memory = face->root.memory;
|
||||||
FT_Error error;
|
FT_Error error;
|
||||||
|
|
||||||
|
|
||||||
|
@ -509,7 +609,30 @@
|
||||||
if ( error )
|
if ( error )
|
||||||
goto Exit;
|
goto Exit;
|
||||||
|
|
||||||
face->cid.data_offset = loader.parser.data_offset;
|
if ( face_index < 0 )
|
||||||
|
goto Exit;
|
||||||
|
|
||||||
|
if ( parser->binary_length )
|
||||||
|
{
|
||||||
|
/* we must convert the data section from hexadecimal to binary */
|
||||||
|
if ( FT_ALLOC( face->binary_data, parser->binary_length ) ||
|
||||||
|
cid_hex_to_binary( face->binary_data, parser->binary_length,
|
||||||
|
parser->data_offset, face ) )
|
||||||
|
goto Exit;
|
||||||
|
|
||||||
|
if ( FT_NEW( face->cid_stream ) )
|
||||||
|
goto Exit;
|
||||||
|
|
||||||
|
FT_Stream_OpenMemory( face->cid_stream,
|
||||||
|
face->binary_data, parser->binary_length );
|
||||||
|
face->cid.data_offset = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
face->cid_stream = face->root.stream;
|
||||||
|
face->cid.data_offset = loader.parser.data_offset;
|
||||||
|
}
|
||||||
|
|
||||||
error = cid_read_subrs( face );
|
error = cid_read_subrs( face );
|
||||||
|
|
||||||
Exit:
|
Exit:
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* CID-keyed Type1 font loader (specification). */
|
/* CID-keyed Type1 font loader (specification). */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright 1996-2001, 2002, 2003 by */
|
/* Copyright 1996-2001, 2002, 2003, 2004 by */
|
||||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
@ -41,7 +41,8 @@ FT_BEGIN_HEADER
|
||||||
FT_Byte offsize );
|
FT_Byte offsize );
|
||||||
|
|
||||||
FT_LOCAL( FT_Error )
|
FT_LOCAL( FT_Error )
|
||||||
cid_face_open( CID_Face face );
|
cid_face_open( CID_Face face,
|
||||||
|
FT_Int face_index );
|
||||||
|
|
||||||
|
|
||||||
FT_END_HEADER
|
FT_END_HEADER
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* CID objects manager (body). */
|
/* CID objects manager (body). */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright 1996-2001, 2002, 2003 by */
|
/* Copyright 1996-2001, 2002, 2003, 2004 by */
|
||||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
@ -234,6 +234,9 @@
|
||||||
|
|
||||||
face->root.family_name = 0;
|
face->root.family_name = 0;
|
||||||
face->root.style_name = 0;
|
face->root.style_name = 0;
|
||||||
|
|
||||||
|
FT_FREE( face->binary_data );
|
||||||
|
FT_FREE( face->cid_stream );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -275,7 +278,6 @@
|
||||||
|
|
||||||
FT_UNUSED( num_params );
|
FT_UNUSED( num_params );
|
||||||
FT_UNUSED( params );
|
FT_UNUSED( params );
|
||||||
FT_UNUSED( face_index );
|
|
||||||
FT_UNUSED( stream );
|
FT_UNUSED( stream );
|
||||||
|
|
||||||
|
|
||||||
|
@ -305,7 +307,7 @@
|
||||||
if ( FT_STREAM_SEEK( 0 ) )
|
if ( FT_STREAM_SEEK( 0 ) )
|
||||||
goto Exit;
|
goto Exit;
|
||||||
|
|
||||||
error = cid_face_open( face );
|
error = cid_face_open( face, face_index );
|
||||||
if ( error )
|
if ( error )
|
||||||
goto Exit;
|
goto Exit;
|
||||||
|
|
||||||
|
|
|
@ -140,22 +140,23 @@
|
||||||
/* in a comment or string. We also get its arguments to find out */
|
/* in a comment or string. We also get its arguments to find out */
|
||||||
/* whether the data is represented in binary or hex format. */
|
/* whether the data is represented in binary or hex format. */
|
||||||
|
|
||||||
|
arg1 = parser->root.cursor;
|
||||||
|
cid_parser_skip_PS_token( parser );
|
||||||
|
cid_parser_skip_spaces ( parser );
|
||||||
|
arg2 = parser->root.cursor;
|
||||||
|
cid_parser_skip_PS_token( parser );
|
||||||
|
cid_parser_skip_spaces ( parser );
|
||||||
|
|
||||||
limit = parser->root.limit;
|
limit = parser->root.limit;
|
||||||
cur = parser->root.cursor;
|
cur = parser->root.cursor;
|
||||||
|
|
||||||
arg1 = cur;
|
|
||||||
cid_parser_skip_PS_token( parser );
|
|
||||||
cid_parser_skip_spaces ( parser );
|
|
||||||
arg2 = cur;
|
|
||||||
cid_parser_skip_PS_token( parser );
|
|
||||||
cid_parser_skip_spaces ( parser );
|
|
||||||
|
|
||||||
while ( cur < limit )
|
while ( cur < limit )
|
||||||
{
|
{
|
||||||
if ( *cur == 'S' && ft_strncmp( (char*)cur, "StartData", 9 ) == 0 )
|
if ( *cur == 'S' && ft_strncmp( (char*)cur, "StartData", 9 ) == 0 )
|
||||||
{
|
{
|
||||||
if ( ft_strncmp( (char*)arg1, "(Hex)", 5 ) == 0 )
|
if ( ft_strncmp( (char*)arg1, "(Hex)", 5 ) == 0 )
|
||||||
parser->data_type = 1;
|
parser->binary_length = ft_atol( (const char *)arg2 );
|
||||||
|
|
||||||
limit = parser->root.limit;
|
limit = parser->root.limit;
|
||||||
cur = parser->root.cursor;
|
cur = parser->root.cursor;
|
||||||
goto Exit;
|
goto Exit;
|
||||||
|
|
|
@ -50,8 +50,8 @@ FT_BEGIN_HEADER
|
||||||
/* data_offset :: The start position of the binary data (i.e., the */
|
/* data_offset :: The start position of the binary data (i.e., the */
|
||||||
/* end of the data to be parsed. */
|
/* end of the data to be parsed. */
|
||||||
/* */
|
/* */
|
||||||
/* data_type :: If true, the binary data is represented in */
|
/* binary_length :: The length of the data after the `StartData' */
|
||||||
/* hexadecimal format. */
|
/* command if the data format is hexadecimal. */
|
||||||
/* */
|
/* */
|
||||||
/* cid :: A structure which holds the information about */
|
/* cid :: A structure which holds the information about */
|
||||||
/* the current font. */
|
/* the current font. */
|
||||||
|
@ -67,7 +67,8 @@ FT_BEGIN_HEADER
|
||||||
FT_Long postscript_len;
|
FT_Long postscript_len;
|
||||||
|
|
||||||
FT_ULong data_offset;
|
FT_ULong data_offset;
|
||||||
FT_Bool data_type;
|
|
||||||
|
FT_Long binary_length;
|
||||||
|
|
||||||
CID_FaceInfo cid;
|
CID_FaceInfo cid;
|
||||||
FT_Int num_dict;
|
FT_Int num_dict;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* High-level Type 42 driver interface (body). */
|
/* High-level Type 42 driver interface (body). */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright 2002, 2003 by Roberto Alameda. */
|
/* Copyright 2002, 2003, 2004 by Roberto Alameda. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
/* modified, and distributed under the terms of the FreeType project */
|
/* modified, and distributed under the terms of the FreeType project */
|
||||||
|
@ -95,7 +95,7 @@
|
||||||
gname = face->type1.glyph_names[i];
|
gname = face->type1.glyph_names[i];
|
||||||
|
|
||||||
if ( !ft_strcmp( glyph_name, gname ) )
|
if ( !ft_strcmp( glyph_name, gname ) )
|
||||||
return ft_atoi( (const char *)face->type1.charstrings[i] );
|
return (FT_UInt)ft_atol( (const char *)face->type1.charstrings[i] );
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue