-
+
FT_Library library; /* handle to library */
FT_Face face; /* handle to face object */
error = FT_Init_FreeType( &library );
if (error) { ..... }
-
+
error = FT_New_Face( library,
"/usr/share/fonts/truetype/arial.ttf",
0,
@@ -131,17 +131,17 @@ FreeType 2.0 Tutorial
library
handle to the FreeType library instance where the face object is
created
-
+
filepathname
the font file pathname (standard C string).
-
+
face_index
Certain font formats allow several font faces to be embedded in
a single file.
This index tells which face you want to load. An
error will be returned if its value is too large.
Index 0 always work though.
-
+
face
A pointer to the handle that will be set to
describe the new face object.
@@ -155,7 +155,7 @@ FreeType 2.0 Tutorial
the font file.
-
+
b. From memory:
In the case where you have already loaded the font file in memory, you
@@ -163,13 +163,13 @@ FreeType 2.0 Tutorial
FT_New_Memory_Face as in:
-
+
FT_Library library; /* handle to library */
FT_Face face; /* handle to face object */
error = FT_Init_FreeType( &library );
if (error) { ..... }
-
+
error = FT_New_Memory_Face( library,
buffer, /* first byte in memory */
size, /* size in bytes */
@@ -184,7 +184,7 @@ FreeType 2.0 Tutorial
FT_New_Face .
-
+
c. From other sources: (compressed files, network, etc..)
There are cases where using a filepathname or preloading the file in
@@ -215,7 +215,7 @@ FreeType 2.0 Tutorial
gives the number of glyphs available in the font face. A glyph
is simply a character image. It doesn't necessarily correspond to
a character code though.
-
+
face−>flags
a 32-bit integer containing bit flags used to describe some face
@@ -224,13 +224,13 @@ FreeType 2.0 Tutorial
glyph images can be rendered for all character pixel sizes. For more
information on face flags, please read the FreeType API
Reference
-
+
face−>units_per_EM
This field is only valid for scalable formats (it is set to 0
otherwise). It indicates the number of font units covered by the
EM.
-
+
face−>num_fixed_sizes
this field gives the number of embedded bitmap strikes in
@@ -280,16 +280,16 @@ FreeType 2.0 Tutorial
You'll notice that:
-
+
b. Loading a glyph from the face:
Once you have a glyph index, you can load the corresponding glyph image.
@@ -397,13 +397,13 @@ FreeType 2.0 Tutorial
bitmaps are favored over outlines as they usually correspond to
higher-quality images of the same glyph).
-
+
if there is an outline for the corresponding glyph, load it
unless FT_LOAD_NO_OUTLINE is set. Otherwise, scale it
to the current size, unless the FT_LOAD_NO_SCALE flag
is set.
-
+
if the outline was loaded and scaled, try to grid-fit it (which
dramatically improves its quality) unless the flag
FT_LOAD_NO_HINTING is set.
@@ -413,7 +413,7 @@ FreeType 2.0 Tutorial
details see the FreeType 2 API Reference .
-
+
c. Using other charmaps:
@@ -506,7 +506,7 @@ FreeType 2.0 Tutorial
Indicates the type of the loaded glyph image. Can be either
ft_glyph_format_bitmap , ft_glyph_format_outline
or other values.
-
+
glyph−>metrics
A simple structure used to hold the glyph image's metrics. Note
@@ -526,7 +526,7 @@ FreeType 2.0 Tutorial
describes it. See the definition of the FT_Outline
structure.
-
+
8. Rendering glyph outlines into bitmaps:
@@ -542,9 +542,9 @@ FreeType 2.0 Tutorial
or something else, the library provides a means to convert such glyph
images to bitmaps through what are called rasters .
-
-
-
+
+
+
On the other hand, when the image is a scalable outline, or something else,
FreeType provides a function to convert the glyph image into a
pre-existing bitmap that you'll handle to it, named
@@ -556,26 +556,26 @@ FreeType 2.0 Tutorial
FT_GlyphSlot glyph;
.... load glyph ...
-
+
glyph = face->glyph; /* shortcut to glyph data */
if (glyph->format == ft_glyph_format_outline )
{
FT_Bitmap bit;
-
+
/* set-up a bitmap descriptor for our target bitmap */
bit.rows = bitmap_height;
bit.width = bitmap_width;
bit.pitch = bitmap_row_bytes;
bit.pixel_mode = ft_pixel_mode_mono; /* render into a mono bitmap */
bit.buffer = bitmap_buffer;
-
+
/* render the outline directly into the bitmap */
error = FT_Get_Glyph_Bitmap( face, &bit );
if (error) { ... }
- }
+ }
}
-
+
You should note that FT_Get_Glyph_Bitmap doesn't create the
bitmap. It only needs a descriptor, of type FT_Bitmap ,
and writes directly into it.
@@ -590,12 +590,12 @@ FreeType 2.0 Tutorial
FT_GlyphSlot glyph;
.... load glyph ...
-
+
glyph = face->glyph; /* shortcut to glyph data */
if (glyph->format == ft_glyph_format_outline )
{
FT_Bitmap bit;
-
+
/* set-up a bitmap descriptor for our target bitmap */
bit.rows = bitmap_height;
bit.width = bitmap_width;
@@ -606,11 +606,11 @@ FreeType 2.0 Tutorial
/* clean the bitmap - IMPORTANT */
memset( bit.buffer, 0, bit.rows*bit.pitch );
-
+
/* render the outline directly into the bitmap */
error = FT_Get_Glyph_Bitmap( face, &bit );
if (error) { ... }
- }
+ }
}
@@ -618,17 +618,17 @@ FreeType 2.0 Tutorial
As previously, FT_Get_Glyph_Bitmap doesn't generate the
bitmap, it simply renders to it.
-
+
The target bitmap must be cleaned before calling the function. This
is a limitation of our current anti-aliasing algorithm and is
EXTREMELY important.
-
+
The anti-aliaser uses 128 levels of grays exclusively for now (this
will probably change in a near future). This means that you must
set bit.grays to 128. The generated image uses values from
0 (back color) to 127 (foreground color).
-
-
+
+
It is not possible to render directly an anti-aliased outline into
a pre-existing gray-level bitmap, or even any colored-format one
(like RGB16 or paletted 8-bits). We will not discuss this issue in
@@ -640,6 +640,6 @@ FreeType 2.0 Tutorial
-
+
diff --git a/include/freetype/freetype.h b/include/freetype/freetype.h
index c1c525315..5a6fcabed 100644
--- a/include/freetype/freetype.h
+++ b/include/freetype/freetype.h
@@ -943,12 +943,12 @@
/* returned by FT_Load_Glyph(). */
/* */
/* */
-
+
enum
{
ft_glyph_own_bitmap = 1
};
-
+
typedef struct FT_GlyphSlotRec_
{
FT_Face face;
diff --git a/include/freetype/fterrors.h b/include/freetype/fterrors.h
index aa67c207c..e918f167c 100644
--- a/include/freetype/fterrors.h
+++ b/include/freetype/fterrors.h
@@ -47,15 +47,15 @@ FT_ERROR_START_LIST
FT_ERRORDEF( FT_Err_Cannot_Open_Resource, 0x0001, "can't open stream" )
FT_ERRORDEF( FT_Err_Unknown_File_Format, 0x0002, "unknown file format" )
FT_ERRORDEF( FT_Err_Invalid_File_Format, 0x0003, "broken file" )
-
+
FT_ERRORDEF( FT_Err_Invalid_Argument, 0x0010, "invalid argument" )
FT_ERRORDEF( FT_Err_Invalid_Handle, 0x0011, "invalid object handle" )
FT_ERRORDEF( FT_Err_Invalid_Glyph_Index, 0x0012, "invalid glyph index" )
FT_ERRORDEF( FT_Err_Invalid_Character_Code, 0x0013, "invalid character code" )
-
+
FT_ERRORDEF( FT_Err_Unimplemented_Feature, 0x0020, "unimplemented feature" )
FT_ERRORDEF( FT_Err_Invalid_Glyph_Format, 0x0021, "invalid glyph image format" )
-
+
FT_ERRORDEF( FT_Err_Invalid_Library_Handle, 0x0030, "invalid library handle" )
FT_ERRORDEF( FT_Err_Invalid_Driver_Handle, 0x0031, "invalid module handle" )
FT_ERRORDEF( FT_Err_Invalid_Face_Handle, 0x0032, "invalid face handle" )
@@ -64,7 +64,7 @@ FT_ERROR_START_LIST
FT_ERRORDEF( FT_Err_Invalid_CharMap_Handle, 0x0035, "invalid charmap handle" )
FT_ERRORDEF( FT_Err_Invalid_Outline, 0x0036, "invalid outline" )
FT_ERRORDEF( FT_Err_Invalid_Dimensions, 0x0037, "invalid dimensions" )
-
+
FT_ERRORDEF( FT_Err_Unavailable_Outline, 0x0040, "unavailable outline" )
FT_ERRORDEF( FT_Err_Unavailable_Bitmap, 0x0041, "unavailable bitmap" )
FT_ERRORDEF( FT_Err_File_Is_Not_Collection, 0x0042, "file is not a font collection" )
@@ -84,7 +84,7 @@ FT_ERROR_START_LIST
FT_ERRORDEF( FT_Err_Invalid_Frame_Operation, 0x0066, "invalid frame operation" )
FT_ERRORDEF( FT_Err_Nested_Frame_Access, 0x0067, "nested frame access" )
FT_ERRORDEF( FT_Err_Invalid_Frame_Read, 0x0068, "invalid frame read" )
-
+
FT_ERRORDEF( FT_Err_Too_Many_Points, 0x0070, "too many points in glyph" )
FT_ERRORDEF( FT_Err_Too_Many_Contours, 0x0071, "too many contours in glyph" )
FT_ERRORDEF( FT_Err_Invalid_Composite, 0x0072, "invalid composite glyph" )
@@ -97,7 +97,7 @@ FT_ERROR_START_LIST
/* range 0x500 - 0x5FF is reserved for TrueDoc specific stuff */
/* range 0x600 - 0x6FF is reserved for Type1 specific stuff */
-
+
FT_ERRORDEF( FT_Err_Raster_Uninitialized, 0x0080, "raster uninitialized" )
FT_ERRORDEF( FT_Err_Raster_Corrupted, 0x0081, "raster corrupted !!" )
FT_ERRORDEF( FT_Err_Raster_Overflow, 0x0082, "raster overflow !!" )
diff --git a/include/freetype/ftglyph.h b/include/freetype/ftglyph.h
index 71138caac..853dc256f 100644
--- a/include/freetype/ftglyph.h
+++ b/include/freetype/ftglyph.h
@@ -29,11 +29,11 @@
#include
typedef enum {
-
+
ft_glyph_type_none = 0,
ft_glyph_type_bitmap = 1,
ft_glyph_type_outline = 2
-
+
} FT_GlyphType;
/***********************************************************************
@@ -68,7 +68,7 @@
* float sub-pixels (i.e. 1/64th of pixels).
*
* the vertical bearing has a positive value when the glyph top is
- * above the baseline, and negative when it is under..
+ * above the baseline, and negative when it is under..
*
***********************************************************************/
@@ -81,7 +81,7 @@
FT_Int bearingX;
FT_Int bearingY;
FT_Int advance;
-
+
} FT_GlyphRec, *FT_Glyph;
@@ -91,7 +91,7 @@
* FT_BitmapGlyphRec
*
*
- * A structure used to describe a bitmap glyph image..
+ * A structure used to describe a bitmap glyph image..
* Note that the FT_BitmapGlyph type is a pointer to FT_BitmapGlyphRec
*
*
@@ -111,14 +111,14 @@
* and is thus creatde and destroyed with it..
*
***********************************************************************/
-
+
typedef struct FT_BitmapGlyphRec_
{
FT_GlyphRec metrics;
FT_Int left;
FT_Int top;
FT_Bitmap bitmap;
-
+
} FT_BitmapGlyphRec_, *FT_BitmapGlyph;
@@ -128,7 +128,7 @@
* FT_OutlineGlyphRec
*
*
- * A structure used to describe a vectorial outline glyph image..
+ * A structure used to describe a vectorial outline glyph image..
* Note that the FT_OutlineGlyph type is a pointer to FT_OutlineGlyphRec
*
*
@@ -147,12 +147,12 @@
* function FT_OutlineGlyph_Render()
*
***********************************************************************/
-
+
typedef struct FT_OutlineGlyphRec_
{
FT_GlyphRec metrics;
FT_Outline outline;
-
+
} FT_OutlineGlyphRec_, *FT_OutlineGlyph;
@@ -221,7 +221,7 @@
* face :: handle to source face object
* glyph_index :: glyph index in face
* load_flags :: load flags, see FT_LOAD_FLAG_XXXX constants..
- *
+ *
*
* vecglyph :: pointer to the new outline glyph
*
@@ -236,7 +236,7 @@
* FT_LOAD_NO_RECURSE are set..
*
***********************************************************************/
-
+
EXPORT_DEF(FT_Error) FT_Get_Glyph_Outline( FT_Face face,
FT_UInt glyph_index,
FT_UInt load_flags,
@@ -250,7 +250,7 @@
*
*
* A function used to set the transform that is applied to glyph images
- * just after they're loaded in the face's glyph slot, and before they're
+ * just after they're loaded in the face's glyph slot, and before they're
* returned by either FT_Get_Glyph_Bitmap or FT_Get_Glyph_Outline
*
*
@@ -263,7 +263,7 @@
* in a font face. It is unable to transform embedded glyph bitmaps
*
***********************************************************************/
-
+
EXPORT_DEF(void) FT_Set_Transform( FT_Face face,
FT_Matrix* matrix,
FT_Vector* delta );
@@ -278,10 +278,10 @@
* Destroys a given glyph..
*
*
- * glyph :: handle to target glyph object
+ * glyph :: handle to target glyph object
*
***********************************************************************/
-
+
EXPORT_DEF(void) FT_Done_Glyph( FT_Glyph glyph );
@@ -294,7 +294,7 @@
* Returns the glyph image's bounding box in pixels.
*
*
- * glyph :: handle to target glyph object
+ * glyph :: handle to target glyph object
*
*
* box :: the glyph bounding box. Coordinates are expressed in
@@ -308,7 +308,7 @@
* The height is box.yMax - box.yMin
*
***********************************************************************/
-
+
EXPORT_DEF(void) FT_Glyph_Get_Box( FT_Glyph glyph,
FT_BBox *box );
diff --git a/include/freetype/ftimage.h b/include/freetype/ftimage.h
index c4443dfa2..77bb3688d 100644
--- a/include/freetype/ftimage.h
+++ b/include/freetype/ftimage.h
@@ -857,7 +857,7 @@
*
*
* raster :: handle to new raster object
- * mode :: a 4-byte tag used to name the mode or property
+ * mode :: a 4-byte tag used to name the mode or property
* args :: a pointer to the new mode/property to use
*
**************************************************************************/
diff --git a/include/freetype/internal/autohint.h b/include/freetype/internal/autohint.h
index fced489c5..4a995f89f 100644
--- a/include/freetype/internal/autohint.h
+++ b/include/freetype/internal/autohint.h
@@ -190,11 +190,11 @@
FT_AutoHinter_Init_Func init_autohinter;
FT_AutoHinter_Done_Func done_autohinter;
FT_AutoHinter_Load_Func load_glyph;
-
+
FT_AutoHinter_Get_Global_Func get_global_hints;
FT_AutoHinter_Done_Global_Func done_global_hints;
- } FT_AutoHinter_Interface;
+ } FT_AutoHinter_Interface;
#endif /* AUTOHINT_H */
diff --git a/include/freetype/internal/ftcalc.h b/include/freetype/internal/ftcalc.h
index 5acbc6c2b..8a00da15c 100644
--- a/include/freetype/internal/ftcalc.h
+++ b/include/freetype/internal/ftcalc.h
@@ -42,7 +42,7 @@
#define SQRT_64( z ) FT_Sqrt64( z )
EXPORT_DEF(FT_Int32) FT_Sqrt64( FT_Int64 x );
-
+
#endif /* OLD_CALCS */
#else /* LONG64 */
@@ -61,7 +61,7 @@
EXPORT_DEF(void) FT_Add64 ( FT_Int64* x, FT_Int64* y, FT_Int64* z );
EXPORT_DEF(void) FT_MulTo64 ( FT_Int32 x, FT_Int32 y, FT_Int64* z );
-
+
EXPORT_DEF(FT_Int32) FT_Div64by32( FT_Int64* x, FT_Int32 y );
#ifdef FT_CONFIG_OPTION_OLD_CALCS
@@ -69,7 +69,7 @@
#define SQRT_64( z ) FT_Sqrt64( &z )
EXPORT_DEF(FT_Int32) FT_Sqrt64( FT_Int64* x );
-
+
#endif /* OLD_CALC */
#endif /* LONG64 */
diff --git a/include/freetype/internal/ftdriver.h b/include/freetype/internal/ftdriver.h
index 68d416bf7..b89afef07 100644
--- a/include/freetype/internal/ftdriver.h
+++ b/include/freetype/internal/ftdriver.h
@@ -72,7 +72,7 @@
/* */
typedef FT_Error (*FTDriver_doneDriver)( FT_Driver driver );
-
+
typedef void (*FTDriver_Interface)( void );
/*************************************************************************/
diff --git a/include/freetype/internal/ftextend.h b/include/freetype/internal/ftextend.h
index 7c5c52684..73dbb59ca 100644
--- a/include/freetype/internal/ftextend.h
+++ b/include/freetype/internal/ftextend.h
@@ -55,7 +55,7 @@
/* data, as the finalizer will get called later by the function's */
/* caller. */
/* */
- typedef FT_Error (*FT_Extension_Initializer)( void* ext,
+ typedef FT_Error (*FT_Extension_Initializer)( void* ext,
FT_Face face );
@@ -114,11 +114,11 @@
FT_Extension_Initializer init;
FT_Extension_Finalizer finalize;
void* interface;
-
+
FT_ULong offset;
-
+
} FT_Extension_Class;
-
+
EXPORT_DEF(FT_Error) FT_Register_Extension( FT_Driver driver,
FT_Extension_Class* clazz );
diff --git a/include/freetype/internal/ftobjs.h b/include/freetype/internal/ftobjs.h
index 55eefab07..ad95592ba 100644
--- a/include/freetype/internal/ftobjs.h
+++ b/include/freetype/internal/ftobjs.h
@@ -181,11 +181,11 @@
* n_contours :: current number of contours in zone
* org :: original glyph coordinates (font units/scaled)
* cur :: current glyph coordinates (scaled/hinted)
- * tags :: point control tags
+ * tags :: point control tags
* contours :: contour end points
*
***********************************************************************/
-
+
typedef struct FT_GlyphZone_
{
FT_Memory memory;
@@ -209,7 +209,7 @@
FT_GlyphZone* zone );
BASE_DEF(void) FT_Done_GlyphZone( FT_GlyphZone* zone );
-
+
BASE_DEF(FT_Error) FT_Update_GlyphZone( FT_GlyphZone* zone,
FT_UShort num_points,
FT_Short num_contours );
@@ -260,7 +260,7 @@
/* ideally be changed dynamically at run-time. */
/* */
typedef void (*FT_DebugHook_Func)( void* arg );
-
+
typedef struct FT_LibraryRec_
{
FT_Memory memory; /* library's memory object */
diff --git a/include/freetype/internal/ftstream.h b/include/freetype/internal/ftstream.h
index bfb2a5e9c..ec9d331df 100644
--- a/include/freetype/internal/ftstream.h
+++ b/include/freetype/internal/ftstream.h
@@ -27,15 +27,15 @@ typedef enum FT_Frame_Op_
{
ft_frame_end = 0,
ft_frame_start = FT_MAKE_FRAME_OP( FT_FRAME_OP_START, 0, 0 ),
-
+
ft_frame_byte = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTE, 0, 0 ),
ft_frame_schar = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTE, 0, 1 ),
-
+
ft_frame_ushort_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 0, 0 ),
ft_frame_short_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 0, 1 ),
ft_frame_ushort_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 1, 0 ),
ft_frame_short_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 1, 1 ),
-
+
ft_frame_ulong_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 0, 0 ),
ft_frame_ulong_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 0, 1 ),
ft_frame_long_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 1, 0 ),
@@ -54,7 +54,7 @@ typedef struct FT_Frame_Field_
FT_Frame_Op value;
char size;
FT_UShort offset;
-
+
} FT_Frame_Field;
/* make-up a FT_Frame_Field out of a structure type and a field name */
@@ -171,53 +171,53 @@ typedef struct FT_Frame_Field_
void* base,
unsigned long size,
FT_Stream stream );
-
+
BASE_DEF(FT_Error) FT_Seek_Stream( FT_Stream stream,
FT_ULong pos );
BASE_DEF(FT_Error) FT_Skip_Stream( FT_Stream stream,
FT_Long distance );
-
+
BASE_DEF(FT_Long) FT_Stream_Pos( FT_Stream stream );
BASE_DEF(FT_Error) FT_Read_Stream( FT_Stream stream,
void* buffer,
FT_ULong count );
-
+
BASE_DEF(FT_Error) FT_Read_Stream_At( FT_Stream stream,
FT_ULong pos,
void* buffer,
FT_ULong count );
-
+
BASE_DEF(FT_Error) FT_Access_Frame( FT_Stream stream,
FT_ULong count );
-
+
BASE_DEF(void) FT_Forget_Frame( FT_Stream stream );
BASE_DEF(FT_Char) FT_Get_Char( FT_Stream stream );
-
+
BASE_DEF(FT_Short) FT_Get_Short( FT_Stream stream );
-
+
BASE_DEF(FT_Long) FT_Get_Offset( FT_Stream stream );
-
+
BASE_DEF(FT_Long) FT_Get_Long( FT_Stream stream );
BASE_DEF(FT_Char) FT_Read_Char( FT_Stream stream,
- FT_Error* error );
+ FT_Error* error );
BASE_DEF(FT_Short) FT_Read_Short( FT_Stream stream,
- FT_Error* error );
+ FT_Error* error );
BASE_DEF(FT_Long) FT_Read_Offset( FT_Stream stream,
- FT_Error* error );
+ FT_Error* error );
BASE_DEF(FT_Long) FT_Read_Long( FT_Stream stream,
- FT_Error* error );
+ FT_Error* error );
BASE_DEF(FT_Error) FT_Read_Fields( FT_Stream stream,
const FT_Frame_Field* fields,
diff --git a/include/freetype/internal/psnames.h b/include/freetype/internal/psnames.h
index 53011f389..282a2b0a9 100644
--- a/include/freetype/internal/psnames.h
+++ b/include/freetype/internal/psnames.h
@@ -65,8 +65,8 @@
* uncode :: unicode value.
*
*
- * The glyph index. 0xFFFF is no glyph correspond to this Unicode
- * value..
+ * The glyph index. 0xFFFF is no glyph correspond to this Unicode
+ * value..
*
*
* This function is able to recognize several glyph names per
@@ -87,14 +87,14 @@
* PS_Macintosh_Name_Func
*
*
- * A function used to return the glyph name corresponding to one
+ * A function used to return the glyph name corresponding to one
* Apple glyph name index.
*
*
* name_index :: index of the Mac name
*
*
- * The glyph name, or 0 if the index is incorrect.
+ * The glyph name, or 0 if the index is incorrect.
*
*
* This function will not be compiled if the configuration macro
@@ -104,8 +104,8 @@
typedef const char* (*PS_Macintosh_Name_Func)( FT_UInt name_index );
-
-
+
+
typedef const char* (*PS_Adobe_Std_Strings_Func)( FT_UInt string_index );
/***************************************************************************
@@ -130,19 +130,19 @@
* corresponding to a given Unicode character code.
*
***************************************************************************/
-
+
typedef struct PS_UniMap_
{
FT_UInt unicode;
FT_UInt glyph_index;
-
+
} PS_UniMap;
-
+
typedef struct PS_Unicodes_
{
FT_UInt num_maps;
PS_UniMap* maps;
-
+
} PS_Unicodes;
@@ -155,14 +155,14 @@
FT_UInt unicode );
/*************************************************************************
- *
- *
- * PSNames_Interface
- *
- *
- * this structure holds pointers to the functions used to load and
- * free the basic tables that are required in a `sfnt' font file.
- *
+ *
+ *
+ * PSNames_Interface
+ *
+ *
+ * this structure holds pointers to the functions used to load and
+ * free the basic tables that are required in a `sfnt' font file.
+ *
*
* unicode_value :: a function used to convert a glyph name into
* a Unicode character code
@@ -200,11 +200,11 @@
PS_Build_Unicodes_Func build_unicodes;
PS_Lookup_Unicode_Func lookup_unicode;
PS_Macintosh_Name_Func macintosh_name;
-
+
PS_Adobe_Std_Strings_Func adobe_std_strings;
const unsigned short* adobe_std_encoding;
const unsigned short* adobe_expert_encoding;
-
+
} PSNames_Interface;
#endif /* PSNAMES_H */
diff --git a/include/freetype/internal/sfnt.h b/include/freetype/internal/sfnt.h
index b08492a40..9e6eb11b5 100644
--- a/include/freetype/internal/sfnt.h
+++ b/include/freetype/internal/sfnt.h
@@ -161,7 +161,7 @@
/* */
/* The `map.buffer' field is always freed before the glyph is loaded. */
/* */
- typedef
+ typedef
TT_Error (*TT_Load_SBit_Image_Func)( TT_Face face,
TT_Int x_ppem,
TT_Int y_ppem,
@@ -336,7 +336,7 @@
typedef struct SFNT_Interface_
{
TT_Goto_Table_Func goto_table;
-
+
TT_Load_Any_Func load_any;
TT_Load_Format_Tag_Func load_format_tag;
TT_Load_Directory_Func load_directory;
@@ -363,7 +363,7 @@
TT_Load_Table_Func load_sbits;
TT_Load_SBit_Image_Func load_sbit_image;
TT_Free_Table_Func free_sbits;
-
+
/* see `ttpost.h' */
TT_Get_PS_Name_Func get_psname;
TT_Free_Table_Func free_psnames;
@@ -371,7 +371,7 @@
/* see `ttcmap.h' */
TT_CharMap_Load_Func load_charmap;
TT_CharMap_Free_Func free_charmap;
-
+
} SFNT_Interface;
#endif /* SFNT_H */
diff --git a/include/freetype/internal/t1types.h b/include/freetype/internal/t1types.h
index 9c755f54d..e4eaa354e 100644
--- a/include/freetype/internal/t1types.h
+++ b/include/freetype/internal/t1types.h
@@ -311,7 +311,7 @@
/* font info dictionary */
T1_FontInfo font_info;
-
+
/* private dictionary */
T1_Private private_dict;
@@ -341,9 +341,9 @@
T1_Long font_id;
T1_Int stroke_width;
-
+
} T1_Font;
-
+
/*************************************************************************/
diff --git a/include/freetype/internal/tttypes.h b/include/freetype/internal/tttypes.h
index f28c0b972..2a0f46c41 100644
--- a/include/freetype/internal/tttypes.h
+++ b/include/freetype/internal/tttypes.h
@@ -1574,7 +1574,7 @@
/* */
/* */
/* loaded :: A flag to indicate whether the PS names are loaded. */
- /* */
+ /* */
/* format_20 :: The sub-table used for format 2.0. */
/* */
/* format_25 :: The sub-table used for format 2.5. */
@@ -1717,7 +1717,7 @@
{
FT_CharMapRec root;
TT_CMapTable cmap;
-
+
} TT_CharMapRec;
@@ -1997,7 +1997,7 @@
/* TT_Goto_Table defined in `ttload.h', but some font drivers */
/* might need something different, e.g. Type 42 fonts */
TT_Goto_Table_Func goto_table;
-
+
/* a typeless pointer to the SFNT_Interface table used to load */
/* the basic TrueType tables in the face object */
void* sfnt;
diff --git a/include/freetype/t1tables.h b/include/freetype/t1tables.h
index 0f565aa3d..a25d7f25a 100644
--- a/include/freetype/t1tables.h
+++ b/include/freetype/t1tables.h
@@ -35,7 +35,7 @@
* FontInfo.
*
*/
-
+
typedef struct T1_FontInfo
{
FT_String* version;
@@ -47,7 +47,7 @@
FT_Bool is_fixed_pitch;
FT_Short underline_position;
FT_UShort underline_thickness;
-
+
} T1_FontInfo;
@@ -62,7 +62,7 @@
* Private dict.
*
*/
-
+
typedef struct T1_Private
{
@@ -99,18 +99,18 @@
FT_Long password;
FT_Short min_feature[2];
-
+
} T1_Private;
/*************************************************************************
*
- *
+ *
* T1_Blend_Flags
*
*
* A set of flags used to indicate which fields are present in a
- * given blen dictionary (font info or private). Used to support
+ * given blen dictionary (font info or private). Used to support
* multiple masters..
*
*/
@@ -122,8 +122,8 @@
t1_blend_underline_position,
t1_blend_underline_thickness,
t1_blend_italic_angle,
-
- /* required fields in a Private blend dictionary */
+
+ /* required fields in a Private blend dictionary */
t1_blend_blue_values,
t1_blend_other_blues,
t1_blend_standard_width,
@@ -138,7 +138,7 @@
/* never remove */
t1_blend_max
-
+
} T1_Flags;
@@ -146,7 +146,7 @@
{
FT_Fixed min;
FT_Fixed max;
-
+
} T1_Blend_Pos;
/*************************************************************************
@@ -163,14 +163,14 @@
{
FT_Int num_axis;
FT_String* axis_types[4];
-
- /* XXXX : add /BlendDesignMap entries */
-
+
+ /* XXXX : add /BlendDesignMap entries */
+
FT_Int num_blends;
T1_Flags* flags [17];
T1_Private* privates [17];
T1_FontInfo* fontinfos[17];
-
+
} T1_Blend;
@@ -183,16 +183,16 @@
FT_UInt num_subrs;
FT_ULong subrmap_offset;
FT_Int sd_bytes;
-
+
} CID_FontDict;
-
+
typedef struct CID_Info_
{
FT_String* cid_font_name;
FT_Fixed cid_version;
FT_Int cid_font_type;
-
+
FT_String* registry;
FT_String* ordering;
FT_Int supplement;
@@ -201,16 +201,16 @@
FT_Int num_xuid;
FT_ULong xuid[16];
-
-
+
+
FT_ULong cidmap_offset;
FT_Int fd_bytes;
FT_Int gd_bytes;
FT_ULong cid_count;
-
+
FT_Int num_font_dicts;
CID_FontDict* font_dicts;
-
+
} CID_Info;
diff --git a/include/freetype/tttables.h b/include/freetype/tttables.h
index 7f98c2057..3cd9e4dbc 100644
--- a/include/freetype/tttables.h
+++ b/include/freetype/tttables.h
@@ -360,7 +360,7 @@
FT_UShort usDefaultChar;
FT_UShort usBreakChar;
FT_UShort usMaxContext;
-
+
} TT_OS2;
@@ -493,7 +493,7 @@
ft_sfnt_post = 5,
sfnt_max /* don't remove */
-
+
} FT_Sfnt_Tag;
/* internal use only */
@@ -524,7 +524,7 @@
* You can load any table with a different function.. XXX
*
***************************************************************************/
-
+
EXPORT_DEF(void*) FT_Get_Sfnt_Table( FT_Face face,
FT_Sfnt_Tag tag );
diff --git a/license.txt b/license.txt
index c42206ac7..105b6d528 100644
--- a/license.txt
+++ b/license.txt
@@ -117,7 +117,7 @@ Legal Terms
Neither the FreeType authors and contributors nor you shall use
the name of the other for commercial, advertising, or promotional
purposes without specific prior written permission.
-
+
We suggest, but do not require, that you use one or more of the
following phrases to refer to this software in your documentation
or advertising materials: `FreeType Project', `FreeType Engine',
diff --git a/src/base/ftcalc.c b/src/base/ftcalc.c
index c08c40b8b..2feee6986 100644
--- a/src/base/ftcalc.c
+++ b/src/base/ftcalc.c
@@ -53,7 +53,7 @@
536870912, 759250125, 1073741824, 1518500250,
2147483647
};
-#else
+#else
/*************************************************************************/
/* */
/* */
@@ -243,12 +243,12 @@
/* */
/* The 32-bit square-root. */
/* */
-
+
static
int ft_order64( FT_Int64 z )
{
int j = 0;
-
+
while ( z )
{
z = (unsigned INT64)z >> 1;
@@ -678,13 +678,13 @@
/* */
/* The 32-bit square-root. */
/* */
-
+
static
int ft_order64( FT_Int64* z )
{
FT_Word32 i;
int j;
-
+
i = z->lo;
j = 0;
if ( z->hi )
@@ -692,7 +692,7 @@
i = z->hi;
j = 32;
}
-
+
while ( i > 0 )
{
i >>= 1;
diff --git a/src/base/ftglyph.c b/src/base/ftglyph.c
index 4bfb3ce79..271a6b545 100644
--- a/src/base/ftglyph.c
+++ b/src/base/ftglyph.c
@@ -32,11 +32,11 @@
FT_Bool vertical )
{
FT_Glyph_Metrics* metrics = &face->glyph->metrics;
-
+
glyph->memory = face->memory;
glyph->width = metrics->width;
glyph->height = metrics->height;
-
+
if (vertical)
{
glyph->bearingX = metrics->vertBearingX;
@@ -110,13 +110,13 @@
FT_Pos origin_y = 0;
*abitglyph = 0;
-
+
if (origin)
{
origin_x = origin->x & 63;
origin_y = origin->y & 63;
}
-
+
/* check arguments if the face's format is not scalable */
if ( !(face->face_flags & FT_FACE_FLAG_SCALABLE) && face->transform_flags )
{
@@ -135,10 +135,10 @@
/* disable embedded bitmaps for transformed images */
if ( face->face_flags & FT_FACE_FLAG_SCALABLE && face->transform_flags )
load_flags |= FT_LOAD_NO_BITMAP;
-
+
error = FT_Load_Glyph( face, glyph_index, load_flags );
if (error) goto Exit;
-
+
/* now, handle bitmap and outline glyph images */
memory = face->memory;
switch ( face->glyph->format )
@@ -147,22 +147,22 @@
{
FT_Long size;
FT_Bitmap* source;
-
+
if ( ALLOC( bitglyph, sizeof(*bitglyph) ) )
goto Exit;
-
+
glyph = (FT_Glyph)bitglyph;
glyph->glyph_type = ft_glyph_type_bitmap;
ft_prepare_glyph( glyph, face, 0 );
-
+
source = &face->glyph->bitmap;
size = source->rows * source->pitch;
if (size < 0) size = -size;
-
+
bitglyph->bitmap = *source;
if ( ALLOC( bitglyph->bitmap.buffer, size ) )
goto Fail;
-
+
/* copy the content of the source glyph */
MEM_Copy( bitglyph->bitmap.buffer, source->buffer, size );
}
@@ -173,49 +173,49 @@
FT_BBox cbox;
FT_Int width, height, pitch;
FT_Long size;
-
+
/* transform the outline - note that the original metrics are NOT */
/* transformed by this.. only the outline points themselves.. */
FT_Outline_Transform( &face->glyph->outline, &face->transform_matrix );
FT_Outline_Translate( &face->glyph->outline,
face->transform_delta.x + origin_x,
face->transform_delta.y + origin_y );
-
+
/* compute the size in pixels of the outline */
FT_Outline_Get_CBox( &face->glyph->outline, &cbox );
cbox.xMin &= -64;
cbox.yMin &= -64;
cbox.xMax = (cbox.xMax+63) & -64;
cbox.yMax = (cbox.yMax+63) & -64;
-
+
width = (cbox.xMax - cbox.xMin) >> 6;
height = (cbox.yMax - cbox.yMin) >> 6;
/* allocate the pixel buffer for the glyph bitmap */
if (grays) pitch = (width+3) & -4; /* some raster implementation need this */
else pitch = (width+7) >> 3;
-
+
size = pitch * height;
if ( ALLOC( bitglyph, sizeof(*bitglyph) ) )
goto Exit;
-
+
glyph = (FT_Glyph)bitglyph;
glyph->glyph_type = ft_glyph_type_bitmap;
ft_prepare_glyph( glyph, face, 0 );
-
+
if ( ALLOC( bitglyph->bitmap.buffer, size ) )
goto Fail;
-
+
bitglyph->bitmap.width = width;
bitglyph->bitmap.rows = height;
bitglyph->bitmap.pitch = pitch;
bitglyph->bitmap.pixel_mode = grays ? ft_pixel_mode_grays
: ft_pixel_mode_mono;
bitglyph->bitmap.num_grays = (short)grays;
-
+
bitglyph->left = (cbox.xMin >> 6);
bitglyph->top = (cbox.yMax >> 6);
-
+
/* render the monochrome outline into the target buffer */
FT_Outline_Translate( &face->glyph->outline, -cbox.xMin, -cbox.yMin );
error = FT_Outline_Get_Bitmap( face->driver->library,
@@ -228,22 +228,22 @@
}
}
break;
-
+
default:
error = FT_Err_Invalid_Glyph_Index;
goto Exit;
}
-
+
*abitglyph = bitglyph;
Exit:
return error;
-
+
Fail:
FREE( glyph );
goto Exit;
}
-
+
/***********************************************************************
*
*
@@ -257,7 +257,7 @@
* face :: handle to source face object
* glyph_index :: glyph index in face
* load_flags :: load flags, see FT_LOAD_FLAG_XXXX constants..
- *
+ *
*
* vecglyph :: pointer to the new outline glyph
*
@@ -269,7 +269,7 @@
* FT_LOAD_NO_RECURSE are set..
*
***********************************************************************/
-
+
EXPORT_FUNC(FT_Error) FT_Get_Glyph_Outline( FT_Face face,
FT_UInt glyph_index,
FT_UInt load_flags,
@@ -280,27 +280,27 @@
FT_OutlineGlyph glyph;
*vecglyph = 0;
-
+
/* check that NO_OUTLINE and NO_RECURSE are not set */
if (load_flags & (FT_LOAD_NO_OUTLINE|FT_LOAD_NO_RECURSE))
{
error = FT_Err_Invalid_Argument;
goto Exit;
}
-
+
/* disable the loading of embedded bitmaps */
load_flags |= FT_LOAD_NO_BITMAP;
-
+
error = FT_Load_Glyph( face, glyph_index, load_flags );
if (error) goto Exit;
-
+
/* check that we really loaded an outline */
if ( face->glyph->format != ft_glyph_format_outline )
{
error = FT_Err_Invalid_Glyph_Index;
goto Exit;
}
-
+
/* transform the outline - note that the original metrics are NOT */
/* transformed by this.. only the outline points themselves.. */
if ( face->transform_flags )
@@ -310,7 +310,7 @@
face->transform_delta.x,
face->transform_delta.y );
}
-
+
/* now, create a new outline glyph and copy everything there */
memory = face->memory;
if ( ALLOC( glyph, sizeof(*glyph) ) )
@@ -318,20 +318,20 @@
ft_prepare_glyph( (FT_Glyph)glyph, face, 0 );
glyph->metrics.glyph_type = ft_glyph_type_outline;
-
+
error = FT_Outline_New( face->driver->library,
face->glyph->outline.n_points,
face->glyph->outline.n_contours,
&glyph->outline );
if (!error)
error = FT_Outline_Copy( &face->glyph->outline, &glyph->outline );
-
+
if (error) goto Fail;
-
+
*vecglyph = glyph;
Exit:
return error;
-
+
Fail:
FREE( glyph );
goto Exit;
@@ -344,7 +344,7 @@
*
*
* A function used to set the transform that is applied to glyph images
- * just after they're loaded in the face's glyph slot, and before they're
+ * just after they're loaded in the face's glyph slot, and before they're
* returned by either FT_Get_Glyph_Bitmap or FT_Get_Glyph_Outline
*
*
@@ -357,13 +357,13 @@
* in a font face. It is unable to transform embedded glyph bitmaps
*
***********************************************************************/
-
+
EXPORT_FUNC(void) FT_Set_Transform( FT_Face face,
FT_Matrix* matrix,
FT_Vector* delta )
{
face->transform_flags = 0;
-
+
if (!matrix)
{
face->transform_matrix.xx = 0x10000L;
@@ -374,7 +374,7 @@
}
else
face->transform_matrix = *matrix;
-
+
/* set transform_flags bit flag 0 if delta isn't the null vector */
if ( (matrix->xy | matrix->yx) ||
matrix->xx != 0x10000L ||
@@ -389,7 +389,7 @@
}
else
face->transform_delta = *delta;
-
+
/* set transform_flags bit flag 1 if delta isn't the null vector */
if ( delta->x | delta->y )
face->transform_flags |= 2;
@@ -404,16 +404,16 @@
* Destroys a given glyph..
*
*
- * glyph :: handle to target glyph object
+ * glyph :: handle to target glyph object
*
***********************************************************************/
-
+
EXPORT_FUNC(void) FT_Done_Glyph( FT_Glyph glyph )
{
if (glyph)
{
FT_Memory memory = glyph->memory;
-
+
if ( glyph->glyph_type == ft_glyph_type_bitmap )
{
FT_BitmapGlyph bit = (FT_BitmapGlyph)glyph;
@@ -429,7 +429,7 @@
FREE( out->outline.tags );
}
}
-
+
FREE( glyph );
}
}
@@ -444,7 +444,7 @@
* Returns the glyph image's bounding box in pixels.
*
*
- * glyph :: handle to target glyph object
+ * glyph :: handle to target glyph object
*
*
* box :: the glyph bounding box. Coordinates are expressed in
@@ -458,13 +458,13 @@
* The height is box.yMax - box.yMin
*
***********************************************************************/
-
+
EXPORT_FUNC(void) FT_Glyph_Get_Box( FT_Glyph glyph,
FT_BBox *box )
{
box->xMin = box->xMax = 0;
box->yMin = box->yMax = 0;
-
+
if (glyph) switch (glyph->glyph_type)
{
case ft_glyph_type_bitmap:
@@ -476,11 +476,11 @@
box->yMin = box->yMax - bit->bitmap.rows;
}
break;
-
+
case ft_glyph_type_outline:
{
FT_OutlineGlyph out = (FT_OutlineGlyph)glyph;
-
+
FT_Outline_Get_CBox( &out->outline, box );
box->xMin >>= 6;
box->yMin >>= 6;
@@ -488,7 +488,7 @@
box->yMax = (box->yMax+63) >> 6;
}
break;
-
+
default:
;
}
@@ -502,7 +502,7 @@
/**** ****/
/***************************************************************************/
/***************************************************************************/
-
+
#if 0
/* Compute the norm of a vector */
@@ -542,21 +542,21 @@
hi = (FT_ULong)u >> 16;
lo = (FT_ULong)u & 0xFFFF;
med = hi*lo;
-
+
H = hi*hi + (med >> 15);
med <<= 17;
L = lo*lo + med;
if (L < med) H++;
-
+
hi = (FT_ULong)v >> 16;
lo = (FT_ULong)v & 0xFFFF;
med = hi*lo;
-
+
H += hi*hi + (med >> 15);
med <<= 17;
L2 = lo*lo + med;
if (L2 < med) H++;
-
+
L += L2;
if (L < L2) H++;
@@ -598,17 +598,17 @@
prev = cur - 1;
next = cur + 1;
- first = 0;
+ first = 0;
for ( c = 0; c < outline->n_contours; c++ )
{
last = outline->contours[c];
if ( n == first )
prev = outline->points + last;
-
+
if ( n == last )
next = outline->points + first;
-
+
first = last + 1;
}
@@ -721,7 +721,7 @@
for ( c = 0; c < outline->n_contours; c++ )
{
int last = outline->contours[c];
-
+
prev = points[last];
for ( n = first; n <= last; n++ )
@@ -777,7 +777,7 @@
x = distance + cur.x + FT_MulFix( d, u.x + v.x )/2;
y = distance + cur.y + FT_MulFix( d, u.y + v.y )/2;
-
+
outline->points[n].x = x;
outline->points[n].y = y;
}
@@ -794,4 +794,4 @@
return 0;
}
-#endif /* 0 - EXPERIMENTAL STUFF !! */
+#endif /* 0 - EXPERIMENTAL STUFF !! */
diff --git a/src/base/ftgrays.c b/src/base/ftgrays.c
index 67ef667e1..95550cef9 100644
--- a/src/base/ftgrays.c
+++ b/src/base/ftgrays.c
@@ -120,7 +120,7 @@ typedef long TPos; /* sub-pixel coordinate */
#define FT_MAX_GRAY_SPANS 32
-#ifdef GRAYS_COMPACT
+#ifdef GRAYS_COMPACT
typedef struct TCell_
{
short x : 14;
@@ -599,12 +599,12 @@ int render_conic( RAS_ARG_ FT_Vector* control, FT_Vector* to )
/* we compute the mid-point directly in order to avoid */
/* calling split_conic().. */
TPos to_x, to_y, mid_x, mid_y;
-
+
to_x = UPSCALE(to->x);
to_y = UPSCALE(to->y);
mid_x = (ras.x + to_x + 2*UPSCALE(control->x))/4;
mid_y = (ras.y + to_y + 2*UPSCALE(control->y))/4;
-
+
return render_line( RAS_VAR_ mid_x, mid_y ) ||
render_line( RAS_VAR_ to_x, to_y );
}
@@ -613,7 +613,7 @@ int render_conic( RAS_ARG_ FT_Vector* control, FT_Vector* to )
levels = ras.lev_stack;
top = 0;
levels[0] = level;
-
+
arc[0].x = UPSCALE(to->x);
arc[0].y = UPSCALE(to->y);
arc[1].x = UPSCALE(control->x);
@@ -647,12 +647,12 @@ int render_conic( RAS_ARG_ FT_Vector* control, FT_Vector* to )
Draw:
{
TPos to_x, to_y, mid_x, mid_y;
-
+
to_x = arc[0].x;
to_y = arc[0].y;
mid_x = (ras.x + to_x + 2*arc[1].x)/4;
mid_y = (ras.y + to_y + 2*arc[1].y)/4;
-
+
if ( render_line( RAS_VAR_ mid_x, mid_y ) ||
render_line( RAS_VAR_ to_x, to_y ) ) return 1;
top--;
@@ -723,12 +723,12 @@ int render_cubic( RAS_ARG_ FT_Vector* control1,
if (level <= 1)
{
TPos to_x, to_y, mid_x, mid_y;
-
+
to_x = UPSCALE(to->x);
to_y = UPSCALE(to->y);
mid_x = (ras.x + to_x + 3*UPSCALE(control1->x+control2->x))/8;
mid_y = (ras.y + to_y + 3*UPSCALE(control1->y+control2->y))/8;
-
+
return render_line( RAS_VAR_ mid_x, mid_y ) ||
render_line( RAS_VAR_ to_x, to_y );
}
@@ -775,12 +775,12 @@ int render_cubic( RAS_ARG_ FT_Vector* control1,
Draw:
{
TPos to_x, to_y, mid_x, mid_y;
-
+
to_x = arc[0].x;
to_y = arc[0].y;
mid_x = (ras.x + to_x + 3*(arc[1].x+arc[2].x))/8;
mid_y = (ras.y + to_y + 3*(arc[1].y+arc[2].y))/8;
-
+
if ( render_line( RAS_VAR_ mid_x, mid_y ) ||
render_line( RAS_VAR_ to_x, to_y ) ) return 1;
top --;
@@ -1015,9 +1015,9 @@ int check_sort( PCell cells, int count )
for ( ; count > 0; count--, spans++ )
{
if (spans->coverage)
-#if 1
+#if 1
memset( p + spans->x, (spans->coverage+1) >> 1, spans->len );
-#else
+#else
{
q = p + spans->x;
limit = q + spans->len;
@@ -1172,7 +1172,7 @@ int check_sort( PCell cells, int count )
++cur;
if (cur >= limit || cur->y != start->y || cur->x != start->x)
break;
-
+
area += cur->area;
cover += cur->cover;
}
@@ -1226,7 +1226,7 @@ int check_sort( PCell cells, int count )
typedef struct TBand_
{
FT_Pos min, max;
-
+
} TBand;
static
@@ -1254,7 +1254,7 @@ int check_sort( PCell cells, int count )
if ( ras.max_ex <= 0 || ras.min_ex >= ras.target.width ||
ras.max_ey <= 0 || ras.min_ey >= ras.target.rows )
return 0;
-
+
if (ras.min_ex < 0) ras.min_ex = 0;
if (ras.min_ey < 0) ras.min_ey = 0;
@@ -1271,7 +1271,7 @@ int check_sort( PCell cells, int count )
level++;
if (ras.max_ex > 120 || ras.max_ey > 120)
level+=2;
-
+
ras.conic_level <<= level;
ras.cubic_level <<= level;
}
@@ -1280,7 +1280,7 @@ int check_sort( PCell cells, int count )
num_bands = (ras.max_ey - ras.min_ey)/ras.band_size;
if (num_bands == 0) num_bands = 1;
if (num_bands >= 39) num_bands = 39;
-
+
ras.band_shoot = 0;
min = ras.min_ey;
@@ -1290,24 +1290,24 @@ int check_sort( PCell cells, int count )
max = min + ras.band_size;
if (n == num_bands-1 || max > max_y)
max = max_y;
-
+
bands[0].min = min;
bands[0].max = max;
band = bands;
-
+
while (band >= bands)
{
FT_Pos bottom, top, middle;
int error;
-
+
ras.num_cells = 0;
ras.invalid = 1;
ras.min_ey = band->min;
ras.max_ey = band->max;
-
+
error = FT_Outline_Decompose( outline, &interface, &ras ) ||
record_cell( RAS_VAR );
-
+
if (!error)
{
#ifdef SHELL_SORT
@@ -1315,22 +1315,22 @@ int check_sort( PCell cells, int count )
#else
quick_sort( ras.cells, ras.num_cells );
#endif
-
+
#ifdef DEBUG_GRAYS
check_sort( ras.cells, ras.num_cells );
dump_cells( RAS_VAR );
#endif
-
+
grays_sweep( RAS_VAR_ &ras.target );
band--;
continue;
}
-
+
/* render pool overflow, we will reduce the render band by half */
bottom = band->min;
top = band->max;
middle = bottom + ((top-bottom) >> 1);
-
+
/* waoow !! this is too complex for a single scanline, something */
/* must be really rotten here !! */
if (middle == bottom)
@@ -1340,10 +1340,10 @@ int check_sort( PCell cells, int count )
#endif
return 1;
}
-
+
if (bottom-top >= ras.band_size)
ras.band_shoot++;
-
+
band[1].min = bottom;
band[1].max = middle;
band[0].min = middle;
@@ -1461,10 +1461,10 @@ int check_sort( PCell cells, int count )
long pool_size )
{
PRaster rast = (PRaster)raster;
-
+
if (raster && pool_base && pool_size >= 4096)
init_cells( rast, (char*)pool_base, pool_size );
-
+
rast->band_size = (pool_size / sizeof(TCell))/8;
}
diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
index 29caeeaa8..81438e24d 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -227,9 +227,9 @@
memory = library->memory;
if ( ALLOC( stream, sizeof ( *stream ) ) )
goto Exit;
-
+
stream->memory = memory;
-
+
/* now, look at the stream flags */
if ( args->flags & ft_open_memory )
{
@@ -253,10 +253,10 @@
{
error = FT_Err_Invalid_Argument;
}
-
+
if ( error )
FREE( stream );
-
+
*astream = stream;
Exit:
return error;
@@ -341,7 +341,7 @@
face->generic.finalizer( face );
/* close the stream for this face */
- ft_done_stream( &face->stream );
+ ft_done_stream( &face->stream );
/* get rid of it */
FREE( face );
@@ -394,8 +394,8 @@
* FT_Get_Raster
*
*
- * Return a pointer to the raster corresponding to a given glyph
- * format tag.
+ * Return a pointer to the raster corresponding to a given glyph
+ * format tag.
*
*
* library :: handle to source library object
@@ -408,13 +408,13 @@
* a pointer to the corresponding raster object.
*
*************************************************************************/
-
+
EXPORT_FUNC(FT_Raster) FT_Get_Raster( FT_Library library,
FT_Glyph_Format glyph_format,
FT_Raster_Funcs *raster_funcs )
{
FT_Int n;
-
+
for ( n = 0; n < FT_MAX_GLYPH_FORMATS; n++ )
{
FT_Raster_Funcs* funcs = &library->raster_funcs[n];
@@ -462,18 +462,18 @@
FT_Raster raster;
FT_Error error;
FT_Int n, index;
-
+
if ( glyph_format == ft_glyph_format_none)
return FT_Err_Invalid_Argument;
-
+
/* create a new raster object */
error = raster_funcs->raster_new( library->memory, &raster );
if (error) goto Exit;
-
+
raster_funcs->raster_reset( raster,
library->raster_pool,
library->raster_pool_size );
-
+
index = -1;
for (n = 0; n < FT_MAX_GLYPH_FORMATS; n++)
{
@@ -482,7 +482,7 @@
/* record the first vacant entry in "index" */
if (index < 0 && funcs->glyph_format == ft_glyph_format_none)
index = n;
-
+
/* compare this entry's glyph format with the one we need */
if (funcs->glyph_format == glyph_format)
{
@@ -511,7 +511,7 @@
Fail:
raster_funcs->raster_done( raster );
goto Exit;
- }
+ }
/*************************************************************************/
/* */
@@ -534,8 +534,8 @@
FT_Glyph_Format glyph_format = raster_funcs->glyph_format;
FT_Error error;
FT_Int n;
-
- error = FT_Err_Invalid_Argument;
+
+ error = FT_Err_Invalid_Argument;
if ( glyph_format == ft_glyph_format_none)
goto Exit;
@@ -581,7 +581,7 @@
{
FT_Raster_Funcs funcs;
FT_Raster raster;
-
+
raster = FT_Get_Raster( library, format, &funcs );
if (raster && funcs.raster_set_mode )
return funcs.raster_set_mode( raster, mode, args );
@@ -657,7 +657,7 @@
/* now register the default raster for the `outline' glyph image format */
/* for now, ignore the error... */
error = FT_Set_Raster( library, &ft_default_raster );
-
+
/* That's ok now */
*alibrary = library;
@@ -1133,13 +1133,13 @@
{
FT_Int num_params = 0;
FT_Parameter* params = 0;
-
+
if ( args->flags & ft_open_params )
{
num_params = args->num_params;
params = args->params;
}
-
+
error = open_face( driver, stream, face_index,
num_params, params, &face );
if ( !error )
@@ -1164,13 +1164,13 @@
{
FT_Int num_params = 0;
FT_Parameter* params = 0;
-
+
if ( args->flags & ft_open_params )
{
num_params = args->num_params;
params = args->params;
}
-
+
error = open_face( driver, stream, face_index,
num_params, params, &face );
if ( !error )
@@ -1194,7 +1194,7 @@
goto Fail;
node->data = face;
- /* don't assume driver is the same as face->driver, so use
+ /* don't assume driver is the same as face->driver, so use
face->driver instead. (JvR 3/5/2000) */
FT_List_Add( &face->driver->faces_list, node );
@@ -1283,7 +1283,7 @@
return FT_Attach_Stream( face, &open );
}
-
+
/*************************************************************************/
/* */
/* */
@@ -1315,33 +1315,33 @@
FT_Stream stream;
FT_Error error;
FT_Driver driver;
-
+
FTDriver_getInterface get_interface;
-
+
if ( !face || !face->driver )
return FT_Err_Invalid_Handle;
-
+
driver = face->driver;
error = ft_new_input_stream( driver->library, parameters, &stream );
if (error) goto Exit;
-
+
/* we implement FT_Attach_Stream in each driver through the */
/* "attach_file" interface.. */
error = FT_Err_Unimplemented_Feature;
get_interface = driver->interface.get_interface;
- if (get_interface)
+ if (get_interface)
{
FT_Attach_Reader reader;
-
+
reader = (FT_Attach_Reader)(get_interface( driver, "attach_file" ));
if (reader)
error = reader( face, stream );
}
-
+
/* close the attached stream */
ft_done_stream( &stream );
-
+
Exit:
return error;
}
@@ -1653,7 +1653,7 @@
face->units_per_EM );
}
- error = interface->set_pixel_sizes( face->size,
+ error = interface->set_pixel_sizes( face->size,
pixel_width,
pixel_height );
return error;
@@ -1814,7 +1814,7 @@
return FT_Err_Invalid_Face_Handle;
driver = face->driver;
-
+
/* when the flag NO_RECURSE is set, we disable hinting and scaling */
if (load_flags & FT_LOAD_NO_RECURSE)
load_flags |= FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING;
@@ -1940,7 +1940,7 @@
{
FT_CharMap* cur = face->charmaps;
FT_CharMap* limit = cur + face->num_charmaps;
-
+
for ( ; cur < limit; cur++ )
{
if ( cur[0]->encoding == encoding )
@@ -1979,7 +1979,7 @@
{
FT_CharMap* cur = face->charmaps;
FT_CharMap* limit = cur + face->num_charmaps;
-
+
for ( ; cur < limit; cur++ )
{
if ( cur[0] == charmap )
@@ -2048,26 +2048,26 @@
* You can load any table with a different function.. XXX
*
***************************************************************************/
-
-
+
+
EXPORT_FUNC(void*) FT_Get_Sfnt_Table( FT_Face face,
FT_Sfnt_Tag tag )
{
void* table = 0;
FT_Get_Sfnt_Table_Func func;
FT_Driver driver;
-
+
if (!face || !FT_IS_SFNT(face))
goto Exit;
-
+
driver = face->driver;
func = (FT_Get_Sfnt_Table_Func)driver->interface.get_interface( driver, "get_sfnt" );
if (func)
table = func(face,tag);
-
+
Exit:
return table;
- }
+ }
diff --git a/src/base/ftoutln.c b/src/base/ftoutln.c
index 10befb5a6..e3db124d0 100644
--- a/src/base/ftoutln.c
+++ b/src/base/ftoutln.c
@@ -88,7 +88,7 @@
v_start = outline->points[first];
v_last = outline->points[last];
-
+
v_start.x = SCALED(v_start.x); v_start.y = SCALED(v_start.y);
v_last.x = SCALED(v_last.x); v_last.y = SCALED(v_last.y);
@@ -133,91 +133,91 @@
{
point++;
tags++;
-
+
tag = FT_CURVE_TAG( tags[0] );
switch (tag)
{
case FT_Curve_Tag_On: /* emit a single line_to */
{
FT_Vector vec;
-
+
vec.x = SCALED(point->x);
vec.y = SCALED(point->y);
-
+
error = interface->line_to( &vec, user );
if (error) goto Exit;
continue;
}
-
+
case FT_Curve_Tag_Conic: /* consume conic arcs */
{
v_control.x = SCALED(point->x);
v_control.y = SCALED(point->y);
-
+
Do_Conic:
if (point < limit)
{
FT_Vector vec;
FT_Vector v_middle;
-
+
point++;
tags++;
tag = FT_CURVE_TAG( tags[0] );
-
+
vec.x = SCALED(point->x);
vec.y = SCALED(point->y);
-
+
if (tag == FT_Curve_Tag_On)
{
error = interface->conic_to( &v_control, &vec, user );
if (error) goto Exit;
continue;
}
-
+
if (tag != FT_Curve_Tag_Conic)
goto Invalid_Outline;
-
+
v_middle.x = (v_control.x + vec.x)/2;
v_middle.y = (v_control.y + vec.y)/2;
-
+
error = interface->conic_to( &v_control, &v_middle, user );
if (error) goto Exit;
-
+
v_control = vec;
goto Do_Conic;
}
-
+
error = interface->conic_to( &v_control, &v_start, user );
goto Close;
}
-
+
default: /* FT_Curve_Tag_Cubic */
{
FT_Vector vec1, vec2;
-
+
if ( point+1 > limit ||
FT_CURVE_TAG( tags[1] ) != FT_Curve_Tag_Cubic )
goto Invalid_Outline;
-
+
point += 2;
tags += 2;
-
+
vec1.x = SCALED(point[-2].x); vec1.y = SCALED(point[-2].y);
vec2.x = SCALED(point[-1].x); vec2.y = SCALED(point[-1].y);
if (point <= limit)
{
FT_Vector vec;
-
+
vec.x = SCALED(point->x);
vec.y = SCALED(point->y);
-
+
error = interface->cubic_to( &vec1, &vec2, &vec, user );
if (error) goto Exit;
continue;
}
-
+
error = interface->cubic_to( &vec1, &vec2, &v_start, user );
goto Close;
}
@@ -226,7 +226,7 @@
/* close the contour with a line segment */
error = interface->line_to( &v_start, user );
-
+
Close:
if (error) goto Exit;
first = last+1;
@@ -235,7 +235,7 @@
return 0;
Exit:
return error;
-
+
Invalid_Outline:
return -1;
}
@@ -389,7 +389,7 @@
FT_BBox* cbox )
{
FT_Pos xMin, yMin, xMax, yMax;
-
+
if ( outline && cbox )
{
if ( outline->n_points == 0 )
@@ -428,7 +428,7 @@
}
}
-
+
/*************************************************************************/
/* */
@@ -481,18 +481,18 @@
{
FT_UShort n;
FT_Int first, last;
-
+
first = 0;
for ( n = 0; n < outline->n_contours; n++ )
{
last = outline->contours[n];
-
+
/* reverse point table */
{
FT_Vector* p = outline->points + first;
FT_Vector* q = outline->points + last;
FT_Vector swap;
-
+
while (p < q)
{
swap = *p;
@@ -502,13 +502,13 @@
q--;
}
}
-
+
/* reverse tags table */
{
char* p = outline->tags + first;
char* q = outline->tags + last;
char swap;
-
+
while (p < q)
{
swap = *p;
@@ -518,7 +518,7 @@
q--;
}
}
-
+
first = last+1;
}
outline->flags ^= ft_outline_reverse_fill;
@@ -538,7 +538,7 @@
BASE_FUNC(void) FT_Done_GlyphZone( FT_GlyphZone* zone )
{
FT_Memory memory = zone->memory;
-
+
FREE( zone->contours );
FREE( zone->tags );
FREE( zone->cur );
@@ -547,7 +547,7 @@
zone->max_points = zone->n_points = 0;
zone->max_contours = zone->n_contours = 0;
}
-
+
/*************************************************************************/
/* */
/* */
@@ -581,7 +581,7 @@
MEM_Set( zone, 0, sizeof(*zone) );
zone->memory = memory;
-
+
if ( ALLOC_ARRAY( zone->org, maxPoints*2, FT_F26Dot6 ) ||
ALLOC_ARRAY( zone->cur, maxPoints*2, FT_F26Dot6 ) ||
ALLOC_ARRAY( zone->tags, maxPoints, FT_Byte ) ||
@@ -621,7 +621,7 @@
{
FT_Error error = FT_Err_Ok;
FT_Memory memory = zone->memory;
-
+
newPoints += 2;
if ( zone->max_points < newPoints )
{
@@ -630,16 +630,16 @@
REALLOC_ARRAY( zone->cur, zone->max_points*2, newPoints*2, FT_F26Dot6 ) ||
REALLOC_ARRAY( zone->tags, zone->max_points*2, newPoints, FT_Byte ) )
goto Exit;
-
+
zone->max_points = newPoints;
}
-
+
if ( zone->max_contours < newContours )
{
/* reallocate the contours array */
if ( REALLOC_ARRAY( zone->contours, zone->max_contours, newContours, FT_UShort ) )
goto Exit;
-
+
zone->max_contours = newContours;
}
Exit:
@@ -692,7 +692,7 @@
params.flags = 0;
if (map->pixel_mode == ft_pixel_mode_grays)
params.flags |= ft_raster_flag_aa;
-
+
error = funcs.raster_render( raster, ¶ms );
Exit:
return error;
@@ -732,7 +732,7 @@
EXPORT_FUNC(FT_Error) FT_Outline_Render( FT_Library library,
FT_Outline* outline,
FT_Raster_Params* params )
- {
+ {
FT_Error error;
FT_Raster raster;
FT_Raster_Funcs funcs;
@@ -788,7 +788,7 @@
FT_Outline* target )
{
FT_Int is_owner;
-
+
if ( !source || !target ||
source->n_points != target->n_points ||
source->n_contours != target->n_contours )
@@ -806,7 +806,7 @@
/* copy all flags, except the "ft_outline_owner" one */
is_owner = target->flags & ft_outline_owner;
target->flags = source->flags;
-
+
target->flags &= ~ft_outline_owner;
target->flags |= is_owner;
return FT_Err_Ok;
diff --git a/src/base/ftraster.c b/src/base/ftraster.c
index 93c25aff8..26a9a2b88 100644
--- a/src/base/ftraster.c
+++ b/src/base/ftraster.c
@@ -189,14 +189,14 @@
/** **/
/****************************************************************/
/****************************************************************/
-
+
typedef int Int;
typedef unsigned int UInt;
typedef short Short;
typedef unsigned short UShort, *PUShort;
typedef long Long, *PLong;
typedef unsigned long ULong;
-
+
typedef unsigned char Byte, *PByte;
typedef char Bool;
@@ -204,7 +204,7 @@
{
Long x;
Long y;
-
+
} TPoint;
@@ -213,7 +213,7 @@
Flow_None = 0,
Flow_Up = 1,
Flow_Down = -1
-
+
} TFlow;
@@ -224,7 +224,7 @@
Ascending,
Descending,
Flat
-
+
} TStates;
@@ -257,7 +257,7 @@
{
Short y_min; /* band's minimum */
Short y_max; /* band's maximum */
-
+
} TBand;
@@ -410,7 +410,7 @@
/* in bytes of at least 'gray_width*2' */
#endif /* FT_RASTER_ANTI_ALIASING */
-
+
#if 0
PByte flags; /* current flags table */
PUShort outs; /* current outlines table */
@@ -428,7 +428,7 @@
static TRaster_Instance cur_ras;
#define ras cur_ras
-
+
#else
#define ras (*raster)
@@ -442,7 +442,7 @@
/** **/
/****************************************************************/
/****************************************************************/
-
+
/************************************************************************/
/* */
@@ -1415,7 +1415,7 @@
SWAP_(v_start.x,v_start.y);
SWAP_(v_last.x,v_last.y);
}
-
+
v_control = v_start;
point = points + first;
@@ -1457,14 +1457,14 @@
{
point++;
tags++;
-
+
tag = FT_CURVE_TAG( tags[0] );
switch (tag)
{
case FT_Curve_Tag_On: /* emit a single line_to */
{
Long x, y;
-
+
x = SCALED(point->x);
y = SCALED(point->y);
if (flipped) SWAP_(x,y);
@@ -1473,64 +1473,64 @@
continue;
}
-
+
case FT_Curve_Tag_Conic: /* consume conic arcs */
{
v_control.x = SCALED(point[0].x);
v_control.y = SCALED(point[0].y);
if (flipped) SWAP_(v_control.x,v_control.y);
-
+
Do_Conic:
if (point < limit)
{
FT_Vector v_middle;
Long x, y;
-
+
point++;
tags++;
tag = FT_CURVE_TAG( tags[0] );
-
+
x = SCALED(point[0].x);
y = SCALED(point[0].y);
if (flipped) SWAP_(x,y);
-
+
if (tag == FT_Curve_Tag_On)
{
if (Conic_To( RAS_VARS v_control.x, v_control.y, x, y ))
goto Fail;
continue;
}
-
+
if (tag != FT_Curve_Tag_Conic)
goto Invalid_Outline;
v_middle.x = (v_control.x + x)/2;
v_middle.y = (v_control.y + y)/2;
- if (Conic_To( RAS_VARS v_control.x, v_control.y,
+ if (Conic_To( RAS_VARS v_control.x, v_control.y,
v_middle.x, v_middle.y )) goto Fail;
-
+
v_control.x = x;
v_control.y = y;
goto Do_Conic;
}
-
+
if (Conic_To( RAS_VARS v_control.x, v_control.y,
v_start.x, v_start.y )) goto Fail;
goto Close;
}
-
+
default: /* FT_Curve_Tag_Cubic */
{
Long x1, y1, x2, y2, x3, y3;
-
+
if ( point+1 > limit ||
FT_CURVE_TAG( tags[1] ) != FT_Curve_Tag_Cubic )
goto Invalid_Outline;
-
+
point += 2;
tags += 2;
-
+
x1 = SCALED(point[-2].x);
y1 = SCALED(point[-2].y);
x2 = SCALED(point[-1].x);
@@ -1549,7 +1549,7 @@
goto Fail;
continue;
}
-
+
if (Cubic_To( RAS_VARS x1, y1, x2, y2, v_start.x, v_start.y ))
goto Fail;
goto Close;
@@ -1563,14 +1563,14 @@
Close:
return SUCCESS;
-
+
Invalid_Outline:
ras.error = Raster_Err_Invalid;
-
+
Fail:
return FAILURE;
}
-
+
/****************************************************************************/
/* */
/* Function: Convert_Glyph */
@@ -1650,7 +1650,7 @@
/** **/
/****************************************************************/
/****************************************************************/
-
+
/************************************************/
/* */
@@ -1820,14 +1820,14 @@
static void Vertical_Sweep_Init( RAS_ARGS Short* min, Short* max )
{
Long pitch = ras.target.pitch;
-
+
UNUSED(max);
-
+
ras.traceIncr = (Short)- pitch;
ras.traceOfs = - *min * pitch;
if (pitch > 0)
ras.traceOfs += (ras.target.rows-1)*pitch;
-
+
ras.gray_min_x = 0;
ras.gray_max_x = 0;
}
@@ -2039,7 +2039,7 @@
UNUSED(left);
UNUSED(right);
-
+
if ( x2-x1 < ras.precision )
{
e1 = CEILING( x1 );
@@ -2059,7 +2059,7 @@
p = bits - e1*ras.target.pitch;
if (ras.target.pitch > 0)
p += (ras.target.rows-1)*ras.target.pitch;
-
+
p[0] |= f1;
}
}
@@ -2191,7 +2191,7 @@
static void Vertical_Gray_Sweep_Init( RAS_ARGS Short* min, Short* max )
{
Long pitch, byte_len;
-
+
*min = *min & -2;
*max = ( *max + 3 ) & -2;
@@ -2232,7 +2232,7 @@
Int last_cell = last_pixel >> 2;
Int last_bit = last_pixel & 3;
Bool over = 0;
-
+
if (ras.gray_max_x >= last_cell && last_bit != 3)
{
ras.gray_max_x = last_cell-1;
@@ -2267,7 +2267,7 @@
pix += 4;
c1 --;
}
-
+
if (over)
{
c2 = count[*bit] + count[*bit2];
@@ -2800,7 +2800,7 @@ Scan_DropOuts :
ras.bWidth = ras.gray_width;
pixel_width = 2*((ras.target.width + 3) >> 2);
-
+
if ( ras.bWidth > pixel_width )
ras.bWidth = pixel_width;
@@ -2850,7 +2850,7 @@ Scan_DropOuts :
{
FT_UInt n;
FT_ULong c;
-
+
/* setup count table */
for ( n = 0; n < 256; n++ )
{
@@ -2860,14 +2860,14 @@ Scan_DropOuts :
((c << 4) & 0x0300) |
((c << 2) & 0x0030) |
(c & 0x0003);
-
+
raster->count_table[n] = c;
}
-
+
/* set default 5-levels gray palette */
for ( n = 0; n < 5; n++ )
raster->grays[n] = (n*127/4);
-
+
raster->gray_width = RASTER_GRAY_LINES/2;
}
@@ -2879,7 +2879,7 @@ Scan_DropOuts :
int ft_black_new( void* memory, FT_Raster *araster )
{
static FT_RasterRec_ the_raster;
- *araster = &the_raster;
+ *araster = &the_raster;
memset( &the_raster, sizeof(the_raster), 0 );
ft_black_init( &the_raster );
return 0;
@@ -2901,7 +2901,7 @@ Scan_DropOuts :
{
FT_Error error;
TRaster_Instance* raster;
-
+
*araster = 0;
if ( !ALLOC( raster, sizeof(*raster) ))
{
@@ -2910,17 +2910,17 @@ Scan_DropOuts :
*araster = raster;
}
-
+
return error;
}
-
+
static
void ft_black_done( TRaster_Instance* raster )
{
FT_Memory memory = (FT_Memory)raster->memory;
FREE( raster );
}
-
+
#endif
@@ -2949,8 +2949,8 @@ Scan_DropOuts :
raster->grays[3] = palette[3];
raster->grays[4] = palette[4];
}
- }
-
+ }
+
static
int ft_black_render( TRaster_Instance* raster,
@@ -2958,7 +2958,7 @@ Scan_DropOuts :
{
FT_Outline* outline = (FT_Outline*)params->source;
FT_Bitmap* target_map = params->target;
-
+
if ( !raster || !raster->buff || !raster->sizeBuff )
return Raster_Err_Not_Ini;
@@ -2981,8 +2981,8 @@ Scan_DropOuts :
ras.outline = *outline;
ras.target = *target_map;
-
- return ( params->flags & ft_raster_flag_aa
+
+ return ( params->flags & ft_raster_flag_aa
? Render_Gray_Glyph( raster )
: Render_Glyph( raster ) );
}
diff --git a/src/base/ftstream.c b/src/base/ftstream.c
index d759a43b9..2179ba1b9 100644
--- a/src/base/ftstream.c
+++ b/src/base/ftstream.c
@@ -428,29 +428,29 @@
{
FT_Error error;
FT_Bool frame_accessed = 0;
-
+
if (!fields || !stream)
return FT_Err_Invalid_Argument;
-
+
error = FT_Err_Ok;
do
{
FT_ULong value;
FT_Int sign_shift;
FT_Byte* p;
-
+
switch (fields->value)
{
case ft_frame_start: /* access a new frame */
{
error = FT_Access_Frame( stream, fields->offset );
if (error) goto Exit;
-
+
frame_accessed = 1;
fields++;
continue; /* loop ! */
}
-
+
case ft_frame_byte:
case ft_frame_schar: /* read a single byte */
{
@@ -458,7 +458,7 @@
sign_shift = 24;
break;
}
-
+
case ft_frame_short_be:
case ft_frame_ushort_be: /* read a 2-byte big-endian short */
{
@@ -538,13 +538,13 @@
/* otherwise, exit the loop */
goto Exit;
}
-
+
/* now, compute the signed value is necessary */
if (fields->value & FT_FRAME_OP_SIGNED)
value = (FT_ULong)((FT_Long)(value << sign_shift) >> sign_shift);
-
+
/* finally, store the value in the object */
-
+
p = (FT_Byte*)structure + fields->offset;
switch (fields->size)
{
@@ -553,7 +553,7 @@
case 4: *(FT_ULong*)p = (FT_ULong) value; break;
default: ; /* ignore !! */
}
-
+
/* go to next field */
fields++;
}
@@ -563,7 +563,7 @@
/* close the frame if it was opened by this read */
if (frame_accessed)
FT_Forget_Frame(stream);
-
+
return error;
}
diff --git a/src/base/ftsystem.c b/src/base/ftsystem.c
index e9dae85ea..165b2f112 100644
--- a/src/base/ftsystem.c
+++ b/src/base/ftsystem.c
@@ -6,20 +6,20 @@
*
* This file contains the definition of interface used by FreeType
* to access low-level, i.e. memory management, i/o access as well
- * as thread synchronisation.
+ * as thread synchronisation.
*
*
- * Copyright 1996-1999 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.
- *
+ * Copyright 1996-1999 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
#include
#include
@@ -48,7 +48,7 @@
*
* block :: address of newly allocated block
*
- *
+ *
* Error code. 0 means success.
*
*
@@ -90,7 +90,7 @@
* Error code. 0 means success.
*
*
- * This function is _never_ called when the system flag
+ * This function is _never_ called when the system flag
* FT_SYSTEM_FLAG_NO_REALLOC is set. Instead, the engine will emulate
* realloc through "alloc" and "free".
*
@@ -165,10 +165,10 @@
unsigned long count )
{
FILE* file;
-
+
file = STREAM_FILE(stream);
- fseek( file, offset, SEEK_SET );
+ fseek( file, offset, SEEK_SET );
return (unsigned long)fread( buffer, 1, count, file );
}
@@ -177,18 +177,18 @@
FT_Stream stream )
{
FILE* file;
-
+
file = fopen( filepathname, "rb" );
if (!file)
return FT_Err_Cannot_Open_Resource;
-
+
fseek( file, 0, SEEK_END );
stream->size = ftell(file);
fseek( file, 0, SEEK_SET );
-
+
stream->descriptor.pointer = file;
stream->pos = 0;
-
+
stream->read = ft_io_stream;
stream->close = ft_close_stream;
@@ -199,7 +199,7 @@
EXPORT_FUNC(FT_Memory) FT_New_Memory( void )
{
FT_Memory memory;
-
+
memory = (FT_Memory)malloc( sizeof(*memory) );
if (memory)
{
diff --git a/src/oldapi/truetype.h b/src/oldapi/truetype.h
index fbde46901..e97656e71 100644
--- a/src/oldapi/truetype.h
+++ b/src/oldapi/truetype.h
@@ -19,13 +19,13 @@
*
* 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
+ * 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.
*
* Note:
*
- * This is the only file that should be included by client
+ * This is the only file that should be included by client
* application sources. All other types and functions defined
* in the "tt*.h" files are library internals and should not be
* included.
@@ -115,7 +115,7 @@
struct TT_UnitVector_ /* guess what... */
- {
+ {
TT_F2Dot14 x;
TT_F2Dot14 y;
};
@@ -215,7 +215,7 @@
typedef struct TT_Outline_ TT_Outline;
-
+
/* A structure used to return glyph metrics. */
/* */
/* The "bearingX" isn't called "left-side bearing" anymore because */
@@ -427,7 +427,7 @@
TT_Short metric_Data_Format;
TT_UShort number_Of_HMetrics;
-
+
/* The following fields are not defined by the TrueType specification */
/* but they're used to connect the metrics header to the relevant */
/* "HMTX" or "VMTX" table. */
@@ -463,7 +463,7 @@
TT_Short metric_Data_Format;
TT_UShort number_Of_VMetrics;
-
+
/* The following fields are not defined by the TrueType specification */
/* but they're used to connect the metrics header to the relevant */
/* "HMTX" or "VMTX" table. */
@@ -979,7 +979,7 @@
-
+
/*************************************************************/
/* */
/* TT_SBit_Component */
@@ -1225,7 +1225,7 @@
EXPORT_DEF
TT_Error TT_Set_Raster_Gray_Palette( TT_Engine engine,
const TT_Byte* palette );
-
+
/* ----------------------- face management ----------------------- */
@@ -1450,7 +1450,7 @@
/* Return glyph outline pointers in 'outline'. Note that the returned */
/* pointers are owned by the glyph object, and will be destroyed with */
/* it. The client application should _not_ change the pointers. */
-
+
EXPORT_DEF
TT_Error TT_Get_Glyph_Outline( TT_Glyph glyph,
TT_Outline* outline );
@@ -1580,7 +1580,7 @@
EXPORT_DEF
void TT_Matrix_Multiply( TT_Matrix* a,
TT_Matrix* b );
-
+
/* Invert a transformation matrix. */
@@ -1593,7 +1593,7 @@
EXPORT_DEF
TT_Long TT_MulDiv( TT_Long A, TT_Long B, TT_Long C );
-
+
/* Compute A*B/0x10000 with 64 bits intermediate precision. */
/* Useful to multiply by a 16.16 fixed float value. */
@@ -1697,7 +1697,7 @@
TT_UShort* length ); /* string length
address */
-
+
#ifdef __cplusplus
}
diff --git a/src/oldapi/ttapi.c b/src/oldapi/ttapi.c
index 6367251d6..1d072190e 100644
--- a/src/oldapi/ttapi.c
+++ b/src/oldapi/ttapi.c
@@ -1,6 +1,6 @@
/*******************************************************************
*
- * ttapi.c
+ * ttapi.c
*
* High-level interface implementation
*
@@ -9,7 +9,7 @@
*
* 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
+ * 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.
*
@@ -17,7 +17,7 @@
*
* This file is used to implement most of the functions that are
* defined in the file "freetype.h". However, two functions are
- * implemented elsewhere :
+ * implemented elsewhere :
*
******************************************************************/
@@ -47,7 +47,7 @@
static
const FT_DriverInterface* tt_interface = &tt_driver_interface;
-
+
static
const TT_DriverInterface* tt_extension = &tt_format_interface;
@@ -84,7 +84,7 @@
error = FT_New_System( &system );
if (error) return error;
-
+
error = FT_New_Library( system, &library );
if (!error)
/* Now create a new TrueType driver object */
@@ -163,12 +163,12 @@
EXPORT_FUNC
TT_Error TT_Set_Raster_Gray_Palette( TT_Engine engine,
const TT_Byte* palette )
- {
+ {
FT_Library library;
-
+
if (!engine)
return TT_Err_Invalid_Engine;
-
+
library = (FT_Library)engine;
return FT_Set_Raster_Palette( library, 5, (unsigned char*)palette );
}
@@ -216,13 +216,13 @@
{
TT_Error error;
FT_Resource resource;
-
+
*aface = 0;
-
+
error = FT_New_Resource( library, pathname, &resource );
if (error) return error;
-#if 0
+#if 0
error = FT_Add_Resource( library, resource );
if (error) goto Fail_Install;
#endif
@@ -231,10 +231,10 @@
/* Destroy glyph slot to comply with the 1.x API */
if (!error)
FT_Done_GlyphSlot( (*aface)->root.slot );
-
+
if (error)
FT_Done_Resource(resource);
-
+
return error;
}
@@ -249,7 +249,7 @@
return open_face( (FT_Library)engine, pathname, 0, aface );
}
-
+
/***********************************************************************/
/* */
@@ -318,7 +318,7 @@
TT_Error TT_Close_Face( TT_Face face )
{
FT_Resource resource;
-
+
if (!face)
return TT_Err_Invalid_Face_Handle;
@@ -377,7 +377,7 @@
props->num_Names = face->num_names;
props->header = &face->header;
props->horizontal = &face->horizontal;
-
+
/* The driver supports old Mac fonts where there are no OS/2 */
/* tables present in the file. However, this is not true of */
/* FreeType 1.1. For the sake of backwards compatibility, we */
@@ -390,7 +390,7 @@
/* */
props->os2 = &face->os2;
-
+
props->postscript = &face->postscript;
props->hdmx = &face->hdmx;
props->vertical = ( face->vertical_info ? &face->vertical : 0 );
@@ -508,7 +508,7 @@
/* This function will much probably move to another */
/* component in the short future, but I haven't decided */
/* which yet... */
-
+
static
void get_metrics( TT_HoriHeader* header,
TT_Int index,
@@ -516,10 +516,10 @@
TT_UShort* advance )
{
TT_LongMetrics* longs_m;
-
+
TT_UShort k = header->number_Of_HMetrics;
-
-
+
+
if ( index < k )
{
longs_m = (TT_LongMetrics*)header->long_metrics + index;
@@ -532,7 +532,7 @@
*advance = ((TT_LongMetrics*)header->long_metrics)[k - 1].advance;
}
}
-
+
EXPORT_FUNC
@@ -769,7 +769,7 @@
{
/* The point size is now ignored by the driver */
(void)pointSize;
-
+
return FT_Set_Pixel_Sizes( (FT_Size)ins, pixelWidth, pixelHeight );
}
@@ -814,7 +814,7 @@
metrics->x_ppem = size->root.metrics.x_ppem;
metrics->y_ppem = size->root.metrics.y_ppem;
- metrics->pointSize = size->root.metrics.pointSize;
+ metrics->pointSize = size->root.metrics.pointSize;
return TT_Err_Ok;
}
@@ -936,7 +936,7 @@
(void)instance; /* the parameters are unused, the (void) prevents */
(void)rotated; /* warnings from pedantic compilers.. */
(void)stretched;
-
+
return TT_Err_Ok;
}
@@ -1130,7 +1130,7 @@
metrics->bearingX = slot->metrics.horiBearingX;
metrics->bearingY = slot->metrics.horiBearingY;
metrics->advance = slot->metrics.horiAdvance;
-
+
return TT_Err_Ok;
}
@@ -1182,7 +1182,7 @@
metrics->linearVertAdvance = met2->vertAdvance;
metrics->linearVertBearingY = met2->vertBearingY;
-
+
return TT_Err_Ok;
}
@@ -1441,7 +1441,7 @@
#include /* for malloc and free */
- static TT_Outline null_api_outline = { 0, 0, NULL, NULL, NULL,
+ static TT_Outline null_api_outline = { 0, 0, NULL, NULL, NULL,
0, 0, 0, 0 };
EXPORT_FUNC
@@ -1459,7 +1459,7 @@
outline->points = (TT_Vector*)malloc( numPoints * sizeof(TT_Vector) );
outline->flags = (TT_Byte*) malloc( numPoints * sizeof(TT_Char) );
outline->contours = (TT_UShort*)malloc( numPoints * sizeof(TT_UShort) );
-
+
if ( !outline->points || !outline->flags || !outline->contours )
goto Fail;
@@ -1573,7 +1573,7 @@
TT_Matrix* matrix )
{
FT_Transform_Outline( (FT_Outline*)outline, (FT_Matrix*)matrix );
- }
+ }
/*******************************************************************
*
@@ -1679,7 +1679,7 @@
return FT_MulDiv( A, B, C );
}
-
+
/***********************************************************************/
/* */
/* */
@@ -1910,12 +1910,12 @@
if (!face)
return TT_Err_Invalid_Face_Handle;
-
+
if ( nameIndex >= face->num_names )
return TT_Err_Bad_Argument;
name = face->name_table.names + nameIndex;
-
+
*platformID = name->platformID;
*encodingID = name->encodingID;
*languageID = name->languageID;
@@ -1953,18 +1953,18 @@
TT_UShort* length )
{
TT_NameRec* name;
-
+
if (!face)
return TT_Err_Invalid_Face_Handle;
-
+
if ( nameIndex >= face->num_names )
return TT_Err_Bad_Argument;
name = face->name_table.names + nameIndex;
*stringPtr = (TT_String*)name->string;
- *length = name->stringLength;
-
+ *length = name->stringLength;
+
return TT_Err_Ok;
}
diff --git a/src/otlayout/oltypes.c b/src/otlayout/oltypes.c
index 619b7a1de..bd2fa2204 100644
--- a/src/otlayout/oltypes.c
+++ b/src/otlayout/oltypes.c
@@ -21,23 +21,23 @@
TT_UInt count, max_langs;
TT_Error error;
- /* skip version of the JSTF table */
+ /* skip version of the JSTF table */
if (otl_type == otl_jstf)
start += 4;
-
+
p = start;
-
+
/* we must allocate the script_tags and language_tags arrays */
/* this requires that we compute the maximum number of languages */
/* per script.. */
-
+
count = table->num_scripts = OTL_UShort(p);
max_langs = 0;
for ( ; count > 0; count++ )
{
TT_Byte* script;
TT_UInt num_langs;
-
+
p += 4; /* skip tag */
script = bytes + OTL_UShort(p);
@@ -48,10 +48,10 @@
/* test if there is a default language system */
if ( OTL_UShort(script) )
num_langs++;
-
+
/* test other language systems */
num_langs += OTL_UShort(script); /* add other lang sys */
-
+
if (num_langs > max_langs)
max_langs = num_langs;
}
@@ -65,15 +65,15 @@
table->max_languages = max_langs;
table->num_languages = 0;
table->otl_type = otl_type;
-
+
table->scripts_table = bytes;
table->scripts_len = len;
-
+
/* fill the script_tags array */
{
TT_UInt n;
TT_Byte* p = start + 2; /* skip count */
-
+
for ( n = 0; n < table->num_scripts; n++ )
{
table->script_tags[n] = OTL_ULong(p);
@@ -96,7 +96,7 @@
TT_Error error;
TT_Byte* p = bytes;
TT_UInt count;
-
+
table->max_features = count = OTL_UShort(p);
if ( !ALLOC_ARRAY( table->feature_tags, count, TT_ULong ) &&
!ALLOC_ARRAY( table->features, count, TT_Bool ) )
@@ -104,7 +104,7 @@
table->features_table = bytes;
table->features_len = len;
}
- return error;
+ return error;
}
@@ -118,14 +118,14 @@
TT_Error error;
TT_Byte* p = bytes;
TT_UInt count;
-
+
table->max_lookups = count = OTL_UShort(p);
if ( !ALLOC_ARRAY( table->lookups, count, TT_Bool ) )
{
table->lookups_table = bytes;
table->lookups_len = len;
}
- return error;
+ return error;
}
/* discard table arrays */
@@ -149,12 +149,12 @@
TT_Byte* p;
TT_Byte* script = 0;
TT_Byte* start = table->scripts_table;
-
+
if ( table->otl_type == otl_type_jstf ) /* skip version for JSTF */
start += 4;
-
+
p = start + 6; /* skip count+first tag */
-
+
for ( n = 0; n < table->num_scripts; n++, p += 6 )
{
if ( table->script_tags[n] == script_tag )
@@ -163,7 +163,7 @@
break;
}
}
-
+
table->cur_script = script;
if (!script)
table->num_languages = 0;
@@ -173,31 +173,31 @@
/* not that we put a '0' tag in front of the list to indicate that */
/* there is a default language for this script.. */
TT_ULong* tags = table->language_tags;
-
+
switch (table->otl_type)
{
case otl_type_base:
case otl_type_jstf:
script += 2; /* skip basevalue or extenders */
/* fall-through */
-
+
default:
if ( OTL_UShort(script) )
*tags++ = 0;
}
-
+
count = OTL_UShort(script);
for ( ; count > 0; count-- )
{
*tags++ = OTL_ULong(script);
script += 2; /* skip offset */
}
-
+
table->num_langs = tags - table->language_tags;
}
}
-
+
/* return the list of available features for the current script/language */
/* use with a GPOS or GSUB script table */
LOCAL_FUNC
@@ -218,14 +218,14 @@
{
offset = OTL_UShort(script);
if (!offset) return; /* if there is no default language, exit */
-
+
language = script - 2 + offset;
}
else
{
TT_Byte* p = script + 8; /* skip default+count+1st tag */
TT_UShort index;
-
+
for ( n = 0; n < table->num_languages; n++, p+=6 )
{
if ( table->language_tags[n] == language_tag )
@@ -235,9 +235,9 @@
}
}
- table->cur_language = language;
+ table->cur_language = language;
if (!language) return;
-
+
p = language + 2; /* skip lookup order */
index = OTL_UShort(p); /* required feature index */
if (index != 0xFFFF)
@@ -245,7 +245,7 @@
if (index < table->max_features)
table->features[index] = 1;
}
-
+
count = OTL_UShort(p);
for ( ; count > 0; count-- )
{
@@ -265,11 +265,11 @@
TT_UInt n;
TT_Byte* features = table->features_table;
TT_Byte* p = features + 6; /* skip count+1st tag */
-
+
/* clear lookup list */
for ( n = 0; n < table->max_lookups; n++ )
table->lookups[n] = 0;
-
+
/* now, parse the features list */
for ( n = 0; n < table->features; n++ )
{
@@ -278,10 +278,10 @@
TT_UInt count;
TT_UShort index;
TT_Byte* feature;
-
+
feature = features + OTL_UShort(p);
p += 4; /* skip tag */
-
+
/* now, select all lookups from this feature */
count = OTL_UShort(feature);
for ( ; count > 0; count-- )
@@ -293,9 +293,9 @@
}
}
}
-
- /* find the basevalues and minmax for the current script/language */
+
+ /* find the basevalues and minmax for the current script/language */
/* only use it with a BASE table.. */
LOCAL_FUNC
void OTL_Get_Baseline_Values( OTL_Table* table,
@@ -307,12 +307,12 @@
table->cur_basevalues = 0;
table->cur_minmax = 0;
-
- /* read basevalues */
+
+ /* read basevalues */
offset = OTL_UShort(p);
if (offset)
table->cur_basevalues = script + offset;
-
+
offset = OTL_UShort(p);
if (offset)
table->cur_minmax = script + offset;
@@ -321,7 +321,7 @@
for ( ; count > 0; count-- )
{
TT_ULong tag;
-
+
tag = OTL_ULong(p);
if ( language_tag == tag )
{
@@ -341,7 +341,7 @@
TT_Long result = -1;
TT_UInt count, index, start, end;
TT_Byte* p = coverage;
-
+
switch ( OTL_UShort(p) )
{
case 1: /* coverage format 1 - array of glyph indices */
@@ -357,7 +357,7 @@
}
}
break;
-
+
case 2:
{
count = OTL_UShort(p);
@@ -387,14 +387,14 @@
TT_Byte* p = class_def;
TT_UInt result = 0;
TT_UInt start, end, count, index;
-
+
switch ( OTL_UShort(p) )
{
case 1:
{
start = OTL_UShort(p);
count = OTL_UShort(p);
-
+
glyph_id -= start;
if (glyph_id < count)
{
@@ -403,7 +403,7 @@
}
}
break;
-
+
case 2:
{
count = OTL_UShort(p);
@@ -434,7 +434,7 @@
TT_Int result = 0;
TT_UInt start, end;
TT_Short value;
-
+
start = OTL_UShort(p);
end = OTL_UShort(p);
if (size >= start && size <= end)
@@ -442,7 +442,7 @@
/* I know we could do all of this without a switch, with */
/* clever shifts and everything, but it makes the code */
/* really difficult to understand.. */
-
+
size -= start;
switch ( OTL_UShort(p) )
{
@@ -454,7 +454,7 @@
result = value >> 14;
}
break;
-
+
case 2: /* 4-bits per value */
{
p += 2*(size >> 2);
@@ -463,7 +463,7 @@
result = value >> 12;
}
break;
-
+
case 3: /* 8-bits per value */
{
p += 2*(size >> 1);
@@ -476,7 +476,7 @@
}
return result;
}
-
+
/* extract a BaseCoord value */
LOCAL_FUNC
void OTL_Get_Base_Coordinate( TT_Byte* base_coord,
@@ -484,7 +484,7 @@
{
TT_Byte* p = base_coord;
TT_Int result = 0;
-
+
coord->format = OTL_UShort(p);
coord->coordinate = OTL_Short(p);
coord->device = 0;
@@ -495,13 +495,13 @@
coord->ref_glyph = OTL_UShort(p);
coord->ref_point = OTL_UShort(p);
break;
-
+
case 3: /* format 3 */
coord->device = p - 4 + OTL_UShort(p);
break;
default:
- ;
+ ;
}
}
@@ -514,13 +514,13 @@
/* each bit in the value format corresponds to a single ushort */
/* we thus count the bits, and multiply the result by 2 */
-
+
count = (TT_Int)(format & 0xFF);
count = ((count & 0xAA) >> 1) + (count & 0x55);
count = ((count & 0xCC) >> 2) + (count & 0x33);
count = ((count & 0xF0) >> 4) + (count & 0x0F);
- return count*2;
+ return count*2;
}
@@ -533,28 +533,28 @@
OTL_ValueRecord* record )
{
TT_Byte* p = value_record;
-
+
/* clear vectors */
record->placement.x = 0;
record->placement.y = 0;
record->advance.x = 0;
record->advance.y = 0;
-
+
record->device_pla_x = 0;
record->device_pla_y = 0;
record->device_adv_x = 0;
record->device_adv_y = 0;
-
+
if (value_format & 1) record->placement.x = NEXT_Short(p);
if (value_format & 2) record->placement.y = NEXT_Short(p);
if (value_format & 4) record->advance.x = NEXT_Short(p);
if (value_format & 8) record->advance.y = NEXT_Short(p);
-
+
if (value_format & 16) record->device_pla_x = pos_table + NEXT_UShort(p);
if (value_format & 32) record->device_pla_y = pos_table + NEXT_UShort(p);
if (value_format & 64) record->device_adv_x = pos_table + NEXT_UShort(p);
if (value_format & 128) record->device_adv_y = pos_table + NEXT_UShort(p);
- }
+ }
@@ -564,32 +564,32 @@
OTL_Anchor* anchor )
{
TT_Byte* p = anchor_table;
-
+
anchor->format = NEXT_UShort(p);
anchor->coord.x = NEXT_Short(p);
anchor->coord.y = NEXT_Short(p);
anchor->point = 0;
anchor->device_x = 0;
anchor->device_y = 0;
-
+
switch (anchor->format)
{
case 2:
anchor->point = NEXT_UShort(p);
break;
-
+
case 3:
anchor->device_x = anchor_table + NEXT_UShort(p);
anchor->device_y = anchor_table + NEXT_UShort(p);
break;
-
+
default:
;
}
}
-
+
/* extract Mark from MarkArray */
LOCAL_FUNC
void OTL_Get_Mark( TT_Byte* mark_array,
@@ -599,10 +599,10 @@
{
TT_Byte* p = mark_array;
TT_UInt count;
-
+
*clazz = 0;
MEM_Set( anchor, 0, sizeof(*anchor) );
-
+
count = NEXT_UShort(p);
if (index < count)
{
diff --git a/src/otlayout/oltypes.h b/src/otlayout/oltypes.h
index dc92908f9..b4a4d802e 100644
--- a/src/otlayout/oltypes.h
+++ b/src/otlayout/oltypes.h
@@ -25,7 +25,7 @@
* max_features :: total number of features in table
* feature_tags :: tags of all features for current script/language
* features :: selection flags for all features in current script/lang
- *
+ *
* max_lookups :: total number of lookups in table
* lookups :: selection flags for all lookups for current
* feature list.
@@ -40,17 +40,17 @@
otl_type_gpos,
otl_type_gsub,
otl_type_jstf
-
+
} OTL_Type;
-
-
+
+
typedef struct OTL_Table_
{
FT_Memory memory;
TT_Int num_scripts;
TT_Tag* script_tags;
-
+
TT_Int max_languages;
TT_Int num_languages;
TT_Tag* language_tags;
@@ -61,19 +61,19 @@
TT_Int max_lookups;
TT_Bool* lookups;
-
+
TT_Byte* scripts_table;
TT_Long scripts_len;
-
+
TT_Byte* features_table;
TT_Long* features_len;
-
+
TT_Byte* lookups_table;
TT_Byte* lookups_len;
TT_Byte* cur_script; /* current script */
TT_Byte* cur_language; /* current language */
-
+
TT_Byte* cur_base_values;
TT_Byte* cur_min_max;
@@ -89,7 +89,7 @@
TT_UShort ref_glyph;
TT_UShort ref_point;
TT_Byte* device;
-
+
} OTL_BaseCoord;
@@ -102,7 +102,7 @@
TT_Byte* device_pla_y;
TT_Byte* device_adv_x;
TT_Byte* device_adv_y;
-
+
} OTL_ValueRecord;
@@ -113,7 +113,7 @@
TT_UInt anchor_point;
TT_Byte* device_x;
TT_Byte* device_y;
-
+
} OTL_Anchor;
LOCAL_DEF
@@ -153,7 +153,7 @@
* table->num_scripts is the number of scripts
*
*/
-
+
/********************************************************
*
* - after calling OTL_Table_Set_Features:
@@ -169,7 +169,7 @@
* it is empty (zero-filled) by default.
*
*/
-
+
/*******************************************************************
*
* - after calling OTL_Get_Languages_List(script_tag):
@@ -217,7 +217,7 @@
LOCAL_DEF
void OTL_Get_Justification( OTL_Table* table,
TT_ULong language_tag );
-
+
/*******************************************************************
*
* - after calling OTL_Get_Lookups_List():
diff --git a/src/psnames/psdriver.c b/src/psnames/psdriver.c
index 78283b7a8..0e532f41d 100644
--- a/src/psnames/psdriver.c
+++ b/src/psnames/psdriver.c
@@ -20,7 +20,7 @@
FT_Int n;
char first = glyph_name[0];
char temp[64];
-
+
/* if the name begins with "uni", then the glyph name may be a */
/* hard-coded unicode character code.. */
if ( glyph_name[0] == 'u' &&
@@ -36,7 +36,7 @@
{
char c = *p;
unsigned char d;
-
+
d = (unsigned char)c-'0';
if (d >= 10)
{
@@ -49,7 +49,7 @@
/* exit if one non-uppercase-hexadecimal character was found */
if (d >= 16)
break;
-
+
value = (value << 4) + d;
if (count == 0)
return value;
@@ -61,11 +61,11 @@
{
const char* p;
int len;
-
+
p = glyph_name;
while ( *p && *p != '.' ) p++;
len = p-glyph_name;
-
+
if ( *p && len < 64 )
{
strncpy( temp, glyph_name, len );
@@ -73,12 +73,12 @@
glyph_name = temp;
}
}
-
+
/* now, lookup the glyph in the Adobe Glyph List */
for ( n = 0; n < NUM_ADOBE_GLYPHS; n++ )
{
const char* name = t1_standard_glyphs[n];
-
+
if ( first == name[0] && strcmp( glyph_name, name ) == 0 )
return names_to_unicode[n];
}
@@ -86,14 +86,14 @@
return 0;
}
-
+
/* qsort callback to sort the unicode map */
static
int compare_uni_maps( const void* a, const void* b )
{
PS_UniMap* map1 = (PS_UniMap*)a;
PS_UniMap* map2 = (PS_UniMap*)b;
-
+
return ( map1->unicode < map2->unicode ? -1 :
map1->unicode > map2->unicode ? 1 : 0 );
}
@@ -107,18 +107,18 @@
PS_Unicodes *table )
{
FT_Error error;
-
+
/* we first allocate the table */
table->num_maps = 0;
table->maps = 0;
-
+
if ( !ALLOC_ARRAY( table->maps, num_glyphs, PS_UniMap ) )
{
FT_UInt n;
FT_UInt count;
PS_UniMap* map;
FT_ULong uni_char;
-
+
map = table->maps;
for ( n = 0; n < num_glyphs; n++ )
{
@@ -143,7 +143,7 @@
{
count = 0;
}
-
+
if (count == 0)
{
FREE( table->maps );
@@ -167,23 +167,23 @@
/* perform a binary search on the table */
min = table->maps;
max = min + table->num_maps - 1;
-
+
while (min <= max)
{
mid = min + (max-min)/2;
if ( mid->unicode == unicode )
return mid->glyph_index;
-
+
if (min == max)
break;
-
+
if ( mid->unicode < unicode ) min = mid+1;
else max = mid-1;
}
return 0xFFFF;
}
-
+
#endif
static
@@ -191,17 +191,17 @@
{
if (name_index >= 258)
name_index = 0;
-
+
return standard_glyph_names[ mac_standard_names[name_index] ];
}
-
+
static
const char* PS_Standard_Strings( FT_UInt sid )
{
return (sid < NUM_STD_GLYPHS ? t1_standard_glyphs[sid] : 0);
}
-
+
static const PSNames_Interface psnames_interface =
{
#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
@@ -216,11 +216,11 @@
(PS_Macintosh_Name_Func) PS_Macintosh_Name,
(PS_Adobe_Std_Strings_Func) PS_Standard_Strings,
-
+
t1_standard_encoding,
t1_expert_encoding
};
-
+
const FT_DriverInterface psnames_driver_interface =
{
diff --git a/src/psnames/rules.mk b/src/psnames/rules.mk
index a97797b3a..af226b728 100644
--- a/src/psnames/rules.mk
+++ b/src/psnames/rules.mk
@@ -29,7 +29,7 @@ ifndef PSNAMES_INCLUDE
# compilation flags for the driver
#
PSNAMES_CFLAGS := $(PSNAMES_INCLUDE:%=$I%)
- PSNAMES_COMPILE := $(FT_COMPILE) $(PSNAMES_CFLAGS)
+ PSNAMES_COMPILE := $(FT_COMPILE) $(PSNAMES_CFLAGS)
# driver sources (i.e., C files)
diff --git a/src/sfnt/rules.mk b/src/sfnt/rules.mk
index 31f7a8dc0..0969c350f 100644
--- a/src/sfnt/rules.mk
+++ b/src/sfnt/rules.mk
@@ -29,7 +29,7 @@ ifndef SFNT_INCLUDE
# compilation flags for the driver
#
SFNT_CFLAGS := $(SFNT_INCLUDE:%=$I%)
- SFNT_COMPILE := $(FT_COMPILE) $(SFNT_CFLAGS)
+ SFNT_COMPILE := $(FT_COMPILE) $(SFNT_CFLAGS)
# driver sources (i.e., C files)
diff --git a/src/sfnt/sfdriver.c b/src/sfnt/sfdriver.c
index 8fe6609e9..23682c445 100644
--- a/src/sfnt/sfdriver.c
+++ b/src/sfnt/sfdriver.c
@@ -8,7 +8,7 @@
static const SFNT_Interface sfnt_interface =
{
TT_Goto_Table,
-
+
TT_Load_Any,
TT_Load_Format_Tag,
TT_Load_Directory,
@@ -38,22 +38,22 @@
0,
0,
0,
-#endif
-
+#endif
+
/* see `ttpost.h' */
-#ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES
+#ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES
TT_Get_PS_Name,
- TT_Free_Post_Names,
+ TT_Free_Post_Names,
#else
0,
0,
-#endif
+#endif
/* see `ttcmap.h' */
TT_CharMap_Load,
TT_CharMap_Free,
};
-
+
const FT_DriverInterface sfnt_driver_interface =
{
diff --git a/src/sfnt/ttcmap.c b/src/sfnt/ttcmap.c
index 32604e0b1..08bee1258 100644
--- a/src/sfnt/ttcmap.c
+++ b/src/sfnt/ttcmap.c
@@ -30,7 +30,7 @@
static TT_UInt code_to_index0( TT_CMapTable* charmap, TT_ULong char_code );
static TT_UInt code_to_index2( TT_CMapTable* charmap, TT_ULong char_code );
static TT_UInt code_to_index4( TT_CMapTable* charmap, TT_ULong char_code );
- static TT_UInt code_to_index6( TT_CMapTable* charmap, TT_ULong char_code );
+ static TT_UInt code_to_index6( TT_CMapTable* charmap, TT_ULong char_code );
/*************************************************************************/
/* */
@@ -152,7 +152,7 @@
cmap2->glyphIdArray[i] = GET_UShort();
FORGET_Frame();
-
+
cmap->get_index = code_to_index2;
break;
@@ -212,7 +212,7 @@
cmap4->glyphIdArray[i] = GET_UShort();
FORGET_Frame();
-
+
cmap->get_index = code_to_index4;
break;
@@ -338,7 +338,7 @@
TT_ULong charCode )
{
TT_CMap0* cmap0 = &cmap->c.cmap0;
-
+
return ( charCode <= 0xFF ? cmap0->glyphIdArray[charCode] : 0 );
}
diff --git a/src/sfnt/ttload.c b/src/sfnt/ttload.c
index b2a678c91..c764d28d0 100644
--- a/src/sfnt/ttload.c
+++ b/src/sfnt/ttload.c
@@ -56,7 +56,7 @@
{
TT_Table* entry;
TT_Table* limit;
-
+
FT_TRACE4(( "TT_LookUp_Table( %08lx, %c%c%c%c )\n",
(TT_Long)face,
(TT_Char)(tag >> 24),
@@ -70,7 +70,7 @@
{
if ( entry->Tag == tag )
return entry;
- }
+ }
FT_TRACE4(( " Could not find table!\n" ));
return 0;
}
@@ -99,18 +99,18 @@
{
TT_Table* table;
TT_Error error;
-
+
table = TT_LookUp_Table( face, tag );
if (table)
{
if (length)
*length = table->Length;
-
+
(void)FILE_Seek( table->Offset );
}
else
error = TT_Err_Table_Missing;
-
+
return error;
}
@@ -147,7 +147,7 @@
{
TT_Error error;
FT_Memory memory = stream->memory;
-
+
#ifdef READ_FIELDS
const FT_Frame_Field ttc_header_fields[] = {
FT_FRAME_START(8), /* frame of 8 bytes */
@@ -173,9 +173,9 @@
if ( *format_tag == TTAG_ttcf )
{
TT_Int n;
-
+
FT_TRACE4(( "TT_Load_Format_Tag: file is a collection\n" ));
-
+
/* it's a TrueType collection, i.e. a file containing several */
/* font files. Read the font directory now */
/* */
@@ -183,7 +183,7 @@
if ( READ_Fields( ttc_header_fields, &face->ttc_header ) )
goto Exit;
#else
- if ( ACCESS_Frame( 8 ) ) goto Exit;
+ if ( ACCESS_Frame( 8 ) ) goto Exit;
face->ttc_header.version = GET_Long();
face->ttc_header.DirCount = GET_Long();
@@ -209,12 +209,12 @@
{
error = TT_Err_Bad_Argument;
goto Exit;
- }
-
+ }
+
/* if we're checking the font format, exit immediately */
if (faceIndex < 0)
goto Exit;
-
+
/* seek to the appropriate TrueType file, then read tag */
if ( FILE_Seek( face->ttc_header.TableDirectory[faceIndex] ) ||
READ_Long( *format_tag ) )
@@ -544,7 +544,7 @@
FT_FRAME_USHORT( TT_MaxProfile, numGlyphs ),
FT_FRAME_USHORT( TT_MaxProfile, maxPoints ),
FT_FRAME_USHORT( TT_MaxProfile, maxContours ),
- FT_FRAME_USHORT( TT_MaxProfile, maxCompositePoints ),
+ FT_FRAME_USHORT( TT_MaxProfile, maxCompositePoints ),
FT_FRAME_USHORT( TT_MaxProfile, maxCompositeContours ),
FT_FRAME_USHORT( TT_MaxProfile, maxZones ),
FT_FRAME_USHORT( TT_MaxProfile, maxTwilightPoints ),
@@ -998,17 +998,17 @@
FILE_Read_At( table_pos + names->storageOffset,
(void*)names->storage, storageSize ) )
goto Exit;
-
+
/* Go through and assign the string pointers to the name records. */
{
TT_NameRec* cur = names->names;
TT_NameRec* limit = cur + names->numNameRecords;
-
+
for ( ; cur < limit; cur++ )
cur->string = names->storage + cur->stringOffset;
}
-#ifdef FT_DEBUG_LEVEL_TRACE
+#ifdef FT_DEBUG_LEVEL_TRACE
/* Print Name Record Table in case of debugging */
{
TT_NameRec* cur = names->names;
@@ -1017,20 +1017,20 @@
for ( ; cur < limit; cur++ )
{
TT_UInt j;
-
+
FT_TRACE2(( "%d %d %x %d ",
cur->platformID,
cur->encodingID,
cur->languageID,
cur->nameID ));
-
+
/* I know that M$ encoded strings are Unicode, */
/* but this works reasonable well for debugging purposes. */
if ( cur->string )
for ( j = 0; j < cur->stringLength; j++ )
{
TT_Char c = *(cur->string + j);
-
+
if ( (TT_Byte)c < 128 )
FT_TRACE2(( "%c", c ));
}
@@ -1165,12 +1165,12 @@
cmap->offset = (TT_ULong)GET_Long();
}
FORGET_Frame();
-
+
/* now read the rest of each table */
for ( charmap = face->charmaps; charmap < limit; charmap++ )
{
TT_CMapTable* cmap = &charmap->cmap;
-
+
#ifdef READ_FIELDS
if ( FILE_Seek( table_start + (TT_Long)cmap->offset ) ||
READ_Fields( cmap_rec_fields, cmap ) )
@@ -1179,11 +1179,11 @@
if ( FILE_Seek( table_start + (TT_Long)cmap->offset ) ||
ACCESS_Frame(6L) )
goto Exit;
-
+
cmap->format = GET_UShort();
cmap->length = GET_UShort();
cmap->version = GET_UShort();
-
+
FORGET_Frame();
#endif
cmap->offset = FILE_Pos();
@@ -1264,7 +1264,7 @@
FT_FRAME_USHORT( TT_OS2, usWinAscent ),
FT_FRAME_USHORT( TT_OS2, usWinDescent ),
FT_FRAME_END };
-
+
const FT_Frame_Field os2_fields_extra[] = {
FT_FRAME_START(8),
FT_FRAME_ULONG( TT_OS2, ulCodePageRange1 ),
@@ -1579,7 +1579,7 @@
coverage = GET_UShort();
FORGET_Frame();
-
+
if ( coverage == 0x0001 )
{
TT_UInt num_pairs;
@@ -1615,7 +1615,7 @@
face->kern_table_index = n;
goto Exit;
}
-
+
if ( FILE_Skip( length ) )
goto Exit;
}
@@ -1646,7 +1646,7 @@
/* TrueType error code. 0 means success. */
/* */
LOCAL_FUNC
- TT_Error TT_Load_Hdmx( TT_Face face,
+ TT_Error TT_Load_Hdmx( TT_Face face,
FT_Stream stream )
{
TT_Error error;
@@ -1692,11 +1692,11 @@
if ( READ_Byte( cur->ppem ) ||
READ_Byte( cur->max_width ) )
goto Exit;
-
+
if ( ALLOC( cur->widths, num_glyphs ) ||
FILE_Read( cur->widths, num_glyphs ) )
goto Exit;
-
+
/* skip padding bytes */
if ( record_size > 0 && FILE_Skip(record_size) )
goto Exit;
diff --git a/src/sfnt/ttsbit.c b/src/sfnt/ttsbit.c
index 7eeac202d..57cf6a581 100644
--- a/src/sfnt/ttsbit.c
+++ b/src/sfnt/ttsbit.c
@@ -75,7 +75,7 @@
/* first of all, compute starting write position */
line_incr = target->pitch;
line_buff = target->buffer;
-
+
if (line_incr < 0)
line_buff -= line_incr*(target->rows-1);
@@ -354,7 +354,7 @@
range->glyph_codes[n] = GET_UShort();
if (load_offsets)
- range->glyph_offsets[n] = (TT_ULong)range->image_offset +
+ range->glyph_offsets[n] = (TT_ULong)range->image_offset +
GET_UShort();
}
@@ -1226,19 +1226,19 @@
switch ( strike->bit_depth )
{
case 1:
- map->pixel_mode = ft_pixel_mode_mono;
+ map->pixel_mode = ft_pixel_mode_mono;
map->pitch = (map->width+7) >> 3;
break;
case 2:
- map->pixel_mode = ft_pixel_mode_pal2;
+ map->pixel_mode = ft_pixel_mode_pal2;
map->pitch = (map->width+3) >> 2;
break;
case 4:
- map->pixel_mode = ft_pixel_mode_pal4;
+ map->pixel_mode = ft_pixel_mode_pal4;
map->pitch = (map->width+1) >> 1;
break;
case 8:
- map->pixel_mode = ft_pixel_mode_grays;
+ map->pixel_mode = ft_pixel_mode_grays;
map->pitch = map->width;
break;
@@ -1399,13 +1399,13 @@
/* the font file */
error = face->goto_table( face, TTAG_EBDT, stream, 0 );
if (error) goto Exit;
-
+
ebdt_pos = FILE_Pos();
/* clear the bitmap & load the bitmap */
if (face->root.glyph->flags & ft_glyph_own_bitmap)
FREE( map->buffer );
-
+
map->rows = map->pitch = map->width = 0;
error = Load_SBit_Image( strike, range, ebdt_pos, glyph_offset,
@@ -1415,7 +1415,7 @@
/* the glyph slot owns this bitmap buffer */
face->root.glyph->flags |= ft_glyph_own_bitmap;
-
+
/* setup vertical metrics if needed */
if ( strike->flags & 1 )
{
diff --git a/src/truetype/rules.mk b/src/truetype/rules.mk
index 8ed78a788..bfb1f5efc 100644
--- a/src/truetype/rules.mk
+++ b/src/truetype/rules.mk
@@ -38,7 +38,7 @@ TT_INCLUDE := $(SFNT_INCLUDE) $(TT_DIR) $(TT_EXT_DIR)
# compilation flags for the driver
#
TT_CFLAGS := $(TT_INCLUDE:%=$I%)
-TT_COMPILE := $(FT_COMPILE) $(TT_CFLAGS)
+TT_COMPILE := $(FT_COMPILE) $(TT_CFLAGS)
# driver sources (i.e., C files)
diff --git a/src/truetype/ttdriver.c b/src/truetype/ttdriver.c
index 091a3700d..9137758ba 100644
--- a/src/truetype/ttdriver.c
+++ b/src/truetype/ttdriver.c
@@ -49,7 +49,7 @@
* find_encoding
*
*
- * return the FT_Encoding corresponding to a given
+ * return the FT_Encoding corresponding to a given
* (platform_id,encoding_id) pair, as found in TrueType charmaps
*
*
@@ -60,7 +60,7 @@
* the corresponding FT_Encoding tag. ft_encoding_none by default
*
*****************************************************************/
-
+
static
FT_Encoding find_encoding( int platform_id,
int encoding_id )
@@ -70,28 +70,28 @@
int platform_id;
int encoding_id;
FT_Encoding encoding;
-
+
} TEncoding;
static
const TEncoding tt_encodings[] =
{
{ TT_PLATFORM_ISO, -1, ft_encoding_unicode },
-
+
{ TT_PLATFORM_APPLE_UNICODE, -1, ft_encoding_unicode },
-
+
{ TT_PLATFORM_MACINTOSH, TT_MAC_ID_ROMAN, ft_encoding_apple_roman },
-
+
{ TT_PLATFORM_MICROSOFT, TT_MS_ID_UNICODE_CS, ft_encoding_unicode },
{ TT_PLATFORM_MICROSOFT, TT_MS_ID_SJIS, ft_encoding_sjis },
{ TT_PLATFORM_MICROSOFT, TT_MS_ID_BIG_5, ft_encoding_big5 }
};
-
+
const TEncoding *cur, *limit;
-
+
cur = tt_encodings;
limit = cur + sizeof(tt_encodings)/sizeof(tt_encodings[0]);
-
+
for ( ; cur < limit; cur++ )
{
if (cur->platform_id == platform_id)
@@ -235,7 +235,7 @@
/* now, set root->charmap with a unicode charmap wherever available */
if (!root->charmap && charmap->root.encoding == ft_encoding_unicode)
root->charmap = (FT_CharMap)charmap;
-
+
root->charmaps[n] = (FT_CharMap)charmap;
}
@@ -443,7 +443,7 @@
metrics->x_ppem = (TT_UShort)(dim_x >> 6);
metrics->y_ppem = (TT_UShort)(dim_y >> 6);
}
-
+
size->ttmetrics.valid = FALSE;
return TT_Reset_Size( size );
@@ -593,7 +593,7 @@
TT_Error error;
TT_Face face;
TT_CMapTable* cmap;
-
+
cmap = &charmap->cmap;
face = (TT_Face)charmap->root.face;
@@ -601,7 +601,7 @@
if ( !cmap->loaded )
{
SFNT_Interface* sfnt = (SFNT_Interface*)face->sfnt;
-
+
error = sfnt->load_charmap( face, cmap, face->root.stream );
if (error)
return error;
@@ -620,7 +620,7 @@
void* tt_get_sfnt_table( TT_Face face, FT_Sfnt_Tag tag )
{
void* table;
-
+
switch (tag)
{
case ft_sfnt_head: table = &face->header; break;
@@ -629,7 +629,7 @@
case ft_sfnt_os2: table = (face->os2.version == 0xFFFF ? 0 : &face->os2 ); break;
case ft_sfnt_post: table = &face->postscript; break;
case ft_sfnt_maxp: table = &face->max_profile; break;
-
+
default:
table = 0;
}
@@ -641,10 +641,10 @@
FTDriver_Interface tt_get_interface( TT_Driver driver, const char* interface )
{
UNUSED(driver);
-
+
if (strcmp(interface,"get_sfnt")==0)
return (FTDriver_Interface)tt_get_sfnt_table;
-
+
return 0;
}
diff --git a/src/truetype/ttgload.c b/src/truetype/ttgload.c
index bd66e8f2d..2413066cd 100644
--- a/src/truetype/ttgload.c
+++ b/src/truetype/ttgload.c
@@ -198,10 +198,10 @@
TT_UShort n_ins;
TT_Int n, n_points;
-
+
/*********************************************************************/
/* simple check */
-
+
if ( n_contours > load->left_contours )
{
FT_TRACE0(( "ERROR: Glyph index %ld has %d contours > left %d\n",
@@ -216,7 +216,7 @@
/*********************************************************************/
/* reading the contours endpoints */
-
+
if ( ACCESS_Frame( byte_count ) )
return error;
@@ -230,7 +230,7 @@
/*********************************************************************/
/* reading the bytecode instructions */
-
+
n_ins = GET_UShort();
load->face->root.glyph->control_len = n_ins;
@@ -269,15 +269,15 @@
#endif
stream->cursor += n_ins;
-
+
/*********************************************************************/
/* reading the point tags */
- {
+ {
TT_Byte* flag = load->zone.tags;
TT_Byte* limit = flag + n_points;
TT_Byte c, count;
-
+
for (; flag < limit; flag++)
{
*flag = c = GET_Byte();
@@ -291,17 +291,17 @@
/*********************************************************************/
/* reading the X coordinates */
-
+
{
TT_Vector* vec = zone->org;
TT_Vector* limit = vec + n_points;
TT_Byte* flag = zone->tags;
TT_Pos x = 0;
-
+
for ( ; vec < limit; vec++, flag++ )
{
TT_Pos y = 0;
-
+
if ( *flag & 2 )
{
y = GET_Byte();
@@ -309,7 +309,7 @@
}
else if ((*flag & 16) == 0)
y = GET_Short();
-
+
x += y;
vec->x = x;
}
@@ -323,11 +323,11 @@
TT_Vector* limit = vec + n_points;
TT_Byte* flag = zone->tags;
TT_Pos x = 0;
-
+
for ( ; vec < limit; vec++, flag++ )
{
TT_Pos y = 0;
-
+
if ( *flag & 4 )
{
y = GET_Byte();
@@ -335,7 +335,7 @@
}
else if ((*flag & 32) == 0)
y = GET_Short();
-
+
x += y;
vec->y = x;
}
@@ -345,24 +345,24 @@
/*********************************************************************/
/* Add shadow points */
-
+
/* Now add the two shadow points at n and n + 1. */
/* We need the left side bearing and advance width. */
{
TT_Vector* pp1;
TT_Vector* pp2;
-
+
/* pp1 = xMin - lsb */
pp1 = zone->org + n_points;
pp1->x = load->bbox.xMin - load->left_bearing;
pp1->y = 0;
-
+
/* pp2 = pp1 + aw */
pp2 = pp1 + 1;
pp2->x = pp1->x + load->advance;
pp2->y = 0;
-
+
/* clear the touch tags */
for ( n = 0; n < n_points; n++ )
zone->tags[n] &= FT_Curve_Tag_On;
@@ -439,7 +439,7 @@
}
return TT_Err_Ok;
-
+
Fail:
FORGET_Frame();
return error;
@@ -472,7 +472,7 @@
TT_UInt index, num_points, num_contours, count;
TT_Fixed x_scale, y_scale;
TT_ULong ins_offset;
-
+
/* check glyph index */
index = glyph_index;
if ( index >= (TT_UInt)face->root.num_glyphs )
@@ -485,7 +485,7 @@
num_contours = 0;
num_points = 0;
ins_offset = 0;
-
+
x_scale = 0x10000;
y_scale = 0x10000;
if ( (loader->load_flags & FT_LOAD_NO_SCALE)==0 )
@@ -514,7 +514,7 @@
count = 0;
if (index < (TT_UInt)face->num_locations-1)
count = face->glyph_locations[index+1] - offset;
-
+
if (count == 0)
{
@@ -574,7 +574,7 @@
loader->pp1.y = 0;
loader->pp2.x = loader->pp1.x + loader->advance;
loader->pp2.y = 0;
-
+
if ((loader->load_flags & FT_LOAD_NO_SCALE)==0)
{
loader->pp1.x = FT_MulFix( loader->pp1.x, x_scale );
@@ -590,7 +590,7 @@
if (contours_count >= 0)
{
TT_UInt num_base_points;
-
+
#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
error = Load_Simple( loader,
count,
@@ -599,7 +599,7 @@
loader->size->debug ) );
#else
error = Load_Simple( loader, count, contours_count, 0 );
-#endif
+#endif
if ( error )
goto Fail;
@@ -607,7 +607,7 @@
/* but the code is fat enough already :-) */
num_points = loader->zone.n_points;
num_contours = loader->zone.n_contours;
-
+
num_base_points = loader->base.n_points;
{
TT_UInt k;
@@ -633,16 +633,16 @@
{
/* for each subglyph, read composite header */
FT_SubGlyph* subglyph = subglyphs;
-
+
if (ACCESS_Frame(count)) goto Fail;
-
+
num_subglyphs = 0;
do
{
TT_Fixed xx, xy, yy, yx;
-
+
subglyph->arg1 = subglyph->arg2 = 0;
-
+
subglyph->flags = GET_UShort();
subglyph->index = GET_UShort();
@@ -657,11 +657,11 @@
subglyph->arg1 = GET_Char();
subglyph->arg2 = GET_Char();
}
-
+
/* read transform */
xx = yy = 0x10000;
xy = yx = 0;
-
+
if (subglyph->flags & WE_HAVE_A_SCALE)
{
xx = (TT_Fixed)GET_Short() << 2;
@@ -679,12 +679,12 @@
yx = (TT_Fixed)GET_Short() << 2;
yy = (TT_Fixed)GET_Short() << 2;
}
-
+
subglyph->transform.xx = xx;
subglyph->transform.xy = xy;
subglyph->transform.yx = yx;
subglyph->transform.yy = yy;
-
+
subglyph++;
num_subglyphs++;
if (num_subglyphs >= TT_MAX_SUBGLYPHS)
@@ -709,22 +709,22 @@
{
FT_GlyphSlot glyph = loader->glyph;
- /* reallocate subglyph array if necessary */
+ /* reallocate subglyph array if necessary */
if (glyph->max_subglyphs < num_subglyphs)
{
FT_Memory memory = loader->face->root.memory;
-
+
if ( REALLOC_ARRAY( glyph->subglyphs, glyph->max_subglyphs,
num_subglyphs, FT_SubGlyph ) )
goto Fail;
-
+
glyph->max_subglyphs = num_subglyphs;
}
/* copy subglyph array */
MEM_Copy( glyph->subglyphs, subglyphs,
num_subglyphs*sizeof(FT_SubGlyph));
-
+
/* set up remaining glyph fields */
glyph->num_subglyphs = num_subglyphs;
glyph->format = ft_glyph_format_composite;
@@ -740,18 +740,18 @@
/* Now, read each subglyph independently.. */
{
TT_Int n, num_base_points, num_new_points;
-
+
subglyph = subglyphs;
for ( n = 0; n < num_subglyphs; n++, subglyph++ )
{
TT_Vector pp1, pp2;
TT_Pos x, y;
-
+
pp1 = loader->pp1;
pp2 = loader->pp2;
num_base_points = loader->base.n_points;
-
+
error = load_truetype_glyph( loader, subglyph->index );
if ( subglyph->flags & USE_MY_METRICS )
{
@@ -763,15 +763,15 @@
loader->pp1 = pp1;
loader->pp2 = pp2;
}
-
+
num_points = loader->base.n_points;
num_contours = loader->base.n_contours;
-
+
num_new_points = num_points - num_base_points;
-
+
/********************************************************/
/* now perform the transform required for this subglyph */
-
+
if ( subglyph->flags & ( WE_HAVE_A_SCALE |
WE_HAVE_AN_XY_SCALE |
WE_HAVE_A_2X2 ) )
@@ -783,7 +783,7 @@
for ( ; cur < limit; cur++, org++ )
{
TT_Pos nx, ny;
-
+
nx = FT_MulFix( cur->x, subglyph->transform.xx ) +
FT_MulFix( cur->y, subglyph->transform.yx );
@@ -818,8 +818,8 @@
goto Fail;
}
- l += num_base_points;
-
+ l += num_base_points;
+
x = loader->base.cur[k].x - loader->base.cur[l].x;
y = loader->base.cur[k].y - loader->base.cur[l].y;
}
@@ -832,7 +832,7 @@
{
x = FT_MulFix( x, x_scale );
y = FT_MulFix( y, y_scale );
-
+
if ( subglyph->flags & ROUND_XY_TO_GRID )
{
x = (x + 32) & -64;
@@ -844,7 +844,7 @@
translate_array( num_new_points, loader->zone.cur, x, y );
cur_to_org( num_new_points, &loader->zone );
}
-
+
/*************************************************************************/
/*************************************************************************/
/*************************************************************************/
@@ -861,12 +861,12 @@
TT_UInt n_points = loader->base.n_points;
FT_GlyphZone* pts;
TT_Vector* pp1;
-
+
/* read size of instructions */
if ( FILE_Seek( ins_offset ) ||
READ_UShort(n_ins) ) goto Fail;
FT_TRACE4(( "Instructions size = %d\n", n_ins ));
-
+
/* check it */
if ( n_ins > face->max_profile.maxSizeOfInstructions )
{
@@ -874,68 +874,68 @@
subglyph->index ));
return TT_Err_Too_Many_Ins;
}
-
+
if (exec)
{
}
/* read the instructions */
if ( FILE_Read( exec->glyphIns, n_ins ) )
goto Fail;
-
+
error = TT_Set_CodeRange( exec,
tt_coderange_glyph,
exec->glyphIns,
n_ins );
if ( error ) goto Fail;
-
+
/* prepare the execution context */
exec->pts = loader->base;
pts = &exec->pts;
-
+
pts->n_points = num_points + 2;
pts->n_contours = num_contours;
-
+
/* add phantom points */
pp1 = pts->cur + num_points;
pp1[0] = loader->pp1;
pp1[1] = loader->pp2;
-
+
pts->tags[num_points + 1] = 0;
pts->tags[num_points + 2] = 0;
-
+
/* if hinting, round the phantom points */
if ( IS_HINTED(loader->load_flags) )
{
pp1[0].x = ((loader->pp1.x + 32) & -64);
pp1[1].x = ((loader->pp2.x + 32) & -64);
}
-
+
{
TT_UInt k;
for ( k = 0; k < n_points; k++ )
pts->tags[k] &= FT_Curve_Tag_On;
}
-
+
cur_to_org( n_points, pts );
-
+
/* now consider hinting */
if ( IS_HINTED(loader->load_flags) && n_ins > 0 )
{
exec->is_composite = TRUE;
exec->pedantic_hinting =
(TT_Bool)(loader->load_flags & FT_LOAD_PEDANTIC);
-
+
error = TT_Run_Context( exec, loader->size->debug );
if ( error && exec->pedantic_hinting )
goto Fail;
}
-
+
/* save glyph origin and advance points */
loader->pp1 = pp1[0];
loader->pp2 = pp1[1];
}
#endif
-
+
}
}
@@ -948,7 +948,7 @@
error = TT_Err_Ok;
Fail:
- return error;
+ return error;
}
@@ -966,7 +966,7 @@
TT_Fixed x_scale, y_scale;
TT_GlyphSlot glyph = loader->glyph;
TT_Size size = loader->size;
-
+
/* when a simple glyph was loaded, the value of */
/* "base.n_points" and "base.n_contours" is 0, we must */
/* take those in the "zone" instead.. */
@@ -975,7 +975,7 @@
num_points = loader->zone.n_points;
num_contours = loader->zone.n_contours;
}
-
+
x_scale = 0x10000;
y_scale = 0x10000;
if ( (loader->load_flags & FT_LOAD_NO_SCALE) == 0)
@@ -983,7 +983,7 @@
x_scale = size->root.metrics.x_scale;
y_scale = size->root.metrics.y_scale;
}
-
+
if ( glyph->format != ft_glyph_format_composite )
{
TT_UInt u;
@@ -1000,13 +1000,13 @@
glyph->outline.flags &= ~ft_outline_single_pass;
glyph->outline.n_points = num_points;
glyph->outline.n_contours = num_contours;
-
+
/* translate array so that (0,0) is the glyph's origin */
translate_array( (TT_UShort)(num_points + 2),
glyph->outline.points,
-loader->pp1.x,
0 );
-
+
FT_Outline_Get_CBox( &glyph->outline, &bbox );
if ( IS_HINTED(loader->load_flags) )
@@ -1199,7 +1199,7 @@
TT_Error error;
TT_Loader loader;
FT_GlyphZone* zone;
-
+
face = (TT_Face)glyph->face;
sfnt = (SFNT_Interface*)face->sfnt;
stream = face->root.stream;
@@ -1223,7 +1223,7 @@
if ( size && (load_flags & FT_LOAD_NO_BITMAP) == 0 && sfnt->load_sbits )
{
TT_SBit_Metrics metrics;
-
+
error = sfnt->load_sbit_image( face,
size->root.metrics.x_ppem,
size->root.metrics.y_ppem,
@@ -1279,7 +1279,7 @@
goto Exit;
}
loader.base = *zone;
-
+
loader.zone.n_points = 0;
loader.zone.n_contours = 0;
@@ -1290,7 +1290,7 @@
loader.exec = size->debug ? size->context : TT_New_Context(face);
if ( !loader.exec )
return TT_Err_Could_Not_Find_Context;
-
+
TT_Load_Context( loader.exec, face, size );
/* load default graphics state - if needed */
@@ -1301,7 +1301,7 @@
/* clear all outline flags, except the "owner" one */
glyph->outline.flags &= ft_outline_owner;
-
+
if (size && size->root.metrics.y_ppem < 24 )
glyph->outline.flags |= ft_outline_high_precision;
@@ -1315,7 +1315,7 @@
loader.size = size;
loader.glyph = glyph;
loader.stream = stream;
-
+
loader.glyf_offset = FILE_Pos();
#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
diff --git a/src/truetype/ttgload.h b/src/truetype/ttgload.h
index 5350d641a..93a8d2336 100644
--- a/src/truetype/ttgload.h
+++ b/src/truetype/ttgload.h
@@ -49,13 +49,13 @@
TT_Bool preserve_pps;
TT_Vector pp1;
TT_Vector pp2;
-
+
TT_ULong glyf_offset;
-
+
/* the zone where we load our glyphs */
FT_GlyphZone base;
FT_GlyphZone zone;
-
+
#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
TT_ExecContext exec;
TT_Byte* instructions;
diff --git a/src/truetype/ttinterp.c b/src/truetype/ttinterp.c
index 1ef9dc463..64bce53a0 100644
--- a/src/truetype/ttinterp.c
+++ b/src/truetype/ttinterp.c
@@ -1561,7 +1561,7 @@
{
TT_F26Dot6 val;
-
+
UNUSED_EXEC;
if ( distance >= 0 )
@@ -2040,7 +2040,7 @@
TT_Vector* v2 )
{
UNUSED_EXEC;
-
+
return (v1->y - v2->y);
}
@@ -2153,7 +2153,7 @@
TT_Bool S1, S2;
UNUSED_EXEC;
-
+
if ( ABS( Vx ) < 0x10000L && ABS( Vy ) < 0x10000L )
{
Vx *= 0x100;
@@ -2236,7 +2236,7 @@
return SUCCESS;
}
-#else
+#else
static
TT_Bool Normalize( EXEC_OP_ TT_F26Dot6 Vx,
TT_F26Dot6 Vy,
@@ -2258,7 +2258,7 @@
R->x = 0;
R->y = 0;
-
+
/* check that we're not trying to normalise zero !! */
if (u==0) return SUCCESS;
@@ -2266,21 +2266,21 @@
hi = (TT_ULong)u >> 16;
lo = (TT_ULong)u & 0xFFFF;
med = hi*lo;
-
+
H = hi*hi + (med >> 15);
med <<= 17;
L = lo*lo + med;
if (L < med) H++;
-
+
hi = (TT_ULong)v >> 16;
lo = (TT_ULong)v & 0xFFFF;
med = hi*lo;
-
+
H += hi*hi + (med >> 15);
med <<= 17;
L2 = lo*lo + med;
if (L2 < med) H++;
-
+
L += L2;
if (L < L2) H++;
@@ -2293,7 +2293,7 @@
L <<= 2;
shift++;
}
-
+
d = FT_Sqrt32(L);
R->x = (TT_F2Dot14)TT_MULDIV( Vx << shift, 0x4000, d );
R->y = (TT_F2Dot14)TT_MULDIV( Vy << shift, 0x4000, d );
@@ -2308,7 +2308,7 @@
H >>= 2;
shift++;
}
-
+
d = FT_Sqrt32(L);
R->x = (TT_F2Dot14)TT_MULDIV( Vx >> shift, 0x4000, d );
R->y = (TT_F2Dot14)TT_MULDIV( Vy >> shift, 0x4000, d );
@@ -2322,7 +2322,7 @@
sy = ( R->y >= 0 ? 1 : -1 );
x = (TT_ULong)sx*R->x;
y = (TT_ULong)sy*R->y;
-
+
w = x*x+y*y;
/* we now want to adjust (x,y) in order to have sqrt(w) == 0x4000 */
@@ -2332,10 +2332,10 @@
/* increment the smallest coordinate */
if ( x < y ) x++;
else y++;
-
+
w = x*x+y*y;
}
-
+
while ( w >= 0x10040000L )
{
/* decrement the smallest coordinate */
@@ -4055,13 +4055,13 @@
rec = CUR.FDefs;
limit = rec + CUR.numFDefs;
n = args[0];
-
+
for ( ; rec < limit; rec++ )
{
if (rec->opc == n)
break;
}
-
+
if ( rec == limit )
{
/* check that there is enough room for new functions */
@@ -4072,15 +4072,15 @@
}
CUR.numFDefs++;
}
-
+
rec->range = CUR.curRange;
rec->opc = n;
rec->start = CUR.IP+1;
rec->active = TRUE;
-
+
if ( n > CUR.maxFunc )
CUR.maxFunc = n;
-
+
/* Now skip the whole function definition. */
/* We don't allow nested IDEFS & FDEFs. */
@@ -4164,7 +4164,7 @@
/* first of all, check the index */
F = args[0];
if ( BOUNDS( F, CUR.maxFunc+1 ) ) goto Fail;
-
+
/* Except for some old Apple fonts, all functions in a TrueType */
/* font are defined in increasing order, starting from 0. This */
/* means that we normally have */
@@ -4179,20 +4179,20 @@
{
/* look up the FDefs table */
TT_DefRecord* limit;
-
+
def = CUR.FDefs;
limit = def + CUR.numFDefs;
-
+
while (def < limit && def->opc != F)
def++;
-
+
if (def == limit) goto Fail;
}
-
+
/* check that the function is active */
if (!def->active)
goto Fail;
-
+
/* check the call stack */
if ( CUR.callTop >= CUR.callSize )
{
@@ -4211,10 +4211,10 @@
INS_Goto_CodeRange( def->range,
def->start );
-
+
CUR.step_ins = FALSE;
return;
-
+
Fail:
CUR.error = TT_Err_Invalid_Reference;
}
@@ -4236,7 +4236,7 @@
/* first of all, check the index */
F = args[1];
if ( BOUNDS( F, CUR.maxFunc+1 ) ) goto Fail;
-
+
/* Except for some old Apple fonts, all functions in a TrueType */
/* font are defined in increasing order, starting from 0. This */
/* means that we normally have */
@@ -4251,21 +4251,21 @@
{
/* look up the FDefs table */
TT_DefRecord* limit;
-
+
def = CUR.FDefs;
limit = def + CUR.numFDefs;
-
+
while (def < limit && def->opc != F)
def++;
-
+
if (def == limit) goto Fail;
}
-
+
/* check that the function is active */
if (!def->active)
goto Fail;
- /* check stack */
+ /* check stack */
if ( CUR.callTop >= CUR.callSize )
{
CUR.error = TT_Err_Stack_Overflow;
@@ -4312,7 +4312,7 @@
for ( ; def < limit; def++ )
if (def->opc == (TT_ULong)args[0] )
break;
-
+
if ( def == limit )
{
/* check that there is enough room for a new instruction */
@@ -4323,15 +4323,15 @@
}
CUR.numIDefs++;
}
-
+
def->opc = args[0];
def->start = CUR.IP+1;
def->range = CUR.curRange;
def->active = TRUE;
-
+
if ( (TT_ULong)args[0] > CUR.maxIns )
CUR.maxIns = args[0];
-
+
/* Now skip the whole function definition. */
/* We don't allow nested IDEFs & FDEFs. */
@@ -6320,30 +6320,30 @@
{
TT_DefRecord* def = CUR.IDefs;
TT_DefRecord* limit = def + CUR.numIDefs;
-
+
UNUSED_ARG;
-
+
for ( ; def < limit; def++ )
{
if (def->opc == CUR.opcode && def->active )
{
TT_CallRec* call;
-
+
if ( CUR.callTop >= CUR.callSize )
{
CUR.error = TT_Err_Stack_Overflow;
return;
}
-
+
call = CUR.callStack + CUR.callTop++;
call->Caller_Range = CUR.curRange;
call->Caller_IP = CUR.IP+1;
call->Cur_Count = 1;
call->Cur_Restart = def->start;
-
+
INS_Goto_CodeRange( def->range, def->start );
-
+
CUR.step_ins = FALSE;
return;
}
@@ -7292,29 +7292,29 @@
{
TT_DefRecord* def = CUR.IDefs;
TT_DefRecord* limit = def + CUR.numIDefs;
-
+
for ( ; def < limit; def++ )
{
if ( def->active && CUR.opcode == def->opc )
{
TT_CallRec* callrec;
-
+
if ( CUR.callTop >= CUR.callSize )
{
CUR.error = TT_Err_Invalid_Reference;
goto LErrorLabel_;
}
-
+
callrec = &CUR.callStack[CUR.callTop];
-
+
callrec->Caller_Range = CUR.curRange;
callrec->Caller_IP = CUR.IP + 1;
callrec->Cur_Count = 1;
callrec->Cur_Restart = def->start;
-
+
if ( INS_Goto_CodeRange( def->range, def->start ) == FAILURE )
goto LErrorLabel_;
-
+
goto LSuiteLabel_;
}
}
diff --git a/src/truetype/ttobjs.h b/src/truetype/ttobjs.h
index 33457e028..3bace3872 100644
--- a/src/truetype/ttobjs.h
+++ b/src/truetype/ttobjs.h
@@ -365,7 +365,7 @@
/*************************************************************************/
- /* Face Funcs */
+ /* Face Funcs */
LOCAL_DEF TT_Error TT_Init_Face( FT_Stream stream,
TT_Face face,
@@ -377,7 +377,7 @@
/*************************************************************************/
- /* Size funcs */
+ /* Size funcs */
LOCAL_DEF TT_Error TT_Init_Size ( TT_Size size );
LOCAL_DEF void TT_Done_Size ( TT_Size size );
@@ -385,14 +385,14 @@
/*************************************************************************/
- /* GlyphSlot funcs */
+ /* GlyphSlot funcs */
LOCAL_DEF TT_Error TT_Init_GlyphSlot( TT_GlyphSlot slot );
LOCAL_DEF void TT_Done_GlyphSlot( TT_GlyphSlot slot );
/*************************************************************************/
- /* Driver funcs */
+ /* Driver funcs */
LOCAL_DEF TT_Error TT_Init_Driver( TT_Driver driver );
LOCAL_DEF void TT_Done_Driver( TT_Driver driver );
diff --git a/src/type1/t1afm.c b/src/type1/t1afm.c
index 2b904af83..ec216f555 100644
--- a/src/type1/t1afm.c
+++ b/src/type1/t1afm.c
@@ -34,27 +34,27 @@
FT_UInt result = 0;
char temp[64];
- /* skip whitespace */
+ /* skip whitespace */
while ( (*p == ' ' || *p == '\t' || *p == ':' || *p == ';') && p < limit )
p++;
*start = p;
-
+
/* now, read glyph name */
while ( IS_ALPHANUM(*p) && p < limit ) p++;
len = p - *start;
if (len > 0 && len < 64)
{
FT_Int n;
-
+
/* copy glyph name to intermediate array */
MEM_Copy( temp, *start, len );
temp[len] = 0;
-
+
/* lookup glyph name in face array */
for ( n = 0; n < type1->num_glyphs; n++ )
{
char* gname = (char*)type1->glyph_names[n];
-
+
if ( gname && gname[0] == temp[0] && strcmp(gname,temp) == 0 )
{
result = n;
@@ -74,17 +74,17 @@
FT_Byte* p = *start;
int sum = 0;
int sign = 1;
-
+
/* skip everything that is not a number */
while ( p < limit && (*p < '0' || *p > '9') )
{
sign = 1;
if (*p == '-')
sign = -1;
-
+
p++;
}
-
+
while ( p < limit && (*p >= '0' && *p < '9') )
{
sum = sum*10 + (*p - '0');
@@ -104,10 +104,10 @@
{
T1_Kern_Pair* pair1 = (T1_Kern_Pair*)a;
T1_Kern_Pair* pair2 = (T1_Kern_Pair*)b;
-
+
T1_ULong index1 = KERN_INDEX(pair1->glyph1,pair1->glyph2);
T1_ULong index2 = KERN_INDEX(pair2->glyph1,pair2->glyph2);
-
+
return ( index1 < index2 ? -1 :
( index1 > index2 ? 1 : 0 ));
}
@@ -127,14 +127,14 @@
T1_Kern_Pair* pair;
T1_Font* type1 = &((T1_Face)t1_face)->type1;
T1_AFM* afm = 0;
-
+
if ( ACCESS_Frame(stream->size) )
return error;
-
+
start = (FT_Byte*)stream->cursor;
limit = (FT_Byte*)stream->limit;
p = start;
-
+
/* we are now going to count the occurences of "KP" or "KPX" in */
/* the AFM file.. */
count = 0;
@@ -147,16 +147,16 @@
/* Actually, kerning pairs are simply optional !! */
if (count == 0)
goto Exit;
-
+
/* allocate the pairs */
if ( ALLOC( afm, sizeof(*afm ) ) ||
ALLOC_ARRAY( afm->kern_pairs, count, T1_Kern_Pair ) )
goto Exit;
-
+
/* now, read each kern pair */
pair = afm->kern_pairs;
afm->num_pairs = count;
-
+
/* save in face object */
((T1_Face)t1_face)->afm_data = afm;
@@ -165,26 +165,26 @@
if ( IS_KERN_PAIR(p) )
{
FT_Byte* q;
-
+
/* skip keyword (KP or KPX) */
q = p+2;
if (*q == 'X') q++;
-
+
pair->glyph1 = afm_atoindex( &q, limit, type1 );
pair->glyph2 = afm_atoindex( &q, limit, type1 );
pair->kerning.x = afm_atoi( &q, limit );
-
+
pair->kerning.y = 0;
if ( p[2] != 'X' )
pair->kerning.y = afm_atoi( &q, limit );
-
+
pair++;
}
}
-
+
/* now, sort the kern pairs according to their glyph indices */
qsort( afm->kern_pairs, count, sizeof(T1_Kern_Pair), compare_kern_pairs );
-
+
Exit:
if (error)
FREE( afm );
@@ -194,7 +194,7 @@
}
- /* find the kerning for a given glyph pair */
+ /* find the kerning for a given glyph pair */
LOCAL_FUNC
void T1_Get_Kerning( T1_AFM* afm,
FT_UInt glyph1,
@@ -203,23 +203,23 @@
{
T1_Kern_Pair *min, *mid, *max;
T1_ULong index = KERN_INDEX(glyph1,glyph2);
-
+
/* simple binary search */
min = afm->kern_pairs;
max = min + afm->num_pairs-1;
-
+
while (min <= max)
{
T1_ULong midi;
-
+
mid = min + (max-min)/2;
- midi = KERN_INDEX(mid->glyph1,mid->glyph2);
+ midi = KERN_INDEX(mid->glyph1,mid->glyph2);
if ( midi == index )
{
*kerning = mid->kerning;
return;
}
-
+
if ( midi < index ) min = mid+1;
else max = mid-1;
}
diff --git a/src/type1/t1afm.h b/src/type1/t1afm.h
index 61e18b82c..984ae945c 100644
--- a/src/type1/t1afm.h
+++ b/src/type1/t1afm.h
@@ -18,7 +18,7 @@ typedef struct T1_Kern_Pair_
FT_UInt glyph1;
FT_UInt glyph2;
FT_Vector kerning;
-
+
} T1_Kern_Pair;
diff --git a/src/type1/t1driver.c b/src/type1/t1driver.c
index 69984604e..d96eddf59 100644
--- a/src/type1/t1driver.c
+++ b/src/type1/t1driver.c
@@ -9,7 +9,7 @@
*
* 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
+ * 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.
*
@@ -59,10 +59,10 @@
const FT_String* interface )
{
UNUSED(driver);
-
+
if ( strcmp( (const char*)interface, "attach_file" ) == 0 )
return (FTDriver_Interface)T1_Read_AFM;
-
+
return 0;
}
@@ -107,7 +107,7 @@
T1_Vector* kerning )
{
T1_AFM* afm;
-
+
kerning->x = 0;
kerning->y = 0;
@@ -185,7 +185,7 @@
UNUSED(pixel_width);
UNUSED(pixel_height);
- size->valid = FALSE;
+ size->valid = FALSE;
return T1_Reset_Size(size);
}
@@ -214,7 +214,7 @@
face = (T1_Face)charmap->face;
psnames = (PSNames_Interface*)face->psnames;
- if (psnames)
+ if (psnames)
switch (charmap->encoding)
{
/********************************************************************/
@@ -233,7 +233,7 @@
result = 0;
goto Exit;
}
-
+
/********************************************************************/
/* */
/* Custom Type 1 encoding */
@@ -248,7 +248,7 @@
}
goto Exit;
}
-
+
/********************************************************************/
/* */
/* Adobe Standard & Expert encoding support */
@@ -259,18 +259,18 @@
FT_UInt code;
FT_Int n;
const char* glyph_name;
-
+
code = psnames->adobe_std_encoding[charcode];
if (charmap->encoding == ft_encoding_adobe_expert)
code = psnames->adobe_expert_encoding[charcode];
-
+
glyph_name = psnames->adobe_std_strings(code);
if (!glyph_name) break;
-
+
for ( n = 0; n < face->type1.num_glyphs; n++ )
{
const char* gname = face->type1.glyph_names[n];
-
+
if ( gname && gname[0] == glyph_name[0] &&
strcmp( gname, glyph_name ) == 0 )
{
@@ -280,7 +280,7 @@
}
}
}
- Exit:
+ Exit:
return result;
}
@@ -366,7 +366,7 @@
sizeof( T1_FaceRec ),
sizeof( T1_SizeRec ),
sizeof( T1_GlyphSlotRec ),
-
+
"type1",
100,
200,
@@ -385,7 +385,7 @@
(FTDriver_initFace) T1_Init_Face,
(FTDriver_doneFace) T1_Done_Face,
-#ifdef T1_CONFIG_OPTION_NO_AFM
+#ifdef T1_CONFIG_OPTION_NO_AFM
(FTDriver_getKerning) 0,
#else
(FTDriver_getKerning) Get_Kerning,
@@ -425,12 +425,12 @@
/* */
#ifdef FT_CONFIG_OPTION_DYNAMIC_DRIVERS
-
+
EXPORT_FUNC(FT_DriverInterface*) getDriverInterface( void )
{
return &t1_driver_interface;
}
-
+
#endif /* FT_CONFIG_OPTION_DYNAMIC_DRIVERS */
diff --git a/src/type1/t1driver.h b/src/type1/t1driver.h
index d1feadc63..35fe57d12 100644
--- a/src/type1/t1driver.h
+++ b/src/type1/t1driver.h
@@ -9,7 +9,7 @@
*
* 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
+ * 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.
*
diff --git a/src/type1/t1errors.h b/src/type1/t1errors.h
index 01f5e4a27..7984f546e 100644
--- a/src/type1/t1errors.h
+++ b/src/type1/t1errors.h
@@ -34,7 +34,7 @@
#define T1_Err_Ok FT_Err_Ok
/* ----------- high level API errors -------- */
-
+
#define T1_Err_Invalid_File_Format FT_Err_Invalid_File_Format
#define T1_Err_Invalid_Argument FT_Err_Invalid_Argument
#define T1_Err_Invalid_Driver_Handle FT_Err_Invalid_Driver_Handle
@@ -53,7 +53,7 @@
#define T1_Err_Invalid_Engine FT_Err_Invalid_Driver_Handle
/* ------------- internal errors ------------ */
-
+
#define T1_Err_Out_Of_Memory FT_Err_Out_Of_Memory
#define T1_Err_Unlisted_Object FT_Err_Unlisted_Object
diff --git a/src/type1/t1gload.c b/src/type1/t1gload.c
index 19df387ba..585204d4e 100644
--- a/src/type1/t1gload.c
+++ b/src/type1/t1gload.c
@@ -168,7 +168,7 @@
* to implement the SEAC Type 1 operator.
*
*
- * face :: current face object
+ * face :: current face object
* charcode :: charcode to look for
*
*
@@ -184,18 +184,18 @@
T1_Int n;
const T1_String* glyph_name;
PSNames_Interface* psnames = (PSNames_Interface*)face->psnames;
-
+
/* check range of standard char code */
if (charcode < 0 || charcode > 255)
return -1;
-
+
glyph_name = psnames->adobe_std_strings(
psnames->adobe_std_encoding[charcode]);
-
+
for ( n = 0; n < face->type1.num_glyphs; n++ )
{
T1_String* name = (T1_String*)face->type1.glyph_names[n];
-
+
if ( name && strcmp(name,glyph_name) == 0 )
return n;
}
@@ -221,7 +221,7 @@
* achar :: accent character's StandardEncoding charcode
*
*
- * Error code. 0 means success.
+ * Error code. 0 means success.
*
*********************************************************************/
@@ -240,10 +240,10 @@
FT_Outline* base = &decoder->builder.base;
T1_Vector left_bearing, advance;
T1_Font* type1 = &face->type1;
-
+
bchar_index = lookup_glyph_by_stdcharcode( face, bchar );
achar_index = lookup_glyph_by_stdcharcode( face, achar );
-
+
if (bchar_index < 0 || achar_index < 0)
{
FT_ERROR(( "T1.Parse_Seac : invalid seac character code arguments\n" ));
@@ -275,20 +275,20 @@
FT_GlyphSlot glyph = (FT_GlyphSlot)decoder->builder.glyph;
FT_SubGlyph* subg;
- /* reallocate subglyph array if necessary */
+ /* reallocate subglyph array if necessary */
if (glyph->max_subglyphs < 2)
{
FT_Memory memory = decoder->builder.face->root.memory;
-
+
if ( REALLOC_ARRAY( glyph->subglyphs, glyph->max_subglyphs,
2, FT_SubGlyph ) )
return error;
-
+
glyph->max_subglyphs = 2;
}
subg = glyph->subglyphs;
-
+
/* subglyph 0 = base character */
subg->index = bchar_index;
subg->flags = FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES |
@@ -296,7 +296,7 @@
subg->arg1 = 0;
subg->arg2 = 0;
subg++;
-
+
/* subglyph 1 = accent character */
subg->index = achar_index;
subg->flags = FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES;
@@ -313,19 +313,19 @@
/* as they will be erased by the next load.. */
left_bearing = decoder->builder.left_bearing;
advance = decoder->builder.advance;
-
+
decoder->builder.left_bearing.x = 0;
- decoder->builder.left_bearing.y = 0;
-
+ decoder->builder.left_bearing.y = 0;
+
/* Now load "achar" on top of */
/* the base outline */
- /* */
+ /* */
cur->n_points = 0;
cur->n_contours = 0;
cur->points = base->points + base->n_points;
cur->tags = base->tags + base->n_points;
cur->contours = base->contours + base->n_contours;
-
+
error = T1_Parse_CharStrings( decoder,
type1->charstrings [achar_index],
type1->charstrings_len[achar_index],
@@ -333,20 +333,20 @@
type1->subrs,
type1->subrs_len );
if (error) return error;
-
+
/* adjust contours in accented character outline */
{
T1_Int n;
-
+
for ( n = 0; n < cur->n_contours; n++ )
cur->contours[n] += n_base_points;
}
-
+
/* restore the left side bearing and */
/* advance width of the base character */
decoder->builder.left_bearing = left_bearing;
decoder->builder.advance = advance;
-
+
/* Finally, move the accent */
FT_Outline_Translate( cur, adx - asb, ady );
}
@@ -368,7 +368,7 @@
* end_y :: position of final flex point
*
*
- * Error code. 0 means success.
+ * Error code. 0 means success.
*
*********************************************************************/
@@ -434,7 +434,7 @@
* subrs_len :: array of sub-routines lengths
*
*
- * Error code. 0 means success.
+ * Error code. 0 means success.
*
*********************************************************************/
@@ -454,7 +454,7 @@
T1_Builder_Funcs* builds = &builder->funcs;
T1_Hinter_Funcs* hints = &decoder->hinter;
- static const T1_Int args_count[ op_max ] =
+ static const T1_Int args_count[ op_max ] =
{
0, /* none */
0, /* endchar */
@@ -959,11 +959,11 @@
if ( REALLOC_ARRAY( builder->base.points,
current, builder->max_points, T1_Vector ) ||
-
+
REALLOC_ARRAY( builder->base.tags,
current, builder->max_points, T1_Byte ) )
return error;
-
+
builder->current.points = builder->base.points + increment;
builder->current.tags = builder->base.tags + increment;
}
@@ -1015,7 +1015,7 @@
if ( REALLOC_ARRAY( builder->base.contours,
current, builder->max_contours, T1_Short ) )
return error;
-
+
builder->current.contours = builder->base.contours + increment;
}
@@ -1160,7 +1160,7 @@
FT_Outline* cur = &builder->current;
T1_Int num_points;
T1_Int first_point;
-
+
/* Some fonts, like Hershey, are made of "open paths" which are */
/* now managed directly by FreeType. In this case, it is necessary */
/* to close the path by duplicating its points in reverse order, */
@@ -1171,7 +1171,7 @@
first_point = cur->contours[ cur->n_contours-2 ]+1;
else
first_point = 0;
-
+
num_points = cur->n_points - first_point - 2;
if ( num_points > 0 )
{
@@ -1179,19 +1179,19 @@
char* source_tags;
T1_Vector* point;
char* tags;
-
+
error = T1_Add_Points( builder, num_points );
if (error) return error;
point = cur->points + cur->n_points;
tags = cur->tags + cur->n_points;
-
+
source_point = point - 2;
source_tags = tags - 2;
cur->n_points += num_points;
- if ( builder->load_points )
+ if ( builder->load_points )
do
{
*point++ = *source_point--;
@@ -1241,7 +1241,7 @@
if (error) return error;
}
- error = gload_closepath( builder );
+ error = gload_closepath( builder );
builder->base.n_points += cur->n_points;
builder->base.n_contours += cur->n_contours;
@@ -1324,7 +1324,7 @@
if (error) return error;
}
}
-
+
/* grow buffer if necessary */
error = T1_Add_Contours( builder, 1 ) ||
T1_Add_Points ( builder, 1 );
@@ -1391,7 +1391,7 @@
builder->last = vec;
}
-
+
cur->n_points += 3;
builder->path_begun = 1;
return T1_Err_Ok;
@@ -1532,9 +1532,9 @@
T1_Init_Builder( &decoder.builder, face, size, glyph,
&gload_builder_interface );
-
+
decoder.builder.no_recurse = !!(load_flags & FT_LOAD_NO_RECURSE);
-
+
/* now load the unscaled outline */
error = T1_Parse_CharStrings( &decoder,
type1->charstrings [glyph_index],
@@ -1542,7 +1542,7 @@
type1->num_subrs,
type1->subrs,
type1->subrs_len );
-
+
/* save new glyph tables */
T1_Done_Builder( &decoder.builder );
}
@@ -1564,9 +1564,9 @@
{
FT_BBox cbox;
FT_Glyph_Metrics* metrics = &glyph->root.metrics;
-
+
FT_Outline_Get_CBox( &glyph->root.outline, &cbox );
-
+
/* grid fit the bounding box if necessary */
if (hinting)
{
@@ -1575,36 +1575,36 @@
cbox.xMax = ( cbox.xMax+63 ) & -64;
cbox.yMax = ( cbox.yMax+63 ) & -64;
}
-
+
metrics->width = cbox.xMax - cbox.xMin;
metrics->height = cbox.yMax - cbox.yMin;
-
+
metrics->horiBearingX = cbox.xMin;
metrics->horiBearingY = cbox.yMax;
-
+
/* copy the _unscaled_ advance width */
metrics->horiAdvance = decoder.builder.advance.x;
-
+
/* make up vertical metrics */
metrics->vertBearingX = 0;
metrics->vertBearingY = 0;
metrics->vertAdvance = 0;
-
+
glyph->root.format = ft_glyph_format_outline;
-
+
glyph->root.outline.flags &= ft_outline_owner;
-
+
if ( size->root.metrics.y_ppem < 24 )
glyph->root.outline.flags |= ft_outline_high_precision;
glyph->root.outline.flags |= ft_outline_reverse_fill;
-
+
/*
glyph->root.outline.second_pass = TRUE;
glyph->root.outline.high_precision = ( size->root.metrics.y_ppem < 24 );
glyph->root.outline.dropout_mode = 2;
*/
-
+
if ( hinting )
{
/* adjust the advance width */
@@ -1620,30 +1620,30 @@
T1_Vector* vec = cur->points;
T1_Fixed x_scale = glyph->x_scale;
T1_Fixed y_scale = glyph->y_scale;
-
+
/* First of all, scale the points */
for ( n = cur->n_points; n > 0; n--, vec++ )
{
vec->x = FT_MulFix( vec->x, x_scale );
vec->y = FT_MulFix( vec->y, y_scale );
}
-
+
/* Then scale the metrics */
metrics->width = FT_MulFix( metrics->width, x_scale );
metrics->height = FT_MulFix( metrics->height, y_scale );
-
+
metrics->horiBearingX = FT_MulFix( metrics->horiBearingX, x_scale );
metrics->horiBearingY = FT_MulFix( metrics->horiBearingY, y_scale );
metrics->horiAdvance = FT_MulFix( metrics->horiAdvance, x_scale );
-
+
metrics->vertBearingX = FT_MulFix( metrics->vertBearingX, x_scale );
metrics->vertBearingY = FT_MulFix( metrics->vertBearingY, y_scale );
metrics->vertAdvance = FT_MulFix( metrics->vertAdvance, x_scale );
-
+
}
}
}
-
+
return error;
}
diff --git a/src/type1/t1gload.h b/src/type1/t1gload.h
index 53d1d535d..37a9aadfe 100644
--- a/src/type1/t1gload.h
+++ b/src/type1/t1gload.h
@@ -181,7 +181,7 @@
/* a structure used to store the address of various functions */
/* used by a Type 1 hinter to perform outline hinting. */
/* */
-
+
typedef T1_Error (*T1_Hinter_ChangeHints)( T1_Builder* builder );
typedef T1_Error (*T1_Hinter_DotSection)( T1_Builder* builder );
diff --git a/src/type1/t1hinter.c b/src/type1/t1hinter.c
index f9d5db9b5..d7dd8945b 100644
--- a/src/type1/t1hinter.c
+++ b/src/type1/t1hinter.c
@@ -2,7 +2,7 @@
*
* t1hinter.c 1.2
*
- * Type1 hinter.
+ * Type1 hinter.
*
* Copyright 1996-1999 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
@@ -66,7 +66,7 @@
* 1. It extracts the bottom and top blue zones from the
* face object.
*
- * 2. Each zone is then grown by BlueFuzz, overlapping
+ * 2. Each zone is then grown by BlueFuzz, overlapping
* is eliminated by adjusting the zone edges appropriately
*
* 3. For each zone, we keep its original font units position, its
@@ -83,7 +83,7 @@
{
T1_Int i, swap;
T1_Int* cur;
-
+
for ( i = 2; i < count; i += 2 )
{
cur = blues + i;
@@ -91,7 +91,7 @@
{
if ( cur[-1] < cur[0] )
break;
-
+
swap = cur[-2]; cur[-2] = cur[0]; cur[0] = swap;
swap = cur[-1]; cur[-1] = cur[1]; cur[1] = swap;
cur -= 2;
@@ -210,27 +210,27 @@
}
}
-
+
/* Compare the current pixel size with the BlueScale value */
/* to know wether to supress overshoots.. */
-
- hints->supress_overshoots =
+
+ hints->supress_overshoots =
( size->root.metrics.y_ppem < FT_MulFix(1000,priv->blue_scale) );
/* Now print the new blue values in tracing mode */
#ifdef FT_DEBUG_LEVEL_TRACE
-
+
FT_TRACE2(( "Blue Zones for size object at $%08lx :\n", (long)size ));
FT_TRACE2(( " orus pix min max\n" ));
FT_TRACE2(( "-------------------------------\n" ));
-
+
zone = hints->blue_zones;
for ( n = 0; n < hints->num_blue_zones; n++ )
{
FT_TRACE2(( " %3d %.2f %.2f %.2f\n",
- zone->orus,
+ zone->orus,
zone->pix/64.0,
- zone->min/64.0,
+ zone->min/64.0,
zone->max/64.0 ));
zone++;
}
@@ -238,7 +238,7 @@
hints->supress_overshoots ? "supressed" : "active" ));
#endif /* DEBUG_LEVEL_TRACE */
-
+
return T1_Err_Ok;
}
@@ -262,7 +262,7 @@
* This function performs the following :
*
* 1. It reads and scales the stem snap widths from the parent face
- *
+ *
* 2. A "snap zone" is computed for each snap width, by "growing"
* it with a threshold of a 1/2 pixel. Overlapping is avoided
* through proper edge adjustment.
@@ -296,7 +296,7 @@
base_zone = hints->snap_widths;
orgs = priv->stem_snap_widths;
scale = size->root.metrics.x_scale;
-
+
while (direction < 2)
{
/*****************************************************************/
@@ -305,7 +305,7 @@
/* font record. */
/* */
T1_Pos prev, orus, pix, min, max, threshold;
-
+
threshold = ONE_PIXEL/4;
zone = base_zone;
@@ -347,14 +347,14 @@
/* print the scaled stem snap values in tracing modes */
#ifdef FT_DEBUG_LEVEL_TRACE
-
- FT_TRACE2(( "Set_Snap_Zones : first %s pass\n",
+
+ FT_TRACE2(( "Set_Snap_Zones : first %s pass\n",
direction ? "vertical" : "horizontal" ));
-
+
FT_TRACE2(( "Scaled original stem snap zones :\n" ));
FT_TRACE2(( " orus pix min max\n" ));
FT_TRACE2(( "-----------------------------\n" ));
-
+
zone = base_zone;
for ( n = 0; n < n_zones; n++, zone++ )
FT_TRACE2(( " %3d %.2f %.2f %.2f\n",
@@ -363,7 +363,7 @@
zone->min/64.0,
zone->max/64.0 ));
FT_TRACE2(( "\n" ));
-
+
FT_TRACE2(( "Standard width = %d\n", standard_width ));
#endif
@@ -378,7 +378,7 @@
T1_Snap_Zone* parent;
T1_Pos std_pix, std_min, std_max;
- std_pix = SCALE( standard_width );
+ std_pix = SCALE( standard_width );
std_min = std_pix-threshold;
std_max = std_pix+threshold;
@@ -402,29 +402,29 @@
}
zone++;
}
-
+
/**********************************************/
/* Now, insert the standard width zone */
-
+
zone = base_zone+num_zones;
while ( zone > base_zone && zone[-1].pix > std_max )
{
zone[0] = zone[-1];
zone --;
}
-
+
/* check border zones */
if ( zone > base_zone && zone[-1].max > std_min )
zone[-1].max = std_min;
-
+
if ( zone < base_zone+num_zones && zone[1].min < std_max )
zone[1].min = std_max;
-
+
zone->orus = standard_width;
zone->pix = std_pix;
zone->min = std_min;
zone->max = std_max;
-
+
num_zones++;
}
else
@@ -436,14 +436,14 @@
/* print the scaled stem snap values in tracing modes */
#ifdef FT_DEBUG_LEVEL_TRACE
-
- FT_TRACE2(( "Set_Snap_Zones : second %s pass\n",
+
+ FT_TRACE2(( "Set_Snap_Zones : second %s pass\n",
direction ? "vertical" : "horizontal" ));
-
+
FT_TRACE2(( "Scaled clipped stem snap zones :\n" ));
FT_TRACE2(( " orus pix min max\n" ));
FT_TRACE2(( "-----------------------------\n" ));
-
+
zone = base_zone;
for ( n = 0; n < num_zones; n++, zone++ )
FT_TRACE2(( " %3d %.2f %.2f %.2f\n",
@@ -452,10 +452,10 @@
zone->min/64.0,
zone->max/64.0 ));
FT_TRACE2(( "\n" ));
-
+
FT_TRACE2(( "Standard width = %d\n", standard_width ));
#endif
-
+
/* continue with vertical snap zone */
direction++;
standard_width = priv->standard_height;
@@ -467,7 +467,7 @@
return T1_Err_Ok;
}
-
+
/************************************************************************
*
@@ -489,7 +489,7 @@
T1_Error T1_New_Size_Hinter( T1_Size size )
{
FT_Memory memory = size->root.face->memory;
-
+
return MEM_Alloc( size->hints, sizeof(*size->hints) );
}
@@ -562,7 +562,7 @@
T1_Error T1_New_Glyph_Hinter( T1_GlyphSlot glyph )
{
FT_Memory memory = glyph->root.face->memory;
-
+
return MEM_Alloc( glyph->hints, sizeof(*glyph->hints) );
}
@@ -846,7 +846,7 @@
* table :: the horizontal stem hints table
* hints :: the current size's hint structure
* blueShift :: the value of the /BlueShift as taken from the
- * face object.
+ * face object.
* scale :: the 16.16 scale used to convert outline
* units to 26.6 pixels
*
@@ -895,7 +895,7 @@
for ( ; zone < zone_limit; zone++ )
{
T1_Pos dist;
-
+
dist = width_pix - zone->min; if (dist < 0) dist = -dist;
if (dist < best_dist)
{
@@ -903,7 +903,7 @@
best_dist = dist;
}
}
-
+
if (best_zone)
{
if (width_pix > best_zone->pix)
@@ -948,7 +948,7 @@
if (!hints->supress_overshoots)
{
T1_Pos delta = blue->pix - bottom_pix;
-
+
delta = ( delta < blueShift ? 0 : ROUND( delta ) );
bottom -= delta;
}
@@ -960,7 +960,7 @@
/******************************************************************/
/* Check for top blue zones alignement */
{
- T1_Int num_blues = hints->num_blue_zones -
+ T1_Int num_blues = hints->num_blue_zones -
hints->num_bottom_zones;
T1_Snap_Zone* blue = hints->blue_zones +
@@ -982,7 +982,7 @@
if (!hints->supress_overshoots)
{
T1_Pos delta = top - blue->pix;
-
+
delta = ( delta < blueShift ? 0 : ROUND( delta ) );
top += delta;
}
@@ -999,27 +999,27 @@
bottom_pix = bottom;
top_pix = bottom + width_pix;
break;
-
+
case T1_ALIGN_TOP: /* top zone alignement */
top_pix = top;
bottom_pix = top - width_pix;
-
+
break;
-
+
case T1_ALIGN_BOTH: /* bottom+top zone alignement */
bottom_pix = bottom;
top_pix = top;
break;
-
+
default: /* no alignement */
- /* XXXX : TODO : Add management of controlled stems */
+ /* XXXX : TODO : Add management of controlled stems */
bottom = ( SCALE(bottom_orus+top_orus) - width_pix )/2;
-
+
bottom_pix = ROUND(bottom);
top_pix = bottom_pix + width_pix;
}
-
+
stem->min_edge.pix = bottom_pix;
stem->max_edge.pix = top_pix;
}
@@ -1079,7 +1079,7 @@
for ( ; zone < zone_limit; zone++ )
{
T1_Pos dist;
-
+
dist = width_pix - zone->min; if (dist < 0) dist = -dist;
if (dist < best_dist)
{
@@ -1087,7 +1087,7 @@
best_dist = dist;
}
}
-
+
if (best_zone)
{
if (width_pix > best_zone->pix)
@@ -1104,7 +1104,7 @@
}
}
}
-
+
/* round width - minimum 1 pixel if this isn't a ghost stem */
if ( width_pix > 0 )
width_pix = ( width_pix < ONE_PIXEL ? ONE_PIXEL :
@@ -1227,7 +1227,7 @@
*
*
* this function grid-fits several points in a given Type 1 builder
- * at once.
+ * at once.
*
*
* builder :: handle to target Type 1 builder
diff --git a/src/type1/t1hinter.h b/src/type1/t1hinter.h
index 4bf753af9..b5c9327a9 100644
--- a/src/type1/t1hinter.h
+++ b/src/type1/t1hinter.h
@@ -2,7 +2,7 @@
*
* t1hinter.h 1.2
*
- * Type1 hinter.
+ * Type1 hinter.
*
* Copyright 1996-1999 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
@@ -56,10 +56,10 @@
typedef struct T1_Snap_Zone_
{
T1_Pos orus;
- T1_Pos pix;
- T1_Pos min;
- T1_Pos max;
-
+ T1_Pos pix;
+ T1_Pos min;
+ T1_Pos max;
+
} T1_Snap_Zone;
@@ -80,8 +80,8 @@
typedef struct T1_Edge_
{
T1_Pos orus;
- T1_Pos pix;
-
+ T1_Pos pix;
+
} T1_Edge;
@@ -209,7 +209,7 @@
*
*
* A structure used to model the stem hints of a given glyph outline
- * during glyph loading.
+ * during glyph loading.
*
*
* hori_stems :: horizontal stem hints table
@@ -344,7 +344,7 @@
*
*
* this function grid-fits several points in a given Type 1 builder
- * at once.
+ * at once.
*
*
* builder :: handle to target Type 1 builder
diff --git a/src/type1/t1load.c b/src/type1/t1load.c
index f59f22607..f8df35353 100644
--- a/src/type1/t1load.c
+++ b/src/type1/t1load.c
@@ -1131,7 +1131,7 @@
error = Expect_Dict_Arguments( parser, 1, tok_error,
dict_font, 0 );
if (error) goto Exit;
-
+
/* clear stack from all the previous content. This */
/* could be some stupid Postscript code ... */
parser->top = parser->stack;
@@ -1384,7 +1384,7 @@
/* syntax, we never escape from the private dictionary */
if (dict_state != dict_private)
parser->state_index--;
-
+
/* many fonts use a NP instead of def or put, so */
/* we simply ignore the nest token.. */
#if 0
diff --git a/src/type1/t1load.h b/src/type1/t1load.h
index 673316a03..8cd5c80a2 100644
--- a/src/type1/t1load.h
+++ b/src/type1/t1load.h
@@ -2,7 +2,7 @@
*
* t1load.h 1.0
*
- * Type1 Loader.
+ * Type1 Loader.
*
* Copyright 1996-1998 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
diff --git a/src/type1/t1objs.c b/src/type1/t1objs.c
index 254689632..b272a9787 100644
--- a/src/type1/t1objs.c
+++ b/src/type1/t1objs.c
@@ -2,7 +2,7 @@
*
* t1objs.c 1.0
*
- * Type1 Objects manager.
+ * Type1 Objects manager.
*
* Copyright 1996-1998 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
@@ -88,9 +88,9 @@
T1_Error T1_Init_Size( T1_Size size )
{
T1_Error error;
-
+
size->valid = 0;
-
+
#ifndef T1_CONFIG_OPTION_DISABLE_HINTER
error = T1_New_Size_Hinter( size );
return error;
@@ -117,7 +117,7 @@
* Error code.
*
******************************************************************/
-
+
LOCAL_FUNC
T1_Error T1_Reset_Size( T1_Size size )
{
@@ -148,7 +148,7 @@
* face :: typeless pointer to the face object to destroy
*
*
- * Error code.
+ * Error code.
*
******************************************************************/
@@ -161,11 +161,11 @@
if (face)
{
memory = face->root.memory;
-
- /* release font info strings */
+
+ /* release font info strings */
{
T1_FontInfo* info = &type1->font_info;
-
+
FREE( info->version );
FREE( info->notice );
FREE( info->full_name );
@@ -173,21 +173,21 @@
FREE( info->weight );
}
- /* release top dictionary */
+ /* release top dictionary */
FREE( type1->charstrings_len );
FREE( type1->charstrings );
FREE( type1->glyph_names );
FREE( type1->subrs );
FREE( type1->subrs_len );
-
+
FREE( type1->subrs_block );
FREE( type1->charstrings_block );
FREE( type1->glyph_names_block );
FREE( type1->encoding.char_index );
FREE( type1->font_name );
-
+
#ifndef T1_CONFIG_OPTION_NO_AFM
/* release afm data if present */
if ( face->afm_data)
@@ -242,7 +242,7 @@
{
/* look-up the PSNames driver */
FT_Driver psnames_driver;
-
+
psnames_driver = FT_Get_Driver( face->root.driver->library, "psnames" );
if (psnames_driver)
face->psnames = (PSNames_Interface*)
@@ -278,15 +278,15 @@
{
FT_Face root = (FT_Face)&face->root;
T1_Font* type1 = &face->type1;
-
+
root->num_glyphs = type1->num_glyphs;
root->num_charmaps = 1;
-
+
root->face_index = face_index;
root->face_flags = FT_FACE_FLAG_SCALABLE;
-
+
root->face_flags |= FT_FACE_FLAG_HORIZONTAL;
-
+
if ( type1->font_info.is_fixed_pitch )
root->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
@@ -299,13 +299,13 @@
{
char* full = type1->font_info.full_name;
char* family = root->family_name;
-
+
while ( *family && *full == *family )
{
family++;
full++;
}
-
+
root->style_name = ( *full == ' ' ? full+1 : "Regular" );
}
else
@@ -317,17 +317,17 @@
root->style_name = "Regular";
}
}
-
+
/* no embedded bitmap support */
root->num_fixed_sizes = 0;
root->available_sizes = 0;
-
+
root->bbox = type1->font_bbox;
root->units_per_EM = 1000;
root->ascender = (T1_Short)type1->font_bbox.yMax;
root->descender = -(T1_Short)type1->font_bbox.yMin;
root->height = ((root->ascender + root->descender)*12)/10;
-
+
/* now compute the maximum advance width */
root->max_advance_width = type1->private_dict.standard_width;
@@ -347,10 +347,10 @@
}
root->max_advance_height = root->height;
-
+
root->underline_position = type1->font_info.underline_position;
root->underline_thickness = type1->font_info.underline_thickness;
-
+
root->max_points = 0;
root->max_contours = 0;
}
@@ -381,7 +381,7 @@
charmap->encoding_id = 1;
charmap++;
}
-
+
/* simply clear the error in case of failure (which really) */
/* means that out of memory or no unicode glyph names */
error = 0;
@@ -391,25 +391,25 @@
/* now, support either the standard, expert, or custom encodings */
charmap->face = (FT_Face)face;
charmap->platform_id = 7; /* a new platform id for Adobe fonts ?? */
-
+
switch (face->type1.encoding_type)
{
case t1_encoding_standard:
charmap->encoding = ft_encoding_adobe_standard;
charmap->encoding_id = 0;
break;
-
+
case t1_encoding_expert:
charmap->encoding = ft_encoding_adobe_expert;
charmap->encoding_id = 1;
break;
-
+
default:
charmap->encoding = ft_encoding_adobe_custom;
charmap->encoding_id = 2;
break;
}
-
+
root->charmaps = face->charmaps;
root->num_charmaps = charmap - face->charmaprecs + 1;
face->charmaps[0] = &face->charmaprecs[0];
@@ -432,7 +432,7 @@
*
* Input : _glyph typeless pointer to the glyph record to destroy
*
- * Output : Error code.
+ * Output : Error code.
*
******************************************************************/
@@ -459,7 +459,7 @@
* Description : The glyph object constructor.
*
* Input : glyph glyph record to build.
- * face the glyph's parent face.
+ * face the glyph's parent face.
*
* Output : Error code.
*
diff --git a/src/type1/t1objs.h b/src/type1/t1objs.h
index 53fe3dbe1..dd4220fb1 100644
--- a/src/type1/t1objs.h
+++ b/src/type1/t1objs.h
@@ -2,7 +2,7 @@
*
* t1objs.h 1.0
*
- * Type1 objects definition.
+ * Type1 objects definition.
*
* Copyright 1996-1999 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
@@ -83,7 +83,7 @@
/* NOW BEGINS THE TYPE1 SPECIFIC STUFF .............................. */
/* */
/**************************************************************************/
-
+
/***************************************************/
/* */
@@ -91,7 +91,7 @@
/* */
/* Type 1 size record.. */
/* */
-
+
typedef struct T1_SizeRec_
{
FT_SizeRec root;
@@ -110,14 +110,14 @@
/* */
/* TrueDoc glyph record.. */
/* */
-
+
typedef struct T1_GlyphSlotRec_
{
FT_GlyphSlotRec root;
T1_Bool hint;
T1_Bool scaled;
-
+
T1_Int max_points;
T1_Int max_contours;
@@ -251,7 +251,7 @@
*
* glyph :: handle to glyph slot object
*
- * Error code.
+ * Error code.
*
******************************************************************/
diff --git a/src/type1/t1parse.c b/src/type1/t1parse.c
index d897d7446..9a71f9990 100644
--- a/src/type1/t1parse.c
+++ b/src/type1/t1parse.c
@@ -157,16 +157,16 @@
old_base = table->block;
if (!old_base)
return;
-
+
(void)REALLOC( table->block, table->capacity, table->cursor );
table->capacity = table->cursor;
-
+
if (old_base != table->block)
{
T1_Long delta = table->block - old_base;
T1_Byte** element = table->elements;
T1_Byte** limit = element + table->max_elems;
-
+
for ( ; element < limit; element++ )
if (element[0])
element[0] += delta;
diff --git a/src/type1/t1tokens.c b/src/type1/t1tokens.c
index 6f2f58e0c..53e5a9e9e 100644
--- a/src/type1/t1tokens.c
+++ b/src/type1/t1tokens.c
@@ -170,7 +170,7 @@
FT_TRACE2(( "Growing tokenizer buffer by %d bytes\n", left_bytes ));
- if ( !REALLOC( tokzer->base, tokzer->limit,
+ if ( !REALLOC( tokzer->base, tokzer->limit,
tokzer->limit + left_bytes ) &&
!FILE_Read( tokzer->base + tokzer->limit, left_bytes ) )
tokzer->limit += left_bytes;
@@ -309,13 +309,13 @@
tokzer->cursor = 0;
*tokenizer = tokzer;
-
+
/* Now check font format, we must see a '%!PS-AdobeFont-1' */
/* or a '%!FontType' */
{
if ( 16 > tokzer->limit )
grow( tokzer );
-
+
if ( tokzer->limit <= 16 ||
( strncmp( (const char*)tokzer->base, "%!PS-AdobeFont-1", 16 ) &&
strncmp( (const char*)tokzer->base, "%!FontType", 10 ) ) )
@@ -817,7 +817,7 @@
case '(':
case '<':
case '/':
- goto Any_Token;
+ goto Any_Token;
case ' ':
case '\r':
@@ -842,7 +842,7 @@
case '+':
if (token_started)
goto Next;
-
+
token_started = 1;
tok->token.start = cur-1;
for (;;)
diff --git a/src/type1z/t1afm.c b/src/type1z/t1afm.c
index b9f8d8398..56eb84a06 100644
--- a/src/type1z/t1afm.c
+++ b/src/type1z/t1afm.c
@@ -34,27 +34,27 @@
FT_UInt result = 0;
char temp[64];
- /* skip whitespace */
+ /* skip whitespace */
while ( (*p == ' ' || *p == '\t' || *p == ':' || *p == ';') && p < limit )
p++;
*start = p;
-
+
/* now, read glyph name */
while ( IS_ALPHANUM(*p) && p < limit ) p++;
len = p - *start;
if (len > 0 && len < 64)
{
FT_Int n;
-
+
/* copy glyph name to intermediate array */
MEM_Copy( temp, *start, len );
temp[len] = 0;
-
+
/* lookup glyph name in face array */
for ( n = 0; n < type1->num_glyphs; n++ )
{
char* gname = (char*)type1->glyph_names[n];
-
+
if ( gname && gname[0] == temp[0] && strcmp(gname,temp) == 0 )
{
result = n;
@@ -74,17 +74,17 @@
FT_Byte* p = *start;
int sum = 0;
int sign = 1;
-
+
/* skip everything that is not a number */
while ( p < limit && (*p < '0' || *p > '9') )
{
sign = 1;
if (*p == '-')
sign = -1;
-
+
p++;
}
-
+
while ( p < limit && (*p >= '0' && *p < '9') )
{
sum = sum*10 + (*p - '0');
@@ -104,10 +104,10 @@
{
T1_Kern_Pair* pair1 = (T1_Kern_Pair*)a;
T1_Kern_Pair* pair2 = (T1_Kern_Pair*)b;
-
+
T1_ULong index1 = KERN_INDEX(pair1->glyph1,pair1->glyph2);
T1_ULong index2 = KERN_INDEX(pair2->glyph1,pair2->glyph2);
-
+
return ( index1 < index2 ? -1 :
( index1 > index2 ? 1 : 0 ));
}
@@ -127,14 +127,14 @@
T1_Kern_Pair* pair;
T1_Font* type1 = &((T1_Face)t1_face)->type1;
T1_AFM* afm = 0;
-
+
if ( ACCESS_Frame(stream->size) )
return error;
-
+
start = (FT_Byte*)stream->cursor;
limit = (FT_Byte*)stream->limit;
p = start;
-
+
/* we are now going to count the occurences of "KP" or "KPX" in */
/* the AFM file.. */
count = 0;
@@ -147,16 +147,16 @@
/* Actually, kerning pairs are simply optional !! */
if (count == 0)
goto Exit;
-
+
/* allocate the pairs */
if ( ALLOC( afm, sizeof(*afm ) ) ||
ALLOC_ARRAY( afm->kern_pairs, count, T1_Kern_Pair ) )
goto Exit;
-
+
/* now, read each kern pair */
pair = afm->kern_pairs;
afm->num_pairs = count;
-
+
/* save in face object */
((T1_Face)t1_face)->afm_data = afm;
@@ -165,26 +165,26 @@
if ( IS_KERN_PAIR(p) )
{
FT_Byte* q;
-
+
/* skip keyword (KP or KPX) */
q = p+2;
if (*q == 'X') q++;
-
+
pair->glyph1 = afm_atoindex( &q, limit, type1 );
pair->glyph2 = afm_atoindex( &q, limit, type1 );
pair->kerning.x = afm_atoi( &q, limit );
-
+
pair->kerning.y = 0;
if ( p[2] != 'X' )
pair->kerning.y = afm_atoi( &q, limit );
-
+
pair++;
}
}
-
+
/* now, sort the kern pairs according to their glyph indices */
qsort( afm->kern_pairs, count, sizeof(T1_Kern_Pair), compare_kern_pairs );
-
+
Exit:
if (error)
FREE( afm );
@@ -194,7 +194,7 @@
}
- /* find the kerning for a given glyph pair */
+ /* find the kerning for a given glyph pair */
LOCAL_FUNC
void T1_Get_Kerning( T1_AFM* afm,
FT_UInt glyph1,
@@ -203,23 +203,23 @@
{
T1_Kern_Pair *min, *mid, *max;
T1_ULong index = KERN_INDEX(glyph1,glyph2);
-
+
/* simple binary search */
min = afm->kern_pairs;
max = min + afm->num_pairs-1;
-
+
while (min <= max)
{
T1_ULong midi;
-
+
mid = min + (max-min)/2;
- midi = KERN_INDEX(mid->glyph1,mid->glyph2);
+ midi = KERN_INDEX(mid->glyph1,mid->glyph2);
if ( midi == index )
{
*kerning = mid->kerning;
return;
}
-
+
if ( midi < index ) min = mid+1;
else max = mid-1;
}
diff --git a/src/type1z/t1afm.h b/src/type1z/t1afm.h
index 61e18b82c..984ae945c 100644
--- a/src/type1z/t1afm.h
+++ b/src/type1z/t1afm.h
@@ -18,7 +18,7 @@ typedef struct T1_Kern_Pair_
FT_UInt glyph1;
FT_UInt glyph2;
FT_Vector kerning;
-
+
} T1_Kern_Pair;
diff --git a/src/type1z/t1driver.c b/src/type1z/t1driver.c
index 7479fab57..c6dba1a5a 100644
--- a/src/type1z/t1driver.c
+++ b/src/type1z/t1driver.c
@@ -9,7 +9,7 @@
*
* 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
+ * 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.
*
@@ -59,10 +59,10 @@
const FT_String* interface )
{
UNUSED(driver);
-
+
if ( strcmp( (const char*)interface, "attach_file" ) == 0 )
return (FTDriver_Interface)T1_Read_AFM;
-
+
return 0;
}
@@ -107,7 +107,7 @@
T1_Vector* kerning )
{
T1_AFM* afm;
-
+
kerning->x = 0;
kerning->y = 0;
@@ -185,7 +185,7 @@
UNUSED(pixel_width);
UNUSED(pixel_height);
- size->valid = FALSE;
+ size->valid = FALSE;
return T1_Reset_Size(size);
}
@@ -214,7 +214,7 @@
face = (T1_Face)charmap->face;
psnames = (PSNames_Interface*)face->psnames;
- if (psnames)
+ if (psnames)
switch (charmap->encoding)
{
/********************************************************************/
@@ -233,7 +233,7 @@
result = 0;
goto Exit;
}
-
+
/********************************************************************/
/* */
/* Custom Type 1 encoding */
@@ -248,7 +248,7 @@
}
goto Exit;
}
-
+
/********************************************************************/
/* */
/* Adobe Standard & Expert encoding support */
@@ -259,18 +259,18 @@
FT_UInt code;
FT_Int n;
const char* glyph_name;
-
+
code = psnames->adobe_std_encoding[charcode];
if (charmap->encoding == ft_encoding_adobe_expert)
code = psnames->adobe_expert_encoding[charcode];
-
+
glyph_name = psnames->adobe_std_strings(code);
if (!glyph_name) break;
-
+
for ( n = 0; n < face->type1.num_glyphs; n++ )
{
const char* gname = face->type1.glyph_names[n];
-
+
if ( gname && gname[0] == glyph_name[0] &&
strcmp( gname, glyph_name ) == 0 )
{
@@ -280,7 +280,7 @@
}
}
}
- Exit:
+ Exit:
return result;
}
@@ -365,7 +365,7 @@
sizeof( T1_FaceRec ),
sizeof( T1_SizeRec ),
sizeof( T1_GlyphSlotRec ),
-
+
"type1",
100,
200,
@@ -384,7 +384,7 @@
(FTDriver_initFace) T1_Init_Face,
(FTDriver_doneFace) T1_Done_Face,
-#ifdef T1_CONFIG_OPTION_NO_AFM
+#ifdef T1_CONFIG_OPTION_NO_AFM
(FTDriver_getKerning) 0,
#else
(FTDriver_getKerning) Get_Kerning,
@@ -424,12 +424,12 @@
/* */
#ifdef FT_CONFIG_OPTION_DYNAMIC_DRIVERS
-
+
EXPORT_FUNC(FT_DriverInterface*) getDriverInterface( void )
{
return &t1_driver_interface;
}
-
+
#endif /* FT_CONFIG_OPTION_DYNAMIC_DRIVERS */
diff --git a/src/type1z/t1driver.h b/src/type1z/t1driver.h
index ec43946af..76f244a28 100644
--- a/src/type1z/t1driver.h
+++ b/src/type1z/t1driver.h
@@ -9,7 +9,7 @@
*
* 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
+ * 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.
*
diff --git a/src/type1z/t1errors.h b/src/type1z/t1errors.h
index 93731c11d..a799115a8 100644
--- a/src/type1z/t1errors.h
+++ b/src/type1z/t1errors.h
@@ -32,7 +32,7 @@
#define T1_Err_Ok FT_Err_Ok
/* ----------- high level API errors -------- */
-
+
#define T1_Err_Invalid_File_Format FT_Err_Invalid_File_Format
#define T1_Err_Invalid_Argument FT_Err_Invalid_Argument
#define T1_Err_Invalid_Driver_Handle FT_Err_Invalid_Driver_Handle
@@ -51,7 +51,7 @@
#define T1_Err_Invalid_Engine FT_Err_Invalid_Driver_Handle
/* ------------- internal errors ------------ */
-
+
#define T1_Err_Out_Of_Memory FT_Err_Out_Of_Memory
#define T1_Err_Unlisted_Object FT_Err_Unlisted_Object
diff --git a/src/type1z/t1gload.c b/src/type1z/t1gload.c
index 51d3f44cc..71a717326 100644
--- a/src/type1z/t1gload.c
+++ b/src/type1z/t1gload.c
@@ -55,7 +55,7 @@
} T1_Operator;
- static const T1_Int t1_args_count[ op_max ] =
+ static const T1_Int t1_args_count[ op_max ] =
{
0, /* none */
0, /* endchar */
@@ -223,7 +223,7 @@
return T1_Err_Ok;
count += base->n_points + outline->n_points;
-
+
/* realloc points table if necessary */
if ( count >= builder->max_points )
{
@@ -237,14 +237,14 @@
if ( REALLOC_ARRAY( base->points, current,
builder->max_points, T1_Vector ) ||
-
+
REALLOC_ARRAY( base->tags, current,
builder->max_points, T1_Byte ) )
{
builder->error = error;
return error;
}
-
+
outline->points = base->points + increment;
outline->tags = base->tags + increment;
}
@@ -265,17 +265,17 @@
{
FT_Vector* point = outline->points + outline->n_points;
FT_Byte* control = (FT_Byte*)outline->tags + outline->n_points;
-
+
point->x = x;
point->y = y;
*control = ( flag ? FT_Curve_Tag_On : FT_Curve_Tag_Cubic );
-
+
builder->last = *point;
}
-
+
outline->n_points++;
}
-
+
/* check room for a new on-curve point, then add it */
static
@@ -284,7 +284,7 @@
FT_Pos y )
{
T1_Error error;
-
+
error = check_points(builder,1);
if (!error)
add_point( builder, x, y, 1 );
@@ -305,7 +305,7 @@
outline->n_contours++;
return T1_Err_Ok;
}
-
+
/* realloc contours array if necessary */
if ( base->n_contours + outline->n_contours >= builder->max_contours &&
builder->load_points )
@@ -323,7 +323,7 @@
builder->error = error;
return error;
}
-
+
outline->contours = base->contours + increment;
}
@@ -344,7 +344,7 @@
if (!builder->path_begun)
{
T1_Error error;
-
+
builder->path_begun = 1;
error = add_contour( builder );
if (error) return error;
@@ -374,7 +374,7 @@
* to implement the SEAC Type 1 operator.
*
*
- * face :: current face object
+ * face :: current face object
* charcode :: charcode to look for
*
*
@@ -390,18 +390,18 @@
T1_Int n;
const T1_String* glyph_name;
PSNames_Interface* psnames = (PSNames_Interface*)face->psnames;
-
+
/* check range of standard char code */
if (charcode < 0 || charcode > 255)
return -1;
-
+
glyph_name = psnames->adobe_std_strings(
psnames->adobe_std_encoding[charcode]);
-
+
for ( n = 0; n < face->type1.num_glyphs; n++ )
{
T1_String* name = (T1_String*)face->type1.glyph_names[n];
-
+
if ( name && strcmp(name,glyph_name) == 0 )
return n;
}
@@ -428,7 +428,7 @@
* achar :: accent character's StandardEncoding charcode
*
*
- * Error code. 0 means success.
+ * Error code. 0 means success.
*
*********************************************************************/
@@ -447,10 +447,10 @@
FT_Outline* base = &decoder->builder.base;
T1_Vector left_bearing, advance;
T1_Font* type1 = &face->type1;
-
+
bchar_index = lookup_glyph_by_stdcharcode( face, bchar );
achar_index = lookup_glyph_by_stdcharcode( face, achar );
-
+
if (bchar_index < 0 || achar_index < 0)
{
FT_ERROR(( "T1.Parse_Seac : invalid seac character code arguments\n" ));
@@ -482,20 +482,20 @@
FT_GlyphSlot glyph = (FT_GlyphSlot)decoder->builder.glyph;
FT_SubGlyph* subg;
- /* reallocate subglyph array if necessary */
+ /* reallocate subglyph array if necessary */
if (glyph->max_subglyphs < 2)
{
FT_Memory memory = decoder->builder.face->root.memory;
-
+
if ( REALLOC_ARRAY( glyph->subglyphs, glyph->max_subglyphs,
2, FT_SubGlyph ) )
return error;
-
+
glyph->max_subglyphs = 2;
}
subg = glyph->subglyphs;
-
+
/* subglyph 0 = base character */
subg->index = bchar_index;
subg->flags = FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES |
@@ -503,7 +503,7 @@
subg->arg1 = 0;
subg->arg2 = 0;
subg++;
-
+
/* subglyph 1 = accent character */
subg->index = achar_index;
subg->flags = FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES;
@@ -520,19 +520,19 @@
/* as they will be erase by the next load.. */
left_bearing = decoder->builder.left_bearing;
advance = decoder->builder.advance;
-
+
decoder->builder.left_bearing.x = 0;
- decoder->builder.left_bearing.y = 0;
-
+ decoder->builder.left_bearing.y = 0;
+
/* Now load "achar" on top of */
/* the base outline */
- /* */
+ /* */
cur->n_points = 0;
cur->n_contours = 0;
cur->points = base->points + base->n_points;
cur->tags = base->tags + base->n_points;
cur->contours = base->contours + base->n_contours;
-
+
error = T1_Parse_CharStrings( decoder,
type1->charstrings [achar_index],
type1->charstrings_len[achar_index],
@@ -540,21 +540,21 @@
type1->subrs,
type1->subrs_len );
if (error) return error;
-
+
/* adjust contours in accented character outline */
if (decoder->builder.load_points)
{
T1_Int n;
-
+
for ( n = 0; n < cur->n_contours; n++ )
cur->contours[n] += n_base_points;
}
-
+
/* restore the left side bearing and */
/* advance width of the base character */
decoder->builder.left_bearing = left_bearing;
decoder->builder.advance = advance;
-
+
/* Finally, move the accent */
if (decoder->builder.load_points)
FT_Outline_Translate( cur, adx - asb, ady );
@@ -580,7 +580,7 @@
* subrs_len :: array of sub-routines lengths
*
*
- * Error code. 0 means success.
+ * Error code. 0 means success.
*
*********************************************************************/
@@ -615,7 +615,7 @@
error = T1_Err_Ok;
outline = &builder->current;
-
+
x = builder->pos_x;
y = builder->pos_y;
@@ -749,27 +749,27 @@
FT_TRACE4(( " callothersubr" ));
if ( top - decoder->stack < 2 )
goto Stack_Underflow;
-
+
top -= 2;
switch ( top[1] )
{
case 1: /* start flex feature ---------------------- */
{
if ( top[0] != 0 ) goto Unexpected_OtherSubr;
-
+
decoder->flex_state = 1;
decoder->num_flex_vectors = 0;
if ( start_point(builder, x, y) ||
check_points(builder,6) ) goto Memory_Error;
}
break;
-
+
case 2: /* add flex vectors ------------------------ */
{
T1_Int index;
-
+
if ( top[0] != 0 ) goto Unexpected_OtherSubr;
-
+
/* note that we should not add a point for index 0 */
/* this will move our current position to the flex */
/* point without adding any point to the outline */
@@ -781,18 +781,18 @@
(T1_Byte)( index==3 || index==6 ) );
}
break;
-
+
case 0: /* end flex feature ------------------------- */
{
if ( top[0] != 3 ) goto Unexpected_OtherSubr;
-
+
if ( decoder->flex_state == 0 ||
decoder->num_flex_vectors != 7 )
{
FT_ERROR(( "T1.Parse_CharStrings: unexpected flex end\n" ));
goto Syntax_Error;
}
-
+
/* now consume the remaining "pop pop setcurpoint" */
if ( ip+6 > limit ||
ip[0] != 12 || ip[1] != 17 || /* pop */
@@ -802,16 +802,16 @@
FT_ERROR(( "T1.Parse_CharStrings: invalid flex charstring\n" ));
goto Syntax_Error;
}
-
+
ip += 6;
decoder->flex_state = 0;
break;
}
-
+
case 3: /* change hints ---------------------------- */
{
if ( top[0] != 1 ) goto Unexpected_OtherSubr;
-
+
/* eat the following "pop" */
if (ip+2 > limit)
{
@@ -819,7 +819,7 @@
ip[-1] ));
goto Syntax_Error;
}
-
+
if (ip[0] != 12 || ip[1] != 17)
{
FT_ERROR(( "T1.Parse_CharStrings: 'pop' expected, found (%d %d)\n",
@@ -829,7 +829,7 @@
ip += 2;
break;;
}
-
+
default:
Unexpected_OtherSubr:
FT_ERROR(( "T1.Parse_CharStrings: invalid othersubr [%d %d]!!\n",
@@ -852,12 +852,12 @@
case op_endchar: /*************************************************/
{
FT_TRACE4(( " endchar" ));
- close_contour( builder );
+ close_contour( builder );
/* add current outline to the glyph slot */
builder->base.n_points += builder->current.n_points;
builder->base.n_contours += builder->current.n_contours;
-
+
/* return now !! */
FT_TRACE4(( "\n\n" ));
return T1_Err_Ok;
@@ -870,16 +870,16 @@
builder->left_bearing.x += top[0];
builder->advance.x = top[1];
builder->advance.y = 0;
-
+
builder->last.x = x = top[0];
builder->last.y = y = 0;
-
+
/* the "metrics_only" indicates that we only want to compute */
/* the glyph's metrics (lsb + advance width), not load the */
/* rest of it.. so exit immediately */
if (builder->metrics_only)
return T1_Err_Ok;
-
+
break;
}
@@ -896,16 +896,16 @@
builder->left_bearing.y += top[1];
builder->advance.x = top[2];
builder->advance.y = top[3];
-
+
builder->last.x = x = top[0];
builder->last.y = y = top[1];
-
+
/* the "metrics_only" indicates that we only want to compute */
/* the glyph's metrics (lsb + advance width), not load the */
/* rest of it.. so exit immediately */
if (builder->metrics_only)
return T1_Err_Ok;
-
+
break;
}
@@ -942,7 +942,7 @@
FT_TRACE4(( " hvcurveto" ));
if ( start_point( builder, x, y ) ||
check_points( builder, 3 ) ) goto Memory_Error;
-
+
x += top[0];
add_point( builder, x, y, 0 );
x += top[1];
@@ -958,7 +958,7 @@
{
FT_TRACE4(( " rlineto" ));
if ( start_point( builder, x, y ) ) goto Memory_Error;
-
+
x += top[0];
y += top[1];
Add_Line:
@@ -980,11 +980,11 @@
FT_TRACE4(( " rcurveto" ));
if ( start_point( builder, x, y ) ||
check_points( builder, 3 ) ) goto Memory_Error;
-
+
x += top[0];
y += top[1];
add_point( builder, x, y, 0 );
-
+
x += top[2];
y += top[3];
add_point( builder, x, y, 0 );
@@ -993,7 +993,7 @@
y += top[5];
add_point( builder, x, y, 1 );
break;
- }
+ }
case op_vhcurveto: /**********************************************/
@@ -1001,7 +1001,7 @@
FT_TRACE4(( " vhcurveto" ));
if ( start_point( builder, x, y ) ||
check_points( builder, 3 ) ) goto Memory_Error;
-
+
y += top[0];
add_point( builder, x, y, 0 );
x += top[1];
@@ -1017,7 +1017,7 @@
{
FT_TRACE4(( " vlineto" ));
if ( start_point( builder, x, y ) ) goto Memory_Error;
-
+
y += top[0];
goto Add_Line;
}
@@ -1150,10 +1150,10 @@
}
decoder->top = top;
-
+
} /* general operator processing */
-
+
} /* while ip < limit */
FT_TRACE4(( "..end..\n\n" ));
return error;
@@ -1163,7 +1163,7 @@
Stack_Underflow:
return T1_Err_Stack_Underflow;
-
+
Memory_Error:
return builder->error;
}
@@ -1269,9 +1269,9 @@
{
T1_Init_Decoder( &decoder );
T1_Init_Builder( &decoder.builder, face, size, glyph );
-
+
decoder.builder.no_recurse = (FT_Bool)!!(load_flags & FT_LOAD_NO_RECURSE);
-
+
/* now load the unscaled outline */
error = T1_Parse_CharStrings( &decoder,
type1->charstrings [glyph_index],
@@ -1279,7 +1279,7 @@
type1->num_subrs,
type1->subrs,
type1->subrs_len );
-
+
/* save new glyph tables */
T1_Done_Builder( &decoder.builder );
}
@@ -1300,29 +1300,29 @@
{
FT_BBox cbox;
FT_Glyph_Metrics* metrics = &glyph->root.metrics;
-
+
/* copy the _unscaled_ advance width */
metrics->horiAdvance = decoder.builder.advance.x;
-
+
/* make up vertical metrics */
metrics->vertBearingX = 0;
metrics->vertBearingY = 0;
metrics->vertAdvance = 0;
-
+
glyph->root.format = ft_glyph_format_outline;
-
+
glyph->root.outline.flags &= ft_outline_owner;
if ( size && size->root.metrics.y_ppem < 24 )
glyph->root.outline.flags |= ft_outline_high_precision;
glyph->root.outline.flags |= ft_outline_reverse_fill;
-
+
/*
glyph->root.outline.second_pass = TRUE;
glyph->root.outline.high_precision = ( size->root.metrics.y_ppem < 24 );
glyph->root.outline.dropout_mode = 2;
*/
-
+
if ( (load_flags & FT_LOAD_NO_SCALE) == 0 )
{
/* scale the outline and the metrics */
@@ -1331,7 +1331,7 @@
T1_Vector* vec = cur->points;
T1_Fixed x_scale = glyph->x_scale;
T1_Fixed y_scale = glyph->y_scale;
-
+
/* First of all, scale the points */
for ( n = cur->n_points; n > 0; n--, vec++ )
{
@@ -1340,10 +1340,10 @@
}
FT_Outline_Get_CBox( &glyph->root.outline, &cbox );
-
+
/* Then scale the metrics */
metrics->horiAdvance = FT_MulFix( metrics->horiAdvance, x_scale );
-
+
metrics->vertBearingX = FT_MulFix( metrics->vertBearingX, x_scale );
metrics->vertBearingY = FT_MulFix( metrics->vertBearingY, y_scale );
metrics->vertAdvance = FT_MulFix( metrics->vertAdvance, x_scale );
@@ -1351,7 +1351,7 @@
/* compute the other metrics */
FT_Outline_Get_CBox( &glyph->root.outline, &cbox );
-
+
/* grid fit the bounding box if necessary */
if (hinting)
{
diff --git a/src/type1z/t1gload.h b/src/type1z/t1gload.h
index 3c2de5ebb..0ac000a62 100644
--- a/src/type1z/t1gload.h
+++ b/src/type1z/t1gload.h
@@ -108,10 +108,10 @@
T1_Bool path_begun;
T1_Bool load_points;
T1_Bool no_recurse;
-
+
T1_Error error; /* only used for memory errors */
T1_Bool metrics_only;
-
+
} T1_Builder;
diff --git a/src/type1z/t1load.c b/src/type1z/t1load.c
index b2589c238..e53e9149a 100644
--- a/src/type1z/t1load.c
+++ b/src/type1z/t1load.c
@@ -2,7 +2,7 @@
*
* t1load.h 2.0
*
- * Type1 Loader.
+ * Type1 Loader.
*
* Copyright 1996-2000 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
@@ -32,7 +32,7 @@
*
* ..... /Field ....
*
- * where can be a number, a boolean, a string, or an
+ * where can be a number, a boolean, a string, or an
* array of numbers. There are a few exceptions, namely the
* encoding, font name, charstrings and subrs and they are
* handled with a special pattern-matching routine.
@@ -72,17 +72,17 @@
typedef void (*T1_Parse_Func)( T1_Face face, T1_Loader* loader );
- typedef struct T1_KeyWord_
+ typedef struct T1_KeyWord_
{
const char* name;
T1_Parse_Func parsing;
-
+
} T1_KeyWord;
/* some handy macros used to easily define parsing callback functions */
/* each callback is in charge of loading a value and storing it in a */
/* given field of the Type 1 face.. */
-
+
#define PARSE_(x) static void FT_XCAT(parse_,x) ( T1_Face face, T1_Loader* loader )
#define FIELD FACE.x
@@ -98,7 +98,7 @@
FACE.x = (t)T1_ToInt(&loader->parser); \
FT_TRACE2(( "type1.parse_%s: \"%d\"\n", #x, FACE.x )); \
}
-
+
#define PARSE_INT(s,x) PARSE_(x) \
{ \
FACE.x = T1_ToInt(&loader->parser); \
@@ -111,19 +111,19 @@
FT_TRACE2(( "type1.parse_%s : \"%s\"\n", \
#x, FACE.x ? "true" : "false" )); \
}
-
+
#define PARSE_FIXED(s,x) PARSE_(x) \
{ \
FACE.x = T1_ToFixed(&loader->parser,3); \
FT_TRACE2(( "type1.parse_%s: \"%f\"\n", #x, FACE.x/65536.0 )); \
}
-
+
#define PARSE_COORDS(s,c,m,x) PARSE_(x) \
{ \
FACE.c = T1_ToCoordArray(&loader->parser, m, (T1_Short*)FACE.x ); \
FT_TRACE2(( "type1.parse_%s\n", #x )); \
}
-
+
#define PARSE_FIXEDS(s,c,m,x) PARSE_(x) \
{ \
FACE.c = T1_ToFixedArray(&loader->parser, m, (T1_Fixed*)FACE.x, 3 ); \
@@ -168,49 +168,49 @@
void skip_whitespace( T1_Parser* parser )
{
T1_Byte* cur = parser->cursor;
-
+
while ( cur < parser->limit && is_space(*cur) )
cur++;
-
+
parser->cursor = cur;
}
-
+
static
void skip_blackspace( T1_Parser* parser )
{
T1_Byte* cur = parser->cursor;
-
+
while ( cur < parser->limit && !is_space(*cur) )
cur++;
-
+
parser->cursor = cur;
}
-
+
static
int read_binary_data( T1_Parser* parser, T1_Int *size, T1_Byte* *base )
{
T1_Byte* cur;
T1_Byte* limit = parser->limit;
-
+
/* the binary data has the following format */
/* */
/* "size" [white*] RD white ....... ND */
/* */
-
+
skip_whitespace(parser);
cur = parser->cursor;
-
+
if ( cur < limit && (T1_Byte)(*cur-'0') < 10 )
{
*size = T1_ToInt(parser);
-
+
skip_whitespace(parser);
skip_blackspace(parser); /* "RD" or "-|" or something else */
-
+
/* there is only one whitespace char after the */
/* "RD" or "-|" token */
*base = parser->cursor + 1;
-
+
parser->cursor += *size+1;
return 1;
}
@@ -235,12 +235,12 @@
T1_Byte* cur;
T1_Byte* cur2;
T1_Byte* limit;
-
+
skip_whitespace(parser);
cur = parser->cursor;
limit = parser->limit;
if ( cur >= limit-1 || *cur != '/' ) return;
-
+
cur++;
cur2 = cur;
while (cur2 < limit && is_alpha(*cur2)) cur2++;
@@ -252,7 +252,7 @@
parser->error = error;
return;
}
-
+
MEM_Copy( face->type1.font_name, cur, len );
face->type1.font_name[len] = '\0';
}
@@ -265,7 +265,7 @@
T1_Parser* parser = &loader->parser;
T1_Short temp[4];
T1_BBox* bbox = &face->type1.font_bbox;
-
+
(void)T1_ToCoordArray( parser, 4, temp );
bbox->xMin = temp[0];
bbox->yMin = temp[1];
@@ -279,7 +279,7 @@
T1_Parser* parser = &loader->parser;
T1_Byte* cur = parser->cursor;
T1_Byte* limit = parser->limit;
-
+
/* skip whitespace */
while (is_space(*cur))
{
@@ -291,7 +291,7 @@
return;
}
}
-
+
/* if we have a number, then the encoding is an array, */
/* and we must load it now */
if ((T1_Byte)(*cur - '0') < 10)
@@ -301,7 +301,7 @@
T1_Table* char_table = &loader->encoding_table;
FT_Memory memory = parser->memory;
FT_Error error;
-
+
/* read the number of entries in the encoding, should be 256 */
count = T1_ToInt( parser );
if (parser->error) return;
@@ -315,7 +315,7 @@
parser->error = error;
return;
}
-
+
/* now, we will need to read a record of the form */
/* ... charcode /charname ... for each entry in our table */
/* */
@@ -337,9 +337,9 @@
for ( ; cur < limit; )
{
T1_Byte c;
-
+
c = *cur;
-
+
/* we stop when we encounter a 'def' */
if ( c == 'd' && cur+3 < limit )
{
@@ -352,39 +352,39 @@
break;
}
}
-
+
/* otherwise, we must find a number before anything else */
if ( (T1_Byte)(c-'0') < 10 )
{
T1_Int charcode;
-
+
parser->cursor = cur;
charcode = T1_ToInt(parser);
cur = parser->cursor;
-
+
/* skip whitespace */
while (cur < limit && is_space(*cur)) cur++;
-
+
if (cur < limit && *cur == '/')
{
/* bingo, we have an immediate name - it must be a */
/* character name */
FT_Byte* cur2 = cur+1;
T1_Int len;
-
+
while (cur2 < limit && is_alpha(*cur2)) cur2++;
len = cur2-cur-1;
parser->error = T1_Add_Table( char_table, charcode, cur+1, len+1 );
char_table->elements[charcode][len] = '\0';
if (parser->error) return;
-
+
cur = cur2;
}
}
else
cur++;
}
-
+
face->type1.encoding_type = t1_encoding_array;
parser->cursor = cur;
}
@@ -395,7 +395,7 @@
if ( cur+17 < limit &&
strncmp( (const char*)cur, "StandardEncoding", 16 ) == 0 )
face->type1.encoding_type = t1_encoding_standard;
-
+
else if ( cur+15 < limit &&
strncmp( (const char*)cur, "ExpertEncoding", 14 ) == 0 )
face->type1.encoding_type = t1_encoding_expert;
@@ -404,7 +404,7 @@
{
FT_ERROR(( "type1.parse_encoding: invalid token !!\n" ));
parser->error = FT_Err_Invalid_File_Format;
- }
+ }
}
}
@@ -417,10 +417,10 @@
FT_Memory memory = parser->memory;
FT_Error error;
T1_Int n;
-
- loader->num_subrs = T1_ToInt( parser );
+
+ loader->num_subrs = T1_ToInt( parser );
if (parser->error) return;
-
+
/* initialise subrs array */
error = T1_New_Table( table, loader->num_subrs, memory );
if (error) goto Fail;
@@ -429,16 +429,16 @@
/* */
/* "index" + binary data */
/* */
-
+
for ( n = 0; n < loader->num_subrs; n++ )
{
T1_Int index, size;
T1_Byte* base;
-
+
index = T1_ToInt(parser);
if (!read_binary_data(parser,&size,&base)) return;
-
- T1_Decrypt( base, size, 4330 );
+
+ T1_Decrypt( base, size, 4330 );
size -= face->type1.private_dict.lenIV;
base += face->type1.private_dict.lenIV;
@@ -466,21 +466,21 @@
T1_Byte* cur;
T1_Byte* limit = parser->limit;
T1_Int n;
-
- loader->num_glyphs = T1_ToInt( parser );
+
+ loader->num_glyphs = T1_ToInt( parser );
if (parser->error) return;
-
+
/* initialise tables */
error = T1_New_Table( code_table, loader->num_glyphs, memory ) ||
T1_New_Table( name_table, loader->num_glyphs, memory );
if (error) goto Fail;
-
+
n = 0;
for ( ;; )
{
T1_Int size;
T1_Byte* base;
-
+
/* the format is simple : */
/* "/glyphname" + binary data */
/* */
@@ -491,7 +491,7 @@
if (cur >= limit) break;
/* we stop when we find a "def" or "end" keyword */
- if (*cur == 'd' &&
+ if (*cur == 'd' &&
cur+3 < limit &&
cur[1] == 'e' &&
cur[2] == 'f' )
@@ -509,26 +509,26 @@
{
T1_Byte* cur2 = cur+1;
T1_Int len;
-
+
while (cur2 < limit && is_alpha(*cur2)) cur2++;
len = cur2-cur-1;
-
+
error = T1_Add_Table( name_table, n, cur+1, len+1 );
if (error) goto Fail;
-
+
/* add a trailing zero to the name table */
name_table->elements[n][len] = '\0';
-
- parser->cursor = cur2;
+
+ parser->cursor = cur2;
if (!read_binary_data(parser,&size,&base)) return;
- T1_Decrypt( base, size, 4330 );
+ T1_Decrypt( base, size, 4330 );
size -= face->type1.private_dict.lenIV;
base += face->type1.private_dict.lenIV;
error = T1_Add_Table( code_table, n, base, size );
if (error) goto Fail;
-
+
n++;
if (n >= loader->num_glyphs)
break;
@@ -536,7 +536,7 @@
}
loader->num_glyphs = n;
return;
-
+
Fail:
parser->error = error;
}
@@ -586,15 +586,15 @@
T1_Long size )
{
T1_Parser* parser = &loader->parser;
-
+
parser->cursor = base;
parser->limit = base + size;
parser->error = 0;
-
+
{
T1_Byte* cur = base;
T1_Byte* limit = cur + size;
-
+
for ( ;cur < limit; cur++ )
{
/* look for immediates */
@@ -602,21 +602,21 @@
{
T1_Byte* cur2;
T1_Int len;
-
+
cur ++;
cur2 = cur;
while (cur2 < limit && is_alpha(*cur2)) cur2++;
len = cur2-cur;
-
+
if (len > 0 && len < 20)
{
/* now, compare the immediate name to the keyword table */
T1_KeyWord* keyword = (T1_KeyWord*)t1_keywords;
-
+
for (;;)
{
T1_Byte* name;
-
+
name = (T1_Byte*)keyword->name;
if (!name) break;
@@ -627,7 +627,7 @@
for ( n = 1; n < len; n++ )
if (cur[n] != name[n])
break;
-
+
if (n >= len)
{
/* we found it - run the parsing callback !! */
@@ -654,29 +654,29 @@
void t1_init_loader( T1_Loader* loader, T1_Face face )
{
UNUSED(face);
-
+
MEM_Set( loader, 0, sizeof(*loader) );
loader->num_glyphs = 0;
loader->num_chars = 0;
- /* initialize the tables - simply set their 'init' field to 0 */
+ /* initialize the tables - simply set their 'init' field to 0 */
loader->encoding_table.init = 0;
loader->charstrings.init = 0;
loader->glyph_names.init = 0;
loader->subrs.init = 0;
}
-
+
static
void t1_done_loader( T1_Loader* loader )
{
T1_Parser* parser = &loader->parser;
-
+
/* finalize tables */
T1_Release_Table( &loader->encoding_table );
T1_Release_Table( &loader->charstrings );
T1_Release_Table( &loader->glyph_names );
T1_Release_Table( &loader->subrs );
-
+
/* finalize parser */
T1_Done_Parser( parser );
}
@@ -693,47 +693,47 @@
/* default lenIV */
type1->private_dict.lenIV = 4;
-
+
parser = &loader.parser;
error = T1_New_Parser( parser, face->root.stream, face->root.memory );
if (error) goto Exit;
error = parse_dict( face, &loader, parser->base_dict, parser->base_len );
if (error) goto Exit;
-
+
error = T1_Get_Private_Dict( parser );
if (error) goto Exit;
-
+
error = parse_dict( face, &loader, parser->private_dict, parser->private_len );
- if (error) goto Exit;
+ if (error) goto Exit;
/* now, propagate the subrs, charstrings and glyphnames tables */
/* to the Type1 data */
type1->num_glyphs = loader.num_glyphs;
-
+
if ( !loader.subrs.init )
{
FT_ERROR(( "T1.Open_Face: no subrs array in face !!\n" ));
error = FT_Err_Invalid_File_Format;
}
-
+
if ( !loader.charstrings.init )
{
FT_ERROR(( "T1.Open_Face: no charstrings array in face !!\n" ));
error = FT_Err_Invalid_File_Format;
}
-
+
loader.subrs.init = 0;
type1->num_subrs = loader.num_subrs;
type1->subrs_block = loader.subrs.block;
type1->subrs = loader.subrs.elements;
type1->subrs_len = loader.subrs.lengths;
-
+
loader.charstrings.init = 0;
type1->charstrings_block = loader.charstrings.block;
type1->charstrings = loader.charstrings.elements;
type1->charstrings_len = loader.charstrings.lengths;
-
+
/* we copy the glyph names "block" and "elements" fields */
/* but the "lengths" field must be released later.. */
type1->glyph_names_block = loader.glyph_names.block;
@@ -753,16 +753,16 @@
/* table, lookup the index of the glyph having the same name */
/* the index is then stored in type1.encoding.char_index, and */
/* a the name to type1.encoding.char_name */
-
+
min_char = +32000;
max_char = -32000;
-
+
charcode = 0;
for ( ; charcode < loader.encoding_table.num_elems; charcode++ )
{
type1->encoding.char_index[charcode] = 0;
type1->encoding.char_name [charcode] = ".notdef";
-
+
char_name = loader.encoding_table.elements[charcode];
if (char_name)
for ( index = 0; index < type1->num_glyphs; index++ )
@@ -773,7 +773,7 @@
{
type1->encoding.char_index[charcode] = index;
type1->encoding.char_name [charcode] = (char*)glyph_name;
-
+
if (charcode < min_char) min_char = charcode;
if (charcode > max_char) max_char = charcode;
break;
@@ -784,8 +784,8 @@
type1->encoding.code_last = max_char;
type1->encoding.num_chars = loader.num_chars;
}
-
+
Exit:
t1_done_loader( &loader );
return error;
- }
+ }
diff --git a/src/type1z/t1load.h b/src/type1z/t1load.h
index 093096c86..629e94356 100644
--- a/src/type1z/t1load.h
+++ b/src/type1z/t1load.h
@@ -2,7 +2,7 @@
*
* t1load.h 2.0
*
- * Type1 Loader.
+ * Type1 Loader.
*
* Copyright 1996-2000 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
@@ -32,14 +32,14 @@
T1_Int num_chars; /* number of characters in encoding */
T1_Table encoding_table; /* T1_Table used to store the */
/* encoding character names */
-
- T1_Int num_glyphs;
+
+ T1_Int num_glyphs;
T1_Table glyph_names;
T1_Table charstrings;
-
+
T1_Int num_subrs;
T1_Table subrs;
-
+
} T1_Loader;
LOCAL_DEF
diff --git a/src/type1z/t1objs.c b/src/type1z/t1objs.c
index 2d25408c0..3a5c053bb 100644
--- a/src/type1z/t1objs.c
+++ b/src/type1z/t1objs.c
@@ -2,7 +2,7 @@
*
* t1objs.c 1.0
*
- * Type1 Objects manager.
+ * Type1 Objects manager.
*
* Copyright 1996-1998 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
@@ -97,7 +97,7 @@
* Error code.
*
******************************************************************/
-
+
LOCAL_FUNC
T1_Error T1_Reset_Size( T1_Size size )
{
@@ -124,7 +124,7 @@
* face :: typeless pointer to the face object to destroy
*
*
- * Error code.
+ * Error code.
*
******************************************************************/
@@ -138,10 +138,10 @@
{
memory = face->root.memory;
- /* release font info strings */
+ /* release font info strings */
{
T1_FontInfo* info = &type1->font_info;
-
+
FREE( info->version );
FREE( info->notice );
FREE( info->full_name );
@@ -149,21 +149,21 @@
FREE( info->weight );
}
- /* release top dictionary */
+ /* release top dictionary */
FREE( type1->charstrings_len );
FREE( type1->charstrings );
FREE( type1->glyph_names );
FREE( type1->subrs );
FREE( type1->subrs_len );
-
+
FREE( type1->subrs_block );
FREE( type1->charstrings_block );
FREE( type1->glyph_names_block );
FREE( type1->encoding.char_index );
FREE( type1->font_name );
-
+
#ifndef T1_CONFIG_OPTION_NO_AFM
/* release afm data if present */
if ( face->afm_data)
@@ -217,7 +217,7 @@
{
/* look-up the PSNames driver */
FT_Driver psnames_driver;
-
+
psnames_driver = FT_Get_Driver( face->root.driver->library, "psnames" );
if (psnames_driver)
face->psnames = (PSNames_Interface*)
@@ -246,15 +246,15 @@
/* Now set up root face fields */
{
FT_Face root = (FT_Face)&face->root;
-
+
root->num_glyphs = face->type1.num_glyphs;
root->num_charmaps = 1;
-
+
root->face_index = face_index;
root->face_flags = FT_FACE_FLAG_SCALABLE;
-
+
root->face_flags |= FT_FACE_FLAG_HORIZONTAL;
-
+
if ( face->type1.font_info.is_fixed_pitch )
root->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
@@ -267,13 +267,13 @@
{
char* full = face->type1.font_info.full_name;
char* family = root->family_name;
-
+
while ( *family && *full == *family )
{
family++;
full++;
}
-
+
root->style_name = ( *full == ' ' ? full+1 : "Regular" );
}
else
@@ -285,17 +285,17 @@
root->style_name = "Regular";
}
}
-
+
/* no embedded bitmap support */
root->num_fixed_sizes = 0;
root->available_sizes = 0;
-
+
root->bbox = face->type1.font_bbox;
root->units_per_EM = 1000;
root->ascender = (T1_Short)face->type1.font_bbox.yMax;
root->descender = -(T1_Short)face->type1.font_bbox.yMin;
root->height = ((root->ascender + root->descender)*12)/10;
-
+
/* now compute the maximum advance width */
root->max_advance_width = face->type1.private_dict.standard_width;
@@ -315,10 +315,10 @@
}
root->max_advance_height = root->height;
-
+
root->underline_position = face->type1.font_info.underline_position;
root->underline_thickness = face->type1.font_info.underline_thickness;
-
+
root->max_points = 0;
root->max_contours = 0;
}
@@ -349,7 +349,7 @@
charmap->encoding_id = 1;
charmap++;
}
-
+
/* simply clear the error in case of failure (which really) */
/* means that out of memory or no unicode glyph names */
error = 0;
@@ -359,25 +359,25 @@
/* now, support either the standard, expert, or custom encodings */
charmap->face = (FT_Face)face;
charmap->platform_id = 7; /* a new platform id for Adobe fonts ?? */
-
+
switch (face->type1.encoding_type)
{
case t1_encoding_standard:
charmap->encoding = ft_encoding_adobe_standard;
charmap->encoding_id = 0;
break;
-
+
case t1_encoding_expert:
charmap->encoding = ft_encoding_adobe_expert;
charmap->encoding_id = 1;
break;
-
+
default:
charmap->encoding = ft_encoding_adobe_custom;
charmap->encoding_id = 2;
break;
}
-
+
root->charmaps = face->charmaps;
root->num_charmaps = charmap - face->charmaprecs + 1;
face->charmaps[0] = &face->charmaprecs[0];
@@ -396,7 +396,7 @@
*
* Input : _glyph typeless pointer to the glyph record to destroy
*
- * Output : Error code.
+ * Output : Error code.
*
******************************************************************/
@@ -420,7 +420,7 @@
* Description : The glyph object constructor.
*
* Input : glyph glyph record to build.
- * face the glyph's parent face.
+ * face the glyph's parent face.
*
* Output : Error code.
*
diff --git a/src/type1z/t1objs.h b/src/type1z/t1objs.h
index 15f1e99a3..7da67139e 100644
--- a/src/type1z/t1objs.h
+++ b/src/type1z/t1objs.h
@@ -2,7 +2,7 @@
*
* t1objs.h 1.0
*
- * Type1 objects definition.
+ * Type1 objects definition.
*
* Copyright 1996-1999 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
@@ -82,7 +82,7 @@
/* NOW BEGINS THE TYPE1 SPECIFIC STUFF .............................. */
/* */
/**************************************************************************/
-
+
/***************************************************/
/* */
@@ -90,7 +90,7 @@
/* */
/* Type 1 size record.. */
/* */
-
+
typedef struct T1_SizeRec_
{
FT_SizeRec root;
@@ -109,14 +109,14 @@
/* */
/* TrueDoc glyph record.. */
/* */
-
+
typedef struct T1_GlyphSlotRec_
{
FT_GlyphSlotRec root;
T1_Bool hint;
T1_Bool scaled;
-
+
T1_Int max_points;
T1_Int max_contours;
@@ -250,7 +250,7 @@
*
* glyph :: handle to glyph slot object
*
- * Error code.
+ * Error code.
*
******************************************************************/
diff --git a/src/type1z/t1parse.c b/src/type1z/t1parse.c
index 42743c389..b7d9506f9 100644
--- a/src/type1z/t1parse.c
+++ b/src/type1z/t1parse.c
@@ -27,7 +27,7 @@
* See "t1load.c" to see how data is loaded from the font file
*
******************************************************************/
-
+
#include
#include
#include
@@ -75,7 +75,7 @@
Exit:
if (error) FREE(table->elements);
-
+
return error;
}
@@ -105,7 +105,7 @@
T1_Long delta = table->block - old_base;
T1_Byte** offset = table->elements;
T1_Byte** limit = offset + table->max_elems;
-
+
if (delta)
for ( ; offset < limit; offset++ )
{
@@ -113,7 +113,7 @@
offset[0] += delta;
}
}
-
+
static
T1_Error reallocate_t1_table( T1_Table* table,
T1_Int new_size )
@@ -121,17 +121,17 @@
FT_Memory memory = table->memory;
T1_Byte* old_base = table->block;
T1_Error error;
-
+
/* realloc the base block */
if ( REALLOC( table->block, table->capacity, new_size ) )
return error;
-
+
table->capacity = new_size;
-
+
/* shift all offsets when needed */
if (old_base)
shift_elements( table, old_base );
-
+
return T1_Err_Ok;
}
@@ -198,10 +198,10 @@
old_base = table->block;
if (!old_base)
return;
-
+
(void)REALLOC( table->block, table->capacity, table->cursor );
table->capacity = table->cursor;
-
+
if (old_base != table->block)
shift_elements( table, old_base );
}
@@ -211,7 +211,7 @@
void T1_Release_Table( T1_Table* table )
{
FT_Memory memory = table->memory;
-
+
if (table->init == (FT_Long)0xdeadbeef)
{
FREE( table->block );
@@ -228,20 +228,20 @@
T1_Long result = 0;
T1_Byte* cur = *cursor;
T1_Byte c, d;
-
+
for (; cur < limit; cur++)
{
c = *cur;
d = (T1_Byte)(c - '0');
if (d < 10) break;
-
+
if ( c=='-' )
{
cur++;
break;
}
}
-
+
if (cur < limit)
{
do
@@ -249,16 +249,16 @@
d = (T1_Byte)(cur[0] - '0');
if (d >= 10)
break;
-
+
result = result*10 + d;
cur++;
-
+
} while (cur < limit);
-
+
if (c == '-')
result = -result;
}
-
+
*cursor = cur;
return result;
}
@@ -273,26 +273,26 @@
T1_Long num, divider, result;
T1_Int sign = 0;
T1_Byte d;
-
+
if (cur >= limit) return 0;
-
+
/* first of all, read the integer part */
result = t1_toint( &cur, limit ) << 16;
num = 0;
divider = 1;
-
+
if (result < 0)
{
sign = 1;
result = -result;
}
if (cur >= limit) goto Exit;
-
+
/* read decimal part, if any */
if (*cur == '.' && cur+1 < limit)
{
cur++;
-
+
for (;;)
{
d = (T1_Byte)(*cur - '0');
@@ -307,14 +307,14 @@
if (cur >= limit) break;
}
}
-
+
/* read exponent, if any */
if ( cur+1 < limit && (*cur == 'e' || *cur == 'E'))
{
cur++;
power_ten += t1_toint( &cur, limit );
}
-
+
Exit:
/* raise to power of ten if needed */
while (power_ten > 0)
@@ -323,7 +323,7 @@
num = num*10;
power_ten--;
}
-
+
while (power_ten < 0)
{
result = result/10;
@@ -336,7 +336,7 @@
if (sign)
result = -result;
-
+
*cursor = cur;
return result;
}
@@ -351,19 +351,19 @@
T1_Byte* cur = *cursor;
T1_Int count = 0;
T1_Byte c, ender;
-
+
if (cur >= limit) goto Exit;
-
+
/* check for the beginning of an array. If not, only one number will be read */
c = *cur;
ender = 0;
-
+
if (c == '[')
ender = ']';
-
+
if (c == '{')
ender = '}';
-
+
if (ender)
cur++;
@@ -375,21 +375,21 @@
{
c = *cur;
if ( c != ' ' && c != '\t' ) break;
-
+
cur++;
if (cur >= limit) goto Exit;
}
-
+
if (count >= max_coords || c == ender)
break;
-
+
coords[count] = (T1_Short)(t1_tofixed(&cur,limit,0) >> 16);
count++;
-
+
if (!ender)
break;
}
-
+
Exit:
*cursor = cur;
return count;
@@ -399,7 +399,7 @@
static
T1_Int t1_tofixedarray( T1_Byte* *cursor,
- T1_Byte* limit,
+ T1_Byte* limit,
T1_Int max_values,
T1_Fixed* values,
T1_Int power_ten )
@@ -407,19 +407,19 @@
T1_Byte* cur = *cursor;
T1_Int count = 0;
T1_Byte c, ender;
-
+
if (cur >= limit) goto Exit;
-
+
/* check for the beginning of an array. If not, only one number will be read */
c = *cur;
ender = 0;
-
+
if (c == '[')
ender = ']';
-
+
if (c == '{')
ender = '}';
-
+
if (ender)
cur++;
@@ -431,21 +431,21 @@
{
c = *cur;
if ( c != ' ' && c != '\t' ) break;
-
+
cur++;
if (cur >= limit) goto Exit;
}
if (count >= max_values || c == ender)
break;
-
+
values[count] = t1_tofixed(&cur,limit,power_ten);
count++;
-
+
if (!ender)
break;
}
-
+
Exit:
*cursor = cur;
return count;
@@ -472,18 +472,18 @@
while ( cur < limit && (*cur == ' ' || *cur == '\t')) cur++;
if (cur+1 >= limit) return 0;
-
+
if (*cur == '(') cur++; /* skip the opening parenthesis, if there is one */
-
+
*cursor = cur;
count = 0;
-
+
/* then, count its length */
for ( ; cur < limit; cur++ )
{
if (*cur == '(')
count++;
-
+
else if (*cur == ')')
{
count--;
@@ -492,14 +492,14 @@
}
}
- len = cur - *cursor;
+ len = cur - *cursor;
if (cur >= limit || ALLOC(result,len+1)) return 0;
-
+
/* now copy the string */
MEM_Copy( result, *cursor, len );
result[len] = '\0';
*cursor = cur;
- return result;
+ return result;
}
static
@@ -507,7 +507,7 @@
{
T1_Byte* cur = *cursor;
T1_Bool result = 0;
-
+
/* return 1 if we find a "true", 0 otherwise */
if ( cur+3 < limit &&
cur[0] == 't' &&
@@ -583,21 +583,21 @@
FT_Error read_pfb_tag( FT_Stream stream, T1_UShort *tag, T1_Long* size )
{
FT_Error error;
-
+
if (READ_UShort(*tag)) goto Exit;
if (*tag == 0x8001 || *tag == 0x8002)
{
FT_Long asize;
-
+
if (READ_ULong(asize)) goto Exit;
-
+
/* swap between big and little endianness */
*size = ((asize & 0xFF000000) >> 24) |
((asize & 0x00FF0000) >> 8 ) |
((asize & 0x0000FF00) << 8 ) |
((asize & 0x000000FF) << 24);
}
-
+
Exit:
return error;
}
@@ -612,7 +612,7 @@
FT_Error error;
T1_UShort tag;
T1_Long size;
-
+
parser->stream = stream;
parser->memory = memory;
parser->base_len = 0;
@@ -622,10 +622,10 @@
parser->in_pfb = 0;
parser->in_memory = 0;
parser->single_block = 0;
-
+
parser->cursor = 0;
parser->limit = 0;
-
+
/******************************************************************/
/* */
/* Here's a short summary of what is going on : */
@@ -641,12 +641,12 @@
/* parser->in_pfb is set when we are in a binary (".pfb") font */
/* parser->in_memory is set when we have a memory stream. */
/* */
-
+
/* try to compute the size of the base dictionary */
/* look for a Postscript binary file tag, i.e 0x8001 */
if ( FILE_Seek(0L) )
goto Exit;
-
+
error = read_pfb_tag( stream, &tag, &size );
if (error) goto Exit;
@@ -662,14 +662,14 @@
/* now, try to load the "size" bytes of the "base" dictionary we */
/* found previously */
-
+
/* if it's a memory-based resource, set up pointers */
if ( !stream->read )
{
parser->base_dict = (T1_Byte*)stream->base + stream->pos;
parser->base_len = size;
parser->in_memory = 1;
-
+
/* check that the "size" field is valid */
if ( FILE_Skip(size) ) goto Exit;
}
@@ -681,7 +681,7 @@
goto Exit;
parser->base_len = size;
}
-
+
/* Now check font format, we must see a '%!PS-AdobeFont-1' */
/* or a '%!FontType' */
{
@@ -764,7 +764,7 @@
FT_Memory memory = parser->memory;
FT_Error error = 0;
T1_Long size;
-
+
if (parser->in_pfb)
{
/* in the case of the PFB format, the private dictionary can be */
@@ -775,15 +775,15 @@
T1_UShort tag;
T1_Long size;
- parser->private_len = 0;
+ parser->private_len = 0;
for (;;)
{
error = read_pfb_tag(stream, &tag, &size);
if (error) goto Fail;
-
+
if (tag != 0x8002)
break;
-
+
parser->private_len += size;
if ( FILE_Skip(size) )
@@ -824,9 +824,9 @@
/* first of all, look at the "eexec" keyword */
FT_Byte* cur = parser->base_dict;
- FT_Byte* limit = cur + parser->base_len;
+ FT_Byte* limit = cur + parser->base_len;
FT_Byte c;
-
+
for (;;)
{
c = cur[0];
@@ -836,12 +836,12 @@
cur[3] == 'e' && cur[4] == 'c' )
{
cur += 6; /* we skip the newling after the "eexec" */
-
+
/* XXX: Some fonts use DOS-linefeeds, i.e. \r\n, we need to skip */
/* the extra \n when we find it.. */
if (cur[0] == '\n')
cur++;
-
+
break;
}
}
@@ -853,13 +853,13 @@
goto Exit;
}
}
-
+
/* now determine wether where to write the _encrypted_ binary private */
/* dictionary. We overwrite the base dictionary for disk-based resources */
/* and allocate a new block otherwise */
-
- size = parser->base_len - (cur-parser->base_dict);
-
+
+ size = parser->base_len - (cur-parser->base_dict);
+
if ( parser->in_memory )
{
/* note that we allocate one more byte to put a terminating '0' */
@@ -868,13 +868,13 @@
}
else
{
- parser->single_block = 1;
+ parser->single_block = 1;
parser->private_dict = parser->base_dict;
parser->private_len = size;
parser->base_dict = 0;
parser->base_len = 0;
}
-
+
/* now determine wether the private dictionary is encoded in binary */
/* or hexadecimal ASCII format.. */
/* and decode it accordingly */
@@ -890,40 +890,40 @@
MEM_Copy( parser->private_dict, cur, size );
}
else
- {
+ {
/* ASCII hexadecimal encoding.. This blows goats !!.. */
-
+
T1_Byte* write;
T1_Int count;
write = parser->private_dict;
count = 0;
-
+
for ( ;cur < limit; cur++)
{
int hex1;
-
+
/* check for newline */
if (cur[0] == '\r' || cur[0] == '\n')
continue;
-
+
/* exit if we have a non-hexadecimal digit that isn't a newline */
hex1 = hexa_value(cur[0]);
if (hex1 < 0 || cur+1 >= limit)
break;
-
+
/* otherwise, store byte */
*write++ = (hex1 << 4) | hexa_value(cur[1]);
count++;
cur++;
}
-
+
/* put a safeguard */
parser->private_len = write - parser->private_dict;
*write++ = 0;
}
}
-
+
/* we now decrypt the encoded binary private dictionary */
T1_Decrypt( parser->private_dict, parser->private_len, 55665 );
parser->cursor = parser->private_dict;
@@ -933,4 +933,4 @@
Exit:
return error;
}
-
+
diff --git a/src/type1z/t1parse.h b/src/type1z/t1parse.h
index 686691862..6482d52e1 100644
--- a/src/type1z/t1parse.h
+++ b/src/type1z/t1parse.h
@@ -116,13 +116,13 @@
{
FT_Stream stream;
FT_Memory memory;
-
+
T1_Byte* base_dict;
T1_Int base_len;
-
+
T1_Byte* private_dict;
T1_Int private_len;
-
+
T1_Byte in_pfb;
T1_Byte in_memory;
T1_Byte single_block;
@@ -130,7 +130,7 @@
T1_Byte* cursor;
T1_Byte* limit;
T1_Error error;
-
+
} T1_Parser;
diff --git a/src/type1z/t1tokens.h b/src/type1z/t1tokens.h
index 0de85beec..2ef03b41f 100644
--- a/src/type1z/t1tokens.h
+++ b/src/type1z/t1tokens.h
@@ -26,37 +26,37 @@
PARSE_STRING("FullName",full_name)
PARSE_STRING("FamilyName",family_name)
PARSE_STRING("Weight",weight)
-
+
PARSE_INT("ItalicAngle",italic_angle)
PARSE_BOOL("isFixedPitch",is_fixed_pitch)
PARSE_NUM("UnderlinePosition",underline_position,T1_Short)
PARSE_NUM("UnderlineThickness",underline_thickness,T1_UShort)
- /* define the private dict parsing callbacks */
-
+ /* define the private dict parsing callbacks */
+
#undef FACE
#define FACE (face->type1.private_dict)
PARSE_INT("UniqueID",unique_id)
PARSE_INT("lenIV",lenIV)
-
+
PARSE_COORDS( "BlueValues", num_blues, 14, blue_values)
PARSE_COORDS( "OtherBlues", num_other_blues, 10, other_blues)
-
+
PARSE_COORDS( "FamilyBlues", num_family_blues, 14, family_blues)
PARSE_COORDS( "FamilyOtherBlues", num_family_other_blues, 10, family_other_blues)
-
+
PARSE_FIXED( "BlueScale", blue_scale)
PARSE_INT( "BlueShift", blue_shift)
-
+
PARSE_INT( "BlueFuzz", blue_fuzz)
PARSE_COORDS2( "StdHW", 1, standard_width )
PARSE_COORDS2( "StdVW", 1, standard_height )
-
+
PARSE_COORDS( "StemSnapH", num_snap_widths, 12, stem_snap_widths )
PARSE_COORDS( "StemSnapV", num_snap_heights, 12, stem_snap_heights )
-
+
PARSE_INT( "LanguageGroup", language_group )
PARSE_INT( "password", password )
PARSE_COORDS2( "MinFeature", 2, min_feature )
@@ -66,7 +66,7 @@
#undef FACE
#define FACE (face->type1)
-
+
/* PARSE_STRING( "FontName", font_name ) -- handled by special routine */
PARSE_NUM( "PaintType", paint_type, T1_Byte )
PARSE_NUM( "FontType", font_type, T1_Byte )