[Xorg-commit] xc/extras/freetype2/src/type42 rules.mk,1.1,1.1.4.1 t42drivr.c,1.1.4.1,1.1.4.2 t42error.h,1.1,1.1.4.1 t42objs.c,1.1.4.1,1.1.4.2 t42objs.h,1.1.4.1,1.1.4.2 t42parse.c,1.1.4.1,1.1.4.2 t42parse.h,1.1,1.1.4.1
Kaleb Keithley
xorg-commit at pdx.freedesktop.org
Wed May 9 17:30:30 EEST 2007
- Previous message: [Xorg-commit] xc/extras/freetype2/src/tools/docmaker sources.py,1.1,1.1.4.1 tohtml.py,1.1,1.1.4.1
- Next message: [Xorg-commit] xc/extras/freetype2/src/type1 rules.mk,1.1,1.1.4.1 t1afm.c,1.1.4.1,1.1.4.2 t1driver.c,1.1.4.1,1.1.4.2 t1gload.c,1.1.4.1,1.1.4.2 t1gload.h,1.1.4.1,1.1.4.2 t1load.c,1.1.4.1,1.1.4.2 t1objs.c,1.1.4.1,1.1.4.2 t1parse.c,1.1.4.1,1.1.4.2 t1parse.h,1.1.4.1,1.1.4.2 t1tokens.h,1.1.4.1,1.1.4.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Committed by: kaleb
Update of /cvs/xorg/xc/extras/freetype2/src/type42
In directory pdx:/home/kaleb/xorg/xc.XORG-CURRENT/extras/freetype2/src/type42
Modified Files:
Tag: XORG-CURRENT
rules.mk t42drivr.c t42error.h t42objs.c t42objs.h t42parse.c
t42parse.h
Log Message:
merge most of XFree86 RC3 (4.3.99.903) from vendor branch.
bug #214
Index: rules.mk
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/type42/rules.mk,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- a/rules.mk 14 Nov 2003 16:48:24 -0000 1.1
+++ b/rules.mk 23 Feb 2004 21:33:18 -0000 1.1.4.1
@@ -3,7 +3,7 @@
#
-# Copyright 2002 by
+# Copyright 2002, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
@@ -15,25 +15,24 @@
# Type42 driver directory
#
-T42_DIR := $(SRC_)type42
-T42_DIR_ := $(T42_DIR)$(SEP)
+T42_DIR := $(SRC_DIR)/type42
# compilation flags for the driver
#
-T42_COMPILE := $(FT_COMPILE) $I$(T42_DIR)
+T42_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(T42_DIR))
# Type42 driver source
#
-T42_DRV_SRC := $(T42_DIR_)t42objs.c \
- $(T42_DIR_)t42parse.c \
- $(T42_DIR_)t42drivr.c
+T42_DRV_SRC := $(T42_DIR)/t42objs.c \
+ $(T42_DIR)/t42parse.c \
+ $(T42_DIR)/t42drivr.c
# Type42 driver headers
#
T42_DRV_H := $(T42_DRV_SRC:%.c=%.h) \
- $(T42_DIR_)t42error.h
+ $(T42_DIR)/t42error.h
# Type42 driver object(s)
@@ -41,24 +40,24 @@
# T42_DRV_OBJ_M is used during `multi' builds
# T42_DRV_OBJ_S is used during `single' builds
#
-T42_DRV_OBJ_M := $(T42_DRV_SRC:$(T42_DIR_)%.c=$(OBJ_)%.$O)
-T42_DRV_OBJ_S := $(OBJ_)type42.$O
+T42_DRV_OBJ_M := $(T42_DRV_SRC:$(T42_DIR)/%.c=$(OBJ_DIR)/%.$O)
+T42_DRV_OBJ_S := $(OBJ_DIR)/type42.$O
# Type42 driver source file for single build
#
-T42_DRV_SRC_S := $(T42_DIR_)type42.c
+T42_DRV_SRC_S := $(T42_DIR)/type42.c
# Type42 driver - single object
#
$(T42_DRV_OBJ_S): $(T42_DRV_SRC_S) $(T42_DRV_SRC) $(FREETYPE_H) $(T42_DRV_H)
- $(T42_COMPILE) $T$@ $(T42_DRV_SRC_S)
+ $(T42_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(T42_DRV_SRC_S))
# Type42 driver - multiple objects
#
-$(OBJ_)%.$O: $(T42_DIR_)%.c $(FREETYPE_H) $(T42_DRV_H)
- $(T42_COMPILE) $T$@ $<
+$(OBJ_DIR)/%.$O: $(T42_DIR)/%.c $(FREETYPE_H) $(T42_DRV_H)
+ $(T42_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
# update main driver object lists
@@ -66,4 +65,5 @@
DRV_OBJS_S += $(T42_DRV_OBJ_S)
DRV_OBJS_M += $(T42_DRV_OBJ_M)
+
# EOF
Index: t42drivr.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/type42/t42drivr.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/t42drivr.c 26 Nov 2003 22:48:28 -0000 1.1.4.1
+++ b/t42drivr.c 23 Feb 2004 21:33:18 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* High-level Type 42 driver interface (body). */
/* */
-/* Copyright 2002 by Roberto Alameda. */
+/* Copyright 2002, 2003 by Roberto Alameda. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
@@ -24,10 +24,9 @@
/* 2) Incremental fonts making use of the GlyphDirectory keyword */
/* will be loaded, but the rendering will be using the TrueType */
/* tables. */
- /* 3) The sfnts array is expected to be ASCII, not binary. */
- /* 4) As for Type1 fonts, CDevProc is not supported. */
- /* 5) The Metrics dictionary is not supported. */
- /* 6) AFM metrics are not supported. */
+ /* 3) As for Type1 fonts, CDevProc is not supported. */
+ /* 4) The Metrics dictionary is not supported. */
+ /* 5) AFM metrics are not supported. */
/* */
/* In other words, this driver supports Type42 fonts derived from */
/* TrueType fonts in a non-CID manner, as done by usual conversion */
@@ -41,11 +40,21 @@
#include "t42error.h"
#include FT_INTERNAL_DEBUG_H
+#include FT_SERVICE_XFREE86_NAME_H
+#include FT_SERVICE_GLYPH_DICT_H
+#include FT_SERVICE_POSTSCRIPT_NAME_H
+#include FT_SERVICE_POSTSCRIPT_INFO_H
#undef FT_COMPONENT
#define FT_COMPONENT trace_t42
+ /*
+ *
+ * GLYPH DICT SERVICE
+ *
+ */
+
static FT_Error
t42_get_glyph_name( T42_Face face,
FT_UInt glyph_index,
@@ -73,13 +82,6 @@
}
- static const char*
- t42_get_ps_name( T42_Face face )
- {
- return (const char*)face->type1.font_name;
- }
-
-
static FT_UInt
t42_get_name_index( T42_Face face,
FT_String* glyph_name )
@@ -100,33 +102,95 @@
}
- static FT_Module_Interface
- T42_Get_Interface( FT_Driver driver,
- const FT_String* t42_interface )
+ static FT_Service_GlyphDictRec t42_service_glyph_dict =
{
- FT_UNUSED( driver );
+ (FT_GlyphDict_GetNameFunc) t42_get_glyph_name,
+ (FT_GlyphDict_NameIndexFunc)t42_get_name_index
+ };
- /* Any additional interface are defined here */
- if (ft_strcmp( (const char*)t42_interface, "glyph_name" ) == 0 )
- return (FT_Module_Interface)t42_get_glyph_name;
- if ( ft_strcmp( (const char*)t42_interface, "name_index" ) == 0 )
- return (FT_Module_Interface)t42_get_name_index;
+ /*
+ *
+ * POSTSCRIPT NAME SERVICE
+ *
+ */
+
+ static const char*
+ t42_get_ps_font_name( T42_Face face )
+ {
+ return (const char*)face->type1.font_name;
+ }
+
+
+ static FT_Service_PsFontNameRec t42_service_ps_font_name =
+ {
+ (FT_PsName_GetFunc)t42_get_ps_font_name
+ };
- if ( ft_strcmp( (const char*)t42_interface, "postscript_name" ) == 0 )
- return (FT_Module_Interface)t42_get_ps_name;
+ /*
+ *
+ * POSTSCRIPT INFO SERVICE
+ *
+ */
+
+ static FT_Error
+ t42_ps_get_font_info( FT_Face face,
+ PS_FontInfoRec* afont_info )
+ {
+ *afont_info = ((T42_Face)face)->type1.font_info;
return 0;
}
+ static FT_Int
+ t42_ps_has_glyph_names( FT_Face face )
+ {
+ FT_UNUSED( face );
+ return 1;
+ }
+
+
+ static const FT_Service_PsInfoRec t42_service_ps_info =
+ {
+ (PS_GetFontInfoFunc) t42_ps_get_font_info,
+ (PS_HasGlyphNamesFunc)t42_ps_has_glyph_names
+ };
+
+
+ /*
+ *
+ * SERVICE LIST
+ *
+ */
+
+ static const FT_ServiceDescRec t42_services[] =
+ {
+ { FT_SERVICE_ID_GLYPH_DICT, &t42_service_glyph_dict },
+ { FT_SERVICE_ID_POSTSCRIPT_FONT_NAME, &t42_service_ps_font_name },
+ { FT_SERVICE_ID_POSTSCRIPT_INFO, &t42_service_ps_info },
+ { FT_SERVICE_ID_XF86_NAME, FT_XF86_FORMAT_TYPE_42 },
+ { NULL, NULL }
+ };
+
+
+ static FT_Module_Interface
+ T42_Get_Interface( FT_Driver driver,
+ const FT_String* t42_interface )
+ {
+ FT_UNUSED( driver );
+
+ return ft_service_list_lookup( t42_services, t42_interface );
+ }
+
+
const FT_Driver_ClassRec t42_driver_class =
{
{
- ft_module_font_driver |
- ft_module_driver_scalable |
+ FT_MODULE_FONT_DRIVER |
+ FT_MODULE_DRIVER_SCALABLE |
#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
- ft_module_driver_has_hinter,
+ FT_MODULE_DRIVER_HAS_HINTER,
#else
0,
#endif
Index: t42error.h
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/type42/t42error.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- a/t42error.h 14 Nov 2003 16:48:24 -0000 1.1
+++ b/t42error.h 23 Feb 2004 21:33:18 -0000 1.1.4.1
@@ -4,7 +4,7 @@
/* */
/* Type 42 error codes (specification only). */
/* */
-/* Copyright 2002 by */
+/* Copyright 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -30,7 +30,7 @@
#undef __FTERRORS_H__
#define FT_ERR_PREFIX T42_Err_
-#define FT_ERR_BASE FT_Mod_Err_T42
+#define FT_ERR_BASE FT_Mod_Err_Type42
#include FT_ERRORS_H
Index: t42objs.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/type42/t42objs.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/t42objs.c 26 Nov 2003 22:48:28 -0000 1.1.4.1
+++ b/t42objs.c 23 Feb 2004 21:33:18 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* Type 42 objects manager (body). */
/* */
-/* Copyright 2002 by Roberto Alameda. */
+/* Copyright 2002, 2003 by Roberto Alameda. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
@@ -53,7 +53,8 @@
if ( error )
goto Exit;
- error = t42_parse_dict( face, &loader, parser->base_dict, parser->base_len );
+ error = t42_parse_dict( face, &loader,
+ parser->base_dict, parser->base_len );
if ( type1->font_type != 42 )
{
@@ -65,7 +66,8 @@
/* to the Type1 data */
type1->num_glyphs = loader.num_glyphs;
- if ( !loader.charstrings.init ) {
+ if ( !loader.charstrings.init )
+ {
FT_ERROR(( "T42_Open_Face: no charstrings array in face!\n" ));
error = T42_Err_Invalid_File_Format;
}
@@ -121,8 +123,10 @@
if ( ft_strcmp( (const char*)".notdef",
(const char*)glyph_name ) != 0 )
{
- if ( charcode < min_char ) min_char = charcode;
- if ( charcode > max_char ) max_char = charcode;
+ if ( charcode < min_char )
+ min_char = charcode;
+ if ( charcode > max_char )
+ max_char = charcode;
}
break;
}
@@ -149,10 +153,12 @@
FT_Int num_params,
FT_Parameter* params )
{
- FT_Error error;
- PSNames_Service psnames;
- PSAux_Service psaux;
- FT_Face root = (FT_Face)&face->root;
+ FT_Error error;
+ FT_Service_PsCMaps psnames;
+ PSAux_Service psaux;
+ FT_Face root = (FT_Face)&face->root;
+ T1_Font type1 = &face->type1;
+ PS_FontInfo info = &type1->font_info;
FT_UNUSED( num_params );
FT_UNUSED( params );
@@ -163,9 +169,8 @@
face->ttf_face = NULL;
face->root.num_faces = 1;
- face->psnames = FT_Get_Module_Interface( FT_FACE_LIBRARY( face ),
- "psnames" );
- psnames = (PSNames_Service)face->psnames;
+ FT_FACE_FIND_GLOBAL_SERVICE( face, psnames, POSTSCRIPT_CMAPS );
+ face->psnames = psnames;
face->psaux = FT_Get_Module_Interface( FT_FACE_LIBRARY( face ),
"psaux" );
@@ -188,12 +193,12 @@
goto Exit;
}
- /* Now, load the font program into the face object */
+ /* Now load the font program into the face object */
/* Init the face object fields */
/* Now set up root face fields */
- root->num_glyphs = face->type1.num_glyphs;
+ root->num_glyphs = type1->num_glyphs;
root->num_charmaps = 0;
root->face_index = face_index;
@@ -201,42 +206,52 @@
root->face_flags |= FT_FACE_FLAG_HORIZONTAL;
root->face_flags |= FT_FACE_FLAG_GLYPH_NAMES;
- if ( face->type1.font_info.is_fixed_pitch )
+ if ( info->is_fixed_pitch )
root->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
/* XXX: TODO -- add kerning with .afm support */
/* get style name -- be careful, some broken fonts only */
/* have a `/FontName' dictionary entry! */
- root->family_name = face->type1.font_info.family_name;
+ root->family_name = info->family_name;
+ /* assume "Regular" style if we don't know better */
+ root->style_name = (char *)"Regular";
if ( root->family_name )
{
- char* full = face->type1.font_info.full_name;
+ char* full = info->full_name;
char* family = root->family_name;
if ( full )
{
- while ( *family && *full == *family )
+ while ( *full )
{
- family++;
- full++;
+ if ( *full == *family )
+ {
+ family++;
+ full++;
+ }
+ else
+ {
+ if ( *full == ' ' || *full == '-' )
+ full++;
+ else if ( *family == ' ' || *family == '-' )
+ family++;
+ else
+ {
+ if ( !*family )
+ root->style_name = full;
+ break;
+ }
+ }
}
-
- root->style_name = ( *full == ' ' ? full + 1
- : (char *)"Regular" );
}
- else
- root->style_name = (char *)"Regular";
}
else
{
/* do we have a `/FontName'? */
- if ( face->type1.font_name )
- {
- root->family_name = face->type1.font_name;
- root->style_name = (char *)"Regular";
- }
+ if ( type1->font_name )
+ root->family_name = type1->font_name;
}
/* no embedded bitmap support */
@@ -266,15 +281,15 @@
root->max_advance_width = face->ttf_face->max_advance_width;
root->max_advance_height = face->ttf_face->max_advance_height;
- root->underline_position = face->type1.font_info.underline_position;
- root->underline_thickness = face->type1.font_info.underline_thickness;
+ root->underline_position = (FT_Short)( info->underline_position >> 16 );
+ root->underline_thickness = (FT_Short)( info->underline_thickness >> 16 );
root->internal->max_points = 0;
root->internal->max_contours = 0;
/* compute style flags */
root->style_flags = 0;
- if ( face->type1.font_info.italic_angle )
+ if ( info->italic_angle )
root->style_flags |= FT_STYLE_FLAG_ITALIC;
if ( face->ttf_face->style_flags & FT_STYLE_FLAG_BOLD )
@@ -304,7 +319,7 @@
charmap.platform_id = 7;
clazz = NULL;
- switch ( face->type1.encoding_type )
+ switch ( type1->encoding_type )
{
case T1_ENCODING_TYPE_STANDARD:
charmap.encoding = FT_ENCODING_ADOBE_STANDARD;
@@ -339,7 +354,7 @@
#if 0
/* Select default charmap */
- if (root->num_charmaps)
+ if ( root->num_charmaps )
root->charmap = root->charmaps[0];
#endif
}
@@ -438,8 +453,6 @@
}
-
-
FT_LOCAL_DEF( FT_Error )
T42_Size_Init( T42_Size size )
{
@@ -532,7 +545,7 @@
T42_Face t42face = (T42_Face)face;
- FT_Activate_Size(size->ttsize);
+ FT_Activate_Size( size->ttsize );
return FT_Set_Char_Size( t42face->ttf_face,
char_width,
@@ -551,7 +564,7 @@
T42_Face t42face = (T42_Face)face;
- FT_Activate_Size(size->ttsize);
+ FT_Activate_Size( size->ttsize );
return FT_Set_Pixel_Sizes( t42face->ttf_face,
pixel_width,
@@ -587,7 +600,7 @@
FT_LOCAL_DEF( FT_Error )
T42_GlyphSlot_Load( FT_GlyphSlot glyph,
FT_Size size,
- FT_Int glyph_index,
+ FT_UInt glyph_index,
FT_Int32 load_flags )
{
FT_Error error;
Index: t42objs.h
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/type42/t42objs.h,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/t42objs.h 26 Nov 2003 22:48:28 -0000 1.1.4.1
+++ b/t42objs.h 23 Feb 2004 21:33:18 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* Type 42 objects manager (specification). */
/* */
-/* Copyright 2002 by Roberto Alameda. */
+/* Copyright 2002, 2003 by Roberto Alameda. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
@@ -22,10 +22,10 @@
#include FT_FREETYPE_H
#include FT_TYPE1_TABLES_H
#include FT_INTERNAL_TYPE1_TYPES_H
-#include FT_INTERNAL_TYPE42_TYPES_H
+#include "t42types.h"
#include FT_INTERNAL_OBJECTS_H
#include FT_INTERNAL_DRIVER_H
-#include FT_INTERNAL_POSTSCRIPT_NAMES_H
+#include FT_SERVICE_POSTSCRIPT_CMAPS_H
#include FT_INTERNAL_POSTSCRIPT_HINTS_H
@@ -102,7 +102,7 @@
FT_LOCAL( FT_Error )
T42_GlyphSlot_Load( FT_GlyphSlot glyph,
FT_Size size,
- FT_Int glyph_index,
+ FT_UInt glyph_index,
FT_Int32 load_flags );
FT_LOCAL( void )
Index: t42parse.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/type42/t42parse.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/t42parse.c 26 Nov 2003 22:48:28 -0000 1.1.4.1
+++ b/t42parse.c 23 Feb 2004 21:33:18 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* Type 42 font parser (body). */
/* */
-/* Copyright 2002 by Roberto Alameda. */
+/* Copyright 2002, 2003 by Roberto Alameda. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
@@ -34,24 +34,16 @@
[...1221 lines suppressed...]
}
}
}
+ else
+ T1_Skip_PS_Token( parser );
+
+ T1_Skip_Spaces( parser );
}
+
return parser->root.error;
}
@@ -985,6 +1105,7 @@
T1_Release_Table( &loader->encoding_table );
T1_Release_Table( &loader->charstrings );
T1_Release_Table( &loader->glyph_names );
+ T1_Release_Table( &loader->swap_table );
/* finalize parser */
t42_parser_done( parser );
Index: t42parse.h
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/type42/t42parse.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- a/t42parse.h 14 Nov 2003 16:48:24 -0000 1.1
+++ b/t42parse.h 23 Feb 2004 21:33:18 -0000 1.1.4.1
@@ -4,7 +4,7 @@
/* */
/* Type 42 font parser (specification). */
/* */
-/* Copyright 2002 by Roberto Alameda. */
+/* Copyright 2002, 2003 by Roberto Alameda. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
@@ -31,9 +31,9 @@
FT_Stream stream;
FT_Byte* base_dict;
- FT_Int base_len;
+ FT_Long base_len;
- FT_Byte in_memory;
+ FT_Bool in_memory;
} T42_ParserRec, *T42_Parser;
@@ -42,13 +42,14 @@
{
T42_ParserRec parser; /* parser used to read the stream */
- FT_Int num_chars; /* number of characters in encoding */
+ FT_UInt num_chars; /* number of characters in encoding */
PS_TableRec encoding_table; /* PS_Table used to store the */
/* encoding character names */
- FT_Int num_glyphs;
+ FT_UInt num_glyphs;
PS_TableRec glyph_names;
PS_TableRec charstrings;
+ PS_TableRec swap_table; /* For moving .notdef glyph to index 0. */
} T42_LoaderRec, *T42_Loader;
- Previous message: [Xorg-commit] xc/extras/freetype2/src/tools/docmaker sources.py,1.1,1.1.4.1 tohtml.py,1.1,1.1.4.1
- Next message: [Xorg-commit] xc/extras/freetype2/src/type1 rules.mk,1.1,1.1.4.1 t1afm.c,1.1.4.1,1.1.4.2 t1driver.c,1.1.4.1,1.1.4.2 t1gload.c,1.1.4.1,1.1.4.2 t1gload.h,1.1.4.1,1.1.4.2 t1load.c,1.1.4.1,1.1.4.2 t1objs.c,1.1.4.1,1.1.4.2 t1parse.c,1.1.4.1,1.1.4.2 t1parse.h,1.1.4.1,1.1.4.2 t1tokens.h,1.1.4.1,1.1.4.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the xorg-commit
mailing list