diff options
| author | Ming, Bai <[email protected]> | 2013-01-08 23:09:34 +0800 |
|---|---|---|
| committer | Ming, Bai <[email protected]> | 2013-01-08 23:09:34 +0800 |
| commit | 86623c945f610a0ecdba732a899d2db3c9dcb906 (patch) | |
| tree | 13013661bb931f2889799d13492ff5a3db2b9dbf /components/external | |
| parent | 85d0f410670c41690a94eb4c046dc0259e398b19 (diff) | |
Update CRLF
Diffstat (limited to 'components/external')
56 files changed, 38613 insertions, 38613 deletions
diff --git a/components/external/freetype/.gitignore b/components/external/freetype/.gitignore index f86e720416..aee2e4ce16 100644 --- a/components/external/freetype/.gitignore +++ b/components/external/freetype/.gitignore @@ -1 +1 @@ -config.mk
+config.mk diff --git a/components/external/freetype/ChangeLog b/components/external/freetype/ChangeLog index 4f9849375a..83a7d53c6d 100644 --- a/components/external/freetype/ChangeLog +++ b/components/external/freetype/ChangeLog @@ -1,7948 +1,7948 @@ -2010-02-13 Werner Lemberg <[email protected]>
-
- * Version 2.3.12 released.
- ==========================
-
-
- Tag sources with `VER-2-3-12'.
-
- * docs/CHANGES: Updated.
-
- * docs/VERSION.DLL: Update documentation and bump version number to
- 2.3.12.
-
- * README, Jamfile (RefDoc),
- builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
- builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
- builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj,
- builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
- builds/win32/visualce/freetype.vcproj,
- builds/win32/visualce/index.html,
- builds/wince/vc2005-ce/freetype.vcproj,
- builds/wince/vc2005-ce/index.html,
- builds/wince/vc2008-ce/freetype.vcproj,
- builds/wince/vc2008-ce/index.html: s/2.3.11/2.3.12/, s/2311/2312/.
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 12.
-
- * builds/unix/configure.raw (version_info): Set to 10:0:4.
-
-2010-02-12 suzuki toshiya <[email protected]>
-
- Improve autotool version checking to work with beta releases.
-
- * autogen.sh (check_tool_version): Improve the extraction of version
- number from "tool --version" output. Some beta releases of
- autotools have extra strings before version number.
-
-2010-02-12 suzuki toshiya <[email protected]>
-
- Fix overallocating bug in FT_Outline_New_Internal().
-
- * src/base/ftoutln.c (FT_Outline_New_Internal): The length of
- FT_Outline->points[] should be numPoints, not 2 * numPoints.
- Found by Paul Messmer, see
- http://lists.gnu.org/archive/html/freetype-devel/2010-02/msg00003.html
-
-2010-02-10 Ken Sharp <[email protected]>
-
- Really fix Savannah bug #28678 (part 2).
-
- Since we consider `sbw' for the horizontal direction only, we still have
- to synthesize vertical metrics if the user wants to use the vertical
- writing direction.
-
- * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
- (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph):
- Synthesize vertical metrics (only) if FT_LOAD_VERTICAL_LAYOUT is
- set.
-
-2010-02-10 Ken Sharp <[email protected]>
-
- Really fix Savannah bug #28678 (part 1).
-
- After long discussion, we now consider the character width vector
- (wx,wy) returned by the `sbw' Type 1 operator as being part of *one*
- direction only. For example, if you are using the horizontal
- writing direction, you get the horizontal and vertical components of
- the advance width for this direction. Note that OpenType and CFF fonts
- don't have such a vertical component; instead, the GPOS table can be
- used to generate two-dimensional advance widths (but this isn't
- handled by FreeType).
-
- * include/freetype/ftincrem.h (FT_Incremental_MetricsRec): Add
- `advance_v' field to hold the vertical component of the advance
- value.
-
- * src/truetype/ttgload.c (tt_get_metrics), src/cff/cffgload.c
- (cff_slot_load), src/type1/t1gload.c
- (T1_Parse_Glyph_And_Get_Char_String), src/cid/cidgload.c
- (cid_load_glyph): Use it.
-
-2010-02-08 Werner Lemberg <[email protected]>
-
- * devel/ftoption.h [FT_CONFIG_OPTION_PIC]: Define.
-
-2010-02-04 suzuki toshiya <[email protected]>
-
- Prevent NULL pointer dereference passed to FT_Module_Requester.
-
- * src/sfnt/sfdriver.c (sfnt_get_interface): Don't use `module'.
- * src/psnames/psmodule.c (psnames_get_interface): Ditto.
-
- * src/cff/cffdrivr.c (cff_get_interface): Check NULL `driver'.
- * src/truetype/ttdriver.c (tt_get_interface): Ditto.
-
-2010-01-29 suzuki toshiya <[email protected]>
-
- Fix memory leaks in previous patch.
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Don't overwrite the strings
- allocated for face->root.family_name and style_name.
-
-2010-01-29 suzuki toshiya <[email protected]>
-
- New parameters for FT_Open_Face() to ignore preferred family names.
-
- Preferred family names should be used for legacy systems that
- can hold only a few faces (<= 4) for a family name. Suggested by
- Andreas Heinrich.
- http://lists.gnu.org/archive/html/freetype/2010-01/msg00001.html
-
- * include/freetype/ftsnames.h (FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY,
- FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Define.
-
- * src/sfnt/sfobjs.h (sfnt_load_face): Check the arguments and
- ignore preferred family and subfamily names if requested.
-
-2010-01-27 Ken Sharp <[email protected]>
-
- Fix Savannah bug #28678.
-
- * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
- (cid_load_glyph): Handle vertical metrics correctly.
-
- * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Handle
- vertical metrics correctly.
- (T1_Load_Glyph): Don't synthesize vertical metrics.
-
-2010-01-14 Werner Lemberg <[email protected]>
-
- Make FT_Set_Transform work if no renderer is available.
-
- * src/base/ftobjs.c (FT_Load_Glyph): Apply `standard' transformation
- if no renderer is compiled into the library.
-
-2010-01-14 Werner Lemberg <[email protected]>
-
- Fix compilation warning.
-
- * src/base/ftbase.h: s/LOCAL_DEF/LOCAL/.
- * src/base/ftobjc.s: Include ftbase.h conditionally.
-
-2010-01-11 Kwang Yul Seo <[email protected]>
-
- Provide inline assembly code for RVCT compiler.
- This is Savannah patch #7059.
-
- * include/freetype/config/ftconfig.h (FT_MULFIX_ASSEMBLER,
- FT_MulFix_arm) [__CC_ARM || __ARM_CC]: Define.
-
-2010-01-08 Ken Sharp <[email protected]>
-
- Fix Savannah bug #28521.
-
- Issue #28226 involved a work-around for a font which used the
- `setcurrentpoint' operator in an invalid way; this operator is only
- supposed to be used with the result of OtherSubrs, and the font used
- it directly. The supplied patch removed the block of code which
- checked this usage entirely.
-
- This turns out to be a Bad Thing. If `setcurrentpoint' is being
- used correctly it should reset the flex flag in the decoder. If we
- don't do this then the flag never gets reset and we omit any further
- contours from the glyph (at least until we close the path or
- similar).
-
- * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
- <op_setcurrentpoint>: Handle `flex_state' correctly.
-
-2010-01-05 Werner Lemberg <[email protected]>
-
- Apply reports from clang static analyzer.
-
- * src/lzw/ftlzw.c (ft_lzw_file_init), src/base/ftstroke.c
- (FT_Stroker_ParseOutline), src/base/ftsynth.c
- (FT_GlyphSlot_Embolden): Remove dead code.
-
- * src/base/ftpatent.c (_tt_check_patents_in_table): Initialize
- `offset_i' and `length_i'.
-
-2010-01-05 Ralph Giles <[email protected]>
-
- Enable the incremental font interface by default.
-
- Ghostscript requires the incremental font interface for handling
- some Postscript documents. It is moving to using FreeType as its
- primary renderer; supporting this in the default build makes it
- Ghostscript to be linked against the system FreeType when one is
- available.
-
- * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL):
- Uncomment.
-
-2010-01-05 Werner Lemberg <[email protected]>
-
- Fix Savannah bug #28395.
-
- * src/truetype/ttdriver.c (Load_Glyph), src/type1/t1gload.c
- (T1_Loada_Glyph): Don't check `num_glyphs' if incremental interface
- is used.
-
-2010-01-05 Ken Sharp <[email protected]>
-
- Make Type 1 `seac' operator work with incremental interface.
- This fixes Savannah bug #28480.
-
- * src/psaux/t1decode.c (t1operator_seac): Don't check `glyph_names'
- if incremental interface is used.
-
-2010-01-04 Ken Sharp <[email protected]>
-
- Make incremental interface work with TrueType fonts.
- This fixes Savannah bug #28478.
-
- * src/truetype/ttgload.c (load_truetype_glyph): Don't check
- `glyf_offset' if incremental interface is used.
-
-2009-12-31 Lars Abrahamsson <[email protected]>
-
- Make compilation with FT_CONFIG_OPTION_PIC work again.
-
- * src/base/ftglyph.c (FT_Glyph_To_Bitmap) [FT_CONFIG_OPTION_PIC]:
- Declare `library' for FT_BITMAP_GLYPH_CLASS_GET.
-
- * src/base/ftinit.c (ft_destroy_default_module_classes,
- ft_create_default_module_classes): Use proper casts (needed for C++
- compilation).
-
- * src/sfnt/ttcmap.c (tt_cmap13_class_rec): Use FT_DEFINE_TT_CMAP.
-
-2009-12-22 Marc Kleine-Budde <[email protected]>
-
- Make freetype-config aware of $SYSROOT.
- This is Savannah patch #7040.
-
- * builds/unix/freetype-config.in: Decorate with ${SYSROOT} where
- appropriate.
-
-2009-12-20 Werner Lemberg <[email protected]>
-
- Fix compiler warning.
- Reported by Sean.
-
- * src/base/ftdbgmem.c [!FT_DEBUG_MEMORY]: ANSI C doesn't like empty
- source files; however, some compilers warn about an unused variable
- declaration. This is now replaced with a typedef.
-
-2009-12-18 Werner Lemberg <[email protected]>
-
- Fix Savannah bug #28320.
-
- There exist corrupt, subsetted fonts (embedded in PDF files) which
- contain a private dict that ends with an unterminated floating point
- number (no operator following). We now ignore this error (as
- acrobat does).
-
- * src/cff/cffparse.c (cff_parser_run): Don't emit a syntax error for
- unterminated floating point numbers.
-
-2009-12-16 Werner Lemberg <[email protected]>
-
- Really fix compiler warnings.
- Reported by Sean.
-
- * src/truetype/ttgxvar.c (GX_PT_POINTS_ARE_WORDS,
- GX_PT_POINT_RUN_COUNT_MASK): Convert enum values to macros.
-
-2009-12-16 suzuki toshiya <[email protected]>
-
- Improve configure.raw to copy some options from CFLAGS to LDFLAGS.
- The linker of Mac OS X 10.6 is sensitive to the architecture. If
- the architectures are specified explicitly for the C compiler, the
- linker requires the architecture specifications too.
-
- * builds/unix/configure.raw: Replace `-isysroot' option parser by
- more generic argument parser.
-
-2009-12-15 Werner Lemberg <[email protected]>
-
- Fix compiler warnings.
- Reported by Sean.
-
- * src/truetype/ttgxvar.c (ft_var_readpackeddeltas): Fix counter data
- type.
-
-2009-12-14 Ken Sharp <[email protected]>
-
- Ignore invalid `setcurrentpoint' operations in Type 1 fonts.
- This fixes Savannah bug #28226.
-
- At least two wild PostScript files of unknown provenance contain
- Type 1 fonts, apparently converted from TrueType fonts in earlier
- PDF versions of the files, which use the `setcurrentpoint' operator
- inappropriately.
-
- FreeType currently throws an error in this case, but Ghostscript and
- Adobe Distiller both accept the fonts and ignore the problem. This
- commit #ifdefs out the check so PostScript interpreters using
- FreeType can render these files.
-
- The specification says `setcurrentpoint' should only be used to set
- the point after a `Subr' call, but these fonts use it to set the
- initial point to (0,0). Unnecessarily so, as they correctly use an
- `hsbw' operation which implicitly sets the initial point.
-
- * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
- <op_setcurrentpoint>: Comment out code.
-
-2009-12-14 Bram Tassyns <[email protected]>
-
- Fix parsing of /CIDFontVersion.
- This fixes Savannah bug #28287.
-
- * src/cid/cidtoken.h: `cid_version' in CID_FaceInfoRec (in
- t1tables.h) is of type FT_Fixed.
-
-2009-12-14 Werner Lemberg <[email protected]>
-
- Trace glyph index in CID module.
- Suggested in Savannah patch #7023.
-
- * src/cid/cidgload.c (cid_load_glyph): Add tracing message.
-
-2009-12-03 Werner Lemberg <[email protected]>
-
- Fix compiler warnings.
-
- * src/truetype/ttgload.c (tt_get_metrics): Put `Exit' label into the
- proper preprocessor conditional.
- * src/pfr/pfrobjs.c (pfr_slot_load): Pacify gcc.
-
-2009-11-25 John Tytgat <[email protected]>
-
- Better handling of start of `eexec' section.
- This fixes Savannah bug #28090.
-
- * src/type1/t1parse.c (T1_Get_Private_Dict): Skip all whitespace
- characters before start of `eexec' section.
-
-2009-11-20 Werner Lemberg <[email protected]>
-
- Fix Savannah bug #27742.
-
- * src/base/ftstroke.c (ft_stroker_outside): Avoid silent division by
- zero, using a threshold for `theta'.
-
-2009-11-20 Werner Lemberg <[email protected]>
-
- Fix Savannah bug #28036.
-
- * src/type1/t1afm.c (t1_get_index): Fix comparison.
-
-2009-11-16 Werner Lemberg <[email protected]>
-
- Fix compiler warnings.
- Reported by Kevin Blenkinsopp <[email protected]>.
-
- * src/sfnt/ttload.c (check_table_dir): Use proper data type.
-
-2009-11-15 Werner Lemberg <[email protected]>
-
- Really fix FreeDesktop bug #21197.
- This also fixes Savannah bug #28021.
-
- * src/autofit/aflatin.c (af_latin_metrics_check_digits),
- src/autofit/aflatin2.c (af_latin2_metrics_check_digits): Fix loop.
-
-2009-11-15 Werner Lemberg <[email protected]>
-
- Add tracing messages for advance values.
-
- * src/base/ftobjs.c (FT_Load_Glyph), src/truetype/ttgload.c
- (TT_Get_HMetrics, TT_Get_VMetrics): Do it.
-
-2009-11-08 Werner Lemberg <[email protected]>
-
- Fix compiler warning.
- Reported by Jeremy Manson <[email protected]>.
-
- * src/truetype/ttgload.c (load_truetype_glyph): Initialize `error'.
-
-2009-11-04 Werner Lemberg <[email protected]>
-
- Remove compiler warning.
- Reported by Sean McBride <[email protected]>.
-
- * src/tools/apinames.c (read_header_file)<STATE_TYPE>: Use a cast to
- `int', as specified in the printf(3) man page.
-
-2009-11-04 Werner Lemberg <[email protected]>
-
- Fix Savannah bug #27921.
-
- * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
- (cid_face_init), src/type1/t1afm.c (T1_Read_Metrics),
- src/type1/t1objs.c (T1_Face_Init): Don't use unsigned constant
- values for rounding if the argument can be negative.
-
-2009-11-03 Bram Tassyns <[email protected]>
-
- Add basic support for Type1 charstrings in CFF.
- This fixes Savannah bug #27922.
-
- * src/cff/cffgload.c (CFF_Operator, cff_argument_counts): Handle
- `seac', `sbw', and `setcurrentpoint' opcodes.
- (cff_compute_bias): Add parameter to indicate the charstring type.
- Update all callers.
- (cff_operator_seac): Add parameter for side bearing.
- (cff_decoder_parse_charstrings): Updated for more Type1 support.
-
-2009-11-03 Werner Lemberg <[email protected]>
-
- Return correct `linearHoriAdvance' value for embedded TT bitmaps too.
- Reported by Jeremy Manson <[email protected]>.
-
- src/truetype/ttgload.c (load_truetype_glyph): Add parameter to
- quickly load the glyph header only.
- Update all callers.
- (tt_loader_init): Add parameter to quickly load the `glyf' table
- only.
- Update all callers.
- (TT_Load_Glyph): Compute linear advance values for embedded bitmap
- glyphs too.
-
-2009-11-03 Werner Lemberg <[email protected]>
-
- Improve code readability.
-
- * src/ttgload.c (load_truetype_glyph): Move metrics calculation
- to...
- (tt_get_metrics): This new function.
-
-2009-10-26 Bram Tassyns <[email protected]>
-
- Fix Savannah bug #27811.
-
- * src/truetype/ttxgvar.c (ft_var_readpackeddeltas): Fix
- signed/unsigned mismatch.
-
-2009-10-19 Ning Dong <[email protected]>
-
- Fix handling of `get' and `put' CFF instructions.
-
- * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_get,
- cff_op_put>: Appendix B of Adobe Technote #5177 limits the number of
- elements for the `get' and `put' operators to 32.
- * src/cff/cffgload.h (CFF_MAX_TRANS_ELEMENTS): Define.
- (CFF_Decoder): Use it for `buildchar' and remove `len_buildchar'.
-
-2009-10-18 Werner Lemberg <[email protected]>
-
- Fix handling of `dup' CFF instruction.
- Problem and solution reported by Ning Dong <[email protected]>.
-
- * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_dup>:
- Increase `args' by 2, not 1.
-
-2009-10-10 Werner Lemberg <[email protected]>
-
- * Version 2.3.11 released.
- ==========================
-
-
- Tag sources with `VER-2-3-11'.
-
- * docs/VERSION.DLL: Update documentation and bump version number to
- 2.3.11.
-
- * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
- builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj,
- builds/win32/visualce/index.html,
- builds/win32/visualce/freetype.dsp,
- builds/win32/visualce/freetype.vcproj: s/2.3.10/2.3.11/, s/2310/2311/.
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 11.
-
- * builds/unix/configure.raw (version_info): Set to 9:22:3.
-
-2009-10-10 Werner Lemberg <[email protected]>
-
- * docs/CHANGES, docs/release: Updated.
-
-2009-10-10 suzuki toshiya <[email protected]>
-
- * src/pcf/pcfread.c (pcf_get_properties): Fix a bug in the nprops
- truncation. Reported by Martin von Gagern and Peter Volkov.
- https://bugs.gentoo.org/288357 and https://bugs.gentoo.org/288256
-
-2009-10-06 Werner Lemberg <[email protected]>
-
- * Version 2.3.10 released.
- ==========================
-
-
- Tag sources with `VER-2-3-10'.
-
- * builds/toplevel.mk (major, minor, patch): Fix regexp to allow more
- than a single digit.
- (dist): We now use git.
-
- * docs/VERSION.DLL: Update documentation and bump version number to
- 2.3.10.
-
- * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
- builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj,
- builds/win32/visualce/index.html,
- builds/win32/visualce/freetype.dsp,
- builds/win32/visualce/freetype.vcproj: s/2.3.9/2.3.10/, s/239/2310/.
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.
-
- * builds/unix/configure.raw (version_info): Set to 9:21:3.
-
-2009-10-06 Werner Lemberg <[email protected]>
-
- Fix `make multi'.
-
- * src/cache/ftccache.c, src/cache/ftcsbits.c (FT_COMPONENT): Define.
-
- * src/sfnt/sfdriver.c: Include FT_INTERNAL_DEBUG_H.
-
-2009-09-27 suzuki toshiya <[email protected]>
-
- [cache] Fix Savannah bug #27441, clean up Redhat bugzilla #513582.
- Tricky casts in FTC_{CACHE,GCACHE,MRULIST}_LOOKUP_CMP() are removed.
- Now these functions should be called with FTC_Node or FTC_MruNode
- variable, and the caller should cast them to appropriate pointers to
- concrete data. These tricky casts can GCC-4.4 optimizer (-O2)
- confused and the crashing binaries are generated.
-
- * src/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Drop tricky cast.
- Now the 4th argument `node' of this function should be typed as
- FTC_MruNode.
-
- * src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): For inline
- implementation, new temporal variable FTC_MruNode `_mrunode' to take
- the pointer from FTC_MRULIST_LOOKUP_CMP(). For non-inline
- implementation, tricky cast is dropped.
-
- * src/cache/ftcmanag.c (FTC_SIZE_NODE): New macro casting
- to FTC_SizeNode.
- (FTC_Manager_LookupSize): Replace FTC_SizeNode `node' by FTC_MruNode
- `mrunode', and FTC_SIZE_NODE() is inserted.
- (FTC_FACE_NODE): New macro casting to FTC_FaceNode.
- (FTC_Manager_LookupFace) Replace FTC_FaceNode `node' by FTC_MruNode
- `mrunode', and FTC_FACE_NODE() is inserted.
-
- * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Change the type of
- `node' from FTC_INode to FTC_Node. Extra casting macro FTC_NODE()
- is dropped.
- (FTC_ImageCache_LookupScaler): Ditto.
- (FTC_SBitCache_Lookup): Change the type of `node' from FTC_SNode to
- FTC_Node. Extra casting macro FTC_NODE() is dropped. FTC_SNODE()
- is inserted.
- (FTC_SBitCache_LookupScaler): Ditto.
-
- * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the type of
- `node' from FTC_CMapNode to FTC_Node. Extra casting macro
- FTC_NODE() is dropped, FTC_CMAP_NODE() is inserted.
-
-2009-09-25 suzuki toshiya <[email protected]>
-
- [cache, psaux, type1] Fix for multi build.
- In multi build, some cpp functions are left as unresolved symbols.
-
- * src/cache/ftcbasic.c: Include FT_INTERNAL_DEBUG_H for FT_TRACE1().
-
- * src/psaux/t1decode.c: Include FT_INTERNAL_CALC_H for
- FIXED_TO_INT().
- * src/type1/t1gload.c: Ditto.
- * src/type1/t1objs.c: Ditto.
-
-2009-09-25 suzuki toshiya <[email protected]>
-
- [autofit] Fix for multi build.
-
- * src/autofit/afmodule.h: Include FT_INTERNAL_OBJECTS_H to use
- FT_DECLARE_MODULE() macro in multi build.
-
- * src/autofit/aflatin.c: Include <ft2build.h> to handle
- FT_ADVANCES_H correctly in multi build.
-
-2009-09-24 suzuki toshiya <[email protected]>
-
- [cache] Check the face filled by FTC_Manager_LookupFace().
-
- * src/cache/ftcbasic.c (ftc_basic_family_get_count): Return
- immediately if FTC_Manager_LookupFace() fills face by NULL. Such
- case can occur when the code is optimized by GCC-4.2.x.
-
-2009-09-23 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2009-09-12 Werner Lemberg <[email protected]>
-
- [raster] Fix 5-levels grayscale output.
- This was broken since version 2.3.0.
-
- * src/raster/ftraster.c (count_table): Use pre-2.3.0 values (which
- were then computed dynamically).
- (Vertical_Gray_Sweep_Step): Updated.
-
- (ft_black_render): Initialize `worker->gray_lines' (problem found by
- valgrind).
-
- (FT_RASTER_OPTION_ANTI_ALIASING, DEBUG_RASTER): Dont' #undef, just
- comment out.
-
-2009-09-12 suzuki toshiya <[email protected]>
-
- Improve configure.raw for cross build.
-
- * builds/unix/configure.raw: Remove temporal files created by the
- suffix checking for CC_BUILD. Set XX_ANSIFLAGS and XX_CFLAGS when
- cross compiler is GCC. AC_PROG_CC checks whether the cross compiler
- is GCC, its result is stored in GCC.
-
-2009-09-12 suzuki toshiya <[email protected]>
-
- [BDF] Modify hash API to take size_t value instead of void *.
-
- The hash API in BDF driver is designed to be generic, it takes
- void * typed data. But BDF driver always gives an unsigned long
- integer (the index to a property). To reduce non-essential
- casts from unsigned long to void* and from void* to unsigned
- long, the hash API is changed to take size_t integer.
- The issue of incompatible cast between unsigned long and void*
- on LLP64 platform is reported by NightStrike from MinGW-Win64
- project. See
- http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
-
- * src/bdf/bdf.h: The type of hashnode->data is changed from
- void* to size_t.
-
- * src/bdf/bdflib.c (hash_insert): Get size_t data, instead of
- void* data.
- (bdf_create_property): Get the name length of new property by
- size_t variable, with a cut-off at FT_ULONG_MAX.
- (_bdf_set_default_spacing): Get the name length of the face by
- size_t variable, with a cut-off at 256.
- (bdf_get_property): Get the property id by size_t variable to
- reduce the casts between 32-bit prop ID & hashnode->data during
- simple copying.
- (_bdf_add_property): Ditto.
- (_bdf_parse_start): Calculate the index to the property array
- by size_t variable.
- (bdf_get_font_property): Drop a cast to unsigned long.
-
-2009-09-10 suzuki toshiya <[email protected]>
-
- [Win64] Improve the computation of random seed from stack address.
-
- On LLP64 platform, the conversion from pointer to FT_Fixed need
- to drop higher 32-bit. Explict casts are required. Reported by
- NightStrike from MinGW-w64 project. See
- http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
-
- * src/cff/cffgload.c: Convert the pointers to FT_Fixed explicitly.
-
- * src/psaux/t1decode.c: Ditto.
-
-
-2009-09-03 Werner Lemberg <[email protected]>
-
- [raster] Improvements for stand-alone mode.
-
- * src/raster/rules.mk: Don't handle ftmisc.h. It is needed for
- stand-alone mode only.
-
- * src/raster/ftmisc.h (FT_MemoryRec , FT_Alloc_Func, FT_Free_Func,
- FT_Realloc_Func): Copy declarations from ftsystem.h.
-
-2009-09-02 Bram Tassyns <[email protected]>
-
- Improve vertical metrics calculation (Savannah bug #27364).
-
- The calculation of `vertBearingX' is not defined in the OTF font
- spec so FreeType does a `best effort' attempt. However, this value
- is defined in the PDF and PostScript specs, and that algorithm is
- better than the one FreeType currently uses:
-
- FreeType: Use the middle of the bounding box as the X coordinate
- of the vertical origin.
-
- Adobe PDF spec: Use the middle of the horizontal advance vector as
- the X coordinate of the vertical origin.
-
- FreeType's algorithm goes wrong if you have a really small glyph
- (like the full-width, circle-like dot at the end of the sentence, as
- used in CJK scripts) with large bearings. With the FreeType
- algorithm this dot gets centered on the baseline; with the PDF
- algorithm it gets the correct location (in the top right). Note
- that this is a serious issue, it's like printing the dot at the end
- of a Roman sentence at the center of the textline instead of on the
- baseline like it should. So i believe the PDF spec's algorithm
- should be used in FreeType as well.
-
- The `vertBearingY' value for such small glyphs is also very strange
- if no `vmtx' information is present, since the height of the bbox is
- not representable for the height of the glyph visually (the
- whitespace up to the baseline is part of the glyph). The fix also
- includes some code for a better estimate of `vertBearingY'.
-
- * src/base/ftobjs.c (ft_synthesize_vertical_metrics): `vertBearingX'
- is now calculated as described by the Adobe PDF Spec. Estimate for
- `vertBearingY' now works better for small glyphs completely above or
- below the baseline into account.
-
- * src/cff/cffgload.c (cff_slot_load): `vertBearingX' is now
- calculated as described by the Adobe PDF Spec. Vertical metrics
- information was always ignored when FT_CONFIG_OPTION_OLD_INTERNALS
- was not defined.
-
- * src/truetype/ttgload.c (compute_glyph_metrics): `vertBearingX' is
- now calculated as described by the Adobe PDF Spec.
-
-2009-09-01 John Tytgat <[email protected]>
-
- Fix custom cmap for empty Type 1 font (Savannah bug #27294).
-
- * include/freetype/internal/t1types.h (T1_EncodingRecRec_): Update
- comment to reflect revised code_last meaning.
- * src/type1/t1load.c (T1_Open_Face), src/type42/t42objs.c
- (T42_Open_Face): Assign max_char as highest character code + 1 and
- use this for T1_EncodingRecRec_::code_last.
- * src/psaux/t1cmap.c (t1_cmap_custom_init): Follow revised
- T1_EncodingRecRec_::code_last meaning.
-
-2009-08-25 Werner Lemberg <[email protected]>
-
- Fix rendering of horizontally compressed CFFs.
- Bug reported by Ivan Nincic <[email protected]>.
-
- * src/cff/cffgload.c (cff_slot_load): Thinko: Check `xx' element of
- `font_matrix' also.
-
- * docs/CHANGES: Updated.
-
-2009-08-03 [email protected]
-
- Don't call `ft_fseek' every time when executing `ft_fread'.
-
- * src/base/ftstream.c (FT_Stream_Seek), src/base/ftsystem.c
- (ft_ansi_stream_io): Implement it.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- sfnt: Cast a charcode to 32-bit in cmap format 14 parser.
-
- * src/sfnt/ttcmap.c (tt_cmap14_char_var_index,
- tt_cmap14_char_var_isdefault, tt_cmap14_char_variants,
- tt_cmap14_variant_chars): Correct mismatches from
- FT_CMap_CharVarIndexFunc prototype, FT_ULong arguments
- are replaced by FT_UInt32 arguments.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- sfnt: Cast a charcode to 32-bit in cmap format 12 parser.
-
- * src/sfnt/ttcmap.c (tt_cmap12_char_next):
- Insert explicit cast from FT_UFast to FT_UInt32
- for return value.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- psaux: Fix a few casts to FT_Int32 value.
-
- * src/psaux/t1decode.c (t1_decoder_parse_charstrings):
- Fix a few casts setting `value' from FT_Long to FT_Int32,
- because `value' is typed as FT_Int32 since 2009-06-22.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- sfnt: Fix a data type mismatching with its source.
-
- * src/sfnt/ttcmap.c (tt_cmap13_char_next): Fix the
- type of `gindex' from FT_ULong to FT_UInt because
- it is set by FT_UInt tt_cmap13_char_map_binary() or
- TT_CMap13->cur_gindex.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- sfnt: Extend a few local variables to load 32-bit values.
-
- * src/sfnt/ttkern.c (tt_face_load_kern): Extend `count'
- and `kern' to load 32-bit values.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- pfr: Extend `num_aux' to take 32-bit value.
-
- * src/pfr/pfrload.c (pfr_phy_font_load): Extend
- `num_aux' to load 32-bit value.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- pcf: Truncate FT_ULong `nprops' to fit to int PCF_Face->nprops.
-
- * src/pcf/pcfread.c (pcf_get_properties): Load `nprops'
- as FT_ULong value from PCF file, but truncate it as
- int to fit PCF_Face->nprops. The number of truncated
- properties is shown in the trace message.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- gxvalid: Extend a few local variables to reduce the casts.
-
- * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate):
- Extend `type' and `rest' to take FT_ULong values.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- gxvalid: Extend `settingTable' to take 32-bit offset.
-
- * src/gxvalid/gxvfeat.c (gxv_feat_name_validate):
- Extend `settingTable' to take 32-bit offset.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- autofit: Cast FT_Long glyph_count to compare with FT_UInt GID.
-
- * src/autofit/afglobal.c (af_face_globals_is_digit,
- af_face_globals_compute_script_coverage): Cast FT_Long
- globals->glyph_count to FT_ULong, to compare with FT_UInt
- gindex.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- smooth: Exclude 16-bit system in invalid pitch/height check.
-
- * src/smooth/ftsmooth.c (ft_smooth_render_generic):
- pitch and height are typed as FT_UInt but checked to fit
- 16-bit range, to avoid the overflows. On 16-bit system,
- this checking inserts a conditional that never occurs.
-
-2009-07-03 suzuki toshiya <[email protected]>
-
- cff: Type large constants > 0x7FFF as long for 16-bit systems.
-
- * src/cff/cffload.c (cff_charset_load): Type large
- constants > 0x7FFF as long, because normal constants
- are typed signed integer that is less than 0x8000 on
- 16-bit systems.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- base: Remove an unused variable.
-
- * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove an
- unused variable `library'. glyph->library is used.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- cache: Check higher bits in flags for non ILP32 systems.
-
- 4 public functions ought to take FT_ULong flags, but take
- FT_UInt flags. To keep binary compatibility, we drop higher
- bits on non ILP32 platforms,
- ILP64 systems: No drop occurs.
- LP64 systems: Higher bits are not used.
- 16-bit systems: Drop can occur.
- See
- http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00065.html
- These functions will be refined to take FT_ULong flags in
- next bump with incompatible API change.
-
- * src/cache/ftcbasic.c (FTC_ImageCache_Lookup):
- Check `flags' in `type', the 2nd argument.
- (FTC_SBitCache_Lookup): Ditto.
- (FTC_ImageCache_LookupScaler): Check `load_flags',
- the 3rd argument.
- (FTC_SBitCache_LookupScaler): Ditto.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- sfnt: Ignore invalid GIDs in glyph name lookup.
-
- * include/freetype/internal/fttrace.h:
- New trace module for sfdriver.c is added.
-
- * src/sfnt/sfdriver.c (sfnt_get_name_index):
- Restrict glyph name lookup to FT_UInt GID.
- Genuine TrueType can hold 16-bit glyphs.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- pcf: Fix a comparison between FT_Long and FT_ULong.
-
- * src/pcf/pcfread.c (pcf_get_bitmaps): Return an error
- if PCF_Face->nemetrics is negative.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- gxvalid: Guarantee `nFeatureFlags' size up to 32-bit.
-
- * src/gxvalid/gxvmort.c (gxv_mort_featurearray_validate):
- Extend the 3rd argument `nFeatureFlags' to FT_ULong.
- * src/gxvalid/gxvmort.h: Ditto.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- sfnt: Insert explicit cast for LP64 system.
-
- * src/sfnt/ttkern.c (tt_face_load_kern): Insert
- cast from unsigned long to FT_UInt32.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- gxvalid: Guarantee `just' table size upto 32-bit.
-
- * src/gxvalid/gxvjust.c (gxv_just_validate):
- The type of `offset' is changed from FT_UInt to
- FT_Offset, for 16-bit platforms.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- gxvalid: Guarantee `trak' table size upto 32-bit.
-
- * src/gxvalid/gxvtrak.c (gxv_trak_validate):
- The type of `offset' is changed from FT_UInt to
- FT_Offset, for 16-bit platforms.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- type1: Fix a data type mismatching with its source.
-
- * include/freetype/internal/t1types.h: The type of
- T1_Face->buildchar is matched with T1_Decorder->top.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- pfr: Fix a data type mismatching with its source.
-
- * src/pfr/pfrtypes.h: The type of PFR_KernItem->offset
- is extended from FT_UInt32 to FT_Offset, because it is
- calculated with the pointer difference, in
- pfr_extra_item_load_kerning_pairs().
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- pfr: Fix a data type mismatching with its source.
-
- * src/pfr/pfrtypes.h: The type of PFR_PhysFont->chars_offset
- is extended from FT_UInt32 to FT_Offset, because it is
- calculated with the pointer difference in pfr_phy_font_load().
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- pfr: Fix a data type mismatching with its source.
-
- * src/pfr/pfrtypes.h: The type of PFR_PhyFont->bct_offset
- is extended from FT_UInt32 to FT_Long, because it is
- loaded by FT_STREAM_POS() in pfr_phy_font_load().
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- smooth: Improve the format in debug message.
-
- * src/smooth/ftgrays.c (gray_dump_cells): Improve the
- format specifications to dump variables.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- sfnt: Fix a data type mismatching with its source.
-
- * src/sfnt/sfobjs.c (sfnt_load_face): The type of
- local `flags' is matched with FT_Face->face_flags.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- psaux: Fix a data type mismatching with its source.
-
- * include/freetype/internal/psaux.h: The type of
- T1_DecorderRec.buildchar is matched with
- T1_DecorderRec.top.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- truetype: Extend TrueType GX packed deltas to FT_Offset.
-
- * src/truetype/ttgxvar.c (ft_var_readpackeddeltas):
- The type of 2nd argument `delta_cnt' is changed from
- FT_Int to FT_Offset, because its source can be cvt
- table size calculated from stream position.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- truetype: Extend mmvar_len to hold size_t values.
-
- * src/truetype/ttgxvar.h: The type of
- GX_BlendRec.mmvar_len is changed from FT_Int to
- FT_Offset, because TT_Get_MM_Var() calculates it
- by sizeof() results.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- truetype: Check invalid function number in IDEF instruction.
-
- * src/truetype/ttinterp.c (Ins_IDEF): Check
- if the operand fits to 8-bit opcode limitation.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- truetype: Check invalid function number in FDEF instruction.
-
- * src/truetype/ttinterp.c (Ins_FDEF): Check
- if the operand fits 16-bit function number.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- truetype: Truncate the deltas of composite glyph at 16-bit values.
-
- * src/truetype/ttgload.c (load_truetype_glyph):
- Insert cast from FT_Long (deltas[i].{x,y}) to
- FT_Int16 in the summation of deltas[] for composite
- glyphs. Because deltas[i] is typed as FT_Pos,
- its component x, y are typed as FT_Long, but
- their sources are always FT_Int16 when they are
- loaded by ft_var_readpackeddeltas(). However,
- the limitation about the summed deltas is unclear.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- truetype: Truncate the instructions upto 16-bit per a glyph.
-
- * src/truetype/ttgload.c (TT_Hint_Glyph): Truncate
- the instructions upto 16-bit length per a glyph.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- truetype: Cast the numerical operands to 32-bit for LP64 systems.
-
- * src/truetype/ttinterp.c (Ins_SPHIX, INS_MIAP,
- Ins_MIRP): Insert cast from long (args[], the
- operands passed to TrueType operator) to FT_Int32
- (the argument of TT_MulFix14()).
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- truetype: Cast the project vector to 32-bit for LP64 system.
-
- * src/truetype/ttinterp.c (Project, DualProject):
- Insert casts from FT_Pos (the arguments `dx', `dy')
- to FT_UInt32 (the argument to TT_DotFix14()).
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- truetype: Cast the scaling params to 32-bit for LP64 system.
-
- * src/truetype/ttgload.c (TT_Process_Composite_Component):
- Insert casts from long (return value of FT_MulFix()) to
- FT_Int32 (the argument to FT_SqrtFixed()).
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- sfnt: Cast a character code to FT_UInt32 for LP64 system.
-
- * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
- tt_cmap14_variants, tt_cmap14_char_variants,
- tt_cmap14_def_char_count, tt_cmap14_get_def_chars,
- tt_cmap14_get_nondef_chars, tt_cmap14_variant_chars)
- Insert casts when FT_UInt32 variable is loaded by
- TT_NEXT_{UINT24|ULONG}. Because most of them are
- compared with FT_UInt32 values in public API, replacing
- FT_UFast is not recommended.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- sfnt: Cast a character code to FT_UInt32 for LP64 system.
-
- * src/sfnt/ttcmap.c (tt_cmap4_init, tt_cmap4_next):
- Insert the casts from unsigned long constant to
- FT_UInt32.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- sfnt: Extend TT_BDF->strings_size to FT_ULong for huge BDF.
-
- * include/freetype/internal/tttypes.h: The type
- of TT_BDF->string_size is extended from FT_UInt32
- to FT_ULong, because BDF specification does not
- restrict the length of string.
- * src/sfnt/ttbdf.c: The scratch variable `strings'
- to load TT_BDF->string_size is matched with
- TT_BDF->string_size.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- psaux: Handle the string length by FT_Offset variables.
-
- * src/psaux/afmparse.c (afm_parser_next_key,
- afm_tokenize, afm_parse_track_kern,
- afm_parse_kern_pairs, afm_parse_kern_data,
- afm_parser_skip_section, afm_parser_parse):
- The length of key is handled by FT_Offset,
- instead of FT_UInt. Although the length of
- PostScript strings or name object is 16-bit,
- AFM_STREAM_KEY_LEN() calculates the length
- from the pointer difference.
-
- * src/psaux/afmparse.h (afm_parser_next_key):
- Ditto.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- pcf: Fix some data types mismatching with their sources.
-
- * src/pcf/pcfread.c (pcf_get_bitmaps): The types
- of `nbitmaps', `i', `sizebitmaps' are matched with
- the type of area FT_Bitmap.pitch * FT_Bitmap.rows.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- pcf: Handle the string length by size_t variables.
-
- * src/pcf/pcfread.c (pcf_interpret_style): The types
- of nn, len, lengths[4] are changed to size_t, because
- they are loaded by (or compared with) ft_strlen().
-
- * src/pcf/pcfutil.c (BitOrderInvert, TwoByteSwap,
- FourByteSwap): The type of the 2nd argument `nbytes'
- is changed to size_t, for similarity with ANSI C
- string functions.
-
- * src/pcf/pcfdrivr.c (PCF_Glyph_Load): The type of
- `bytes' is changed to FT_Offset, because it is passed
- to FT_ALLOC(), via ft_glyphslot_alloc_bitmap(). At
- least, using unsigned type is better.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- pcf: Fix some data types mismatching with their sources.
-
- * src/pcf/pcfread.c (pcf_seek_to_table_type,
- pcf_has_table_type): The type of 3rd argument
- `ntables' is matched with PCF_Toc->count.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- otvalid: Truncate the glyph index to 16-bit.
-
- * src/otvalid/otvalid.c (otv_validate): Checks
- face->num_glyphs does not exceed 16-bit limit,
- pass FT_UInt num_glyphs to backend functions
- otv_{GPOS|GSUB|GDEF|JSTF|MATH}_validate().
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- cache: Insert explict casts for LP64 systems.
-
- * src/cache/ftcbasic.c (FTC_ImageCache_Lookup,
- FTC_SBitCache_Lookup): The type of FTC_ImageType->width
- is FT_Int, so the cast to unsigned larger type FT_ULong
- is introduced for the comparisons with 0x10000L for
- LP64 platform.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- cache: Fix some data types mismatching with their sources.
-
- * src/cache/ftccache.h: The type of return value
- by FTC_Node_WeightFunc function is changed to
- FT_Offset. The type of FTC_CacheClass->cache_size
- is changed to FT_Offset, too.
-
- * src/cache/ftccback.h (ft_inode_weight,
- ftc_snode_weight): Ditto.
-
- * src/cache/ftccmap.c (ftc_cmap_node_weight): Ditto.
-
- * src/cache/ftcimage.c (ftc_inode_weight,
- FTC_INode_Weight): Ditto.
-
- * src/cache/ftcsbits.c (ftc_snode_weight,
- FTC_SNode_Weight): Ditto.
-
- * src/cache/ftcmru.h: The type of
- FTC_MruListClass->node_size is changed to FT_Offset,
- because it is passed to FT_ALLOC() to specify the
- size of buffer.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- XXX_cmap_encoding_char_next() return FT_UInt32 values.
-
- * include/freetype/internal/services/svpscmap.h:
- The size of the charcode value returned by
- the function typed PS_Unicodes_CharNextFunc is
- matched with its input charcode value.
-
- * src/cff/cffmap.c (cff_cmap_encoding_char_next,
- cff_cmap_unicode_char_next): Ditto.
-
- * src/pfr/pfrmap.c (pfr_cmap_encoding_char_next):
- Ditto.
-
- * src/psaux/t1cmap.c (t1_cmap_std_char_next,
- t1_cmap_custom_char_next, t1_cmap_unicode_char_next):
- Ditto.
-
- * src/psnames/psmodule.c (ps_unicodes_char_next):
- Ditto.
-
- * src/winfonts/winfnt.c (fnt_cmap_char_next):
- Ditto.
-
- * src/sfnt/ttcmap.c (tt_cmap0_char_next,
- tt_cmap2_char_next, tt_cmap4_char_next,
- tt_cmap6_char_next, tt_cmap10_char_next,
- tt_cmap12_char_next, tt_cmap13_char_next): Ditto.
- (tt_cmap14_char_variants): Handle base unicode
- codepoint by FT_UInt32 variable to avoid overflow
- on 16-bit platforms.
- (tt_cmap14_ensure): The type of `num_results' is
- extend to FT_UInt32, to cover unsigned 32-bit
- `numVarSelectorRecords' in cmap14 table header.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- truetype: Extend TT_Face->num_locations for broken TTFs.
-
- * include/freetype/internal/tttypes.h:
- TT_Face->num_locations are extended from FT_UInt
- to FT_ULong, to stand with broken huge loca table.
- Some people insists there are broken TTF including
- the glyphs over 16-bit limitation, in PRC market.
- * src/truetype/ttpload.c (tt_face_load_loca):
- Remove unrequired 16-bit truncation for FT_UInt
- TT_Face->num_locations.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- smooth: Fix some data types mismatching with their sources.
-
- * src/smooth/ftgrays.c: The type of `TCoord' is
- matched to `TPos', because they are mixed in
- gray_set_cell(). The type of TCell->x is extended
- to `TPos', because gray_find_cell() sets it by
- TWorker.ex. The type of TCell->cover is extended
- to `TCoord', because gray_render_scanline() adds
- TCoord value to it. The type of TWork.cover is matched
- with TCell->cover. The types of
- TWork.{max_cells,num_cells} are changed to FT_PtrDist,
- because they are calculated from the memory addresses.
- The type of TWork.ycount is changed to TPos, because
- it is calculated from TPos variables.
- (gray_find_cell): The type of `x' is matched with
- its initial value ras.ex.
- (gray_render_scanline): The types of `mod', `lift'
- and `rem' are changed to TCoord, because their values
- are set with explicit casts to TCoord. When ras.area
- is updated by the differential values including
- `delta', they are explicitly cast to TArea, because
- the type of `delta' is not TArea but TCoord.
- (gray_render_line): The type of `mod' is extended
- from int to TCoord, because (TCoord)dy is added to mod.
- (gray_hline): The argument `acount' is extended to
- TCoord, to match with the parameters in the callers.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- cff: Fix some data types mismatching with their sources.
-
- * src/cff/cffobjs.c (cff_face_init): The type of
- `scaling' is matched with the scaling parameter
- in FT_Matrix_Multiply_Scaled() and
- FT_Vector_Transform_Scaled().
-
- * src/cff/cffparse.c (cff_parse_real): The type of
- `power_ten', `scaling', `exponent_add',
- `integer_length', `fraction_length',
- `new_fraction_length' and `shift' are matched with
- the type of `exponent' to avoid unexpected truncation.
- (cff_parse_fixed_scaled): The type of `scaling' is
- matched with the `scaling' argument to
- cff_parse_real().
- (cff_parse_fixed_dynamic): Ditto.
- (cff_parse_font_matrix): The type of `scaling' is
- matched with the `scaling' argument to
- cff_parse_dynamic().
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- autofit: Fix some data types mismatching with their sources.
-
- * src/autofit/afglobal.c: Correct the type of
- AF_FaceGlobalsRec.glyph_count to match with
- FT_Face->num_glyphs.
- (af_face_globals_compute_script_coverage):
- Insert explicit cast to compare
- FT_Long AF_FaceGlobalsRec.glyph_count versus
- FT_UInt gindex. The type of `nn' is changed
- to scan glyph index upto AF_FaceGlobalsRec.glyph_count.
- (af_face_globals_get_metrics): The type of `script_max'
- is changed to cover size_t value. Insert explicit cast
- to compare FT_Long AF_FaceGlobalsRec.glyph_count versus
- FT_UInt gindex.
-
- * src/autofit/afhints.c (af_axis_hints_new_segment):
- Insert explicit cast to calculate `big_max' from
- integer and size_t values.
- (af_axis_hints_new_edge): Ditto.
-
- * src/autofit/aflatin.c (af_latin_metrics_init_blues):
- The type of `best_y' is matched to FT_Vector.y.
- (af_latin_compute_stem_width): The type of `delta' is
- matched to `dist' and `org_dist'.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- autofit: Count the size of the memory object by ptrdiff_t.
-
- * src/autofit/afcjk.c (af_cjk_hint_edges): The
- number of edges `n_edges' should be counted by
- FT_PtrDist variable instead of FT_Int.
-
- * src/autofit/aflatin.c (af_latin_hint_edges):
- Ditto.
-
- * src/autofit/aftypes.h: In AF_ScriptClassRec,
- the size of metric `script_metrics_size' should
- be counted by FT_Offset variable instead of FT_UInt.
-
- * src/autofit/afhints.c
- (af_glyph_hints_align_strong_points): The cursors
- for the edges `min', `max', `mid' in the memory
- buffer should be typed FT_PtrDist.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- autofit: Fix for unused variable `first'.
-
- * src/autofit/afhints.c (af_glyph_hints_reload): Insert
- FT_UNUSED() to hide the unused variable warning.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- Improve bitmap size or pixel variables for 16-bit systems.
-
- * include/freetype/config/ftstdlib.h: Introduce
- FT_INT_MIN, to use in signed integer overflow in
- 16-bit and 64-bit platforms.
-
- * include/freetype/internal/fttrace.h: Add a tracer
- to ftsynth.c.
-
- * src/base/ftbitmap.c (FT_Bitmap_Embolden): Check
- invalid strength causing integer overflow on 16-bit
- platform.
-
- * src/base/ftcalc.c (ft_corner_orientation): Change
- the internal calculation from FT_Int to FT_Long, to
- avoid an overflow on 16-bit platforms. The caller of
- this function should use only the sign of result,
- so the cast to FT_Int is acceptable.
-
- * src/base/ftsynth.c: Introduce a tracer for synth module.
- (FT_GlyphSlot_Embolden): Check invalid strength causing
- integer overflow on 16-bit platform.
-
- * src/bdf/bdfdrivr.c (BDF_Face_Init): The glyph index
- in FT2 API is typed as FT_UInt, although BDF driver
- can handle unsigned long glyph index internally. To
- avoid integer overflow on 16-bit platform, too large
- glyph index should be excluded.
- (BDF_Glyph_Load): The glyph pitch in FT2 is typed as
- FT_UInt, although BDF driver can handle unsigned long
- glyph pitch internally. To avoid integer overflow on
- 16-bit platform, too large glyph pitch should not be
- returned.
-
- * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): The glyph
- pitch in FT2 is typed as FT_UInt, although PFR font
- format can include huge bitmap glyph with 24-bit pitch
- (however, a glyph spends 16.7 pixel, it's not realistic).
- To avoid integer overflow on 16-bit platform, huge
- bitmap glyph should be excluded.
-
- * src/smooth/ftgrays.c (gray_hline): As FT_Span.x is
- truncated to fit its type (16-bit short), FT_Span.y
- should be truncated to fit its type (FT_Int).
-
- * src/cff/cffdrivr.c (cff_get_ros): CFF specification
- defines the supplement in ROS as a real number.
- Truncate it to fit public FT2 API.
-
- * src/cff/cffparse.c (cff_parse_cid_ros): Warn the
- supplement if it is truncated or rounded in cff_get_ros().
-
- * src/cff/cfftypes.h: Change the type of internal variable
- `supplement' from FT_Long to FT_ULong to fit the signedness
- to the type in public API.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- psaux: Prevent invalid arguments to afm_parser_read_vals().
-
- * src/psaux/afmparse.c (afm_parser_read_vals): Change
- the type of `n' to prevent negative number how many
- arguments should be parsed.
-
- * src/psaux/afmparse.h (afm_parser_read_vals): Ditto.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- base: Prevent some overflows on LP64 systems.
-
- * src/base/ftadvance.c (FT_Get_Advances): Cast the
- unsigned long constant FT_LOAD_ADVANCE_ONLY to FT_UInt32
- for LP64 platforms.
-
- * src/base/ftcalc.c (FT_Sqrt32): All internal variables
- are changed to FT_UInt32 from FT_ULong.
- (FT_MulDiv): Insert casts to FT_Int32 for LP64 platforms.
- This function is designed for 32-bit integer, although
- their arguments and return value are FT_Long.
-
- * src/base/ftobjs.c (FT_Get_Char_Index): Check `charcode'
- is within unsigned 32-bit integer for LP64 platforms.
- (FT_Face_GetCharVariantIndex): Check `charcode' and
- `variantSelector' are within 32-bit integer for LP64
- platforms.
- (FT_Face_GetCharsOfVariant): Check `variantSelector' is
- within unsigned 32-bit integer for LP64 platforms.
-
- * src/base/fttrigon.c (ft_trig_downscale): The FT_Fixed
- variable `val' and unsigned long constant FT_TRIG_SCALE
- are cast to FT_UInt32, when calculates FT_UInt32.
- (FT_Vector_Rotate): The long constant 1L is cast to
- FT_Int32 to calculate FT_Int32 `half'.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- cff: Cast the long variables to 32-bit for LP64 systems.
-
- * src/cff/cffdrivr.c (cff_get_advances): Insert
- explicit cast to modify a 32-bit flag by unsigned
- long constant.
-
- * src/cff/cffobjs.c (cff_face_init): Ditto.
-
- * src/cff/cffgload.c (cff_decoder_parse_charstrings):
- Replace the casts to FT_Long by the casts to FT_Int32
- for LP64 platforms.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- pcf: Improve PCF_PropertyRec.value names on LP64 platforms.
-
- * src/pcf/pcf.h: In PCF_PropertyRec.value, the member
- `integer' is replaced by `l', `cardinal' is replaced
- by `ul', to fix the difference between the name and
- the types on LP64 platforms.
-
- * src/pcf/pcfdrivr.c (pcf_get_bdf_property): Reflect
- PCF_PropertyRec.value change, with appropriate casts
- to FT_Int32/FT_UInt32. Their destinations
- BDF_PropertyRec.{integer|cardinal} are public and
- explicitly defined as FT_Int32/FT_UInt32.
-
- * src/pcf/pcfread.c (pcf_get_properties, pcf_load_font):
- Reflect PCF_PropertyRec.value change.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- pcf: Fix some data types mismatching with their sources.
-
- * src/pcf/pcfdrivr.c (pcf_cmap_char_index): The type of
- `code' is matched to PCF_Encoding->enc.
- (pcf_cmap_char_next): The type of `charcode' is matched
- to PCF_Encoding->enc. When *acharcode is set by charcode,
- an overflow is checked and cast to unsigned 32-bit
- integer.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- bdf: Improve bdf_property_t.value names for LP64 platforms.
-
- * src/bdf/bdf.h: In bdf_property_t.value, the member
- `int32' is replaced by `l', `card32' is replaced by
- `ul', to fix the difference between the name and the
- types on LP64 platforms.
-
- * src/bdf/bdfdrivr.c (BDF_Face_Init): Reflect
- bdf_property_t.value change.
- (bdf_get_bdf_property): Reflect bdf_property_t.value
- change, with appropriate casts to FT_Int32/FT_UInt32.
- Their destinations BDF_PropertyRec.{integer|cardinal}
- are public and explicitly defined as FT_Int32/FT_UInt32.
-
- * src/bdf/bdflib.c (_bdf_add_property): Reflect
- bdf_property_t.value change.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- bdf: Fix some data types mismatching with their sources.
-
- * src/bdf/bdrdrivr.c (bdf_cmap_char_index): The type
- of `code' is matched with BDF_encoding_el->enc.
- (bdf_cmap_char_next): The type of `charcode' is
- matched with BDF_encoding_el->enc. When *acharcode
- is set by charcode, an overflow is checked and
- cast to unsigned 32-bit integer.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- autofit: Improve Unicode range definitions.
-
- * src/autofit/aftypes.h (AF_UNIRANGE_REC): New macro
- to declare a range by two unsigned 32-bit integer,
- to avoid 64-bit range definition on LP64 platforms.
-
- * src/autofit/aflatin.c (af_latin_uniranges): Ditto.
-
- * src/autofit/aflatin2.c (af_latin2_uniranges): Ditto.
-
- * src/autofit/afindic.c (af_indic_uniranges): Ditto.
-
- * src/autofit/afcjk.c (af_cjk_uniranges): Declare
- the ranges by AF_UNIRANGE_REC.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- smooth: Fix a data type mismatching with its source.
-
- * src/smooth/ftgrays.c (gray_sweep): The type of
- `area' is matched with the 3rd argument `area'
- of gray_hline().
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- smooth: Fix a data type mismatching with its source.
-
- * src/smooth/ftgrays.c (gray_render_line): The type
- of `area' is matched with TWorker.area.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- cache: Disable the legacy compatibility if 16-bit system.
-
- * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Exclude
- the legacy behaviour from 16-bit platform, because the
- current hack cannot detect the caller uses this function
- via legacy convension.
- (FTC_SBitCache_Lookup): Ditto.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- cache: Check 32-bit glyph index on 16-bit systems.
-
- * src/cache/ftcbasic.c (ftc_basic_family_get_count):
- Check overflow caused by the face including large
- number of glyphs > 64k.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- cache: Fix some data types mismatching with their sources.
-
- * src/cache/ftccache.c (ftc_cache_resize): The types of
- `p', `mask', `count' are matched with FTC_Cache->{p,mask}.
- (FTC_Cache_Clear): The type of `old_index' is matched to
- FTC_Cache->{p,mask}.
-
- * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): The type
- of `_idx' is matched with FTC_Cache->{p,mask}.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- cache: Fix some data types mismatching with their sources.
-
- * src/cache/ftcsbits.c (ftc_snode_load): The types
- of `xadvance' and `yadvance' are matched with
- FT_GlyphSlot->advance.{x|y}.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- cache: Cast NULL to a required function type explicitly.
-
- * src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID):
- Insert explicit cast from NULL to function type.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- fttypes.h: Cast FT_MAKE_TAG output to FT_Tag exlicitly.
-
- * include/freetype/fttypes.h (FT_MAKE_TAG):
- Cast the result to FT_Tag.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- psnames: Handle Unicode codepoints by FT_UInt32 variables.
-
- * src/psnames/psmodule.c (BASE_GLYPH): Cast the result
- to unsigned 32-bit integer for LP64 platform.
- (ps_unicode_value): Return the value by unsigned 32-bit
- integer instead of unsigned long.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- psaux: Use size_t variable to pass the buffer size.
-
- * src/psaux/psaux.h (to_bytes): The type of `max_bytes'
- (the argument to pass the buffer size) is changed to
- size_t, to match with ANSI C string functions.
-
- * src/psaux/psconv.h (PS_Conv_StringDecode,
- PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto.
-
- * src/psaux/psconv.c (PS_Conv_StringDecode,
- PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto.
-
- * src/psaux/psobjs.h (ps_parser_to_bytes): Ditto.
-
- * src/psaux/psobjs.c (ps_parser_to_bytes): Ditto.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- type1: Use size_t variable to pass the string length.
-
- * psaux.h: The type of `len' (the argument to pass
- the buffer size to the function in AFM_ParserRec)
- is changed to size_t, to match with ANSI C string
- functions.
-
- * t1afm.c (t1_get_index): Ditto.
-
- * test_afm.c (dummy_get_index): Ditto.
-
- * afmparse.c (afm_parser_read_vals): To call
- AFM_ParserRec.get_index, the length of token
- `len' is cast to size_t.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- cid: Fix some data types mismatching with their sources.
-
- * src/cid/cidparse.c (cid_parser_new): The types of
- `read_len' and `stream_len' are matched to
- FT_Stream->size. Unrequired cast is removed.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- cff: Fix for unused variable `rest'.
-
- * src/cff/cffparse.c (cff_parse_real): Insert
- FT_UNUSED() to hide the unused variable warning.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- cff: Fix some data types mismatching with their sources.
-
- * src/cff/cffgload.c (cff_slot_load): The types of
- `top_upm' and `sub_upm' are matched with
- CFF_FontRecDict->units_per_em.
-
- * src/cff/cffobjs.c (cff_size_select): Ditto.
- (cff_size_request): Ditto.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- bdf: Fix some data types mismatching with their sources.
-
- * bdflib.c (_bdf_list_ensure): The type of `num_items'
- is matched with _bdf_list_t.used. Also the types of
- `oldsize', `newsize', `bigsize' are matched too.
- (_bdf_readstream): `cursor' is used as an offset to
- the pointer, it should be typed as FT_Offset. Also
- the types of `bytes', `start', `end', `avail' are matched.
-
- * bdfdrivr.c: The type of BDF_CMap->num_encodings is
- matched with FT_CMap->clazz->size.
- (bdf_cmap_char_index): The types of `min', `max', `mid'
- are matched with BDF_CMap->num_encodings. The type of
- `result' is matched with encoding->glyph.
- (bdf_cmap_char_next): Ditto, the type of `code' is
- matched with BDF_encoding_el.enc.
- (bdf_interpret_style): The type of `lengths' is changed
- to size_t, to take the value by ft_strlen(). Also the
- types of `len', `nn', `mm' are matched.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- sfnt: Count the size of the memory object by ptrdiff_t.
-
- * src/sfnt/ttbdf.c (tt_face_find_bdf_prop): The type of
- `peroperty_len' is changed from FT_UInt to FT_Offset,
- to match with size_t, which is appropriate type for the
- object in the memory buffer.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- lzw: Count the size of the memory object by ptrdiff_t.
-
- * src/lzw/ftzopen.h: The types of FT_LzwState->{buf_total,
- stack_size} are changed from FT_UInt to FT_Offset, to match
- with size_t, which is appropriate type for the object in
- the memory buffer.
-
- * src/lzw/ftzopen.c (ft_lzwstate_stack_grow): The types of
- `old_size' and `new_size' are changed from FT_UInt to
- FT_Offset, to match with size_t, which is appropriate type
- for the object in the memory buffer.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- otvalid: Count the table size on memory by ptrdiff_t.
-
- * src/otvalid/otvgpos.c (otv_ValueRecord_validate):
- Change the type of table size from FT_UInt to
- FT_PtrDist because it is calculated by the memory
- addresses.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- otvalid: Prevent an overflow by GPOS/GSUB 32b-bit offset.
-
- * src/otvalid/otvgpos.c (otv_ExtensionPos_validate):
- Extend ExtensionOffset from FT_UInt to FT_ULong, to
- cover 32-bit offset on 16-bit platform.
-
- * src/otvalid/otvgsub.c (otv_ExtensionSubst_validate):
- Ditto.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- ftobjs.c: Prevent an overflow in glyph index handling.
-
- * src/base/ftobjs.c (FT_Face_GetCharsOfVariant):
- Improve the cast in comparison to avoid the truncation.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- Improve the variable types in raccess_make_file_name().
-
- * src/base/ftrfork.c (raccess_make_file_name):
- Change the type of cursor variable `tmp' to const char*,
- to prevent the unexpected modification of original pathname.
- (raccess_make_file_name): Change the type of new_length
- to size_t.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- ftpatent.c: Fix for unused variable `error'.
-
- * src/base/ftpatent.c (_tt_check_patents_in_range):
- Fix warning for unused variable `error'.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- type1: Check invalid string longer than PostScript limit.
-
- * src/type1/t1afm.c (t1_get_index): Check invalid string
- which exceeds the limit of PostScript string/name objects.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- gzip: Use FT2 zcalloc() & zfree() in ftgzip.c by default.
-
- * src/gzip/ftgzip.c (zcalloc, zcfree): Disable all
- zcalloc() & zfree() by zlib in zutil.c, those in
- ftgzip.c by FT2 are enabled by default. To use
- zlib zcalloc() & zfree(), define USE_ZLIB_ZCALLOC.
- See discussion:
- http://lists.gnu.org/archive/html/freetype-devel/2009-02/msg00000.html
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- gzip: Distinguish PureC from TurboC on MSDOS.
-
- * src/gzip/zutil.c (zcalloc, zcfree): Enable only for
- MSDOS platform.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- gxvalid: Insert PureC pragma to allow unevaluated variables.
-
- * builds/atari/ATARI.H: Insert PureC pragma not to
- warn against set-but-unevaluated variable in gxvalid
- module.
-
-2009-07-31 suzuki toshiya <[email protected]>
-
- gxvalid: Pass the union by the pointer instead of the value.
-
- * src/gxvalid/gxvcommn.h:
- - Declare new type `GXV_LookupValueCPtr'.
- - Update the type of the 2nd argument to pass GXV_LookupValueDesc
- data to the function prototyped as GXV_Lookup_Value_Validate_Func,
- from GXV_LookupValueDesc to GXV_LookupValueCPtr.
- - Likewise for the function prototyped as
- GXV_Lookup_Fmt4_Transit_Func.
-
- - Declare new type `GXV_StateTable_GlyphOffsetCPtr'.
- - Update the type of the 3rd argument to pass
- GXV_StateTable_GlyphOffsetDesc data to the function prototyped
- as GXV_StateTable_Entry_Validate_Func, from
- GXV_StateTable_GlyphOffsetDesc to GXV_StateTable_GlyphOffsetCPtr.
-
- - Declare new type `GXV_XStateTable_GlyphOffsetCPtr'.
- - Update the type of the 3rd argument to pass
- GXV_XStateTable_GlyphOffsetDesc data to the function prototyped
- as GXV_XStateTable_Entry_Validate_Func,
- from GXV_XStateTable_GlyphOffsetDesc
- to GXV_XStateTable_GlyphOffsetCPtr.
-
- * src/gxvalid/gxvcommn.c (gxv_LookupTable_fmt0_validate,
- gxv_XClassTable_lookupval_validate,
- gxv_XClassTable_lookupfmt4_transit):
- Update from GXV_LookupValueDesc to GXV_LookupValueCPtr.
-
- * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
- gxv_bsln_LookupFmt4_transit): Ditto.
-
- * src/gxvalid/gxvjust.c
- (gxv_just_pcTable_LookupValue_entry_validate,
- gxv_just_classTable_entry_validate,
- gxv_just_wdcTable_LookupValue_validate): Ditto.
-
- * src/gxvalid/gxvkern.c
- (gxv_kern_subtable_fmt1_entry_validate): Ditto.
-
- * src/gxvalid/gxvlcar.c (gxv_lcar_LookupValue_validate,
- gxv_lcar_LookupFmt4_transit): Ditto.
-
- * src/gxvalid/gxvopbd.c (gxv_opbd_LookupValue_validate,
- gxv_opbd_LookupFmt4_transit): Ditto.
-
- * src/gxvalid/gxvprop.c (gxv_prop_LookupValue_validate,
- gxv_prop_LookupFmt4_transit): Ditto.
-
- * src/gxvalid/gxvmort4.c
- (gxv_mort_subtable_type4_lookupval_validate): Ditto.
-
- * src/gxvalid/gxvmort0.c
- (gxv_mort_subtable_type0_entry_validate): Update
- from GXV_StateTable_GlyphOffsetDesc
- to GXV_StateTable_GlyphOffsetCPtr.
-
- * src/gxvalid/gxvmort1.c
- (gxv_mort_subtable_type1_entry_validate): Ditto.
-
- * src/gxvalid/gxvmort2.c
- (gxv_mort_subtable_type2_entry_validate): Ditto.
-
- * src/gxvalid/gxvmort5.c
- (gxv_mort_subtable_type5_entry_validate): Ditto.
-
- * src/gxvalid/gxvmorx2.c
- (gxv_morx_subtable_type2_entry_validate): Ditto.
-
- * src/gxvalid/gxvmorx5.c
- (gxv_morx_subtable_type5_entry_validate): Ditto.
-
- * src/gxvalid/gxvmorx1.c
- (gxv_morx_subtable_type1_entry_validate): Ditto.
- (gxv_morx_subtable_type1_LookupValue_validate,
- gxv_morx_subtable_type1_LookupFmt4_transit):
- Update from GXV_LookupValueDesc to GXV_LookupValueCPtr.
-
- * src/gxvalid/gxvmorx0.c
- (gxv_morx_subtable_type0_entry_validate): Update
- from GXV_XStateTable_GlyphOffsetDesc
- to GXV_XStateTable_GlyphOffsetCPtr.
-
-2009-07-29 Fabrice Bellet <[email protected]>
-
- Fix Redhat bugzilla #513582 and Savannah bug #26849.
-
- * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP) <FTC_INLINE>: Fix
- aliasing bug.
-
-2009-07-19 Werner Lemberg <[email protected]>
-
- Document recent library changes.
-
- * docs/CHANGES: Do it.
-
-2009-07-17 Werner Lemberg <[email protected]>
-
- Fix Savannah bug #23786.
-
- * src/truetype/ttobjs.c (tt_size_init_bytecode): Don't reset x_ppem
- and y_ppem. Otherwise the `*_CVT_Stretched' functions in ttinterp.c
- get never called.
- An anonymous guy suggested this change on Savannah, and it seems to
- be the right solution.
-
-2009-07-15 Werner Lemberg <[email protected]>
-
- * docs/release: Updated.
-
-2009-07-15 Werner Lemberg <[email protected]>
-
- README.CVS -> README.git
-
- * README.CVS: Renamed to...
- * README.git: This.
- Updated.
-
-2009-07-15 suzuki toshiya <[email protected]>
-
- Borland C++ compiler patch proposed by Mirco Babin.
- http://lists.gnu.org/archive/html/freetype/2009-07/msg00016.html.
-
- * builds/exports.mk: Delete unused flags, CCexe_{CFLAGS,LDFLAGS}.
- Fix APINAMES_C and APINAMES_EXE pathnames to reflect the platform
- specific pathname syntax.
- * builds/compiler/bcc.mk: Remove unused flag, CCexe_LDFLAGS.
- Define TE = `-e' separately (bcc32 cannot specify the pathname of
- binary executable by T = `-o').
- Extend the large page size in linking freetype.lib.
- Add extra CLEAN target to delete bcc specific temporary files.
- * builds/compiler/bcc-dev.mk: Ditto.
-
-2009-07-14 Werner Lemberg <[email protected]>
-
- Fix Savannah bug #27026.
-
- * builds/win32/vc2005/freetype.sln: Use correct version number.
-
-2009-07-12 suzuki toshiya <[email protected]>
-
- Add a script to check the undefined and unused trace macros.
-
- * src/tools/chktrcmp.py: A script to check trace_XXXX macros
- that are used in C source but undefined in fttrace.h, or
- defined in fttrace.h but unused in C sources. See
- http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html.
- * docs/DEBUG: Mention on chktrcmp.py.
- * docs/release: Ditto.
-
-2009-07-09 Werner Lemberg <[email protected]>
-
- [ftraster] Make it compile again with -D_STANDALONE_.
-
- * src/raster/ftraster.c [_STANDALONE_]: Define
- FT_CONFIG_STANDARD_LIBRARY_H.
- Include `string.h'.
- Don't include `rastpic.h'.
- Define FT_DEFINE_RASTER_FUNCS.
-
-2009-07-09 suzuki toshiya <[email protected]>
-
- smooth: Check glyph size by width/height, instead of pitch/height.
- Suggested by der Mouse <[email protected]>.
-
- * src/smooth/ftsmooth.c (ft_smooth_render_generic): Improve
- the check for too large glyph. Replace the pair of `pitch' and
- `height' by the pair of `width' and `height'. `pitch' cannot
- be greater than `height'. The required is checking the product
- `pitch' * `height' <= FT_ULONG_MAX, but we use cheap checks for
- the realistic case only.
-
-2009-07-09 suzuki toshiya <[email protected]>
-
- Register 2 missing trace components, t1afm and ttbdf.
-
- * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( t1afm )
- and FT_TRACE_DEF( ttbdf ). See
- http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html
-
-2009-07-09 suzuki toshiya <[email protected]>
-
- Register a trace component for ftgloadr.c.
-
- * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( gloader ).
- The macro `trace_gloader' was already used in the initial version
- on 2002-02-24.
-
-2009-07-08 suzuki toshiya <[email protected]>
-
- Prevent the overflows by a glyph with too many points or contours.
- The bug is reported by Boris Letocha <[email protected]>. See
- http://lists.gnu.org/archive/html/freetype-devel/2009-06/msg00031.html
- http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00002.html
-
- * include/freetype/ftimage.h (FT_OUTLINE_CONTOURS_MAX,
- FT_OUTLINE_POINTS_MAX): New macros to declare the maximum
- values of FT_Outline.{n_contours,n_points}.
- * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Check the
- total numbers of points and contours cause no overflows in
- FT_Outline.{n_contours,n_points}.
-
- * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
- FT_GLYPHLOADER_CHECK_C): Compare the numbers of points and
- contours as unsigned long number, instead of signed int, to
- prevent the overflows on 16-bit systems.
-
-2009-07-05 Bram Tassyns <[email protected]>
-
- Improve compatibility to Acroread.
- This fixes Savannah bug #26944.
-
- * src/cff/cffload.c (cff_charset_compute_cids): For multiple GID to
- single CID mappings, make the lowest value win.
-
-2009-06-28 suzuki toshiya <[email protected]>
-
- ftpatent: Fix a bug by wrong usage of service->table_info().
- http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00039.html
-
- * include/freetype/internal/services/svsfnt.h: Extend
- FT_SFNT_TableInfoFunc() to take new argument to obtain the offset
- to the specified table.
- * src/sfnt/sfdriver.c (sfnt_table_info): Extend to return the
- table-offset to the caller function.
- * src/base/ftpatent.c (_tt_check_patents_in_table): Use new
- service->table_info().
- * src/base/ftobjs.c (FT_Sfnt_Table_Info): Synchronize to new
- service->table_info().
-
-2009-06-28 Werner Lemberg <[email protected]>
-
- [psaux, cff] Protect against nested `seac' calls.
-
- * include/freetype/internal/psaux.h (T1_Decoder), src/cff/cffgload.h
- (CFF_Decoder): Add `seac' boolean variable.
-
- * src/cff/cffgload.c (cff_operator_seac), src/psaux/t1decode.c
- (t1operator_seac): Use it.
-
-2009-06-28 Werner Lemberg <[email protected]>
-
- Thinko.
-
- * src/psaux/t1decode.c (t1operator_seac)
- [FT_CONFIG_OPTION_INCREMENTAL]: Test for existence of incremental
- interface.
-
-2009-06-28 Werner Lemberg <[email protected]>
-
- * devel/ftoption.h [FT_CONFIG_OPTION_INCREMENTAL]: Define.
-
-2009-06-27 suzuki toshiya <[email protected]>
-
- Add tools to preprocess the source files for AtariST PureC.
-
- * builds/atari/deflinejoiner.awk: New file to filter C source files
- for broken C preprocessor of PureC compiler.
-
- * builds/atari/gen-purec-patch.sh: New file to generate a patch set
- for PureC, by using deflinejoiner.awk.
-
-2009-06-27 suzuki toshiya <[email protected]>
-
- Keep existing modules.cfg in the building tree.
-
- * configure: If `configure' is executed outside of the source tree,
- an existing `modules.cfg' file in the build directory should be
- kept, not overwritten by the version in the source tree.
-
-2009-06-27 suzuki toshiya <[email protected]>
-
- Filter --srcdir= option before invoking builds/unix/configure.
-
- * configure: If builds/unix/configure is invoked with --srcdir
- option, the option should take `builds/unix' directory instead of
- the top source directory. Thus the configure script in the top
- directory should modify the --srcdir= option if
- `builds/unix/configure' is invoked.
-
-2009-06-27 suzuki toshiya <[email protected]>
-
- Improve configure.raw for cross-building on exe-suffixed systems.
-
- * builds/unix/configure.raw: Fix a bug in sed script to extract
- native suffix for binary executables, patch by Peter Breitenlohner.
- http://lists.gnu.org/archive/html/freetype-devel/2009-04/msg00036.html
-
-2009-06-26 Werner Lemberg <[email protected]>
-
- [truetype] Remove TT_SubGlyphRec.
-
- * src/truetype/ttobjs.h (TT_SubGlyphRec): Removed, unused.
-
-2009-06-26 Werner Lemberg <[email protected]>
-
- * */*: For warning messages, replace FT_ERROR with FT_TRACE0.
-
- FT_ERROR is now used only if a function produces a non-zero `error'
- value.
-
- Formatting, improving and harmonizing debug strings.
-
-2009-06-25 Werner Lemberg <[email protected]>
-
- Provide version information better.
-
- * src/base/ftinit.c (FT_Init_FreeType): Don't set version here
- but...
- * src/base/ftobjs.c (FT_New_Library): Here.
-
-2009-06-22 Werner Lemberg <[email protected]>
-
- Use 16.16 format while parsing Type 1 charstrings.
- This fixes Savannah bug #26867.
-
- Previously, only integers have been used which can lead to serious
- rounding errors.
-
- However, fractional values are only used internally; after the
- charstrings (of either Type 1 or 2) have been processed, the
- resulting coordinates get rounded to integers currently -- before
- applying scaling. This should be fixed; at the same time a new load
- flag should be introduced, to be used in combination with
- FT_LOAD_NO_SCALE, which indicates that font units are returned in
- 16.16 format. Similarly, the incremental interface should be
- extended to allow fractional values for metrics.
-
- * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `shift'
- field.
- * include/freetype/internal/pshints.h (T1_Hints_SetStemFunc,
- T1_Hints_SetStem3Func): Use FT_Fixed for coordinates.
-
- * src/psaux/psobjs.c: Include FT_INTERNAL_CALC_H.
- (t1_build_add_point): Always convert fixed to integer.
- * src/psaux/t1decode.c (t1_decoder_parse_charstrings):
- Use 16.16 format everywhere (except for large integers followed by a
- `div').
- [CAN_HANDLE_NON_INTEGRAL_T1_OPERANDS]: Remove #ifdef and activate
- code uncoditionally.
- Add support for random numbers and update remaining code
- accordingly; this should work now.
- (t1_operator_seac): Updated.
- * src/psaux/pshrec.c: Include FT_INTERNAL_CALC_H.
- (ps_hints_t1stem3, t1_hints_stem): Updated.
-
- * src/cid/cidgload.c: Include FT_INTERNAL_CALC_H.
- (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL],
- (cid_face_compute_max_advance, cid_slot_load_glyph): Updated.
-
- * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
- [FT_CONFIG_OPTION_INCREMENTAL], (T1_Get_Advances, T1_Load_Glyph):
- Updated.
- * src/type1/t1load.c: Include FT_INTERNAL_CALC_H.
- * src/type1/t1objs.c (T1_Face_Init): Updated.
-
-2009-06-21 Werner Lemberg <[email protected]>
-
- * src/pshinter/pshrec.c: Use PSH_Err_Ok.
-
-2009-06-21 Werner Lemberg <[email protected]>
-
- Code beautification.
-
- * src/type1/t1load.c (FT_INT_TO_FIXED): Removed.
- Replace everywhere with INT_TO_FIXED.
- (FT_FIXED_TO_INT): Move to ...
- * include/freetype/internal/ftcalc.h (FIXED_TO_INT): Here.
- Update all users.
-
-2009-06-20 Werner Lemberg <[email protected]>
-
- Remove unused variables.
-
- * include/freetype/internal/psaux.h (T1_BuilderRec),
- src/cff/cffgload.h (CFF_Builder): Remove `last'.
- Update all users.
-
-2009-06-20 Werner Lemberg <[email protected]>
-
- [psaux] Check large integers while parsing charstrings.
-
- * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Large
- integers must be followed by a `div' operator.
-
-2009-06-20 Werner Lemberg <[email protected]>
-
- [cff] Revert last change.
-
- * src/cff/cffgload.c (cff_decoder_parse_charstrings): Do it.
- Next time, don't confuse Type 2 charstring opcodes with TOP DICT
- values...
-
-2009-06-20 Werner Lemberg <[email protected]>
-
- * src/autofit/aflatin.c (af_latin_metrics_check_digits): Fix
- compiler warning.
-
-2009-06-20 Werner Lemberg <[email protected]>
-
- * builds/compiler/gcc.mk (CFLAGS): Use -O3, not -O6.
-
-2009-06-19 Werner Lemberg <[email protected]>
-
- [cff] Fix handling of reserved byte 0xFF.
-
- * src/cff/cffgload.c (cff_decoder_parse_charstrings): Abort if byte
- 0xFF is encountered.
-
-2009-06-19 Werner Lemberg <[email protected]>
-
- Improve debug messages for Type1 charstrings.
-
- * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Emit newlines
- after instructions.
- Prettify output.
-
-2009-06-19 Werner Lemberg <[email protected]>
-
- More ftgray fixes for FT_STATIC_RASTER.
- Problems reported by [email protected].
-
- * src/smooth/ftgrays.c (gray_move_to, gray_raster_render): Use
- RAS_VAR.
-
-2009-06-18 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2009-06-18 Werner Lemberg <[email protected]>
-
- Fix B/W rasterization of subglyphs with different drop-out modes.
-
- Normally, the SCANMODE instruction (if present) to set the drop-out
- mode in a TrueType font is located in the `prep' table only and thus
- valid for all glyphs. However, there are fonts like `pala.ttf'
- which additionally contain this instruction in the hinting code of
- some glyphs (but not all). As a result it can happen that a
- composite glyph needs multiple drop-out modes for its subglyphs
- since the rendering state gets reset for each subglyph.
-
- FreeType collects the hinted outlines from all subglyphs, then it
- sends the data to the rasterizer. It also sends the drop-out mode
- -- after hinting has been applied -- and here is the error: It sends
- the drop-out mode of the last subglyph only; drop-out modes of all
- other subglyphs are lost.
-
- This patch fixes the problem; it adds a second, alternative
- mechanism to pass the drop-out mode: For each contour, the
- rasterizer now checks the first `tags' array element. If bit 2 is
- set, bits 5-7 contain the contour's drop-out mode, overriding the
- global drop-out mode.
-
- * include/freetype/ftimage.h (FT_CURVE_TAG_HAS_SCANMODE): New macro.
-
- * src/truetype/ttgload.c (TT_Hint_Glyph): Store drop-out mode in
- `tags[0]'.
-
- * src/raster/ftraster.c (Flow_Up, Overshoot_Top, Overshoot_Bottom):
- Use bits 3-5 instead of 0-2.
- (New_Profile): Set the drop-out mode in the profile's `flags' field.
- (Decompose_Curve): Check `tags[0]' and set `dropOutControl' if
- necessary.
- (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
- Horizontal_Gray_Sweep_Drop, Draw_Sweep): Use the profile's drop-out
- mode.
-
-2009-06-16 Werner Lemberg <[email protected]>
-
- Improve scan conversion rules 4 and 6.
-
- Two new constraints are introduced to better identify a `stub' -- a
- concept which is only vaguely described in the OpenType
- specification. The old code was too rigorous and suppressed more
- pixel than it should.
-
- . The intersection of the two profiles with the scanline is less
- than a half pixel. Code related to this was already present in
- the sources but has been commented out.
-
- . The endpoint of the original contour forming a profile has a
- distance (`overshoot') less than half a pixel to the scanline.
-
- Note that the two additional conditions fix almost all differences
- to the Windows rasterizer, but some problematic cases remain.
-
- * src/raster/ftraster.c (Overshoot_Top, Overshoot_Bottom): New
- macros for the `flags' field in the `TProfile' structure.
- (IS_BOTTOM_OVERSHOOT, IS_TOP_OVERSHOOT): New macros.
- (New_Profile, End_Profile): Pass overshoot flag as an argument and
- set it accordingly.
- Update callers.
- (Vertical_Sweep_Drop, Horizontal_Sweep_Drop): Implement the two new
- constraints.
-
-2009-06-11 Werner Lemberg <[email protected]>
-
- Increase precision for B/W rasterizer.
-
- * src/raster/ftraster.c (Set_High_Precision): Add two more bits to
- the precision. This corrects rendering of some small glyphs, for
- example, glyph `xi' in verdana.ttf at 13 ppem. Testing with ftbench
- on my GNU/Linux box I don't see a performance degradation.
-
-2009-06-08 Michael Zucchi <[email protected]>
-
- Handle FT_STROKER_LINECAP_BUTT.
- This fixes Savannah bug #26757.
-
- * src/base/ftstroke.c (ft_stroker_cap): Implement it.
-
-2009-06-07 Harald Fernengel <[email protected]>
-
- Fix some potential out-of-memory crashes.
-
- * src/base/ftobjs.c (ft_glyphslot_done): Check `slot->internal'.
- * src/base/ftstream.c (FT_Stream_ReleaseFrame): Check `stream'.
- * src/truetype/ttinterp.c (TT_New_Context): Avoid double-free of
- `exec' in case of failure.
-
-2009-06-07 Werner Lemberg <[email protected]>
-
- Simplify math.
- Suggested by Alexei Podtelezhnikov <[email protected]>.
-
- * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
- Horizontal_Gray_Sweep_Drop): Do it.
-
-2009-06-04 Werner Lemberg <[email protected]>
-
- Preparation for fixing scan conversion rules 4 and 6.
-
- * src/raster/ftraster.c (TFlow): Replace enumeration with...
- (Flow_Up): This macro.
- (TProfile): Replace `flow' member with `flags' bit field.
- Update all affected code.
-
-2009-05-29 James Cloos <[email protected]>
-
- Enable autohinting for glyphs rotated by multiples of 90°.
-
- * src/base/ftobjs.c (FT_Load_Glyph): Alter check for permitted
- matrices to allow rotations by multiples of 90°, not only unrotated,
- possibly slanted matrices.
-
-2009-05-28 Werner Lemberg <[email protected]>
-
- Remove compiler warning.
- Reported by Krzysztof Kowalczyk <[email protected]>.
-
- * src/autofit/aflatin2.c (af_latin2_hint_edges): Move declaration of
- `n_edges' into `#if' block.
-
-2009-05-28 Werner Lemberg <[email protected]>
-
- Make compilation work with FT_CONFIG_OPTION_USE_ZLIB not defined.
- Reported by Krzysztof Kowalczyk <[email protected]>.
-
- * src/pcf/pcfdrivr.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_ZLIB]:
- Make it work.
- Simplify #ifdef logic.
-
-2009-05-22 Werner Lemberg <[email protected]>
-
- Improve b/w rasterizer.
- Problem reported by Krzysztof Kotlenga <[email protected]>.
-
- * src/raster/raster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
- Horizontal_Gray_Sweep_Drop): For smart drop-out mode, if
- intersections are equally distant relative to next pixel center,
- select the left pixel, not the right one.
-
-2009-05-19 Werner Lemberg <[email protected]>
-
- Fix Savannah bug #26600.
-
- * src/type42/t42parse.c (t42_load_keyword): Handle
- T1_FIELD_LOCATION_FONT_EXTRA.
-
-2009-04-30 Werner Lemberg <[email protected]>
-
- Document recent changes to ftview.
-
- * docs/CHANGES: Do it.
-
-2009-04-27 Werner Lemberg <[email protected]>
-
- autohinter: Don't change digit widths if all widths are the same.
- This fixes FreeDesktop bug #21197.
-
- * src/autofit/afglobal.c (AF_DIGIT): New macro.
- (af_face_globals_compute_script_coverage): Mark ASCII digits in
- `glyph_scripts' array.
- (af_face_globals_get_metrics): Updated.
- (af_face_globals_is_digit): New function.
- * src/autofit/afglobal.h: Updated.
- (AF_ScriptMetricsRec): Add `digits_have_same_width' flag.
-
- * src/autofit/aflatin.c: Include FT_ADVANCES_H.
- (af_latin_metrics_check_digits): New function.
- (af_latin_metrics_init): Use it.
- * src/autofit/aflatin.h: Updated.
- * src/autofit/afcjk.c (af_cjk_metrics_init): Updated.
-
- * src/autofit/aflatin2.c: Similar changes as with aflatin.c.
-
- * src/autofit/afloader.c (af_loader_load_g): Test digit width.
-
- * docs/CHANGES: Document it.
-
-2009-04-26 Werner Lemberg <[email protected]>
-
- Make ftgrays compile with _STANDALONE_ and FT_STATIC_RASTER again.
- Problems reported by [email protected].
-
- * src/smooth/ftgrays.c (FT_DEFINE_OUTLINE_FUNCS,
- FT_DEFINE_RASTER_FUNCS) [_STANDALONE_]: Define.
- [!_STANDALONE_]: Include ftspic.h only here.
- (ras): Define/declare after definition of `TWorker'.
- Use `RAS_VAR_' where necessary.
-
-2009-04-21 Karl Berry <[email protected]>
-
- Fix AC_CHECK_FT2.
-
- * builds/unix/freetype2.m4: Only check PATH for freetype-config if
- we did not already find it from a prefix option.
-
-2009-04-05 Oran Agra <[email protected]>
-
- Add #error to modules and files that do not support PIC yet.
-
- When FT_CONFIG_OPTION_PIC is defined the following files will
- create #error:
- * src/bdf/bdfdrivr.h
- * src/cache/ftcmanag.c
- * src/cid/cidriver.h
- * src/gxvalid/gxvmod.h
- * src/gzip/ftgzip.c
- * src/lzw/ftlzw.c
- * src/otvalid/otvmod.h
- * src/pcf/pcfdrivr.h
- * src/pfr/pfrdrivr.h
- * src/psaux/psauxmod.h
- * src/type1/t1driver.h
- * src/type42/t42drivr.h
- * src/winfonts/winfnt.h
-
-2009-04-05 Oran Agra <[email protected]>
-
- Position Independent Code (PIC) support in autofit module.
-
- * include/freetype/internal/autohint.h add macros to init
- instances of FT_AutoHinter_ServiceRec.
-
- * src/autofit/afmodule.h declare autofit_module_class
- using macros from ftmodapi.h,
- when FT_CONFIG_OPTION_PIC is defined create and destroy
- functions will be declared.
- * src/autofit/afmodule.c when FT_CONFIG_OPTION_PIC is defined
- af_autofitter_service and autofit_module_class structs
- will have functions to init or create and destroy them
- instead of being allocated in the global scope.
- And macros will be used from afpic.h in order to access them.
-
- * src/autofit/aftypes.h add macros to init and declare
- instances of AF_ScriptClassRec.
-
- * src/autofit/afcjk.h declare af_cjk_script_class
- using macros from aftypes.h,
- when FT_CONFIG_OPTION_PIC is defined init function will be declared.
- * src/autofit/afcjk.c when FT_CONFIG_OPTION_PIC is defined
- af_cjk_script_class struct will have function to init it instead of
- being allocated in the global scope.
-
- * src/autofit/afdummy.h declare af_dummy_script_class
- using macros from aftypes.h,
- when FT_CONFIG_OPTION_PIC is defined init function will be declared.
- * src/autofit/afdummy.c when FT_CONFIG_OPTION_PIC is defined
- af_dummy_script_class struct will have function to init it instead of
- being allocated in the global scope.
-
- * src/autofit/afindic.h declare af_indic_script_class
- using macros from aftypes.h,
- when FT_CONFIG_OPTION_PIC is defined init function will be declared.
- * src/autofit/afindic.c when FT_CONFIG_OPTION_PIC is defined
- af_indic_script_class struct will have function to init it instead of
- being allocated in the global scope.
-
- * src/autofit/aflatin.h declare af_latin_script_class
- using macros from aftypes.h,
- when FT_CONFIG_OPTION_PIC is defined init function will be declared.
- * src/autofit/aflatin.c when FT_CONFIG_OPTION_PIC is defined
- af_latin_script_class struct will have function to init it instead of
- being allocated in the global scope.
- Change af_latin_blue_chars to be PIC-compatible by being a two
- dimentional array rather than array of pointers.
-
-
- * src/autofit/aflatin2.h declare af_latin2_script_class
- using macros from aftypes.h,
- when FT_CONFIG_OPTION_PIC is defined init function will be declared.
- * src/autofit/aflatin2.c when FT_CONFIG_OPTION_PIC is defined
- af_latin2_script_class struct will have function to init it instead of
- being allocated in the global scope.
- Change af_latin2_blue_chars to be PIC-compatible by being a two
- dimentional array rather than array of pointers.
-
- * src/autofit/afglobal.c when FT_CONFIG_OPTION_PIC is defined
- af_script_classes array initialization was moved to afpic.c and
- is later refered using macros defeined in afpic.h.
-
- New Files:
- * src/autofit/afpic.h declare struct to hold PIC globals for autofit
- module and macros to access them.
- * src/autofit/afpic.c implement functions to allocate, destroy and
- initialize PIC globals for autofit module.
-
- * src/autofit/autofit.c add new file to build: afpic.c.
- * src/autofit/jamfile add new files to FT2_MULTI build: afpic.c.
-
-2009-04-05 Oran Agra <[email protected]>
-
- Position Independent Code (PIC) support in pshinter module.
-
- * include/freetype/internal/pshints.h add macros to init
- instances of PSHinter_Interface.
-
- * src/pshinter/pshmod.h declare pshinter_module_class
- using macros from ftmodapi.h,
- when FT_CONFIG_OPTION_PIC is defined create and destroy
- functions will be declared.
- * src/pshinter/pshmod.c when FT_CONFIG_OPTION_PIC is defined
- pshinter_interface and pshinter_module_class structs
- will have functions to init or create and destroy them
- instead of being allocated in the global scope.
- And macros will be used from pshpic.h in order to access them.
-
- New Files:
- * src/pshinter/pshpic.h declare struct to hold PIC globals for pshinter
- module and macros to access them.
- * src/pshinter/pshpic.c implement functions to allocate, destroy and
- initialize PIC globals for pshinter module.
-
- * src/pshinter/pshinter.c add new file to build: pshpic.c.
- * src/pshinter/jamfile add new files to FT2_MULTI build: pshpic.c.
-
-2009-04-05 Oran Agra <[email protected]>
-
- Position Independent Code (PIC) support in psnames module.
-
- * include/freetype/internal/services/svpscmap.h add macros to init
- instances of FT_Service_PsCMapsRec.
-
- * src/psnames/psmodule.h declare psnames_module_class
- using macros from ftmodapi.h,
- when FT_CONFIG_OPTION_PIC is defined create and destroy
- functions will be declared.
- * src/psnames/psmodule.c when FT_CONFIG_OPTION_PIC is defined
- pscmaps_interface and pscmaps_services structs
- and psnames_module_class array
- will have functions to init or create and destroy them
- instead of being allocated in the global scope.
- And macros will be used from pspic.h in order to access them.
-
- New Files:
- * src/psnames/pspic.h declare struct to hold PIC globals for psnames
- module and macros to access them.
- * src/psnames/pspic.c implement functions to allocate, destroy and
- initialize PIC globals for psnames module.
-
- * src/psnames/psnames.c add new file to build: pspic.c.
- * src/psnames/jamfile add new files to FT2_MULTI build: pspic.c.
-
-2009-04-05 Oran Agra <[email protected]>
-
- Position Independent Code (PIC) support in raster renderer.
-
- * src/raster/ftrend1.h declare ft_raster1_renderer_class
- and ft_raster5_renderer_class
- using macros from ftrender.h,
- when FT_CONFIG_OPTION_PIC is defined create and destroy
- functions will be declared.
- * src/smooth/ftrend1.c when FT_CONFIG_OPTION_PIC is defined
- ft_raster1_renderer_class and ft_raster5_renderer_class structs
- will have functions to init or create and destroy them
- instead of being allocated in the global scope.
- Macros will be used from rastpic.h in order to access
- ft_standard_raster from the pic_container (allocated in ftraster.c).
- In ft_raster1_render when PIC is enabled, the last letter of
- module_name is used to verfy the renderer class rather than the
- class pointer.
-
- * src/raster/ftraster.c when FT_CONFIG_OPTION_PIC is defined
- ft_standard_raster struct will have function to init it
- instead of being allocated in the global scope.
-
- New Files:
- * src/raster/rastpic.h declare struct to hold PIC globals for raster
- renderer and macros to access them.
- * src/raster/rastpic.c implement functions to allocate, destroy and
- initialize PIC globals for raster renderer.
-
- * src/raster/raster.c add new file to build: rastpic.c.
- * src/raster/jamfile add new files to FT2_MULTI build: rastpic.c.
-
-2009-04-05 Oran Agra <[email protected]>
-
- Position Independent Code (PIC) support in smooth renderer.
-
- * src/smooth/ftsmooth.h declare ft_smooth_renderer_class,
- ft_smooth_lcd_renderer_class and ft_smooth_lcd_v_renderer_class
- using macros from ftrender.h,
- when FT_CONFIG_OPTION_PIC is defined create and destroy
- functions will be declared.
- * src/smooth/ftsmooth.c when FT_CONFIG_OPTION_PIC is defined
- the following structs:
- ft_smooth_renderer_class, ft_smooth_lcd_renderer_class
- and ft_smooth_lcd_v_renderer_class
- will have functions to init or create and destroy them
- instead of being allocated in the global scope.
- And macros will be used from ftspic.h in order to access
- ft_grays_raster from the pic_container (allocated in ftgrays.c).
-
- * src/smooth/ftgrays.h include FT_CONFIG_CONFIG_H
- * src/smooth/ftgrays.c when FT_CONFIG_OPTION_PIC is NOT defined
- func_interface was moved from gray_convert_glyph_inner function
- to the global scope.
- When FT_CONFIG_OPTION_PIC is defined
- func_interface and ft_grays_raster structs
- will have functions to init them
- instead of being allocated in the global scope.
- And func_interface will be allocated on the stack of
- gray_convert_glyph_inner.
-
- New Files:
- * src/smooth/ftspic.h declare struct to hold PIC globals for smooth
- renderer and macros to access them.
- * src/smooth/ftspic.c implement functions to allocate, destroy and
- initialize PIC globals for smooth renderer.
-
- * src/smooth/smooth.c add new file to build: ftspic.c.
- * src/smooth/jamfile add new files to FT2_MULTI build: ftspic.c.
-
-2009-04-05 Oran Agra <[email protected]>
-
- Position Independent Code (PIC) support in cff driver.
-
- * include/freetype/internal/services/svcid.h add macros to init
- instances of FT_Service_CIDRec.
- * include/freetype/internal/services/svpsinfo.h add macros to init
- instances of FT_Service_PsInfoRec.
-
- * src/cff/cffcmap.h declare cff_cmap_encoding_class_rec
- and cff_cmap_unicode_class_rec using macros from
- ftobjs.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
- functions will be declared.
- * src/cff/cffcmap.c when FT_CONFIG_OPTION_PIC is defined
- the following structs:
- cff_cmap_encoding_class_rec and cff_cmap_unicode_class_rec
- will have functions to init or create and destroy them
- instead of being allocated in the global scope.
-
- * src/cff/cffdrivr.h declare cff_driver_class using macros from
- ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
- functions will be declared.
- * src/cff/cffdrivr.c when FT_CONFIG_OPTION_PIC is defined
- the following structs:
- cff_service_glyph_dict, cff_service_ps_info, cff_service_ps_name
- cff_service_get_cmap_info, cff_service_cid_info, cff_driver_class,
- and cff_services array
- will have functions to init or create and destroy them
- instead of being allocated in the global scope.
- And macros will be used from cffpic.h in order to access them
- from the pic_container.
- Use macros from cffpic.h in order to access the
- structs allocated in cffcmap.c
-
- * src/cff/cffobjs.c Use macros from cffpic.h in order to access the
- structs allocated in cffcmap.c
-
- * src/cff/parser.c when FT_CONFIG_OPTION_PIC is defined
- implement functions to create and destroy cff_field_handlers array
- instead of being allocated in the global scope.
- And macros will be used from cffpic.h in order to access it
- from the pic_container.
-
- New Files:
- * src/cff/cffpic.h declare struct to hold PIC globals for cff
- driver and macros to access them.
- * src/cff/cffpic.c implement functions to allocate, destroy and
- initialize PIC globals for cff driver.
-
- * src/cff/cff.c add new file to build: cffpic.c.
- * src/cff/jamfile add new files to FT2_MULTI build: cffpic.c.
-
-2009-04-05 Oran Agra <[email protected]>
-
- Position Independent Code (PIC) support in sfnt driver.
-
- * include/freetype/internal/services/svbdf.h add macros to init
- instances of FT_Service_BDFRec.
- * include/freetype/internal/services/svgldict.h add macros to init
- instances of FT_Service_GlyphDictRec.
- * include/freetype/internal/services/svpostnm.h add macros to init
- instances of FT_Service_PsFontNameRec.
- * include/freetype/internal/services/svsfnt.h add macros to init
- instances of FT_Service_SFNT_TableRec.
- * include/freetype/internal/services/svttcmap.h add macros to init
- instances of FT_Service_TTCMapsRec.
- * include/freetype/internal/sfnt.h add macros to init
- instances of SFNT_Interface.
-
- * src/sfnt/sfdriver.h declare sfnt_module_class using macros from
- ftmodapi.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
- functions will be declared.
- * src/sfnt/sfdriver.c when FT_CONFIG_OPTION_PIC is defined
- the following structs:
- sfnt_service_sfnt_table, sfnt_service_glyph_dict, sfnt_service_ps_name
- tt_service_get_cmap_info, sfnt_service_bdf, sfnt_interface,
- sfnt_module_class, and sfnt_services array
- will have functions to init or create and destroy them
- instead of being allocated in the global scope.
- And macros will be used from sfntpic.h in order to access them
- from the pic_container.
-
- * src/sfnt/ttcmap.h add macros to init
- instances of TT_CMap_ClassRec.
- * src/sfnt/ttcmap.c when FT_CONFIG_OPTION_PIC is defined
- the following structs:
- tt_cmap0_class_rec, tt_cmap2_class_rec, tt_cmap4_class_rec
- tt_cmap6_class_rec, tt_cmap8_class_rec, tt_cmap10_class_rec,
- tt_cmap12_class_rec, tt_cmap14_class_rec and tt_cmap_classes array
- will have functions to init or create and destroy them
- instead of being allocated in the global scope.
- And macros will be used from sfntpic.h in order to access them
- from the pic_container.
- The content of tt_cmap_classes is now described in the
- new file 'ttcmapc.h'.
-
- New Files:
- * src/sfnt/sfntpic.h declare struct to hold PIC globals for sfnt
- driver and macros to access them.
- * src/sfnt/sfntpic.c implement functions to allocate, destroy and
- initialize PIC globals for sfnt driver.
- * src/sfnt/ttcmapc.h describing the content of
- tt_cmap_classes allocated in ttcmap.c
-
- * src/sfnt/sfnt.c add new file to build: sfntpic.c.
- * src/sfnt/jamfile add new files to FT2_MULTI build: sfntpic.c.
-
-2009-04-05 Oran Agra <[email protected]>
-
- Position Independent Code (PIC) support in truetype driver.
-
- * include/freetype/internal/services/svmm.h add macros to init
- instances of FT_Service_MultiMastersRec.
- * include/freetype/internal/services/svttglyf.h add macros to init
- instances of FT_Service_TTGlyfRec.
-
- * src/truetype/ttdriver.h declare tt_driver_class using macros from
- ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
- functions will be declared.
- * src/truetype/ttdriver.c when FT_CONFIG_OPTION_PIC is defined
- the following structs:
- tt_service_gx_multi_masters, tt_service_truetype_glyf, tt_driver_class
- and tt_services array,
- will have functions to init or create and destroy them
- instead of being allocated in the global scope.
- And macros will be used from ttpic.h in order to access them
- from the pic_container.
- * src/truetype/ttobjs.c change trick_names array to be
- PIC-compatible by being a two dimentional array rather than array
- of pointers.
-
- New Files:
- * src/truetype/ttpic.h declare struct to hold PIC globals for truetype
- driver and macros to access them.
- * src/truetype/ttpic.c implement functions to allocate, destroy and
- initialize PIC globals for truetype driver.
-
- * src/truetype/truetype.c add new file to build: ttpic.c.
- * src/truetype/jamfile add new files to FT2_MULTI build: ttpic.c.
-
-2009-04-05 Oran Agra <[email protected]>
-
- Position Independent Code (PIC) support and infrastructure in base.
-
- * include/freetype/config/ftoption.h add FT_CONFIG_OPTION_PIC
- * include/freetype/internal/ftobjs.h Add pic_container member to
- FT_LibraryRec.
- Add macros to declare and init instances of FT_CMap_ClassRec.
- Add macros to init instances of FT_Outline_Funcs and FT_Raster_Funcs.
- Add macros to declare, allocate and initialize modules
- (FT_Module_Class).
- Add macros to declare, allocate and initialize renderers
- (FT_Renderer_Class).
- Add macro to init instances of FT_Glyph_Class.
- Add macros to declare, allocate and initialize drivers
- (FT_Driver_ClassRec).
- * include/freetype/internal/ftpic.h new file to declare the
- FT_PIC_Container struct and the functions to allocate and detroy it.
- * include/freetype/internal/ftserv.h add macros to allocate and
- destory arrays of FT_ServiceDescRec.
- * include/freetype/internal/internal.h define macro to include
- ftpic.h.
-
- New Files:
- * src/base/ftpic.c implement functions to allocate and destory the
- global pic_container.
- * src/base/basepic.h declare struct to hold PIC globals for base and
- macros to access them.
- * src/base/basepic.c implement functions to allocate, destroy and
- initialize PIC globals for base.
-
- * src/base/ftinit.c when FT_CONFIG_OPTION_PIC is defined implement
- functions that allocate and destroy ft_default_modules according to
- FT_CONFIG_MODULES_H in the pic_container instead of the global scope
- and use macro from basepic.h to access it.
- * src/base/ftobjs.c add calls to the functions that allocate and
- destroy the global pic_container when the library is created and
- destroyed.
-
- * src/base/jamfile add new files to FT2_MULTI build:
- ftpic.c and basepic.c.
- * src/base/ftbase.c add new files to build:
- ftpic.c and basepic.c.
-
- * src/base/ftglyph.c when FT_CONFIG_OPTION_PIC is defined
- ft_bitmap_glyph_class and ft_outline_glyph_class will be allocated
- in the pic_container instead of the global scope and use macros from
- basepic.h to access them.
- * src/base/ftbbox.c allocate bbox_interface stract on the stack
- instead of the global scope when FT_CONFIG_OPTION_PIC is defined.
- * src/base/ftstroke.c access ft_outline_glyph_class allocated in
- ftglyph.c via macros from basepic.h
-
-2009-04-05 Oran Agra <[email protected]>
-
- Preparing changes in cff parser later needed for PIC version.
-
- * src/cff/cffload.c, src/cff/cffload.h, src/cff/cffobjs.c,
- src/cff/cffparse.c, src/cff/cffparse.h: Add library pointer to
- 'CFF_ParserRec' set by `cff_parser_init'.
- Route library pointer from 'cff_face_init' to 'cff_subfont_load'
- for `cff_parser_init'.
-
- * src/cff/cffparse.c (CFF_Field_Handler): Move it to...
- * src/cff/cffparse.h: This file, to be used by other C files.
-
-2009-04-05 Oran Agra <[email protected]>
-
- Minor change in ftstroke.c.
-
- * src/base/ftstroke.c (FT_StrokerRec): Replace `memory' member with
- `library' needed for PIC version.
- Update all callers.
-
-2009-04-04 Werner Lemberg <[email protected]>
-
- ftnames.c -> ftsnames.c
-
- * src/base/ftnames.c: Rename to...
- * src/base/ftsnames.c: This.
- * src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
-
-2009-04-04 Werner Lemberg <[email protected]>
-
- Add support for cmap type 13.
-
- * devel/ftoption.h, include/freetype/config/ftoption.h
- (TT_CONFIG_CMAP_FORMAT_13): New macro.
-
- * src/sfnt/ttcmap.c (TT_CMap13Rec, tt_cmap13_init,
- tt_cmap13_validate, tt_cmap13_char_index, tt_cmap13_char_next,
- tt_cmap13_get_info, tt_cmap13_char_map_def_binary,
- tt_cmap14_class_rec): New functions and structures for cmap 13
- support.
- (tt_cmap_classes): Register tt_cmap13_class_rec.
-
- * docs/CHANGES: Mention cmap 13 support.
-
-2009-04-01 Werner Lemberg <[email protected]>
-
- Ignore empty contours in CFF glyphs.
-
- Problem reported by Albert Astals Cid <[email protected]>.
-
- * src/cff/cffgload.c (cff_builder_close_contour): Synchronize with
- t1_builder_close_contour.
-
-2009-03-21 Werner Lemberg <[email protected]>
-
- Another redundant header inclusion.
-
- * src/truetype/ttgxvar.c: Fix Ghostscript Coverity issue #4041.
-
-2009-03-21 Werner Lemberg <[email protected]>
-
- Remove redundant header inclusions.
-
- This covers many Ghostscript Coverity issues.
-
- * src/*: Do it.
-
-2009-03-21 Werner Lemberg <[email protected]>
-
- Fix Ghostscript Coverity issue #3904.
-
- * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against
- invalid values of `runcnt'.
-
-2009-03-20 Werner Lemberg <[email protected]>
-
- Fix `make multi' run.
-
- * src/smooth/ftsmooth.h: Include FT_INTERNAL_DEBUG_H.
-
-2009-03-20 Werner Lemberg <[email protected]>
-
- Fix Savannah bug #25923.
-
- * src/cache/ftccmap.c (FTC_CMAP_HASH): Fix typo.
-
-2009-03-20 Werner Lemberg <[email protected]>
-
- Protect against too large glyphs.
-
- Problem reported by Tavis Ormandy <[email protected]>.
-
- * src/smooth/ftsmooth.c (ft_smooth_render_generic): Don't allow
- `pitch' or `height' to be larger than 0xFFFF.
-
-2009-03-20 Werner Lemberg <[email protected]>
- Tavis Ormandy <[email protected]>
-
- Fix validation for various cmap table formats.
-
- * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate,
- tt_cmap12_validate): Check `length' correctly.
- (tt_cmap_14_validate): Check `length' and `numMappings' correctly.
-
-2009-03-20 Werner Lemberg <[email protected]>
-
- Protect against malformed compressed data.
-
- * src/lzw/ftzopen.c (ft_lzwstate_io): Test whether `state->prefix' is
- zero.
-
-2009-03-20 Werner Lemberg <[email protected]>
-
- Protect against invalid SID values in CFFs.
-
- Problem reported by Tavis Ormandy <[email protected]>.
-
- * src/cff/cffload.c (cff_charset_load): Reject SID values larger
- than 64999.
-
-2009-03-19 Vincent Richomme <[email protected]>
-
- Update WinCE Visual C project files.
-
- * builds/wince/vc2005-ce/freetype.vcproj,
- builds/wince/vc2008-ce/freetype.vcproj: Add missing base extension
- files.
-
-2009-03-19 Werner Lemberg <[email protected]>
-
- Remove unused Win32 code.
-
- * builds/wince/ftdebug.c: Remove code guarded with `!_WIN32_WCE'.
- Since Win32 is handled separately this is no longer needed.
-
-2009-03-19 Vincent Richomme <[email protected]>
-
- Make `gzip' module compile on WinCE.
-
- * src/gzip/zconf.h [_WIN32_WCE]: Define NO_ERRNO_H.
-
-2009-03-19 Werner Lemberg <[email protected]>
-
- Remove unused WinCE code.
-
- * builds/win32/ftdebug.c: Remove code guarded with `_WIN32_WCE'.
- Since WinCE is handled separately this is no longer needed.
-
-2009-03-16 Werner Lemberg <[email protected]>
-
- docmaker: Don't ignore single-line code blocks.
-
- * src/tools/docmaker/content.py (DocBlock::_init__): Fix change from
- 2009-01-31.
-
-2009-03-15 Steve Langasek <[email protected]>
-
- Use __asm__ for declaring assembly instead of asm.
-
- * builds/unix/ftconfig.in (FT_MulFix_arm): Use __asm__ instead of
- asm on arm, fixing a build failure on armel with -pedantic.
-
-2009-03-14 Werner Lemberg <[email protected]>
-
- Fix valgrind warning.
-
- * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned): Don't read
- past the end of the frame.
-
-2009-03-12 Werner Lemberg <[email protected]>
-
- * Version 2.3.9 released.
- =========================
-
-
- Tag sources with `VER-2-3-9'.
-
-2009-03-12 Werner Lemberg <[email protected]>
-
- * builds/unix/freetype2.in: Move @FT2_EXTRA_LIBS@ to `Libs.private'.
-
-2009-03-12 Werner Lemberg <[email protected]>
-
- Fix some FreeType Coverity issues as reported for Ghostscript.
-
- * src/base/ftobjs.c (FT_New_Face, FT_New_Memory_Face): Initialize
- `args.stream' (#3874, #3875).
- (open_face_PS_from_sfnt_stream): Improve error management (#3786).
- * src/base/ftmm.c (ft_face_get_mm_service): Fix check of `aservice'
- (#3870).
- * src/base/ftstroke.c (ft_stroke_border_get_counts): Remove dead
- code (#3790).
- * src/base/ftrfork.c (raccess_guess_apple_generic): Check error
- value of `FT_Stream_Skip' (#3784).
-
- * src/type1/t1gload.c (T1_Load_Glyph): Check `size' before accessing
- it (#3872)
-
- * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Check `face' before accessing
- it (#3871).
- * src/pcf/pcfread.c (pcf_get_metrics): Handle return value of
- `pcf_get_metric' (#3789, #3782).
- (pcf_get_properties): Use FT_STREAM_SKIP (#3783).
-
- * src/cache/ftcmanag.c (FTC_Manager_RegisterCache): Fix check of
- `acache' (#3797)
-
- * src/cff/cffdrivr.c (cff_ps_get_font_info): Fix check of `cff'
- (#3796).
- * src/cff/cffgload.c (cff_decoder_prepare): Check `size' (#3795).
- * src/cff/cffload.c (cff_index_get_pointers): Add comment (#3794).
-
- * src/bdf/bdflib.c (_bdf_add_property): Check `fp->value.atom'
- (#3793).
- (_bdf_parse_start): Add comment (#3792).
-
- * src/raster/ftraster.c (Finalize_Profile_Table): Check
- `ras.fProfile' (#3791).
-
- * src/sfnt/ttsbit.c (Load_SBit_Image): Use FT_STREAM_SKIP (#3785).
-
- * src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Properly ignore
- seek error (#3781).
-
-2009-03-11 Michael Toftdal <[email protected]>
-
- Extend CID service functions to handle CID-keyed CFFs as CID fonts.
-
- * include/freetype/ftcid.h (FT_Get_CID_Is_Internally_CID_keyed,
- FT_Get_CID_From_Glyph_Index): New functions.
-
- * include/freetype/internal/services/svcid.h
- (FT_CID_GetIsInternallyCIDKeyedFunc,
- FT_CID_GetCIDFromGlyphIndexFunc): New function typedefs.
- (CID Service): Use them.
-
- * src/base/ftcid.c: Include FT_CID_H.
- (FT_Get_CID_Is_Internally_CID_keyed, FT_Get_CID_From_Glyph_Index):
- New functions.
-
- * src/cff/cffdrivr.c (cff_get_is_cid, cff_get_cid_from_glyph_index):
- New functions.
- (cff_service_cid_info): Add them.
- * src/cff/cffload.c (cff_font_load): Don't free `font->charset.sids'
- -- it is needed for access as a CID-keyed font. It gets deleted
- later on.
-
- * src/cid/cidriver.c (cid_get_is_cid, cid_get_cid_from_glyph_index):
- New functions.
- (cid_service_cid_info): Add them.
-
- * docs/CHANGES: Updated.
-
-2009-03-11 Bram Tassyns <[email protected]>
-
- Fix Savannah bug #25597.
-
- * src/cff/cffparse.c (cff_parse_real): Don't allow fraction_length
- to become larger than 9.
-
-2009-03-11 Werner Lemberg <[email protected]>
-
- Fix Savannah bug #25814.
-
- * builds/unix/freetype2.in: As suggested in the bug report, move
- @LIBZ@ to `Libs.private'.
-
-2009-03-11 Werner Lemberg <[email protected]>
-
- Fix Savannah bug #25781.
- We now simply check for a valid `offset', no longer handling `delta
- = 1' specially.
-
- * src/sfnt/ttcmap.c (tt_cmap4_validate): Don't check `delta' for
- last segment.
- (tt_cmap4_set_range, tt_cmap4_char_map_linear,
- tt_cmap4_char_map_binary): Check offset.
-
-2009-03-11 Werner Lemberg <[email protected]>
-
- * src/base/Jamfile: Fix handling of ftadvanc.c.
- Reported by Oran Agra <[email protected]>.
-
-2009-03-10 Vincent Richomme <[email protected]>
-
- Restructure Win32 and Wince compiler support.
-
- * src/builds/win32: Remove files for WinCE.
- Move VC 2005 support to a separate directory.
- Add directory for VC 2008 support.
-
- * src/builds/wince: New directory hierarchy for WinCE compilers
- (VC 2005 and VC 2008).
-
-2009-03-09 Werner Lemberg <[email protected]>
-
- More preparations for 2.3.9 release.
-
- * docs/CHANGES: Updated.
-
- * Jamfile, README: s/2.3.8/2.3.9/, s/238/239/.
-
-2009-03-09 Werner Lemberg <[email protected]>
-
- * src/sfnt/rules.mk (SFNT_DRV_H): Add ttsbit0.c.
-
-2009-03-09 Alexey Kryukov <[email protected]>
-
- Fix handling of EBDT formats 8 and 9 (part 2).
-
- This patch fixes the following problems in ttsbit0.c:
-
- . Bitmaps for compound glyphs were never allocated.
-
- . `SBitDecoder' refused to load metrics if some other metrics have
- already been loaded. This condition certainly makes no sense for
- recursive calls, so I've just disabled it. Another possibility
- would be resetting `decoder->metrics_loaded' to false before
- loading each composite component. However, we must restore the
- original metrics after finishing the recursion; otherwise we can
- get a misaligned glyph.
-
- . `tt_sbit_decoder_load_bit_aligned' incorrectly handled `x_pos',
- causing some glyph components to be shifted too far to the right
- (especially noticeable for small sizes).
-
- Note that support for grayscale bitmaps (not necessarily compound) is
- completely broken in ttsbit0.c.
-
- * src/sfnt/tt_sbit_decoder_load_metrics: Always load metrics.
- (tt_sbit_decoder_load_bit_aligned): Handle `x_pos' correctly in case
- of `h == height'.
- (tt_sbit_decoder_load_compound): Reset metrics after loading
- components.
- Allocate bitmap.
-
-2009-03-09 Werner Lemberg <[email protected]>
-
- * builds/unix/configure.raw (version_info): Set to 9:20:3.
-
-2009-03-03 David Turner <[email protected]>
-
- Protect SFNT kerning table parser against malformed tables.
-
- This closes Savannah BUG #25750.
-
- * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning): Fix a
- bug where a malformed table would be successfully loaded but later
- crash the engine during parsing.
-
-2009-03-03 David Turner <[email protected]>
-
- Update documentation and bump version number to 2.3.9.
-
- * include/freetype/freetype.h: Bump patch version to 9.
- * docs/CHANGES: Document the ABI break in 2.3.8.
- * docs/VERSION.DLL: Update version numbers table for 2.3.9.
-
-2009-03-03 David Turner <[email protected]>
-
- Remove ABI-breaking field in public PS_InfoFontRec definition.
-
- Instead, we define a new internal PS_FontExtraRec structure to
- hold the additional field, then place it in various internal
- positions of the corresponding FT_Face derived objects.
-
- * include/freetype/t1tables.h (PS_FontInfoRec): Remove the
- `fs_type' field from the public structure.
- * include/freetype/internal/psaux.h (T1_FieldLocation): New
- enumeration `T1_FIELD_LOCATION_FONT_EXTRA'.
- * include/freetype/internal/t1types.h (PS_FontExtraRec): New
- structure.
- (T1_FontRec, CID_FaceRec): Add it.
-
- * src/cid/cidload.c (cid_load_keyword): Handle
- T1_FIELD_LOCATION_FONT_EXTRA.
- * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c:
- Adjust FT_STRUCTURE and T1CODE properly to handle `FSType'.
- * src/type1/t1load.c (t1_load_keyword): Handle
- T1_FIELD_LOCATION_FONT_EXTRA.
-
- * include/freetype/internal/services/svpsinfo.h (PsInfo service):
- Add `PS_GetFontExtraFunc' function typedef.
-
- * src/base/ftfstype.c: Include FT_INTERNAL_SERVICE_H and
- FT_SERVICE_POSTSCRIPT_INFO_H.
- (FT_Get_FSType_Flags): Use POSTSCRIPT_INFO service.
-
- * src/cff/cffdrivr.c (cff_service_ps_info): Updated.
- * src/cid/cidriver.c (cid_ps_get_font_extra): New function.
- (cid_service_ps_info): Updated.
- * src/type1/t1driver.c (t1_ps_get_font_extra): New function.
- (t1_service_ps_info): Updated.
- * src/type42/t42drivr.c (t42_ps_get_font_extra): New function.
- (t42_service_ps_info): Updated.
-
-2009-03-02 Alexey Kryukov <[email protected]>
-
- Fix handling of EBDT formats 8 and 9.
-
- The main cycle in `blit_sbit' makes too many iterations: it actually
- needs the count of lines in the source bitmap rather than in the
- target image.
-
- * src/sfnt/ttsbit.c (blit_sbit) [FT_CONFIG_OPTION_OLD_INTERNALS]:
- Add parameter `source_height' and use it for main loop.
- (Load_SBit_Single) [FT_CONFIG_OPTION_OLD_INTERNALS]: Updated.
-
-2009-02-23 Werner Lemberg <[email protected]>
-
- Fix Savannah bug #25669.
-
- * src/base/ftadvanc.h (FT_Get_Advances): Fix serious typo.
-
- * src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics): Fix
- scaling factor for non-scalable fonts.
-
- * src/cff/cffdrivr.c (cff_get_advances): Use correct advance width
- value to prevent incorrect scaling.
-
- * docs/CHANGES: Document it.
-
-2009-02-15 Matt Godbolt <[email protected]>
-
- Fix Savannah bug #25588.
-
- * builds/unix/ftconfig.in (FT_MulFix_arm): Use correct syntax for
- `orr' instruction.
-
-2009-02-11 Werner Lemberg <[email protected]>
-
- * src/truetype/ttobjs.c (tt_check_trickyness): Add `DFKaiShu'.
- Reported by David Bevan <[email protected]>.
-
-2009-02-09 Werner Lemberg <[email protected]>
-
- Fix Savannah bug #25495.
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Test for bitmap strikes before
- setting metrics and bbox values. This ensures that the check for a
- font with neither a `glyf' table nor bitmap strikes can be performed
- early enough to set metrics and bbox values too.
-
-2009-02-04 Werner Lemberg <[email protected]>
-
- Fix Savannah bug #25480.
-
- * builds/unix/freetype-config.in: For --ftversion, don't use $prefix
- but $includedir.
-
-2009-01-31 Werner Lemberg <[email protected]>
-
- Minor docmaker improvements.
-
- * src/tools/docmaker/content.py (DocBlock::__init__): Ignore empty
- code blocks.
-
-2009-01-25 Werner Lemberg <[email protected]>
-
- Fix SCANCTRL handling in TTFs.
- Problem reported by Alexey Kryukov <[email protected]>.
-
- * src/truetype/ttinterp.c (Ins_SCANCTRL): Fix threshold handling.
-
-2009-01-23 Werner Lemberg <[email protected]>
-
- Move FT_Get_FSType_Flags to a separate file.
- Problem reported by Mickey Gabel <[email protected]>.
-
- * src/base/ftobjs.c (FT_Get_FSType_Flags): Move to...
- * src/base/ftfstype.c: This new file.
-
- * modules.cfg (BASE_EXTENSION): Add ftfstype.c.
-
- * docs/INSTALL.ANY: Updated.
-
- * builds/mac/*.txt, builds/amiga/*makefile*,
- builds/win32/{visualc,visualce}/freetype.*, builds/symbian/*:
- Updated.
-
-2009-01-22 suzuki toshiya <[email protected]>
-
- * builds/unix/ftsystem.c (FT_Stream_Open): Fix 2 error
- messages ending without "\n".
-
-2009-01-22 suzuki toshiya <[email protected]>
-
- Fix Savannah bug #25347.
-
- * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Rewind
- the stream to the original position passed to this function,
- when ft_lookup_PS_in_sfnt_stream() failed.
- (Mac_Read_sfnt_Resource): Rewind the stream to the head of
- sfnt resource body, when open_face_PS_from_sfnt_stream()
- failed.
-
-2009-01-19 Michael Lotz <[email protected]>
-
- Fix Savannah bug #25355.
-
- * include/freetype/config/ftconfig.h (FT_MulFix_i386): Make
- assembler code work with gcc 2.95.3 (as used by the Haiku project).
- Add `cc' register to the clobber list.
-
-2009-01-18 Werner Lemberg <[email protected]>
-
- Protect FT_Get_Next_Char.
-
- * src/sfnt/ttcmap.c (tt_cmap4_set_range): Apply fix similar to
- change from 2008-07-22.
-
- Patch from Ronen Ghoshal <[email protected]>.
-
-2009-01-18 Werner Lemberg <[email protected]>
-
- Implement FT_Get_Name_Index for SFNT driver.
-
- * src/sfnt/sfdriver.c (sfnt_get_name_index): New function.
- (sfnt_service_glyph_dict): Use it.
-
- Problem reported by Truc Truong <[email protected]>.
-
-2009-01-18 Werner Lemberg <[email protected]>
-
- * include/freetype/ftstroke.h (FT_Outline_GetInsideBorder): Fix
- documentation. Problem reported by Truc Truong <[email protected]>.
-
- * docs/CHANGES: Updated.
-
-2009-01-14 Werner Lemberg <[email protected]>
-
- * Version 2.3.8 released.
- =========================
-
-
- Tag sources with `VER-2-3-8'.
-
- * docs/VERSION.DLL: Update documentation and bump version number to
- 2.3.8.
-
- * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
- builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj,
- builds/win32/visualce/index.html,
- builds/win32/visualce/freetype.dsp,
- builds/win32/visualce/freetype.vcproj: s/2.3.7/2.3.8/, s/237/238/.
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
-
- * builds/unix/configure.raw (version_info): Set to 9:19:3.
-
- * docs/release: Updated.
-
-2009-01-14 Werner Lemberg <[email protected]>
-
- * builds/toplevel.mk (dist): Compress better.
-
-2009-01-13 Werner Lemberg <[email protected]>
-
- * src/base/ftobjs.c (FT_Get_FSType_Flags): Cast for compilation
- with C++.
-
-2009-01-13 Werner Lemberg <[email protected]>
-
- Don't use stdlib.h and friends directly.
- Reported by Mickey Gabel <[email protected]>.
-
- * src/base/ftdbgmem.c: s/<stdlib.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
-
- * src/gzip/ftgzip.c, src/lzw/ftlzw.c, src/raster/ftmisc.h:
- s/<string.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
-
- * src/autofit/aftypes.h, src/autofit/afhints.c,
- src/pshinter/pshalgo.c: s/<stdio.h>/FT_CONFIG_STANDARD_LIBRARY_H/
-
- * src/lzw/ftlzw.c, src/base/ftdbgmem.c: Don't include stdio.h.
-
-2009-01-12 Werner Lemberg <[email protected]>
-
- Avoid compiler warnings.
-
- * */*: s/do ; while ( 0 )/do { } while ( 0 )/.
- Reported by Sean McBride <[email protected]>.
-
-2009-01-12 Werner Lemberg <[email protected]>
-
- Fix stdlib dependencies.
-
- Problem reported by Mickey Gabel <[email protected]>.
-
- * include/freetype/config/ftstdlib.h (ft_exit): Removed. Unused.
-
- * src/autofit/afhints.c, src/base/ftlcdfil.c, src/smooth/ftsmooth.c:
- s/memcpy/ft_memcpy/.
- * src/psaux/t1decode.c: s/memset/ft_memset/, s/memcpy/ft_memcpy/.
-
-2009-01-11 Werner Lemberg <[email protected]>
-
- * docs/formats.txt: Add link to PCF specification.
-
- * include/freetype/ftbdf.h (FT_Get_BDF_Property): Improve
- documentation.
-
-2009-01-09 suzuki toshiya <[email protected]>
-
- * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance,
- FT_Get_Advances): Change the type of load_flags from FT_UInt32 to
- FT_Int32, to match with the flags for FT_Load_Glyph().
- * src/cff/cffdrivr.c (cff_get_advances): Ditto.
- * src/truetype/ttdriver.c (tt_get_advances): Ditto.
- * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances):
- Ditto.
- * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
- Ditto.
-
-2009-01-09 Daniel Zimmermann <[email protected]>
-
- * src/gxvalid/gxvmort.c (gxv_mort_feature_validate): Fix wrong
- length check. From Savannah patch #6682.
-
-2009-01-09 Werner Lemberg <[email protected]>
-
- Fix problem with T1_FIELD_{NUM,FIXED}_TABLE2.
-
- * src/psaux/psobjs.c (ps_parser_load_field_table): Don't handle
- `count_offset' if it is zero (i.e., unused). Otherwise, the first
- element of the structure which holds the data is erroneously
- modified. Problem reported by Chi Nguyen <[email protected]>.
-
-2009-01-09 suzuki toshiya <[email protected]>
-
- * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance,
- FT_Get_Advances): Extend the type of load_flags from FT_UInt to
- FT_UInt32, to pass 32-bit flags on 16bit platforms.
- * src/cff/cffdrivr.c (cff_get_advances): Ditto.
- * src/truetype/ttdriver.c (tt_get_advances): Ditto.
- * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances):
- Ditto.
- * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
- Ditto.
-
-2009-01-09 suzuki toshiya <[email protected]>
-
- * src/base/ftobjs.c (FT_Done_Library): Issue an error message when
- FT_Done_Face() cannot free all faces. If the list of the opened
- faces includes broken face which FT_Done_Face() cannot free,
- FT_Done_Library() retries FT_Done_Face() and it can fall into
- an endless loop. See the discussion:
- http://lists.gnu.org/archive/html/freetype-devel/2008-09/msg00047.html
- http://lists.gnu.org/archive/html/freetype-devel/2008-10/msg00000.html
-
-2009-01-07 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Document new key `a' in ftdiff.
-
-2009-01-06 Werner Lemberg <[email protected]>
-
- * autogen.sh: Don't use GNUisms while calling sed. Problem reported
- by Sean McBride.
-
-2009-01-06 Werner Lemberg <[email protected]>
-
- * src/base/ftbitmap.c (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_LCD
- and FT_PIXEL_MODE_LCD_V. Problem reported by Chi Nguyen
- <[email protected]>.
-
-2009-01-06 Diego Pettenò <[email protected]>
-
- * builds/unix/configure.raw: Don't call AC_CANONICAL_BUILD and
- AC_CANONICAL_TARGET and use $host_os only. A nice explanation for
- this change can be found at
- http://blog.flameeyes.eu/s/canonical-target.
-
- From Savannah patch #6712.
-
-2009-01-06 Sean McBride <[email protected]>
-
- * src/base/ftdbgmem.c (_debug_mem_dummy): Make it static.
-
- * src/base/ftmac.c: Remove some #undefs.
-
-2008-12-26 Werner Lemberg <[email protected]>
-
- Set `face_index' field in FT_Face for all font formats.
-
- * cff/cffobjs.c (cff_face_init), winfonts/winfnt.c (FNT_Face_Init),
- sfnt/sfobjs.c (sfnt_init_face): Do it.
-
- * docs/CHANGES: Document it.
-
-2008-12-22 Steve Grubb
-
- * builds/unix/ftsystem.c (FT_Stream_Open): Reject zero-length files.
- Patch from Savannah bug #25151.
-
-2008-12-21 Werner Lemberg <[email protected]>
-
- * src/pfr/pfrdrivr.c, src/winfonts/winfnt.c, src/cache/ftcmanag.c,
- src/smooth/ftgrays.c, src/base/ftobjc.s, src/sfobjs.c:
- s/_Err_Bad_Argument/_Err_Invalid_Argument/. The former is for
- errors in the bytecode interpreter only.
-
-2008-12-21 Werner Lemberg <[email protected]>
-
- * src/base/ftpfr.c (FT_Get_PFR_Metrics): Protect against NULL
- arguments.
- Fix return value for non-PFR fonts. Both problems reported by Chi
- Nguyen <[email protected]>.
-
-2008-12-21 anonymous
-
- FT_USE_MODULE declares things as:
-
- extern const FT_Module_Class
-
- (or similar for C++). However, the actual types of the variables
- being declared are often different, e.g., FT_Driver_ClassRec or
- FT_Renderer_Class. (Some are, indeed, FT_Module_Class.)
-
- This works with most C compilers (since those structs begin with an
- FT_Module_Class struct), but technically it's undefined behavior.
-
- To quote the ISO/IEC 9899:TC2 final committee draft, section 6.2.7
- paragraph 2:
-
- All declarations that refer to the same object or function shall
- have compatible type; otherwise, the behavior is undefined.
-
- (And they are not compatible types.)
-
- Most C compilers don't reject (or even detect!) code which has this
- issue, but the GCC LTO development branch compiler does. (It
- outputs the types of the objects while generating .o files, along
- with a bunch of other information, then compares them when doing the
- final link-time code generation pass.)
-
- Patch from Savannah bug #25133.
-
- * src/base/ftinit.c (FT_USE_MODULE): Include variable type.
-
- * builds/amiga/include/freetype/config/ftmodule.h,
- include/freetype/config/ftmodule.h, */module.mk: Updated to declare
- pass correct types to FT_USE_MODULE.
-
-2008-12-21 Hongbo Ni <[email protected]>
-
- * src/autofit/aflatin.c (af_latin_hint_edges),
- src/autofit/aflatin2.c (af_latin2_hint_edges), src/autofit/afcjk.c
- (af_cjk_hint_edges): Protect against division by zero. This fixes
- Savannah bug #25124.
-
-2008-12-18 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2008-12-18 Bevan, David <[email protected]>
-
- Provide API for accessing embedding and subsetting restriction
- information.
-
- * include/freetype.h (FT_FSTYPE_INSTALLABLE_EMBEDDING,
- FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING,
- FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING, FT_FSTYPE_EDITABLE_EMBEDDING,
- FT_FSTYPE_NO_SUBSETTING, FT_FSTYPE_BITMAP_EMBEDDING_ONLY): New
- macros.
- (FT_Get_FSType_Flags): New function declaration.
-
- * src/base/ftobjs.c (FT_Get_FSType_Flags): New function.
-
- * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c
- (t42_keywords): Handle `FSType'.
-
- * include/freetype/t1tables.h (PS_FontInfoRec): Add `fs_type' field.
-
-2008-12-17 Werner Lemberg <[email protected]>
-
- * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Don't use internal
- macros so that copying the source code into an application works
- out of the box.
-
-2008-12-17 Werner Lemberg <[email protected]>
-
- * include/freetype/ftsynth.h, src/base/ftsynth.c: Move
- FT_GlyphSlot_Own_Bitmap to...
- * include/freetype/ftbitmap.h, src/base/ftbitmap.c: These files.
-
- * docs/CHANGES: Document it.
-
-2008-12-10 Werner Lemberg <[email protected]>
-
- Generalize the concept of `tricky' fonts by introducing
- FT_FACE_FLAG_TRICKY to indicate that the font format's hinting
- engine is necessary for correct rendering.
-
- At the same time, slightly modify the behaviour of tricky fonts:
- FT_LOAD_NO_HINTING is now ignored. To really force raw loading
- of tricky fonts (without hinting), both FT_LOAD_NO_HINTING and
- FT_LOAD_NO_AUTOHINT must be used.
-
- Finally, tricky TrueType fonts always use the bytecode interpreter
- even if the patented code is used.
-
- * include/freetype/freetype.h (FT_FACE_FLAG_TRICKY, FT_IS_TRICKY):
- New macros.
-
- * src/truetype/ttdriver.c (Load_Glyph): Handle new load flags
- semantics as described above.
-
- * src/truetype/ttobjs.c (tt_check_trickyness): New function, using
- code of ...
- (tt_face_init): This function, now simplified and updated to new
- semantics.
-
- * src/base/ftobjs.c (FT_Load_Glyph): Don't use autohinter for tricky
- fonts.
-
- * docs/CHANGES: Document it.
-
-2008-12-09 Werner Lemberg <[email protected]>
-
- Really fix Savannah bug #25010: An SFNT font with neither outlines
- nor bitmaps can be considered as containing space `glyphs' only.
-
- * src/truetype/ttpload.c (tt_face_load_loca): Handle the case where
- a `glyf' table is missing.
-
- * src/truetype/ttgload.c (load_truetype_glyph): Abort if we have no
- `glyf' table but a non-zero `loca' entry.
- (tt_loader_init): Handle missing `glyf' table.
-
- * src/base/ftobjs.c (FT_Load_Glyph): Undo change 2008-12-05.
-
- * src/sfnt/sfobjs.c (sfnt_load_face): A font with neither outlines
- nor bitmaps is scalable.
-
-2008-12-05 Werner Lemberg <[email protected]>
-
- * src/autofit/aflatin.c (af_latin_uniranges): Add more ranges. This
- fixes Savannah bug #21190 which also provides a basic patch.
-
-2008-12-05 Werner Lemberg <[email protected]>
-
- * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): Use value
- 0x100 instead of 0x10000; the latter value is already occupied by
- FT_LOAD_TARGET_LIGHT. Bug reported by James Cloos.
-
-
- Handle SFNT with neither outlines nor bitmaps. This fixes Savannah
- bug #25010.
-
- * src/base/ftobjs.c (FT_Load_Glyph): Reject fonts with neither
- outlines nor bitmaps.
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Don't return an error if there
- is no table with glyphs.
-
-
- * src/sfnt/ttload.c (tt_face_lookup_table): Improve debugging
- message.
-
-2008-12-01 Werner Lemberg <[email protected]>
-
- GDEF tables need `glyph_count' too for validation. Problem reported
- by Chi Nguyen <[email protected]>.
-
- * src/otvalid/otvgdef.c (otv_GDEF_validate), src/otvalid/otvalid.h
- (otv_GDEF_validate), src/otvalid/otvmod.c (otv_validate): Pass
- `glyph_count'.
-
-2008-11-29 Werner Lemberg <[email protected]>
-
- * src/autofit/afcjk.c, src/base/ftoutln.c, src/base/ftrfork.c,
- src/bdf/bdfdrivr.c, src/gxvalid/gxvmorx.c, src/otvalid/otvmath.c,
- src/pcf/pcfdrivr.c, src/psnames/pstables.h, src/smooth/ftgrays.c,
- src/tools/glnames.py, src/truetype/ttinterp.c, src/type1/t1load.c,
- src/type42/t42objs.c, src/winfonts/winfnt.c: Fix compiler warnings
- (Atari PureC).
-
-2008-11-29 James Cloos <[email protected]>
-
- * src/type/t1load.c (mm_axis_unmap): Revert previous patch and fix
- it correctly by using FT_INT_TO_FIXED (FreeType expects 16.16 values
- in the /BlendDesignMap space).
-
-2008-11-29 James Cloos <[email protected]>
-
- * src/type1/t1load.c (mm_axis_unmap): `blend_points' is FT_Fixed*,
- whereas `design_points' is FT_Long*. Therefore, return blend rather
- than design points.
-
-2008-11-27 Werner Lemberg <[email protected]>
-
- * src/cff/cffparse.c (cff_parse_real): Handle more than nine
- significant digits correctly. This fixes Savannah bug #24953.
-
-2008-11-25 Daniel Zimmermann <[email protected]>
-
- * src/base/ftstream.c (FT_Stream_ReadFields): Don't access stream
- before the NULL check. From Savannah patch #6681.
-
-2008-11-24 Werner Lemberg <[email protected]>
-
- Fixes from the gnuwin32 port.
-
- * src/base/ftlcdfil.c: s/EXPORT/EXPORT_DEF/.
-
- * src/base/ftotval.c: Include FT_OPENTYPE_VALIDATE_H.
-
- * src/psaux/psobjs.c (ps_table_add): Check `length'.
-
-2008-11-15 Werner Lemberg <[email protected]>
-
- * src/truetype/ttinterp.c (tt_default_graphics_state): The default
- value for `scan_type' is zero, as confirmed by Greg Hitchcock from
- Microsoft. Problem reported by Michal Nowakowski
- <[email protected]>.
-
-2008-11-12 Tor Andersson <[email protected]>
-
- * src/cff/cffdrivr.c (cff_get_cmap_info): Initialize `format' field.
- This fixes Savannah bug #24819.
-
-2008-11-08 Werner Lemberg <[email protected]>
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Remove #if 0/#endif guards
- since OpenType version 1.5 has been released.
-
- * include/ttnameid.h (TT_NAME_ID_WWS_FAMILY,
- TT_NAME_ID_WWS_SUBFAMILY): New macros for OpenType 1.5.
- (TT_URC_COPTIC, TT_URC_VAI, TT_URC_NKO, TT_URC_BALINESE,
- TT_URC_PHAGSPA, TT_URC_NON_PLANE_0, TT_URC_PHOENICIAN,
- TT_URC_TAI_LE, TT_URC_NEW_TAI_LUE, TT_URC_BUGINESE,
- TT_URC_GLAGOLITIC, TT_URC_YIJING, TT_URC_SYLOTI_NAGRI,
- TT_URC_LINEAR_B, TT_URC_ANCIENT_GREEK_NUMBERS, TT_URC_UGARITIC,
- TT_URC_OLD_PERSIAN, TT_URC_SHAVIAN, TT_URC_OSMANYA,
- TT_URC_CYPRIOT_SYLLABARY, TT_URC_KHAROSHTHI, TT_URC_TAI_XUAN_JING,
- TT_URC_CUNEIFORM, TT_URC_COUNTING_ROD_NUMERALS, TT_URC_SUNDANESE,
- TT_URC_LEPCHA, TT_URC_OL_CHIKI, TT_URC_SAURASHTRA, TT_URC_KAYAH_LI,
- TT_URC_REJANG, TT_URC_CHAM, TT_URC_ANCIENT_SYMBOLS,
- TT_URC_PHAISTOS_DISC, TT_URC_OLD_ANATOLIAN, TT_URC_GAME_TILES): New
- macros for OpenType 1.5.
-
-2008-11-08 Wenlin Institute <[email protected]>
-
- * src/base/ftobjs.c (ft_glyphslot_free_bitmap): Protect against
- slot->internal == NULL. Reported by Graham Asher.
-
-2008-11-08 Werner Lemberg <[email protected]>
-
- * src/sfnt/sfobjs.c (tt_face_get_name): Modified to return an error
- code so that memory allocation problems can be distinguished from
- missing table entries. Reported by Graham Asher.
- (GET_NAME): New macro.
- (sfnt_load_face): Use it.
-
-2008-11-05 Werner Lemberg <[email protected]>
-
- * devel/ftoption.h, include/freetype/config/ftoption.h
- [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Undefine
- TT_CONFIG_OPTION_UNPATENTED_HINTING. This fixes the return value of
- `FT_Get_TrueType_Engine_Type' (and makes it work as documented).
- Reported in bug #441638 of bugzilla.novell.com.
-
- * docs/CHANGES: Document it.
-
-2008-11-03 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.c (parse_subrs): Use an endless loop. There are
- fonts (like HELVI.PFB version 003.001, used on OS/2) which define
- some `subrs' elements more than once. Problem reported by Peter
- Weilbacher <[email protected]>.
-
-2008-10-15 Graham Asher <[email protected]>
-
- * src/sfnt/ttpost.c (tt_post_default_names): Add `const'.
-
-2008-10-15 David Turner <[email protected]>
-
- * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Disambiguate for
- meddlesome compilers' warning against `for ( ...; ...; ...) ;'.
-
-2008-10-14 Werner Lemberg <[email protected]>
-
- * src/cff/cffobjs.c (cff_face_init): Remove compiler warning.
- Suggested by Bram Tassyns in Savannah patch #6651.
-
-2008-10-12 Graham Asher <[email protected]>
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Fix computation of
- `underline_position'.
-
-2008-10-12 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2008-10-09 suzuki toshiya <[email protected]>
-
- Fix Savannah bug #24468.
-
- According to include/freetype/internal/ftobjs.h, the appropriate
- type to interchange single character codepoint is FT_UInt32. It
- should be distinguished from FT_UInt which can be 16bit integer.
-
- * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Change the type
- of the second argument `pcharcode' from FT_UInt* to FT_UInt32*.
- (tt_cmap4_char_map_binary): Ditto.
- (tt_cmap14_get_nondef_chars): Change the type of return value
- from FT_UInt* to FT_UInt32*.
-
-2008-10-08 John Tytgat <[email protected]>
-
- Fix Savannah bug #24485.
-
- * src/type1/t1load.c (parse_charstrings): Assure that we always have
- a .notdef glyph.
-
-2008-10-05 suzuki toshiya <[email protected]>
-
- * src/base/ftmac.c: Include FT_TRUETYPE_TAGS_H for multi build.
- * builds/mac/ftmac.c: Ditto.
-
-2008-10-05 suzuki toshiya <[email protected]>
-
- * include/freetype/tttags.h (TTAG_TYP1, TTAG_typ1): Fix definitions.
- * src/base/ftobjs.c: Include FT_TRUETYPE_TAGS_H.
-
-2008-10-05 suzuki toshiya <[email protected]>
-
- * src/sfnt/sfobjs.c (sfnt_open_font): Allow `typ1' version tag in
- the beginning of sfnt container.
- * src/sfnt/ttload.c (check_table_dir): Return
- `SFNT_Err_Table_Missing' when sfnt table directory structure is
- correct but essential tables for TrueType fonts (`head', `bhed' or
- `SING') are missing. Other errors are returned by
- SFNT_Err_Unknown_File_Format.
-
- * src/base/ftobjs.c (FT_Open_Face): When TrueType driver returns
- `FT_Err_Table_Missing', try `open_face_PS_from_sfnt_stream'. It is
- enabled only when old mac font support is configured.
-
-2008-10-04 suzuki toshiya <[email protected]>
-
- * include/freetype/tttags.h (TTAG_CID, TTAG_FOND, TTAG_LWFN,
- TTAG_POST, TTAG_sfnt, TTAG_TYP1, TTAG_typ1): New tags to simplify
- the repeated calculations of these values in ftobjs.c and ftmac.c.
- * src/base/ftobjs.c: Replace all FT_MAKE_TAG by new tags.
- * src/base/ftmac.c: Ditto.
- * builds/mac/ftmac.c: Ditto.
-
-2008-10-04 suzuki toshiya <[email protected]>
-
- * src/base/ftobjs.c (ft_lookup_PS_in_sfnt_stream): Remove wrong
- initialization of *is_sfnt_cid.
-
-2008-10-04 Werner Lemberg <[email protected]>
-
- * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Remove compiler
- warnings.
-
-2008-10-04 suzuki toshiya <[email protected]>
-
- * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Replaced by...
- (ft_lookup_PS_in_sfnt_stream): This.
- (open_face_PS_from_sfnt_stream): New function. It checks whether
- the stream is sfnt-wrapped Type1 PS font or sfnt-wrapped CID-keyed
- font, then try to open a face for given face_index.
- (Mac_Read_sfnt_Resource): Replace the combination of
- `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' by
- `open_face_PS_from_sfnt_stream'.
- * src/base/ftmac.c (FT_New_Face_From_SFNT): Ditto.
- * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
- * src/base/ftbase.h: Remove `ft_lookup_PS_in_sfnt' and add
- `open_face_PS_from_sfnt_stream'.
-
-2008-10-03 suzuki toshiya <[email protected]>
-
- * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Set *is_sfnt_cid to
- FALSE if neither `CID ' nor `TYP1' is found in the sfnt container.
-
-2008-10-03 suzuki toshiya <[email protected]>
-
- * include/freetype/config/ftconfig.h: Define FT_MACINTOSH when SC or
- MrC compiler of MPW is used. These compilers do not define the
- macro __APPLE__ by themselves.
- * builds/unix/ftconfig.in: Ditto.
- * builds/vms/ftconfig.h: Ditto.
- * src/base/ftbase.c: Use FT_MACINTOSH instead of __APPLE__, to
- include ftmac.c if FreeType 2 is built by MPW.
- * src/base/ftobjs.c: Use FT_MACINTOSH instead of __APPLE__, to
- enable shared functions for ftmac.c if FreeType 2 is built by MPW.
-
- * builds/mac/ftmac.c: Include ftbase.h.
- (memory_stream_close): Removed.
- (new_memory_stream): Ditto.
- (open_face_from_buffer): Removed. Use the implementation in
- ftobjs.c.
- (ft_lookup_PS_in_sfnt): Ditto.
-
- * builds/mac/FreeType.m68k_far.make.txt: Build ftmac.c as an
- included part of ftbase.c, to share the functions in ftobjs.c. The
- rule compiling ftmac.c separately is removed and the rule copying
- ftbase.c from src/base/ftbase.c to builds/mac/ftbase.c is added.
- * builds/mac/FreeType.m68k_cfm.make.txt: Ditto.
- * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
- * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
-
-2008-10-02 Bram Tassyns <[email protected]>
-
- * src/cff/cffgload.c (cff_slot_load): Map CID 0 to GID 0. This
- fixes Savannah bug #24430.
-
-2008-10-02 Werner Lemberg <[email protected]>
-
- * builds/freetype.mk (BASE_H): Rename to...
- (INTERNAL_H): This.
- (FREETYPE_H): Updated.
- * src/base/rules.mk: (BASE_OBJ_S, OBJ_DIR/%.$O): Add BASE_H.
- * src/bdf/rules.mk (BDF_DRV_H): Add bdferror.h.
- * src/cache/rules.mk (CACHE_DRV_H): Add ftccache.h and ftcsbits.h.
- * src/pcf/rules.mk (PCF_DRV_H): Add pcfread.h.
- * src/raster/rules.mk (RASTER_DRV_H): Add ftmisc.h.
- * src/type42/rules.mk (T42_DRV_H): Add t42types.h.
-
-2008-10-02 suzuki toshiya <[email protected]>
-
- * src/base/ftbase.h: New file to declare the private utility
- functions shared by the sources of base modules. Currently,
- `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' are declared to
- share between ftobjs.c and ftmac.c.
-
- * src/base/rule.mk: Add ftbase.h.
-
- * src/base/ftobjs.c: Include ftbase.h.
- (memory_stream_close): Build on any platform when old MacOS font
- support is enabled.
- (new_memory_stream): Ditto.
- (open_face_from_buffer): Build on any platform when old MacOS font
- support is enabled. The counting of the face in a font file is
- slightly different between Carbon-dependent parser and Carbon-free
- parser. They are merged with the platform-specific conditional.
- (ft_lookup_PS_in_sfnt): Ditto.
-
- * src/base/ftmac.c: Include ftbase.h.
- (memory_stream_close): Removed.
- (new_memory_stream): Ditto.
- (open_face_from_buffer): Removed. Use the implementation in
- ftobjs.c.
- (ft_lookup_PS_in_sfnt): Ditto.
-
-2008-10-02 Werner Lemberg <[email protected]>
-
- * src/sfnt/sfobjs.c (sfnt_load_face): `psnames_error' is only needed
- if TT_CONFIG_OPTION_POSTSCRIPT_NAMES is defined.
-
-2008-10-01 Werner Lemberg <[email protected]>
-
- * src/truetype/ttobjs.c (tt_face_done), src/cff/cffobjs.c
- (cff_face_done), src/pfr/pfrobjs.c (pfr_face_done),
- src/pcf/pcfdrivr.c (PCF_Face_Done), src/cid/cidobjs.c
- (cid_face_done), src/bdf/bdfdrivr. (BDF_Face_Done),
- src/sfnt/sfobjs.c (sfnt_face_done): Protect against face == 0.
- Reported by Graham Asher.
-
-2008-09-30 suzuki toshiya <[email protected]>
-
- * src/base/rules.mk: Add conditional source to BASE_SRC, for `make
- multi' on Mac OS X. If the macro $(ftmac_c) is defined,
- $(BASE_DIR)/$(ftmac_c) is added to BASE_SRC. In a normal build, the
- lack of ftmac.c in BASE_SRC is not serious because ftbase.c includes
- ftmac.c.
- * builds/unix/unix-def.in: Add a macro definition of $(ftmac_c).
- * builds/unix/configure.raw: Add procedure to set up appropriate
- value of $(ftmac_c) with the consideration of the availability of
- Carbon framework.
-
-2008-09-30 suzuki toshiya <[email protected]>
-
- * src/base/Jamfile: Add target for multi build by jam on Mac OS X.
- * src/base/ftobjs.c (FT_New_Face): Fix the condition to include this
- function for MPW building. It is synchronized the condition to
- include ftmac.c source into ftbase.c.
-
-2008-09-22 Werner Lemberg <[email protected]>
-
- * src/cff/cffgload.c (CFF_Operator, cff_argument_counts,
- cff_decoder_parse_charstrings): Handle (invalid)
- `callothersubr' and `pop' instructions.
-
-2008-09-22 John Tytgat <[email protected]>
-
- Fix Savannah bug #24307.
-
- * include/freetype/internal/t1types.h (CID_FaceRec),
- src/type42/t42types.h (T42_FaceRec): Comment out `afm_data'.
-
-2008-09-21 Werner Lemberg <[email protected]>
-
- * src/smooth/ftgrays.c (gray_raster_render): Don't dereference
- `target_map' if FT_RASTER_FLAG_DIRECT is set. Problem reported by
- Stephan T. Lavavej <[email protected]>.
-
-2008-09-21 suzuki toshiya <[email protected]>
-
- * src/otvalid/Jamfile: Add missing target `otvmath' for multi build
- by jam.
- * src/sfnt/Jamfile: Add missing target `ttmtx' for multi build by
- jam.
-
-2008-09-20 Werner Lemberg <[email protected]>
-
- * src/smooth/ftgrays.c (gray_find_cell): Fix threshold. The values
- passed to this function are already `normalized'. Problem reported
- by Stephan T. Lavavej <[email protected]>.
-
- * docs/CHANGES: Document it.
-
-2008-09-20 Werner Lemberg <[email protected]>
-
- * src/base/ftoutln.c: Include FT_INTERNAL_DEBUG_H.
- (FT_Outline_Decompose): Decorate with tracing messages.
-
- * src/smooth/ftgrays.c [DEBUG_GRAYS]: Replace with
- FT_DEBUG_LEVEL_TRACE.
- [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: Include stdio.h and
- stdarg.h.
-
- (FT_TRACE) [_STANDALONE_]: Remove.
- (FT_Message) [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: New function.
- (FT_TRACE5, FT_TRACE7) [_STANDALONE_]: New macros.
- (FT_ERROR) [_STANDALONE_]: Updated.
-
- (gray_hline) [FT_DEBUG_LEVEL_TRACE]: Fix condition.
- Use FT_TRACE7.
- (gray_dump_cells): Make it `static void'.
- (gray_convert_glyph): Use FT_TRACE7.
-
- (FT_Outline_Decompose) [_STANDALONE_]: Synchronize with version in
- ftoutln.c.
-
- * src/base/ftadvanc.c (FT_Get_Advance, FT_Get_Advances): Use
- FT_ERROR_BASE.
-
- * docs/formats.txt: Updated.
-
-2008-09-19 suzuki toshiya <[email protected]>
-
- * src/base/ftmac.c: Import sfnt-wrapped Type1 and sfnt-wrapped
- CID-keyed font support.
- * builds/mac/ftmac.c: Ditto.
-
-2008-09-19 suzuki toshiya <[email protected]>
-
- * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Fix double free bug in
- sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font support code.
- `open_face_from_buffer' frees the passed buffer if it cannot open a
- face from the buffer, so the caller must not free it.
-
-2008-09-19 suzuki toshiya <[email protected]>
-
- * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add initial support
- for sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font.
- (ft_lookup_PS_in_sfnt): New function to look up `TYP1' or `CID '
- table in sfnt table directory. It is used before loading TrueType
- font driver.
-
- * docs/CHANGES: Add note about the current status of sfnt-wrapped
- Type1 and sfnt-wrapped CID-keyed font support.
-
-2008-09-18 Werner Lemberg <[email protected]>
-
- * src/base/ftsystem.c (FT_Done_Memory): Use ft_sfree directly for
- orthogonality (ft_free and ft_sfree could belong to different memory
- pools). This fixes Savannah bug #24297.
-
-2008-09-18 suzuki toshiya <[email protected]>
-
- * src/cff/cffobjs.c (cff_face_init): Use TTAG_OTTO defined
- in ttags.h instead of numerical value 0x4F54544FL.
-
-2008-09-16 Werner Lemberg <[email protected]>
-
- * src/cff/cffgload.h, src/cff/cffgload.c
- (cff_decoder_set_width_only): Eliminate function call.
-
-2008-09-15 George Williams <[email protected]>
-
- Fix Savannah bug #24179, reported by Bram Tassyns.
-
- * src/type1/t1load.c (mm_axis_unmap, T1_Get_MM_Var): Fix computation
- of default values.
-
-2008-09-15 Werner Lemberg <[email protected]>
-
- * src/tools/glnames.py (main): Surround `ft_get_adobe_glyph_index'
- and `ft_adobe_glyph_list' with FT_CONFIG_OPTION_ADOBE_GLYPH_LIST to
- prevent unconditional definition. This fixes Savannah bug #24241.
-
- * src/psnames/pstables.h: Regenerated.
-
-2008-09-13 Werner Lemberg <[email protected]>
-
- * autogen.sh, builds/unix/configure.raw,
- include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: Minor
- beautifying.
-
- * include/freetype/ftadvanc.h, include/freetype/ftgasp.h,
- include/freetype/ftlcdfil.h: Protect against FreeType 1.
- Some other minor fixes.
-
- * devel/ftoption.h: Synchronize with
- include/freetype/config/ftoption.h.
-
-2008-09-11 Werner Lemberg <[email protected]>
-
- * src/base/ftbase.c: Include ftadvanc.c.
-
-2008-09-11 suzuki toshiya <[email protected]>
-
- * builds/unix/ftconfig.in: Duplicate the cpp computation of
- FT_SIZEOF_{INT|LONG} from include/freetype/config/ftconfig.h.
- (FT_USE_AUTOCONF_SIZEOF_TYPES): New macro. If defined, the cpp
- computation is disabled and the statically configured sizes are
- used. This fixes Savannah bug #21250.
-
- * builds/unix/configure.raw: Add the checks to compare the cpp
- computation results of the bit length of int and long versus the
- sizes detected by running `configure'. If the results are
- different, FT_USE_AUTOCONF_SIZEOF_TYPES is defined to prioritize the
- results.
- New option --{enable|disable}-biarch-config is added to define or
- undefine FT_USE_AUTOCONF_SIZEOF_TYPES manually.
-
-2008-09-05 suzuki toshiya <[email protected]>
-
- * builds/unix/configure.raw: Clear FT2_EXTRA_LIBS when Carbon or
- ApplicationService framework is missing. Although this value is not
- used in building of FreeType2, it is written in `freetype2.pc' and
- `freetype-config'.
-
-2008-09-01 david turner <[email protected]>
-
- * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Accept a negative cmap
- index to mean `use default cached FT_Face's charmap'. This fixes
- Savannah bug #22625.
- * include/freetype/ftcache.h: Document it.
-
-
- Make FT_MulFix an inlined function. This is done to speed up
- FreeType a little (on x86 3% when loading+hinting, 10% when
- rendering, ARM savings are more important though). Disable this by
- undefining FT_CONFIG_OPTION_INLINE_MULFIX.
-
- Use of assembler code can now be controlled with
- FT_CONFIG_OPTION_NO_ASSEMBLER.
-
- * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in
- [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_arm): New assembler
- implementation.
- [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_i386): Assembler
- implementation taken from `ftcalc.c'.
- [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MULFIX_ASSEMBLER): New macro
- which is defined to the platform-specific assembler implementation
- of FT_MulFix.
- [FT_CONFIG_OPTION_INLINE_MULFIX && FT_MULFIX_ASSEMBLER]
- (FT_MULFIX_INLINED): New macro.
-
- * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_NO_ASSEMBLER,
- FT_CONFIG_OPTION_INLINE_MULFIX): New macros.
-
- * include/freetype/freetype.h: Updated to handle FT_MULFIX_INLINED.
-
- * src/base/ftcalc.c: Updated to use FT_MULFIX_ASSEMBLER and
- FT_MULFIX_INLINED.
-
-
- Add a new header named FT_ADVANCES_H declaring some new APIs to
- extract the advances of one or more glyphs without necessarily
- loading their outlines. Also provide `fast loaders' for the
- TrueType, Type1, and CFF font drivers (more to come later).
-
- * src/base/ftadvanc.c, include/freetype/ftadvanc.h: New files.
-
- * include/freetype/config/ftheader.h (FT_ADVANCES_H): New macro.
- * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): New macro.
-
- * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
- `flags' and `advances' are now of type `FT_UInt' and `FT_Fixed',
- respectively.
-
- * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC): Add
- ftadvanc.c.
-
- * src/cff/cffdrivr.c (cff_get_advances): New function.
- (cff_driver_class): Register it.
-
- * src/cff/cffgload.c (cff_decoder_set_width_only): New function.
- (cff_decoder_parse_charstrings): Handle `width_only'.
- (cff_slot_load): Handle FT_LOAD_ADVANCE_ONLY.
-
- * src/cff/cffgload.h (cff_decoder): New element `width_only'.
- (cff_decoder_set_width_only): New declaration.
-
- * src/truetype/ttdriver.c (tt_get_advances): New function.
- (tt_driver_class): Register it.
-
- * src/truetype/ttgload.c (Get_HMetrics, Get_VMetrics): Renamed to...
- (TT_Get_HMetrics, TT_Get_VMetrics): This.
- Update callers.
- * src/truetype/ttgload.h: Declare them.
-
- * src/type1/t1gload.h, src/type1/t1gload.c (T1_Get_Advances): New
- function.
- * src/type1/t1driver.c (t1_driver_class): Register T1_Get_Advances.
-
-
- Add checks for minimum version of the `autotools' stuff.
-
- * autogen.sh: Implement it.
- (get_major_version, get_minor_version, get_patch_version,
- compare_to_minimum_version, check_tool_version): New auxiliary
- functions.
-
- * README.CVS: Document it.
-
-2008-08-29 suzuki toshiya <[email protected]>
-
- * src/sfnt/sfobjs.c (sfnt_open_font): Use TTAG_OTTO defined in
- ttags.h instead of FT_MAKE_TAG( 'O', 'T', 'T', 'O' ).
-
-2008-08-28 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.c (parse_encoding): Protect against infinite
- loop. This fixes Savannah bug #24150 (where a patch has been posted
- too).
-
-2008-08-23 Werner Lemberg <[email protected]>
-
- * src/type/t1afm.c (compare_kern_pairs), src/pxaux/afmparse.c
- (afm_compare_kern_pairs): Fix comparison. This fixes Savannah bug
- #24119.
-
-2008-08-19 suzuki toshiya <[email protected]>
-
- * src/base/ftobjs.c (FT_Stream_New): Initialize *astream always,
- even if passed library or arguments are invalid. This fixes a bug
- that an uninitialized stream is freed when an invalid library handle
- is passed. Originally proposed by Mike Fabian, 2008/08/18 on
- freetype-devel.
- (FT_Open_Face): Ditto (stream).
- (load_face_in_embedded_rfork): Ditto (stream2).
-
-2008-08-18 suzuki toshiya <[email protected]>
-
- * src/base/ftmac.c: Add a fallback to guess the availability of the
- `ResourceIndex' type. It is used when built without configure
- (e.g., a build with Jam).
- * builds/mac/ftmac.c: Ditto.
- * builds/unix/configure.raw: Set HAVE_TYPE_RESOURCE_INDEX to 1 or 0
- explicitly, even if `ResourceIndex' is unavailable.
-
-2008-08-18 suzuki toshiya <[email protected]>
-
- * builds/unix/configure.raw: In checking of Mac OS X features,
- all-in-one header file `Carbon.h' is replaced by the minimum
- header file `CoreServices.h', similar to current src/base/ftmac.c.
-
-2008-08-18 suzuki toshiya <[email protected]>
-
- * src/sfnt/ttcmap.c (tt_cmap2_validate): Skip the validation of
- sub-header when its code_count is 0. Many Japanese Dynalab fonts
- include such an empty sub-header (code_count == 0, first_code == 0
- delta == 0, but offset != 0) as the second sub-header in SJIS cmap.
-
-2008-08-04 Werner Lemberg <[email protected]>
-
- * src/type1/t1tokens.h: Handle `ForceBold' keyword. This fixes
- Savannah bug #23995.
-
- * src/cid/cidload.c (parse_expansion_factor): New callback function.
- (cid_field_records): Use it for `ExpansionFactor'.
- * src/cod/cidtoken.h: Handle `ForceBold' keyword.
- Don't handle `ExpansionFactor'.
-
-2008-08-04 Bram Tassyns <[email protected]>
-
- * src/cff/cffparse.c (cff_parse_fixed_scaled): Fix thinko which
- resulted in incorrect scaling. This fixes Savannah bug #23973.
-
-2008-08-04 Werner Lemberg <[email protected]>
-
- Be more tolerant w.r.t. invalid entries in SFNT table directory.
-
- * src/sfnt/ttload.c (check_table_dir): Ignore invalid entries and
- adjust table count.
- Add more trace messages.
- (tt_face_load_font_dir): Updated.
-
-2008-07-30 Werner Lemberg <[email protected]>
-
- * src/cff/cffgload.c (cff_decoder_parse_charstrings): No longer
- assume that the first argument on the stack is the bottom-most
- element. Two reasons:
-
- o According to people from Adobe it is missing in the Type 2
- specification that pushing of additional, superfluous arguments
- on the stack is prohibited.
-
- o Acroread in general handles fonts differently, namely by popping
- the number of arguments needed for a particular operand (as a PS
- interpreter would do). In case of buggy fonts this causes a
- different interpretation which of the elements on the stack are
- superfluous and which not.
-
- Since there are CFF subfonts (embedded in PDFs) which rely on
- Acroread's behaviour, FreeType now does the same.
-
-2008-07-27 Werner Lemberg <[email protected]>
-
- Add extra mappings for `Tcommaaccent' and `tcommaaccent'. This
- fixes Savannah bug #23940.
-
- * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): Rename to...
- (EXTRA_GLYPH_LIST_SIZE): This.
- Increase by 2.
- (ft_wgl_extra_unicodes): Rename to...
- (ft_extra_glyph_unicodes): This.
- Add two code values.
- (ft_wgl_extra_glyph_names): Rename to...
- (ft_extra_glyph_names): This.
- Add two glyphs.
- (ft_wgl_extra_glyph_name_offsets): Rename to...
- (ft_extra_glyph_name_offsets): This.
- Add two offsets.
-
- (ps_check_wgl_name, ps_check_wgl_unicode): Rename to...
- (ps_check_extra_glyph_name, ps_check_extra_glyph_unicode): This.
- Updated.
- (ps_unicodes_init): Updated.
-
-2008-07-26 Werner Lemberg <[email protected]>
-
- * src/cff/cffgload.c (cff_decoder_prepare,
- cff_decoder_parse_charstrings): Improve debug output.
-
-2008-07-22 Martin McBride <[email protected]>
-
- * src/sfnt/ttcmap.c (tt_cmap4_validate, tt_cmap4_char_map_linear,
- tt_cmap4_char_map_binary): Handle fonts which treat the last segment
- specially. According to the specification, such fonts would be
- invalid but acroread accepts them.
-
-2008-07-16 Jon Foster <[email protected]>
-
- * src/pfr/pfrdrivr.c (pfr_get_advance): Fix off-by-one error.
-
- * src/base/ftcalc.c (FT_MulFix): Fix portability issue.
-
- * src/sfnt/ttpost.c (MAC_NAME) [!FT_CONFIG_OPTION_POSTSCRIPT_NAMES]:
- Fix compiler warning.
-
-2008-07-16 Werner Lemberg <[email protected]>
-
- Handle CID-keyed fonts wrapped in an SFNT (with cmaps) correctly.
-
- * src/cff/cffload.c (cff_font_load): Pass `pure_cff'.
- Invert sids table only if `pure_cff' is set.
- * src/cff/cffload.h: Udpated.
-
- * src/cff/cffobjs.c (cff_face_init): Updated.
- Set FT_FACE_FLAG_CID_KEYED only if pure_cff is set.
-
- * docs/CHANGES: Updated.
-
-2008-07-09 Werner Lemberg <[email protected]>
-
- * src/truetype/ttpload.c (tt_face_load_loca): Handle buggy fonts
- where num_locations < num_glyphs. Problem reported by Ding Li.
-
-2008-07-05 Werner Lemberg <[email protected]>
-
- Since FreeType uses `$(value ...)', we now need GNU make 3.80 or
- newer. This fixes Savannah bug #23648.
-
- * configure: zsh doesn't like ${1+"$@"}.
- Update needed GNU make version.
- * builds/toplevel.mk: Check for `$(eval ...)'.
- * docs/INSTALL.GNU, docs/INSTALL.CROSS, docs/INSTALL.UNIX: Document
- it.
-
-2008-07-04 Werner Lemberg <[email protected]>
-
- * src/raster/ftraster.c (Draw_Sweep): If span is smaller than one
- pixel, only check for dropouts if neither start nor end point lies
- on a pixel center. This fixes Savannah bug #23762.
-
-2008-06-29 Werner Lemberg <[email protected]>
-
- * Version 2.3.7 released.
- =========================
-
-
- Tag sources with `VER-2-3-7'.
-
- * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
- version number to 2.3.7.
-
- * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
- builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj,
- builds/win32/visualce/index.html,
- builds/win32/visualce/freetype.dsp,
- builds/win32/visualce/freetype.vcproj: s/2.3.6/2.3.7/, s/236/237/.
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
-
- * builds/unix/configure.raw (version_info): Set to 9:18:3.
-
- * docs/release: Updated.
-
-2008-06-28 Werner Lemberg <[email protected]>
-
- * src/ftglyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to...
- * src/ftcalc.c: Here. This fixes Savannah bug #23729.
-
-2008-06-27 Werner Lemberg <[email protected]>
-
- * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
- Horizontal_Gray_Sweep_Drop): Test for intersections which
- degenerate to a single point can be ignored; this has been confirmed
- by Greg Hitchcock from Microsoft. (This was commented out code.)
-
-2008-06-26 Werner Lemberg <[email protected]>
-
- Improve navigation in API reference.
-
- * src/tools/docmaker/tohtml.py (html_header_3): Renamed to...
- (html_header_6): This.
- (html_header_3, html_header_3i, html_header_4, html_header_5,
- html_header_5t): New strings.
- (toc_footer_start, toc_footer_end): New strings.
- (HtmlFormatter::html_header): Updated.
- (HtmlFormatter::html_index_header, HtmlFormatter::html_toc_header):
- New strings.
- (HtmlFormatter::index_enter): Use `html_index_header'.
- (HtmlFormatter::index_exit): Print `html_footer'.
- (HtmlFormatter::toc_enter): Use `html_toc_header'.
- (HtmlFormatter::toc_exit): Print proper footer.
-
- Convert ~ to non-breakable space.
-
- * src/tools/docmaker/tohtml.py (make_html_para): Implement it.
- Update header files accordingly.
-
-2008-06-24 suzuki toshiya <[email protected]>
-
- * builds/unix/configure.raw: Check type `ResourceIndex' explicitly
- and define HAVE_TYPE_RESOURCE_INDEX if it is defined. Mac OS X 10.5
- bundles 10.4u SDK with MAC_OS_X_VERSION_10_5 macro but without
- ResourceIndex type definition. The macro does not inform the type
- availability.
- * src/base/ftmac.c: More parentheses are inserted to clarify the
- conditionals to disable legacy APIs in `10.5 and later' cases. If
- HAVE_TYPE_RESOURCE_INDEX is not defined, ResourceIndex is defined.
-
-2008-06-24 Werner Lemberg <[email protected]>
-
- * src/truetype/ttinterp.c (Ins_SCANTYPE): Don't check rendering
- mode.
-
- * src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph,
- Draw_Sweep): No-dropout mode is value 2, not value 0.
- (Draw_Sweep): Really skip dropout handling for no-dropout mode.
-
-2008-06-24 Werner Lemberg <[email protected]>
-
- * src/psaux/psobjs.c (t1_builder_close_contour): Don't add contour
- if it consists of one point only. Based on a patch from Savannah
- bug #23683 (from John Tytgat).
-
-2008-06-22 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff
- with IS_HINTED.
-
- * docs/CHANGES: Updated.
-
-2008-06-22 suzuki toshiya <[email protected]>
-
- * builds/unix/configure.raw: If CFLAGS has `-isysroot XXX' option
- but LDFLAGS does not, import it to LDFLAGS. The option is used to
- specify non-default SDK on Mac OS X (e.g., universal binary SDK for
- Mac OS X 10.4 on PowerPC platform). Although Apple TechNote 2137
- recommends to add the option only to CFLAGS, LDFLAGS should include
- it because libfreetype.la is built with -no-undefined. This fixes a
- bug reported by Ryan Schmidt in MacPorts,
- http://trac.macports.org/ticket/15331.
-
-2008-06-21 Werner Lemberg <[email protected]>
-
- Enable access to the various dropout rules of the B&W rasterizer.
- Pass dropout rules from the TT bytecode interpreter to the
- rasterizer.
-
- * include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS,
- FT_OUTLINE_EXCLUDE_STUBS): New flags for for FT_Outline.
-
- * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
- Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the
- OpenType specification.
- Fix mode 4 computation.
- (Render_Glyph, Render_Gray_Glyph): Handle new outline flags.
-
- * src/truetype/ttgload.c (TT_Load_Glyph) Convert scan conversion
- mode to FT_OUTLINE_XXX flags.
-
- * src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check.
-
-2008-06-19 Werner Lemberg <[email protected]>
-
- * src/cff/cffobjs.c (cff_face_init): Compute final
- `dict->units_per_em' value before assigning it to
- `cffface->units_per_EM'. Otherwise, CFFs without subfonts are
- scaled incorrectly if the font matrix is non-standard. This fixes
- Savannah bug #23630.
-
- * docs/CHANGES: Updated.
-
-2008-06-19 Werner Lemberg <[email protected]>
-
- * src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm fix
- from 2008-06-19.
-
-2008-06-18 Werner Lemberg <[email protected]>
-
- * src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21.
- Reported by Peter Weilbacher <[email protected]>.
-
- * docs/CHANGES: Updated.
-
-2008-06-15 George Williams <[email protected]>
-
- * src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set
- `valid->extra2' to 1. This is undocumented in the OpenType 1.5
- specification.
-
-2008-06-15 Werner Lemberg <[email protected]>
-
- * src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly
- from clobbering. Patch from Savannah bug report #23556.
-
- * docs/CHANGES: Document it.
-
-2008-06-10 Werner Lemberg <[email protected]>
-
- * autogen.sh: Add option `--install' to libtoolize.
-
-2008-06-10 Werner Lemberg <[email protected]>
-
- * Version 2.3.6 released.
- =========================
-
-
- Tag sources with `VER-2-3-6'.
-
- * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
- version number to 2.3.6.
-
- * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
- builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj,
- builds/win32/visualce/index.html,
- builds/win32/visualce/freetype.dsp,
- builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/.
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
-
- * builds/unix/configure.raw (version_info): Set to 9:17:3.
-
-
- * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x'
- and `scale_y'.
- * src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'.
-
-
- * src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H.
- * src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
-
-2008-06-10 Werner Lemberg <[email protected]>
-
- * src/base/ftobjs.c (open_face): Check `clazz->init_face' and
- `clazz->done_face'.
-
-2008-06-09 VaDiM <[email protected]>
-
- Support debugging on WinCE. From Savannah patch #6536; this fixes
- bug #23497.
-
- * builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro
- as a replacement for OutputDebugStringA (which WinCE doesn't have).
- Update all callers.
- (ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have
- environment variables.
-
-2008-06-09 Werner Lemberg <[email protected]>
-
- * README.CVS: Updated.
-
- * builds/unix/configure.raw, builds/unix/freetype-config.in: Updated
- for newer versions of autoconf and friends.
-
-2008-06-08 Werner Lemberg <[email protected]>
-
- * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and
- `private_len' unsigned.
-
- * src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read
- it as such.
- (T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned.
-
-
- * src/base/ftstream.c (FT_Stream_Skip): Reject negative values.
-
-
- * src/type1/t1load.c (parse_blend_design_positions): Check `n_axis'
- for sane value.
- Fix typo.
-
-
- * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly.
-
-
- * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check
- `last_point'.
-
-
- * src/sfnt/ttload.c (tt_face_load_max_profile): Limit
- `maxTwilightPoints'.
-
-2008-06-06 Werner Lemberg <[email protected]>
-
- * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0'
- correctly. This fixes glyphs `t' and `h' of Arial Narrow at 12ppem.
-
-2008-06-03 Werner Lemberg <[email protected]>
-
- * include/freetype/ftcache.h (FTC_FaceID): Change type back to
- FT_Pointer. Reported by Ian Britten <[email protected]>.
-
-2008-06-02 Werner Lemberg <[email protected]>
-
- Emit header info for defined FreeType objects in reference.
-
- * src/tools/docmaker/content.py (re_header_macro): New regexp.
- (ContentProcessor::__init__): Initialize new dictionary `headers'.
- (DocBlock::__init__): Collect macro header definitions.
-
- * src/tools/docmaker/tohtml.py (header_location_header,
- header_location_footer): New strings.
- (HtmlFormatter::__init__): Pass `headers' dictionary.
- (HtmlFormatter::print_html_field): Don't emit paragraph tags.
- (HtmlFormatter::print_html_field_list): Emit empty paragraph.
- (HtmlFormatter::block_enter): Emit header info.
-
-2008-06-01 Werner Lemberg <[email protected]>
-
- * include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H,
- FT_INCREMENTAL_H): Added.
-
-2008-05-28 Werner Lemberg <[email protected]>
-
- * src/tools/docmaker/sources.py (SourceBlock::__init__): While
- looking for markup tags, return immediately as soon a single one is
- found.
-
-2008-05-28 Werner Lemberg <[email protected]>
-
- * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses
- original, unscaled input values. Confirmed by Greg Hitchcock from
- Microsoft.
-
-2008-05-27 Werner Lemberg <[email protected]>
-
- * src/tools/docmaker/tohtml.py (block_footer_start,
- block_footer_middle): Beautify output.
-
-2008-05-25 Werner Lemberg <[email protected]>
-
- * src/raster/ftraster.c (fc_black_render): Return 0 when we are
- trying to render into a zero-width/height bitmap, not an error code.
-
- * src/truetype/ttgload.c (load_truetype_glyph): Move initialization
- of the graphics state for subglyphs to...
- (TT_Hint_Glyph): This function.
- Hinting instructions for a composite glyph apparently refer to the
- just hinted subglyphs, not the unhinted, unscaled outline. This
- seems to fix Savannah bugs #20973 and (at least partially) #23310.
-
-2008-05-20 suzuki toshiya <[email protected]>
-
- * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid
- `aface' is returned by FT_New_Face_From_FOND(). The patch was
- proposed by an anonymous reporter of Savannah bug #23204.
-
-2008-05-18 Werner Lemberg <[email protected]>
-
- * src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after
- correction for pixel boundary. Without this patch, the effect can
- be cumulative under certain circumstances, making glyphs taller and
- taller after each call. This fixes Savannah bug #19976.
-
-2008-05-18 Werner Lemberg <[email protected]>
-
- * src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr.
- This fixes Savannah bug #23280.
-
- * docs/CHANGES: Updated.
-
-2008-05-18 David Turner <[email protected]>
-
- * src/psnames/psmodule.c (ft_wgl_extra_unicodes,
- ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets,
- ps_check_wgl_name, ps_check_wgl_unicode): Use `static' to make
- declarations non-global.
-
- * src/type1/t1load.c: Add missing comment.
-
-2008-05-17 Sam Hocevar <samh>
-
- * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour
- glyphs correctly. Patch from Savannah bug #23277.
-
-2008-05-16 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2008-05-16 Sergey Tolstov <[email protected]>
-
- Improve support for WGL4 encoded fonts.
-
- * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): New macro.
- (ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names,
- ft_wgl_extra_glyph_name_offsets): New arrays.
- (ps_check_wgl_name, ps_check_wgl_unicode): New functions.
- (ps_unicodes_init): Use them to add additional Unicode mappings.
-
-2008-05-15 Werner Lemberg <[email protected]>
-
- * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
- <op_closepath>: `closepath' without a path is a no-op, not an error
- (cf. the PS reference manual).
-
- Reported by Martin McBride.
-
-2008-05-15 Werner Lemberg <[email protected]>
-
- * builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated.
-
-2008-05-15 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array
- which contains a single but empty entry. This is technically
- invalid (since it must end with `return'), but...
-
- Reported by Martin McBride.
-
-2008-05-14 Werner Lemberg <[email protected]>
-
- Finish fix of scaling bug of CID-keyed CFF subfonts.
-
- * include/freetype/internal/ftcalc.h, src/base/ftcalc.c
- (FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New
- functions.
-
- * src/cff/cffobjs.h (CFF_Internal): New struct. It is used to
- provide global hinting data for both the top-font and all subfonts
- (with proper scaling).
-
- * src/cff/cffobjs.c (cff_make_private_dict): New function, using
- code from `cff_size_init'.
- (cff_size_init, cff_size_done, cff_size_select, cff_size_request):
- Use CFF_Internal and handle subfonts.
- (cff_face_init): Handle top-dict and subfont matrices correctly;
- apply some heuristic in case of unlikely matrix concatenation
- results. This has been discussed with people from Adobe (thanks
- goes mainly to David Lemon) who confirm that the CFF specs are fuzzy
- and not correct.
-
- * src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument.
-
- * src/cff/cffgload.c (cff_builder_init): Updated.
- (cff_decoder_prepare): Handle hints globals for subfonts.
- Update all callers.
- (cff_slot_load): Handling scaling of subfonts properly.
-
- * src/cff/cffparse.c (cff_parse_fixed_dynamic): New function.
- (cff_parse_font_matrix): Use it.
-
- * src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em'
- FT_ULong.
-
- * docs/CHANGES: Document it.
-
-2008-05-13 Werner Lemberg <[email protected]>
-
- * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
- Handle case `face_index < 0'.
- * docs/CHANGES: Document it.
-
-2008-05-04 Werner Lemberg <[email protected]>
-
- First steps to fix the scaling bug of CID-keyed CFF subfonts,
- reported by Ding Li on 2008/03/28 on freetype-devel.
-
- * src/base/cff/cffparse.c (power_tens): New array.
- (cff_parse_real): Rewritten to introduce a fourth parameter which
- returns the `scaling' of the real number so that we have no
- precision loss. This is not used yet.
- Update all callers.
- (cff_parse_fixed_thousand): Replace with...
- (cff_parse_fixed_scaled): This function. Update all callers.
-
-2008-05-03 Werner Lemberg <[email protected]>
-
- * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without
- transformation since it recursively calls FT_Load_Glyph. This fixes
- Savannah bug #23143.
-
-2008-04-26 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x'
- and `scale_y' as obsolete since they aren't used.
- * src/psaux/psobjs.c (t1_builder_init): Updated.
-
- * src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as
- obsolete since they aren't used.
- * src/cff/cffgload.c (cff_builder_init): Updated.
-
-2008-04-14 Werner Lemberg <[email protected]>
-
- * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to
- `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'. From Savannah
- bug #22909.
-
-2008-04-13 Werner Lemberg <[email protected]>
-
- * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if
- integer part is zero.
-
-2008-04-01 Werner Lemberg <[email protected]>
-
- Fix compilation with g++ 4.1 (with both `single' and `multi'
- targets).
-
- * src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block
- which is crossed by a `goto'.
-
- * src/otvalid/otvalid.h (otv_MATH_validate): Add prototype.
-
-2008-03-31 Werner Lemberg <[email protected]>
-
- Fix support for subsetted CID-keyed CFFs.
-
- * include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED,
- FT_IS_CID_KEYED): New macros.
-
- * src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the
- maximum CID value in CID-keyed CFFs.
- Handle FT_FACE_FLAG_CID_KEYED flag.
-
- * docs/CHANGES: Document it.
-
-
- Fix CFF font matrix calculation and improve precision.
-
- * src/cff/cffparse.c (cff_parse_real): Increase precision if integer
- part is zero.
- (cff_parse_font_matrix): Simplify computation of `units_per_em';
- this prevents overflow also.
-
-
- Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts.
-
- * src/cid/cidriver.c: Include FT_SERVICE_CID_H.
- (cid_get_ros): New function.
- (cid_service_cid_info): New service structure.
- (cid_services): Register it.
-
-2008-03-23 Werner Lemberg <[email protected]>
-
- Adjustments for Visual C++ 8.0, as reported by Rainer Deyke.
-
- * builds/compiler/visualc.mk (CFLAGS): Remove /W5.
- (ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE.
-
-2008-03-21 Laurence Darby <ldarby>
-
- * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'. Patch from
- Savannah bug #22675.
-
-2008-03-13 Derek Clegg <[email protected]>
-
- * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop.
- Patch from Savannah bug #22541.
-
-2008-03-03 Masatoshi Kimura <[email protected]>
-
- * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
- tt_cmap14_find_variant): Return correct value.
- (tt_cmap14_variant_chars): Fix check for `di'.
-
-2008-02-29 Wermer Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2008-02-29 Wolf
-
- Add build support for symbian platform. From Savannah bug #22440.
-
- * builds/symbian/*: New files.
-
-2008-02-21 suzuki toshiya <[email protected]>
-
- * src/base/ftmac.c (parse_fond): Fix a bug of PostScript font name
- synthesis. For any face of a specified FOND, always the name for
- the first face was used. Except of a FOND that refers multiple
- Type1 font files, wrong synthesized font names are not used at all,
- so this is an invisible bug. A few limit checks are added too.
-
- * builds/mac/ftmac.c: Ditto.
-
-2008-02-21 suzuki toshiya <[email protected]>
-
- * builds/unix/configure.raw: Split compiler option to link Carbon
- frameworks to one option for CoreServices framework and another
- option for ApplicationServices framework. The split options can be
- managed by GNU libtool to avoid unrequired duplication when FreeType
- is linked with other applications. Suggested by Daniel Macks,
- Savannah bug #22366.
-
-2008-02-18 Victor Stinner <[email protected]>
-
- * src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix
- from Savannah bug #22356.
-
-2008-02-17 Jonathan Blow <[email protected]>
-
- * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
- Check for valid callback pointers.
-
-2008-02-15 suzuki toshiya <[email protected]>
-
- * src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource
- handle by its value instead of ResError(), fix provided by Deron
- Kazmaier. According to the Resource Manager Reference,
- GetResource(), Get1Resource(), GetNamedResource(),
- Get1NamedResource() and RGetResource() set noErr but return NULL
- handle when they can not find the requested resource. These
- functions never return undefined values, so it is sufficient to
- check if the handle is not NULL.
-
- * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
-
-2008-02-14 suzuki toshiya <[email protected]>
-
- * src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" as other
- inclusion styles. Now it always includes src/base/ftmac.c;
- builds/mac/ftmac.c is never included in any configuration.
-
- * builds/unix/configure.raw: Print warning if configure is executed
- with options to specify Carbon functionalities explicitly.
-
- * docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not
- included automatically and manual replacement is required.
-
-2008-02-11 Werner Lemberg <[email protected]>
-
- * builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk
- (dos_setup), builds/freetype.mk (clean_project_dos,
- distclean_project_dos): Don't use \ but $(SEP). Reported by Duncan
- Murdoch.
-
-2008-01-18 Sylvain Pasche <[email protected]>
-
- * src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to
- mention intra-pixel algorithm.
-
- * include/freetype/freetype.h (FT_Render_Mode): Mention that
- FT_Library_SetLcdFilter can be used to reduce fringes.
-
-2008-01-16 Werner Lemberg <[email protected]>
-
- * src/raster/ftraster.c (ft_black_render): Check `outline' before
- using it. Reported by Allan Yang.
-
-2008-01-12 Werner Lemberg <[email protected]>
-
- * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove.
-
-2008-01-12 Allan Yang, Jian Hua - SH <[email protected]>
-
- * src/raster/ftraster.c (ft_black_init)
- [FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation.
-
-2008-01-10 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c (load_truetype_glyph): Handle the case
- where the number of contours in a simple glyph is zero (and which
- does contain an entry in the `glyf' table). This fixes Savannah bug
- #21990.
-
-2008-01-04 suzuki toshiya <[email protected]>
-
- Formatting suggested by Sean McBride.
-
- * builds/mac/ftmac.c: Formatting (tab expanded).
- * src/autofit/afindic.c: Ditto.
- * src/base/ftcid.c: Ditto.
- * src/base/ftmac.c: Ditto.
-
-2007-12-30 Werner Lemberg <[email protected]>
-
- * src/smooth/ftgrays.c (gray_raster_render): Check `outline'
- correctly.
-
-2007-12-21 suzuki toshiya <[email protected]>
-
- Improvement of POSIX resource-fork accessor to load unsorted
- references in a resource. In HelveLTMM (resource-fork PostScript
- Type1 font bundled with Mac OS X since 10.3.x), the appearance order
- of PFB chunks is not sorted; sorting the chunks by reference IDs is
- required.
-
- * include/freetype/internal/ftrfork.h (FT_RFork_Ref): New structure
- type to store a pair of reference ID and offset to the chunk.
-
- * src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to
- sort FT_RFork_Ref by their reference IDs.
-
- (FT_Raccess_Get_DataOffsets): Returns an array of offsets that is
- sorted by reference ID.
-
-2007-12-14 Werner Lemberg <[email protected]>
-
- * src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten'
- division too early; otherwise the most significant digit(s) of the
- final result are lost as the value is truncated to an integer. This
- fixes Savannah bug #21794 (where the patch has been posted too).
-
-2007-12-06 Fix <[email protected]>
-
- Pass options from one configure script to another as-is (not
- expanded). This is needed for options like
- --includedir='${prefix}/include'.
-
- * builds/unix/detect.mk, configure: Prevent argument expansion in
- call to the (real) `configure' script.
-
-2007-12-06 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
- TT_USE_BYTECODE_INTERPRETER isn't defined.
-
-2007-12-06 Werner Lemberg <[email protected]>
-
- There exist CFFs which contain opcodes for the Type 1 operators
- `hsbw' and `closepath' which are both invalid in Type 2 charstrings.
- However, it doesn't harm to support them.
-
- * src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and
- `cff_op_closepath.'
- (cff_argument_counts): Ditto.
-
- (cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath)
- and 13 (hsbw) which are invalid in Type 2 charstrings.
-
-2007-12-06 suzuki toshiya <[email protected]>
-
- * src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to
- support new pathname syntax `..namedfork/rsrc' to access a resource
- fork on Mac OS X. The legacy syntax `/rsrc' does not work on
- case-sensitive HFS+.
- (raccess_guess_darwin_hfsplus): Fix a bug in the calculation of
- buffer size to store a pathname.
- * include/freetype/internal/ftrfork.h: Increment the number of
- resource fork guessing rule.
-
-2007-12-06 suzuki toshiya <[email protected]>
-
- * builds/unix/configure.raw: Improve the compile tests to search
- Carbon functions.
- * builds/mac/ftmac.c: Import fixes for Carbon incompatibilities
- proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16).
-
-2007-12-06 suzuki toshiya <[email protected]>
-
- The documents and comments for Mac OS X are improved by Sean
- McBride.
-
- * src/base/ftmac.c: Fix a comment.
- * include/freetype/ftmac.h: Ditto.
- * docs/INSTALL.MAC: Improve English and add comment on lowest
- system version specified by MACOSX_DEPLOYMENT_TARGET.
-
-2007-12-04 Werner Lemberg <[email protected]>
-
- * src/cff/cffload.c (cff_subfont_load): Don't use logical OR to
- concatenate error codes.
- * src/sfnt/ttsbit.c (Load_SBit_Range): Ditto.
-
-2007-12-04 Graham Asher <[email protected]>
-
- * src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to
- concatenate error codes.
-
-2007-12-04 Sean McBride <[email protected]>
-
- * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler
- warning.
-
-2007-11-20 suzuki toshiya <[email protected]>
-
- Fix MacOS legacy font support by Masatake Yamato on Mac OS X. It is
- not working since 2.3.5. In FT_Open_New(), if FT_New_Stream()
- cannot mmap() the specified file and cannot seek to head of the
- specified file, it returns NULL stream and FT_Open_New() returns the
- error immediately. On MacOS, most legacy MacOS fonts fall into such
- a scenario because their data forks are zero-sized and cannot be
- sought. To proceed to guessing of resource fork fonts, the
- functions for legacy MacOS font must properly handle the NULL stream
- returned by FT_New_Stream().
-
- * src/base/ftobjs.c (IsMacBinary): Return error
- FT_Err_Invalid_Stream_Operation immediately when NULL stream is
- passed.
- (FT_Open_Face): Even when FT_New_Stream() returns an error, proceed
- to fallback. Originally, legacy MacOS font is tested in the cases
- of FT_Err_Invalid_Stream_Operation (occurs when data fork is empty)
- or FT_Err_Unknown_File_Format (occurs when AppleSingle header or
- .dfont header is combined). Now the case of
- FT_Err_Cannot_Open_Stream is included.
-
- * src/base/ftrfork.c (FT_Raccess_Guess): When passed stream is NULL,
- skip FT_Stream_Seek(), which seeks to the head of stream, and
- proceed to unit testing of raccess_guess_XXX(). FT_Stream_Seek()
- for a NULL stream causes a Bus error on Mac OS X.
- (raccess_guess_apple_double): Return FT_Err_Cannot_Open_Stream
- immediately if passed stream is NULL.
- (raccess_guess_apple_single): Ditto.
-
-2007-11-16 suzuki toshiya <[email protected]>
-
- Fix for Carbon incompatibilities since Mac OS X 10.5,
- proposed by Sean McBride.
-
- * doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET.
-
- * include/freetype/ftmac.h: Deprecate FT_New_Face_From_FOND and
- FT_GetFilePath_From_Mac_ATS_Name. Since Mac OS X 10.5, calling
- Carbon functions from a forked process is classified as unsafe
- by Apple. All Carbon-dependent functions should be deprecated.
-
- * src/base/ftmac.c: Use essential header files
- <CoreServices/CoreServices.h> and
- <ApplicationServices/ApplicationServices.h> instead of
- all-in-one header file <Carbon/Carbon.h>.
-
- Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple
- genuine macro PATH_MAX.
-
- Add fallback macro for kATSOptionFlagsUnRestrictedScope which
- is not found in Mac OS X 10.0.
-
- Multi-character constants ('POST', 'sfnt' etc) are replaced by
- 64bit constants calculated by FT_MAKE_TAG() macro.
-
- For the index in the segment of resource fork, new portable
- type ResourceIndex is introduced for better compatibility.
- This type is since Mac OS X 10.5, so it is defined as short
- when built on older platforms.
-
- (FT_ATSFontGetFileReference): If build target is only the systems
- 10.5 and newer, it calls Apple genuine ATSFontGetFileReference().
-
- (FT_GetFile_From_Mac_ATS_Name): Return an error if system is 10.5
- and newer or 64bit platform, because legacy type FSSpec type is
- removed completely.
-
- (FT_New_Face_From_FSSpec): Ditto.
-
-2007-11-01 Werner Lemberg <[email protected]>
-
- * src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere. This
- fixes Savannah bug #21485.
-
-2007-10-29 Daniel Svoboda <dasvo@planeta@cz>
-
- * src/winfonts/winfnt.c (FNT_Face_Init): Check first that the driver
- can handle the font at all, then check `face_index'. Otherwise, the
- driver might return the wrong error code. This fixes Savannah bug
- #21468.
-
-2007-10-21 Werner Lemberg <[email protected]>
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare
- support for bit 8 of the `fsSelection' field in the `OS/2' table.
- MS is already using this; hopefully, this becomes part of OpenType
- 1.5.
- Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22
- (WWS_SUBFAMILY).
-
-2007-10-20 Werner Lemberg <[email protected]>
-
- * src/tools/docmaker/tohtml.py (html_header_2): Fix typo.
- Add `td.left' element to CSS.
- (toc_section_enter): Use it.
-
-2007-10-18 David Turner <[email protected]>
-
- * include/freetype/freetype.h, src/base/ftobjs.c: Rename API
- functions related to cmap type 14 support to the
- `FT_Object_ActionName' scheme:
-
- FT_Get_Char_Variant_index -> FT_Face_GetCharVariantIndex
- FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault
- FT_Get_Variant_Selectors -> FT_Face_GetVariantSelectors
- FT_Get_Variants_Of_Char -> FT_Face_GetVariantsOfChar
- FT_Get_Chars_Of_Variant -> FT_Face_GetCharsOfVariant
-
- Update documentation accordingly.
-
- * src/sfnt/ttcmap.c: Stronger cmap 14 validation.
- Make the code a little more consistent with FreeType coding
- conventions and modify the cmap14 functions that returned a newly
- allocated array to use a persistent vector from the TT_CMap14 object
- instead.
-
- (TT_CMap14Rec): Provide array and auxiliary data for result.
- (tt_cmap14_done, tt_cmap14_ensure): New functions.
-
- (tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_map_def_binary,
- tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant,
- tt_cmap14_char_var_index, tt_cmap14_variants,
- tt_cmap14_char_variants, tt_cmap14_def_char_count,
- tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
- tt_cmap14_variant_chars, tt_cmap14_class_rec): Updated and improved.
-
-2007-10-15 George Williams <[email protected]>
-
- Add support for cmap type 14.
-
- * devel/ftoption.h, include/freetype/config/ftoption.h
- (TT_CONFIG_CMAP_FORMAT_14): New macro.
-
- * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIndexFunc,
- FT_CMap_CharVarIsDefaultFunc, FT_CMap_VariantListFunc,
- FT_CMap_CharVariantListFunc, FT_CMap_VariantCharListFunc): New
- support function prototypes.
- (FT_CMap_ClassRec): Add them.
- Update all users.
-
- * include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New
- macro.
-
- * include/freetype/freetype.h (FT_Get_Char_Variant_Index,
- FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors,
- FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API
- functions.
-
- * src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary
- function.
- (FT_Set_Charmap): Disallow cmaps of type 14.
- (FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault,
- FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char,
- FT_Get_Chars_Of_Variant): New API functions.
-
- * src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros.
-
- (TT_CMap14Rec, tt_cmap14_init, tt_cmap14_validate,
- tt_cmap14_char_index, tt_cmap14_char_next, tt_cmap14_get_info,
- tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary,
- tt_cmap14_find_variant, tt_cmap14_char_var_index,
- tt_cmap14_char_var_isdefault, tt_cmap14_variants,
- tt_cmap14_char_variants, tt_cmap14_def_char_count,
- tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
- tt_cmap14_variant_chars, tt_cmap14_class_rec): New functions and
- structures for cmap 14 support.
- (tt_cmap_classes): Register tt_cmap14_class_rec.
- (tt_face_build_cmaps): One more error message.
-
- * docs/CHANGES: Mention cmap 14 support.
-
-2007-10-01 Werner Lemberg <[email protected]>
-
- * src/base/ftobjs.c (find_unicode_charmap): If search for a UCS-4
- charmap fails, do the loop again while searching a UCS-2 charmap.
- This favours MS charmaps over Apple ones.
-
-2007-08-29 suzuki toshiya <[email protected]>
-
- * src/base/ftmac.c: Introduction of abstract `short' data types,
- ResFileRefNum and ResID. These types were introduced for Copland,
- then backported to MPW. The variables exchanged with FileManager
- QuickDraw frameworks are redefined by these data types. Patch was
- proposed by Sean McBride.
- * builds/mac/ftmac.c: Ditto.
-
-2007-08-18 Werner Lemberg <[email protected]>
-
- * src/otvalid/otvcmmn.c (otv_x_y_ux_sy): Skip context glyphs. Found
- by Imran Yousaf. Fixes Savannah bug #20773.
-
- (otv_Lookup_validate): Correct handling of LookupType. Found by
- Imran Yousaf. Fixes Savannah bug #20782.
-
-2007-08-17 George Williams <[email protected]>
-
- * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of
- SingleSubstFormat1.
-
-2007-08-11 suzuki toshiya <[email protected]>
-
- * builds/unix/configure.raw: Fix a bug which sets CC_BUILD by
- ${build-gcc} (unchecked) instead of by ${build}-gcc (checked).
- Found by Ryan Hill.
-
-2007-08-11 George Williams <[email protected]>
-
- * src/otvalid/otvcommn.c, src/otvalid/otvcommn.h
- (otv_Coverage_validate): Add fourth argument to pass an expected
- count value. Update all users.
- Check glyph IDs.
- (otv_ClassDef_validate): Check `StartGlyph'.
-
- * src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID
- checks.
-
- * src/otvalid/otvmath.c (otv_MathConstants_validate): There are only
- 56 constants.
- (otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate):
- Check glyph IDs.
-
-2007-08-08 Werner Lemberg <[email protected]>
-
- * src/otvalid/otvbase.c, src/otvalid/otvcommn.c,
- src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, src/otvalid/otvgsub.c,
- src/otvalid/otvjstf.c: s/FT_INVALID_DATA/FT_INVALID_FORMAT/ where
- appropriate. Reported by George.
-
- * include/freetype/internal/fttrace.h: Define `trace_otvmath'.
-
- * src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c.
-
- * docs/CHANGES: Updated.
-
-2007-08-08 George Williams <[email protected]>
-
- Add `MATH' validating support to otvalid module.
-
- * include/freetype/tttags.h (TTAG_MATH): New macro.
- * include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro.
- (FT_VALIDATE_OT): Updated.
-
- * src/otvalid/otmath.c: New file.
-
- * src/otvalid/otvalid.c: Include otvmath.c.
- * src/otvalid/otvmod.c (otv_validate): Handle `MATH' table.
-
-2007-08-04 Werner Lemberg <[email protected]>
-
- * builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL.
- Fixes Savannah bug #20686.
-
-2007-08-03 Werner Lemberg <[email protected]>
-
- * src/psnames/psmodule.c: Fix usage of
- FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro. Reported by Graham Asher.
-
-2007-07-31 suzuki toshiya <[email protected]>
-
- * src/base/ftmac.c (open_face_from_buffer): The argument
- `driver_name' is typed as `const char*' to match with the
- callers in FT_New_Face_From_LWFN and FT_New_Face_From_SFNT.
- This is same with open_face_from_buffer in src/base/ftobjs.c.
- Found and fixed by Sean McBride.
-
-2007-07-28 Werner Lemberg <[email protected]>
-
- * src/raster/ftraster.c (count_table): Make it conditional.
- * src/base/ftobjs.c (FT_New_Library): Check FT_RENDER_POOL_SIZE with
- a preprocessor statement.
-
-2007-07-27 Werner Lemberg <[email protected]>
-
- * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before
- first usage. From Savannah patch #6115.
-
-2007-07-16 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2007-07-16 Derek Clegg <[email protected]>
-
- Add new service for getting the ROS from a CID font.
-
- * include/freetype/config/ftheader.h (FT_CID_H): New macro.
- * include/freetype/ftcid.h: New file.
-
- * include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro.
- * include/freetype/internal/services/svcid.h: New file.
-
- * src/base/ftcid.c: New file.
-
- * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H.
- (cff_get_ros): New function.
- (cff_service_cid_info): New service structure.
- (cff_services): Register it.
-
- * src/cff/cffload.c (cff_font_done): Free registry and ordering.
-
- * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'.
-
- * modules.cfg (BASE_EXTENSIONS): Add ftcid.c.
-
-2007-07-11 Derek Clegg <[email protected]>
-
- Add support for postscript name service to CFF driver.
-
- * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H.
- (cff_get_ps_name): New function.
- (cff_service_ps_name): New service structure.
- (cff_services): Register it.
-
-2007-07-07 Werner Lemberg <[email protected]>
-
- * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
- `target'. Reported by Sean McBride.
-
-2007-07-06 Werner Lemberg <[email protected]>
-
- * src/pfr/pfrcmap.c: Include pfrerror.h.
-
- * src/autofit/afindic.c: Add some external declarations to pacify
- `make multi' compilation.
-
- * src/cid/cidgload.c (cid_load_glyph): Pacify compiler.
-
- * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c
- (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP),
- src/autofit/aflatin.c (af_latin_hints_compute_edges),
- src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c
- (tt_face_get_metrics), src/base/ftobjs.c (open_face)
- [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler.
-
- * docs/release: Mention test compilation targets.
-
-2007-07-04 Werner Lemberg <[email protected]>
-
- * docs/PROBLEMS: Mention that some PS based fonts can't be
- handled correctly by FreeType.
-
- * src/truetype/ttgload.c (load_truetype_glyph): Always allow a
- recursion depth of 1. This was the maximum value in TrueType 1.0,
- and some older fonts don't set this field correctly.
-
- * src/gxvalid/gxvmort1.c
- (gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
-
-2007-07-03 Werner Lemberg <[email protected]>
-
- * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
- `round' to pacify compiler.
-
-2007-07-02 Werner Lemberg <[email protected]>
-
-
- * Version 2.3.5 released.
- =========================
-
-
- Tag sources with `VER-2-3-5'.
-
- * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
- version number to 2.3.5.
-
- * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
- builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj,
- builds/win32/visualce/index.html,
- builds/win32/visualce/freetype.dsp,
- builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
-
- * builds/unix/configure.raw (version_info): Set to 9:16:3.
-
-2007-07-01 David Turner <[email protected]>
-
- * include/freetype/freetype.h, src/base/ftpatent.c
- (FT_Face_SetUnpatentedHinting): New function to dynamically change
- the setting after a face is created.
-
- * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
- that created distortions in the bytecode interpreter results.
-
-2007-06-30 David Turner <[email protected]>
-
- * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
- initialization.
-
- * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
- infinite loop in the case of degenerate fonts.
-
-2007-06-26 Rahul Bhalerao <[email protected]>
-
- Add autofit module for Indic scripts. This currently just reuses
- the CJK-specific functions.
-
- * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
- macro.
- * devel/ftoption.h: Synchronize with
- include/freetype/config/ftoption.h.
-
- * src/autofit/afindic.c, src/autofit/afindic.h: New files.
-
- * src/autofit/afglobal.c, src/autofit/aftypes.h,
- src/autofit/autofit.c: Updated.
-
- * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
- (AUTOF_DRV_SRC): Updated.
-
-2007-06-23 David Turner <[email protected]>
-
- * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
- 2007-06-16 that prevented the TrueType module from loading most
- glyphs.
-
-2007-06-20 Werner Lemberg <[email protected]>
-
- * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
- change.
-
-2007-06-19 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.c (parse_encoding): Handle one more error.
-
-2007-06-19 Dmitry Timoshkov <[email protected]>
-
- * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
- FNT_Err_Invalid_File_Format if file format was recognized but
- the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
- Add verbose debug logs to make it easier to debug failing load
- attempts.
- (FNT_Face_Init): A single FNT font can't contain more than 1 face,
- so return an error if requested face index is > 0.
- Do not do further attempt to load fonts if a previous attempt has
- failed but returned error FNT_Err_Invalid_File_Format, i.e., the
- file format has been recognized but no fonts found in the file.
-
-2007-07-19 suzuki toshiya <[email protected]>
-
- * src/base/ftmac.c: Apply patches proposed by Sean McBride.
- (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
- the compiler warnings against unused arguments.
- (FT_ATSFontGetFileReference): Ditto.
- (FT_GetFile_From_Mac_ATS_Name): Ditto.
- (FT_New_Face_From_FSSpec): Ditto.
- (lookup_lwfn_by_fond): Fix wrong comment.
- Replace `const StringPtr' by more appropriate type
- `ConstStr255Param'.
- FSRefMakePathPath always returns UTF8 POSIX pathname in
- Mach-O, thus HFS pathname support is dropped.
- (count_faces): Remove HLock and HUnlock which is not
- required on Mac OS X anymore.
- (FT_New_Face_From_SFNT): Ditto.
- (FT_New_Face_From_FOND): Ditto.
- * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
- except of HFS pathname support and HLock/HUnlock.
- They are required on classic CFM environment.
-
-2007-06-18 Werner Lemberg <[email protected]>
-
- * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
- assertion.
- (ps_parser_to_bytes): Fix error message.
-
- * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
- * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
- Don't allow mixed binary and hex strings.
- Handle string_size == 0 and string_buf == 0.
- (t42_parse_encoding): Handle one more error.
-
-2007-06-18 Werner Lemberg <[email protected]>
-
- * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
- logic.
- (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
- correctly.
- (ps_parser_load_field_table): Use `fields->array_max' instead of
- T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
-
- * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
- 2007-06-06.
-
-2007-06-17 Werner Lemberg <[email protected]>
-
- * src/tools/ftrandom.c (font_size): New global variable.
- (TestFace): Use it.
- (main): Handle new option `--size' to set `font_size'.
- (Usage): Updated.
-
- * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
- invalid font.
- (FNT_Load_Glyph): Protect against invalid bitmap width.
-
-2007-06-16 David Turner <[email protected]>
-
- * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
- Prevent integer overflows when rendering very large outlines.
-
- * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
- well-formedness of the contours array when loading a glyph.
-
- * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
- and `zp2'.
- (Ins_IP): Check argument ranges to reject bogus operations properly.
- (IUP_WorkerRec): Add `max_points' member.
- (_iup_worker_interpolate): Check argument ranges.
- (Ins_IUP): Ignore empty outlines.
-
-2007-06-16 Dmitry Timoshkov <[email protected]>
-
- * src/winfonts/winfnt.h: Add necessary structures for PE resource
- parsing.
- (WinPE32_HeaderRec): New structure.
- (WinPE32_SectionRec): New structure.
- (WinPE_RsrcDirRec): New structure.
- (WinPE_RsrcDirEntryRec): New structure.
- (WinPE_RsrcDataEntryRec): New structure.
- (FNT_FontRec): Remove unused `size_shift' field.
-
- * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
- loading bitmap .fon files in PE format.
-
-2007-06-15 Dmitry Timoshkov <[email protected]>
-
- * builds/win32/ftdebug.c: Unify debug level handling with other
- platforms.
-
-2007-06-14 Dmitry Timoshkov <[email protected]>
-
- * builds/win32/ftdebug.c (FT_Message): Send debug output to the
- console as well as to the debugger.
-
-2007-06-14 Werner Lemberg <[email protected]>
-
- * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
- cover all ranges which could possibly be handled by the aflatin
- module (since the default fallback for unknown ranges is now the
- afcjk module). It might be necessary to fine-tune this further by
- splitting off modules for Greek, Cyrillic, or other blocks.
-
-2007-06-11 David Turner <[email protected]>
-
- * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
- incorrect segment linking computation. This was the root cause of
- Savannah bug #19565.
-
-
- * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
- to improve the Latin auto-hinter. Note that the new code is
- disabled by default since it is not stabilized yet.
-
- * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
- (disabled currently).
-
- * src/autofit/afhints.c: Remove dead code.
- (af_axis_hints_new_edge): Add argument to handle segment directions.
- (af_edge_flags_to_string): New function.
- (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
- option flags.
- (af_glyph_hints_reload): Add argument to handle inflections.
- Simplify.
- (af_direction_compute): Fine tuning.
- (af_glyph_hints_align_edge_points): Fix logic.
- (af_glyph_hints_align_strong_points): Do linear search for small
- edge counts.
- (af_glyph_hints_align_weak_points): Skip any touched neighbors.
- (af_iup_shift): Handle zero `delta'.
-
- * src/autofit/afhints.h: Updated.
- (AF_SORT_SEGMENTS): New macro (disabled).
- (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
-
- * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
- argument to pass option flags for handling scripts.
- * src/autofit/afglobal.h: Updated.
-
- * src/autofit/afcjk.c: Updated.
- * src/autofit/aflatin.c: Updated.
- (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
-
- (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
- (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
- Don't set `edge->dir'
- (af_latin_hint_edges): Add more logging.
-
- * src/autofit/afloader.c: Updated.
-
-2007-06-11 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
-
-2007-06-10 David Turner <[email protected]>
-
- * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
- the TrueType glyph loader.
-
- * include/freetype/config/ftoption.h: Clarify documentation
- regarding unpatented hinting.
-
-
- Add new `FT_Face_CheckTrueTypePatents' API.
-
- * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
- declaration.
-
- * include/freetype/internal/services/svttglyf.h,
- src/base/ftpatent.c: New files.
-
- * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
- New macro.
-
- * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
- `ttpload.h'.
- (tt_service_truetype_glyf): New service structure.
- (tt_services): Register it.
-
- * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
- `ftpatent.c'.
-
-2007-06-08 Werner Lemberg <[email protected]>
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
- Fonts without a cmap must be handled correctly by FreeType (anything
- else would be a bug).
-
-
- * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
- [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
-
-2007-06-07 Werner Lemberg <[email protected]>
-
- * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
- tt_sbit_decoder_load_image): Protect against integer overflows.
-
-
- * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
- for `x_control' and `y_control'.
-
-2007-06-06 Werner Lemberg <[email protected]>
-
- * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
-
-
- * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
- FreeType error.
-
-
- * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
- `font_count'.
-
-
- * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
-
-
- * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
- `FT_Error'.
- Check `fd_index'.
- (cff_slot_load): Updated.
- * src/cff/cffgload.h: Updated.
-
-2007-06-05 Werner Lemberg <[email protected]>
-
- * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
- (pfr_glyph_load_simple): Convert assertion into normal FreeType
- error.
- Check `idx'.
- (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
- Convert assertion into normal FreeType error.
-
- * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
-
-
- * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
-
-
- * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
- in case of parsing error.
- (ps_parser_load_field): Updated.
-
- * src/type1/t1load.c (parse_font_matrix): Updated.
-
-2007-06-04 Werner Lemberg <[email protected]>
-
- * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
-
- * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
-
-2007-06-03 Werner Lemberg <[email protected]>
-
- * src/tools/ftrandom/*: Add the `ftrandom' test program written by
- George Williams (with some modifications).
-
-2007-06-03 Werner Lemberg <[email protected]>
-
- * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
- (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
- face == NULL. Suggested by Graham Asher.
-
-2007-06-03 Ismail Dönmez <[email protected]>
-
- * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
-
-2007-06-02 Werner Lemberg <[email protected]>
-
- * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
- FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
-
- * src/bdf/bdflib.c (bdf_load_font): Use them.
-
- * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
-
-2007-06-01 Werner Lemberg <[email protected]>
-
- * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
- (FTC_CMapCache_Lookup): Remove unused code.
-
-2007-06-01 Sean McBride <[email protected]>
-
- * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
- unused.
-
-2007-06-01 Werner Lemberg <[email protected]>
-
- * src/cid/cidparse.c (cid_parser_new): Don't continue second search
- pass for `StartData' if an error has occurred.
- Exit properly if no `StartData' has been seen at all.
-
- * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
- LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
-
-2007-05-30 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
- against too small binary data strings.
-
- * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
-
-2007-05-28 David Turner <[email protected]>
-
- * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
- transformation. This significantly reduces the loading time of CFF
- glyphs.
-
- * docs/CHANGES: Updated.
-
- * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
- hinting script to CJK, since it works well with more scripts than
- latin. Thanks to Rahul Bhalerao <[email protected]> for pointing
- this out!
-
-2007-05-25 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2007-05-24 Werner Lemberg <[email protected]>
-
- * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
- into TT_USE_BYTECODE_INTERPRETER preprocessor block.
-
-2007-05-24 Graham Asher <[email protected]>
-
- * src/truetype/ttobjs.c (tt_size_ready_bytecode)
- [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
-
-2007-05-22 David Turner <[email protected]>
-
- * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
- avoid crashes in case the bytecode interpreter is not used.
-
-
- Avoid heap blowup with very large .Z font files. This fixes
- Savannah bug #19910.
-
- * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
- `in_limit', `pad', `pad_bits', and `in_buff' members.
- Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
- `buf_total' members.
-
- * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
- only one argument.
- (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
-
-2007-05-20 Ismail Dönmez <[email protected]>
-
- * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
- (ps_dimension_set_mask_bits): Remove `const'.
-
-2007-05-19 Werner Lemberg <[email protected]>
-
- * src/sfnt/ttmtx.c (tt_face_get_metrics)
- [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
-
-2007-05-19 Derek Clegg <[email protected]>
-
- Savannah patch #5929.
-
- * include/freetype/tttables.h, src/base/ftobjcs.c
- (FT_Get_CMap_Format): New function.
-
- * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
- `format' member.
- * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
- cmap_info->format.
-
-2007-05-19 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
- before handling subglyphs so that it can be reinitialized each time.
- This fixes Savannah bug #19859.
-
-2007-05-16 Werner Lemberg <[email protected]>
-
- * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
- src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
- (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
- src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
- tt_face_get_metrics): Fix type-punning issues.
-
-2007-05-15 David Turner <[email protected]>
-
- * include/freetype/config/ftstdlib.h,
- include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
- ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
- instead on relying on the locale-dependent functions provided by
- <ctypes.h>.
-
-2007-05-15 Graham Asher <[email protected]>
-
- * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
- variable.
- * src/autofit/afloader.c (af_loader_load_g): Ditto.
-
- * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
- (open_face_from_buffer): Initialize `stream'.
- (FT_Request_Metrics): Remove unused variable.
- Remove redundant `break' statements.
- (FT_Get_Track_Kerning): Remove unused variable.
-
- * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
- afm_parse_kern_data): Remove redundant
- `break' statements.
- (afm_parser_parse): Ditto.
- Don't use uninitialized variables.
-
- * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
- Use `|' operator instead of `^' to set it.
- Update all users.
-
- * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
- * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
-
- * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
- comparison.
- (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
- (TT_Load_Glyph): Remove unused variable.
-
-2007-05-13 Derek Clegg <[email protected]>
-
- * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
- if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
-
-2007-05-11 David Turner <[email protected]>
-
- * src/cache/ftbasic.c, include/freetype/ftcache.h
- (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
- functions that allow us to look up glyphs using an FTC_Scaler object
- to specify the size, making it possible to use fractional pixel
- sizes.
-
- * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
- `size->cvt_ready'. Reported by Boris Letocha.
-
-2007-05-09 Graham Asher <[email protected]>
-
- * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
- (af_latin_metrics_scale_dim): Fix compiler warnings.
-
-2007-05-06 Werner Lemberg <[email protected]>
-
- * builds/win32/visualce/freetype.sln: Removed, as requested by
- Vincent.
-
-2007-05-04 Vincent RICHOMME <[email protected]>
-
- * builds/win32/visualce/*: Add Visual C++ project files for Pocket
- PC targets.
-
- * docs/CHANGES: Document them.
-
-2007-05-04 <[email protected]>
-
- * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
- mmap (which might happen on some RTOS). From Savannah patch #5909.
-
-2007-05-03 Werner Lemberg <[email protected]>
-
- * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
- * include/freetype/freetype.h (FT_Set_Char_Size): Update
- documentation.
-
-2007-04-28 Victor Stinner <[email protected]>
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
- `cmap'.
-
-2007-04-27 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
- number of points in contours. Problem reported by Victor Stinner
- <[email protected]>.
- (TT_Process_Simple_Glyph): Synchronize variable types.
-
-2007-04-26 Werner Lemberg <[email protected]>
-
- * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
- zero in case of error. This fixes Savannah bug #19689.
-
-2007-04-25 Boris Letocha <[email protected]>
-
- * src/truetype/ttobjs.c: Fix a typo that created a speed regression
- in the TrueType bytecode loader.
-
-2007-04-10 Martin Horak <[email protected]>
-
- * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
- Ignore `hhea' table. This fixes Savannah bug #19261.
-
-2007-04-09 Werner Lemberg <[email protected]>
-
-
- * Version 2.3.4 released.
- =========================
-
-
- Tag sources with `VER-2-3-4'.
-
- * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
- version number to 2.3.4.
-
- * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
- builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
-
- * builds/unix/configure.raw (version_info): Set to 9:15:3.
-
-2007-04-09 Martin Horak <[email protected]>
-
- * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
- memory stream to avoid a crash with the incremental memory
- interface (Savannah bug #19260).
-
-2007-04-06 David Turner <[email protected]>
-
- * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
- (Savannah bug #19536).
-
-2007-04-04 Werner Lemberg <[email protected]>
-
-
- * Version 2.3.3 released.
- =========================
-
-
- Tag sources with `VER-2-3-3'.
-
- * docs/CHANGES: Mention CVE-2007-1351.
-
-2007-04-03 David Turner <[email protected]>
-
- * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
- if one of the resolution values is 0, treat it as if it were the
- same as the other value.
-
-2007-04-02 David Turner <[email protected]>
-
- Add special code to detect `extra-light' fonts and do not snap their
- stem widths too much to avoid bizarre hinting effects.
-
- * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
- `extra_light' members.
-
- * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
- them.
- (af_latin_metrics_scale_dim): Set `extra_light'.
- (af_latin_compute_stem_width): Use `extra_light'.
-
-2007-03-28 David Turner <[email protected]>
-
- * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
- padding.
-
-2007-03-28 Werner Lemberg <[email protected]>
-
- * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
- gracefully.
- (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
- issue an error for longer names. This fixes CVE-2007-1351.
- (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
- number of code points in Unicode.
-
- * builds/win32/visualc/index.html,
- builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
- s/232/233/.
-
- * docs/CHANGES: Mention ftdiff.
-
-2007-03-26 David Turner <[email protected]>
-
- * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
- corresponding code.
- (Ins_MD): Last regression fix.
-
- * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
- computations in order to ignore single-point contours. These are
- never rasterized and correspond in certain fonts to mark-attach
- points that are very far from the glyph's real outline, ruining the
- computation.
-
- * src/autofit/afloader.c (af_loader_load_g): In the case of
- monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
- Otherwise code that uses them will most certainly ruin the fixed
- advance property.
-
- * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
- documentation and bump version number to 2.3.3.
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
-
- * builds/unix/configure.raw (version_info): Set to 9:14:3.
-
-2007-03-26 suzuki toshiya <[email protected]>
-
- * builds/unix/ftconfig.in: Disable Carbon framework dependency on
- 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
- * builds/vms/ftconfig.h: Ditto.
- * include/freetype/config/ftconfig.h: Ditto.
-
-2007-03-22 suzuki toshiya <[email protected]>
-
- * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
- 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
- proposed by Sean McBride:
- http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
-
-2007-03-22 suzuki toshiya <[email protected]>
-
- * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
- setjmp, proposed by Sean McBride:
- http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
-
-2007-03-19 suzuki toshiya <[email protected]>
-
- * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
- conftest.c, to avoid unexpected shell evaluation. Possibly it is a
- bug or undocumented behaviour of autoconf.
-
-2007-03-18 David Turner <[email protected]>
-
- * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
- fix; testing still needed.
-
- * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
-
-2007-03-17 David Turner <[email protected]>
-
- * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
- (undocumented) twilight zone special case.
-
-2007-03-09 Werner Lemberg <[email protected]>
-
-
- * Version 2.3.2 released.
- =========================
-
-
- Tag sources with `VER-2-3-2'.
-
- * builds/win32/visualc/index.html,
- builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
- s/231/232/.
-
-2007-03-08 David Turner <[email protected]>
-
- * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
-
- * builds/unix/configure.raw (version_info): Set to 9:13:3.
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
-
- * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
-
- * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
- function to work properly, over-writing user-provided buffers in
- some cases. Reported by James Cloos <[email protected]>.
-
-
-2007-03-05 Werner Lemberg <[email protected]>
-
- * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
- macro for `strstr'.
-
- * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
- `trick_names', as suggested by Ivan Nincic.
-
-2007-03-05 David Turner <[email protected]>
-
- * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
- case FT_Init_FreeType fails for some reason. Problem reported by
- Maximilian Schwerin <[email protected]>.
-
- * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
- and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
- `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
- <[email protected]>.
-
- * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
- signed values, not unsigned ones. Problem reported by Johannes
- Walther <[email protected]>.
-
-2007-02-21 David Turner <[email protected]>
-
- * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
- of small and ghost stems in the Postscript interpreter.
-
-2007-02-20 suzuki toshiya <[email protected]>
-
- * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
- leak, patch by "Jjgod Jiang" <[email protected]>.
- * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
-
-2007-02-16 Werner Lemberg <[email protected]>
-
- * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
- * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
-
-2007-02-14 David Turner <[email protected]>
-
- It seems that the following changes fix most of the known
- interpreter problems with my fonts, but more testing is needed,
- though.
-
- * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
- (TT_MulFix14): Rewrite.
- (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
- (Ins_MIRP): Ditto.
-
-2007-02-12 Werner Lemberg <[email protected]>
-
- * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
- warnings.
-
- * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
- (bdf_interpret_style): Ditto.
-
-2007-02-12 David Turner <[email protected]>
-
- Simplify projection and dual-projection code interface.
-
- * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
- FT_Vector' as argument type.
- * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
- Updated.
- (CUR_fast_project, CUR_fast_dualproj): New macros.
- (Project, Dual_Project, Project_x, Project_y): Updated.
- (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
- macros.
-
-
- * src/autofit/afloader.c (af_loader_load_g): Improve spacing
- adjustments for the non-light auto-hinted modes. Gets rid of
- `inter-letter spacing is too wide' problems.
-
- * src/autofit/aflatin.c (af_latin_hints_link_segments,
- af_latin_hints_compute_edges): Slight optimization of the segment
- linker and better handling of serif segments to get rid of broken
- `9' in Arial at 9pt (96dpi).
-
-
- Introduce new string functions and the corresponding macros to get
- rid of various uses of strcpy and other `evil' functions, as well as
- to simplify a few things.
-
- * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
- ft_mem_strcpyn): New declarations.
- (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
- macros.
- * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
- functions.
-
- * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
- src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
- (pcf_get_properties, pcf_interpret_style, pcf_load_font),
- src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
- (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
- src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
- (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
- t42_get_name_index): Use new functions and simplify code.
-
- * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
-
-2007-02-11 Werner Lemberg <[email protected]>
-
- * src/autofit/afloader.c (af_loader_load_g): Don't change width for
- non-spacing glyphs.
-
-2007-02-07 Tom Parker <[email protected]>
-
- * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
- pointer.
-
-2007-02-05 suzuki toshiya <[email protected]>
-
- * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
- Introduce __attribute((deprecated))__ to warn functions
- which use non-ANSI data types in its interfaces.
- (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
- (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
- (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
- (FT_New_Face_From_FSRef): Deprecated, using FSRef.
-
- * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
- to avoid warning in building FreeType.
- * builds/mac/ftmac.c: Ditto.
-
-2007-02-05 suzuki toshiya <[email protected]>
-
- * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
- `--with-fsspec' etc. Replace #include "ftmac.c" with
- #include <ftmac.c>.
-
-2007-02-05 suzuki toshiya <[email protected]>
-
- * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
- Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
- * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
- (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
- FT_GetFilePath_From_Mac_ATS_Name.
- * builds/mac/ftmac.c: Ditto.
-
-2007-02-05 suzuki toshiya <[email protected]>
-
- * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
- FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
- for passing to FT_New_Face_From_FSSpec.
-
-2007-02-05 suzuki toshiya <[email protected]>
-
- * builds/unix/configure.raw: Check whether Mac OS X system headers
- can be built under ANSI C mode.
-
- * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
- compatible to ANSI C in case system headers are ANSI C incompatible.
- * builds/mac/ftmac.c (OS_INLINE): Ditto.
-
-2007-02-01 Werner Lemberg <[email protected]>
-
- * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
- Explain why applications shouldn't use it. Found by Alexei.
-
-2007-02-01 Alexei Podtelezhnikov <[email protected]>
-
- * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
- message.
-
- * src/gxvalid/gxvmort1.c
- (gxv_mort_subtable_type1_substTable_validate): Fix debugging
- message.
-
-2007-01-31 Werner Lemberg <[email protected]>
-
-
- * Version 2.3.1 released.
- =========================
-
-
- Tag sources with `VER-2-3-1-FINAL'.
-
- * builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj: s/230/231/.
- * builds/win32/visualc/index.html: s/221/231/.
-
- * vms_make.com: Add `ftgasp'.
-
-2007-01-30 David Turner <[email protected]>
-
- Tag sources with VER-2-3-1 to prepare release.
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
-
- * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
- s/2.3.0/2.3.1/.
-
- * builds/unix/configure.raw (version_info): Set to 9:12:3.
-
-
- * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
- (af_loader_load_g): Disable the warper (i.e., the light hinting
- improvements) to make a 2.3.1 bugfix release before introducing a
- new feature. This should give us more time to tune and improve the
- warper for the next release.
-
- * docs/CHANGES: Update accordingly.
-
-2007-01-25 David Turner <[email protected]>
-
- For light auto-hinting, improve glyph advance widths and resurrect
- normal/full hinting to its normal quality.
-
- * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
- and `xmax_delta'.
- * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
- and `xmax_delta'.
-
- * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
- preprocessor conditional with if-clause, handling both light and
- normal mode.
-
- * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
- (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
-
-2007-01-25 Werner Lemberg <[email protected]>
-
- * docs/release: Updated -- Savannah uses a new uploading scheme.
-
-2007-01-25 David Turner <[email protected]>
-
- * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
-
- * src/cff/cffgload.c (cff_decoder_parse_charstrings)
- <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
- functions.
-
- * docs/CHANGES: Document light auto-hinting improvement.
-
-2007-01-25 Werner Lemberg <[email protected]>
-
- * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
- correctly in a sanity check. Since this function is only used to
- load local and global functions, any charstring that called the last
- local/global function would fail otherwise. This fixes Savannah bug
- #18867.
-
- * docs/CHANGES: Document it.
-
-2007-01-23 David Turner <[email protected]>
-
- * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
- prevented compilation when disabling both the unpatented and the
- bytecode interpreter in the TrueType font driver.
-
-
- Fix and enable the warper to improve `light' hinting mode. This is
- not necessarily a final version, but it seems to work well.
-
- * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
- Disable code.
- (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
- * src/autofit/aftypes.h: Activate AF_USE_WARPER.
-
- * src/autofit/afwarp.c (AF_WarpScore): Tune table.
- (af_warper_compute_line_best): Fix array size of `scores'.
- (af_warper_compute): Better handling of border cases.
- * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
- and `X2'.
-
-2007-01-21 Werner Lemberg <[email protected]>
-
- * ChangeLog: Split off older entries into...
- * ChangeLog.22: This new file.
-
-2007-01-21 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Document SHZ fix.
-
-2007-01-21 George Williams <[email protected]>
-
- * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
- points.
-
-2007-01-21 Werner Lemberg <[email protected]>
-
- * src/sfnt/ttmtx.c (tt_face_get_metrics)
- [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
-
-2007-01-17 Werner Lemberg <[email protected]>
-
-
- * Version 2.3.0 released.
- =========================
-
-
- Tag sources with `VER-2-3-0-FINAL'.
-
-2007-01-17 Werner Lemberg <[email protected]>
-
- * docs/release: Updated.
-
-2007-01-16 David Turner <[email protected]>
-
- * src/autofit/aflatin.c (af_latin_hints_compute_segments),
- src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
- (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
- warnings.
-
-2007-01-15 Detlef Würkner <[email protected]>
-
- * builds/amiga/makefile, builds/amiga/makefile.os4,
- builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
-
- * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
-
-2007-01-14 Detlef Würkner <[email protected]>
-
- Fix various compiler warnings.
-
- * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
- src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
- s/index/strike_index/.
- * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
-
- * src/gxvalid/gxvmorx5.c
- (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
-
- * src/truetype/ttinterp.c (Compute_Point_Displacement),
- src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
- uninitialized variables.
-
-2007-01-13 suzuki toshiya <[email protected]>
-
- * docs/CHANGES, docs/INSTALL.MAC: Improvements.
-
-2007-01-13 Werner Lemberg <[email protected]>
-
- * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
- versions up to 0x3FF without complaining.
-
-2007-01-13 Derek Clegg <[email protected]>
-
- Add FT_Get_PS_Font_Info interface to CFF driver.
-
- * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
- (CFF_FontRec): Add `font_info' field.
-
- * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
- (cff_font_done): Free font->font_info if necessary.
-
- * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
- (cff_service_ps_info): Register cff_ps_get_font_info.
-
-2007-01-13 Werner Lemberg <[email protected]>
-
- * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
- with C++ compiler.
-
- * src/autofit/afhints.c (af_glyph_hints_dump_segments,
- af_glyph_hints_dump_edges): Ditto.
-
- * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
- `modules.cfg').
-
- * src/sfnt/ttsbit0.h: Remove.
-
- * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
-
-2007-01-12 David Turner <[email protected]>
-
- * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
- bug in the bitmap emboldener if the pitch of the source bitmap is
- much larger than its width.
-
- * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
- compilation warning.
-
-2007-01-12 Werner Lemberg <[email protected]>
-
- * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
- `automake' CVS module from sources.redhat.com.
-
-2007-01-11 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.c (is_space): Removed.
- (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
- (parse_charstrings): Use IS_PS_TOKEN.
-
-
- * autogen.sh: Avoid bash specific syntax.
-
-2007-01-11 David Turner <[email protected]>
-
- * docs/CHANGES: Small update.
-
- * builds/unix/configure.raw (version_info): Set to 9:11:3.
-
- * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
- crash with some Mac OS X .dfont files. Submitted by Masatake
- Yamato.
-
- * autogen.sh: Small fix to get it working on Mac OS X properly:
- The issue is that GNU libtool is called `glibtool' on this platform,
- and we must call `glibtoolize', since `libtoolize' doesn't exist.
-
-2007-01-10 David Turner <[email protected]>
-
- * all-sources: Tag all sources with VER-2-3-0-RC1 and
- VER-2-3-0.
-
- * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
- version number to 2.3.0.
-
- * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
- (FREETYPE_PATCH): Set to 0.
-
- * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
- include/freetype/ftlcdfil.h: Update reference documentation with
- GASP support and LCD filtering sections.
-
- * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
- which created an endless loop with some malformed font files.
-
-2007-01-10 Derek Clegg <[email protected]>
-
- * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
- values.
-
-2007-01-08 David Turner <[email protected]>
-
- * docs/CHANGES: Updated.
-
- * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
- a new API `FT_Get_Gasp' to return entries of the `gasp' table
- corresponding to a given character pixel size.
-
- * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
- `gasp' table, in order to avoid potential problems with later
- versions.
-
- * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
- <freetype/ftgasp.h>.
-
- * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
- modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
- default build.
-
-2007-01-07 Werner Lemberg <[email protected]>
-
- * src/cid/cidparse.c (cid_parser_new): Improve error message for
- Type 11 fonts.
- Scan for `/sfnts' token.
-
-2007-01-07 Werner Lemberg <[email protected]>
-
- * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
-
-2007-01-06 Werner Lemberg <[email protected]>
-
- * src/cff/cffload.c (cff_index_init): Remove unused variable.
- (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
-
-2007-01-04 David Turner <[email protected]>
-
- * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
- correctly. This fixes Savannah bug #17876.
-
-
- Do not allocate interpreter-specific tables in memory if we are not
- going to load glyphs with the bytecode interpreter anyway.
-
- * src/truetype/ttgload.c (tt_loader_init): Load execution context
- only if glyph is hinted.
- Updated.
- * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
- and `cvs_ready'.
- Add `tt_size_ready_bytecode' declaration.
- * src/truetype/ttobjs.c (tt_size_done_bytecode,
- tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
- (tt_size_init): Move most code into `tt_size_init_bytecode'.
- (tt_size_done): Move most code into `tt_size_done_bytecode'.
- (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
-
-
- Don't extract the metrics table from the SFNT font file. Instead,
- reparse it on each glyph load. The runtime difference is not
- noticeable, and it can save a lot of heap memory when memory-mapped
- files are not used.
-
- * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
- `horz_metrics_offset' and `vert_metrics_ofset'.
- * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
- Updated.
-
-
- * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
-
-
- Do not load the CFF index offsets into memory, since this wastes a
- *lot* of heap memory with large Asian CFF fonts. There is no
- significant performance loss.
-
- * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
- * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
- `data_size'.
- (CFF_CharsetRec): Add field `num_glyphs'.
-
- * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
- cff_charset_cid_to_gindex): New functions.
- (cff_new_index): Renamed to...
- (cff_index_init): This. Update all callers.
- Updated -- some code has been moved to `cff_index_load_offsets'.
- (cff_done_index): Renamed to...
- (cff_index_done): This. Update all callers.
- (cff_index_get_pointers, cff_index_access_element): Updated to use
- stream offsets.
- (cff_charset_compute_cids): Set `num_glyphs' field.
- (cff_encoding_load): Updated.
-
- * src/cff/cffgload.c (cff_slot_load): Updated.
-
-2007-01-04 David Turner <[email protected]>
-
- * docs/INSTALL.UNIX: Simplify some parts, add reference to
- autogen.sh and pointer to README.CVS.
-
- * README.CVS: Add common problem description and solution
- when running autogen.sh.
-
- * docs/INSTALL: Add reference to MacOS X.
-
- * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
-
- * docs/TODO: Remove obsolete items.
-
- * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
- (TWorker): This.
- Remove `count_table' and `memory'.
- Make `grays' a pointer.
- (TRaster): New structure.
- (count_table): New static array.
- (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
- Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
- ft_black_set_mode, ft_black_render): Updated.
- (ft_black_init): Don't initialize `count_table'.
- (ft_black_reset): Use the render pool. This saves about 6KB of
- heap space for each FT_Library instance.
-
- * src/smooth/ftgrays.c (TRaster): Replaced with...
- (TWorker): This.
- Remove `memory'.
- (TRaster): New structure.
-
- (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
- gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
- gray_render_span, gray_raster_render): Updated.
- (gray_raster_reset): Use the render pool. This saves about 6KB of
- heap space for each FT_Library instance.
-
- * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
- src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
- src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
- FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
- the optimization is no longer experimental.
-
- * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
- Remove a typo that results in no hinting and a memory leak with some
- large Asian CFF fonts.
-
- * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
- which happens when FT_Done_Library is called with still opened
- CFF_Faces in it. We need to close all faces before destroying the
- modules, or else some bad things (memory leaks) may happen.
-
-2007-01-02 Werner Lemberg <[email protected]>
-
- * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
- Remove compiler warning.
-
-2007-01-02 David Turner <[email protected]>
-
- * src/sfnt/sfobjs.c: Add documentation comment.
-
-2006-12-31 Masatake YAMATO <[email protected]>
-
- * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
- function.
- Check uniqueness of the gid pairs.
- (gxv_kern_subtable_fmt0_validate): Move some code to
- `gxv_kern_subtable_fmt0_pairs_validate'.
-
-2006-12-22 David Turner <[email protected]>
-
- * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
- warnings.
-
- * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
- to avoid deprecation warnings with Visual C++ 8.
-
-2006-12-16 Anders Kaseorg <[email protected]>
-
- * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
- [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
-
-2006-12-15 suzuki toshiya <[email protected]>
-
- * include/freetype/internal/services/svotval.h: Add `volatile' to
- sync with the modification by Jens Claudius on 2006-08-22; cf.
- http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5
-
-2006-12-15 suzuki toshiya <[email protected]>
-
- * src/base/ftmac.c: Specialized for Mac OS X only.
- * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
- * builds/unix/configure.raw: Ditto. When explicit switches for
- FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
- builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
-
-2006-12-15 suzuki toshiya <[email protected]>
-
- * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
- * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
- instead of src/base/ftmac.c
- * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
- * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
- * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
- that cannot be built at present.
-
-2006-12-15 suzuki toshiya <[email protected]>
-
- * src/base/ftobjs.c: Improvement of resource fork handler for
- POSIX, cf.
- http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
- (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
- format or .dfont, to simulate the face index number counted by ftmac.c.
- (IsMacResource): Return the number of scalable faces correctly.
-
-2006-12-10 Werner Lemberg <[email protected]>
-
- * builds/toplevel.mk (version): Protect against `distclean' target.
-
-2006-12-09 Werner Lemberg <[email protected]>
-
- * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
- or `type'.
-
- * builds/freetype.mk (version): Extracted from freetype.h, using
- GNU make's built-in string functions.
- (refdoc): Use $(version) instead of static version number.
-
-2006-12-08 Werner Lemberg <[email protected]>
-
- * builds/toplevel.mk (dist): Extract version number from freetype.h.
-
-2006-12-08 Vladimir Volovich <[email protected]>
-
- * src/tools/apinames.c (State): Remove final comma in structure --
- xlc v5 under AIX 4.3 doesn't like this.
-
-2006-12-07 David Turner <[email protected]>
-
- * src/autofit/afloader.c (af_loader_load_g): Small adjustment
- to the spacing of auto-fitted glyphs. This only impacts rare
- cases (e.g., Arial Bold at rather small character sizes).
-
-2006-12-03 Werner Lemberg <[email protected]>
-
- * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
-
-2006-12-01 Werner Lemberg <[email protected]>
-
- * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
- encoded in UTF-16BE. Patch from Rajeev Pahuja <[email protected]>.
- (tt_name_entry_ascii_from_ucs4): Removed.
-
-
- * include/freetype/ftxf86.h: Fix and extend comment so that it
- appears in the documentation.
-
- * include/freetype/ftchapters.h: Add `font_format' section.
-
-
- * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
- to TOC in index page.
-
-2006-11-28 David Turner <[email protected]>
-
- * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
- trying to render into a zero-width/height bitmap, not an error code.
-
- * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
-
- * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
- ones instead.
-
- * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
- variable.
-
-2006-11-26 Pierre Hanser <[email protected]>
-
- * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
-
-2006-11-25 David Turner <[email protected]>
-
- * src/autofit/afhints.c (af_glyph_hints_dump_points,
- af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
- Add stubs to link the `ftgrid' test program when debugging is
- disabled in the auto-hinter.
-
-2006-11-23 David Turner <[email protected]>
-
- * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
- src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
-
- * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
- Emit more sensible information.
-
- * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
-
- * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
- rounding of blue values.
- (af_latin_hints_compute_segments): Hint segment heights.
- (af_latin_hints_link_segments): Reduce `len_score' value.
- (af_latin_hints_compute_edges): Increase `segment_length_threshold'
- value and use `height' member for comparisons.
- (af_latin_hint_edges): Extend logging message.
- Improve handling of remaining edges.
-
-2006-11-22 Werner Lemberg <[email protected]>
-
- Fix Savannah bug #15553.
-
- * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
- program after a change from mono to grayscaling (and vice versa).
- Use correct constant for comparison to get `exec->grayscale'.
-
-2006-11-18 Werner Lemberg <[email protected]>
-
- Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
- test for a valid glyph index must be deferred to the font drivers.
- This patch fixes Savannah bug #18301.
-
- * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
- * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
- (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
- src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
- (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
- src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
- (FNT_Load_Glyph): Check validity of `glyph_index'.
-
-2006-11-13 David Turner <[email protected]>
-
- * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
- `enhancements' are still too buggy for general use.
-
- * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
- FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
- when building the library to change the default LCD filter to be
- used. This is only useful for experimentation.
-
- * include/freetype/ftlcdfil.h: Update documentation.
-
-2006-11-10 David Turner <[email protected]>
-
- * src/smooth/ftsmooth.c: API change for the LCD
- filter. The FT_LcdFilter value is an enumeration describing which
- filter to apply, with new values FT_LCD_FILTER_LIGHT and
- FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
- algorithm which produces strong color fringes for everything
- except very-well hinted text).
-
- * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
- second parameter to an enum type.
-
- * src/base/ftlcdfil.c (USE_LEGACY): Define.
- (_ft_lcd_filter): Rename to...
- (_ft_lcd_filter_fir): This.
- Update parameters.
- (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
- (FT_Library_Set_LcdFilter): Update parameters.
- Handle new filter modes.
-
- * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
- (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
- (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
- callback and update other fields.
-
- * src/smooth/ftsmooth.c (ft_smooth_render_generic)
- [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
- Other minor improvements.
-
- * src/autofit/aflatin.c: Various tiny improvements that drastically
- improve the handling of serif fonts and of LCD/LCD_V hinting modes.
- (af_latin_hints_compute_edges): Fix typo.
- (af_latin_compute_stem_width): Take better care of diagonal stems.
-
-2006-11-09 David Turner <[email protected]>
-
- * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
- typo which created a variable-used-before-initialized bug.
-
-2006-11-07 Zhe Su <[email protected]>
-
- * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
- also.
-
-2006-11-03 Werner Lemberg <[email protected]>
-
- * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
-
-2006-11-02 David Turner <[email protected]>
-
- Add a few tweaks to better handle serif fonts.
- Add more debugging messages.
-
- * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
- segments that are less than 1.5 pixels high. This gets rid of
- *many* corner cases with serifs.
- (af_latin_align_linked_edge): Add logging message.
- (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
- Add logging messages.
- Handle AF_EDGE_FLAG flag specially.
-
- * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
- _af_debug_disable_blue_hints, and _af_debug_hints variables.
-
- * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
- Update external declarations.
- (af_corner_orientation, af_corner_is_flat): Replaced by...
-
- * include/freetype/internal/ftcalc.h (ft_corner_orientation,
- ft_corner_is_flat): These declarations.
-
- * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
- Comment out. Replaced by...
-
- * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
- These functions. Update all callers.
- (FT_Add64) [!FT_LONG64]: Simplify.
-
- * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
- (af_direction_compute): Add a missing FT_ABS call. This bug caused
- production of garbage by missing lots of segments.
-
- * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
-
- * src/autofit/afloader.c (af_loader_init, af_loader_done)
- [AF_DEBUG]: Set _af_debug_hints.
-
-
- * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
- (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
- and ft_corner_orientation.
-
-
- * src/gzip/inftrees.c (huft_build): Remove compiler warning.
-
-2006-10-24 Werner Lemberg <[email protected]>
-
- * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
-
- * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
- as argument.
-
-2006-10-23 Zhe Su <[email protected]>
-
- * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
- better deal with broken Asian fonts with strange glyphs, having
- self-intersections and other peculiarities. The used algorithm is
- based on the nonzero winding rule.
-
-2006-10-23 David Turner <[email protected]>
-
- Speed up the CFF font loader. With some large CFF fonts,
- FT_Open_Face is now more than three times faster.
-
- * src/cff/cffload.c (cff_get_offset): Removed.
- (cff_new_index): Inline functionality of `cff_get_offset'.
- (cff_charset_compute_cids, cff_charset_free_cids): New functions.
- (cff_charset_done): Call `cff_charset_free_cids'.
- (cff_charset_load): Call `cff_charset_compute_cids'.
- (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
-
- * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
- with FT_NEXT_XXX.
-
-
- Speed up the Postscript hinter, with more than 100% speed increase
- on my machine.
-
- * src/pshinter/pshalgo.c (psh_corner_is_flat,
- psh_corner_orientation): New functions.
- (psh_glyph_compute_inflections): Merge loops for efficiency.
- Use `psh_corner_orientation'.
- (psh_glyph_init): Use `psh_corner_is_flat'.
- (psh_hint_table_find_strong_point): Renamed to...
- (psh_hint_table_find_strong_points): This.
- Rewrite, adding argument to handle all points at once.
- Update all callers.
- (PSH_MAX_STRONG_INTERNAL): New macro.
- (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
-
-2006-10-15 suzuki toshiya <[email protected]>
-
- * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
- `error' with FT_Err_Ok.
-
-2006-10-14 suzuki toshiya <[email protected]>
-
- * docs/INSTALL.CROSS: New document file for cross-building.
-
- * builds/unix/configure.raw: Preliminary cross-building support.
- Find native C compiler and pass it by CC_BUILD, and
- find suffix for native executable and pass it by EXEEXT_BUILD.
- Also suffix for target executable is passed by EXEEXT.
-
- * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
- build `apinames' which runs on building system. They are set by
- CC_BUILD and EXEEXT_BUILD.
-
- * builds/exports.mk (APINAMES_EXE): Change the extension for
- apinames from the suffix for target (E) to that for building host
- (E_BUILD).
-
-2006-10-12 Werner Lemberg <[email protected]>
-
- * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
- * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
- which reference those files.
-
-2006-10-12 suzuki toshiya <[email protected]>
-
- * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
- embedded in freetype2.pc and freetype-config. Use it to record
- Carbon dependency of MacOSX.
-
- * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
-
- * builds/unix/freetype-config.in: Ditto.
-
-2006-10-11 Werner Lemberg <[email protected]>
-
- * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
- development.
-
-2006-10-03 Jens Claudius <[email protected]>
-
- * include/freetype/config/ftstdlib.h: Cast away volatileness from
- argument to ft_setjmp.
-
- * include/freetype/internal/ftvalid.h: Add comment that
- ft_validator_run must not be used.
-
-2006-10-01 Werner Lemberg <[email protected]>
-
- * src/base/ftbase.c: Undo change from 2006-09-30.
-
- * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
-
-2006-09-30 David Turner <[email protected]>
-
- * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
- s/unpatented_hinting/ignore_unpatented_hinter/.
- Update all callers.
-
- * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
- auto-hinting shall be used or not.
-
- * src/truetype/ttobjs.c (tt_face_init): Ditto.
-
-2006-09-30 Werner Lemberg <[email protected]>
-
- * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
- in use).
-
- * src/base/ftbase.c: Include `ftlcdfil.c'.
-
-2006-09-29 Werner Lemberg <[email protected]>
-
- * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
- overlapping segments. Bug reported by Stefan Koch.
-
-2006-09-28 David Turner <[email protected]>
-
- Fix a bug in the automatic unpatented hinting support which prevents
- normal bytecode hinting to work properly.
-
- * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
- s/force_autohint/unpatented_hinting/. Update all callers.
-
- * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
-
- * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
-
-2006-09-27 David Turner <[email protected]>
-
- * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
-
-
- Add a new API to support color filtering of subpixel glyph bitmaps.
- In a default build, the function `FT_Library_SetLcdFilter' returns
- `FT_Err_Unimplemented_Feature'; you need to #define
- FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
- real implementation.
-
- * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
-
- * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
- typedef.
- (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
- `lcd_filter_weights' and `lcd_filter'.
-
- * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
- `hmul' and `vmul'.
-
- Handle subpixel rendering.
- Simplify function.
- (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
- (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
-
- * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
- pointing to <freetype/ftlcdfil.h>.
-
- * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
- vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
-
- * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
-
-2006-09-26 David Bustin
-
- * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
- correctly. Reported as Savannah bug #17843.
-
-2006-09-26 David Turner <[email protected]>
-
- * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
- AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
- horizontal and vertical hinting for the purpose of debugging the
- auto-fitter.
-
- * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
- _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
-
- * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
-
- * include/freetype/config/ftoption.h, devel/ftoption.h
- (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
- we want to compile LCD-optimized rendering code (Ã la ClearType) or
- not. The macro *must* be disabled in default builds of the library
- for patent reasons.
-
- * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
- LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
- isn't defined at compile time. This only changes the content of the
- rendered glyph to match the one of normal gray-level rendering,
- hence clients should not need to be modified.
-
- * docs/CHANGES: Updated.
-
-2006-09-18 Garrick Meeker <[email protected]>
-
- * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
- LWFN fails and both are available.
-
-2006-09-11 David Turner <[email protected]>
-
- * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
- report their English names through an Apple Roman
- (platform,encoding) pair, with language_id != English.
-
- If the font uses another name entry with language_id == English, it
- will be selected correctly, though.
-
- * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
- selection for `mingli.ttf'.
-
-2006-09-05 Werner Lemberg <[email protected]>
-
- * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
- values which have the upper two bytes set to 0xFF instead of 0x00
- (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
- `HAN NOM B.ttf').
-
- * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
-
-2006-09-05 David Turner <[email protected]>
-
- Minor source cleanups and optimizations.
-
- * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
- (TRaster): Remove `count_ex' and `count_ey'.
- (gray_find_cell): Remove 2nd and 3rd argument.
- (gray_alloc_cell): Merged with `gray_find_cell'.
- (gray_record_cell): Simplify.
- (gray_set_cell): Rewrite.
- (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
- (gray_render_span): Don't use FT_MEM_SET for small values.
- (gray_dump_cells) [DEBUG_GRAYS]: New function.
- (gray_sweep): Avoid buffer overwrites when to drawing the end of a
- bitmap scanline.
- (gray_convert_glyph): Fix speed-up.
-
-2006-09-04 David Turner <[email protected]>
-
- * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
- 64bit processors.
-
-2006-09-03 Werner Lemberg <[email protected]>
-
- * devel/ftoption.h: Synchronize with
- include/freetype/config/ftoption.h.
-
- * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
- variable declaration.
- (gray_convert_glyph): Fix compiler warnings.
-
-2006-09-01 David Turner <[email protected]>
-
- * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
- to recognize a few fonts that require the automatic unpatented
- loader.
-
- * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
- rasterizer. The speed improvement is between 15% and 25%, depending
- on the font data.
-
- (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
- (TCell): Redefine.
- (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
- (gray_init_cells): Updated.
- (gray_find_cell, gray_alloc_cell): New functions.
- (gray_record_cell): Rewritten to use `gray_find_cell' and
- `gray_alloc_cell'.
- (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
- QSORT_THRESHOLD):
- Removed.
- (gray_shell_sort, gray_quick_sort, gray_check_sort,
- gray_dump_cells): Removed.
- (gray_sweep): Rewritten.
- (gray_convert_glyph): Rewrite code which used one of the sorting
- functions.
- (gray_raster_render): Updated.
-
-2006-08-29 Dr. Werner Fink <[email protected]>
-
- * configure: Make it possible to handle configure options which
- have strings containing spaces.
-
-2006-08-27 David Turner <[email protected]>
-
- * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
- New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
- or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
-
- * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
- src/truetype/truetype.c, src/truetype/ttdriver.c,
- src/truetype/ttgload.c, src/truetype/ttgload.h,
- src/truetype/ttinterp.c, src/truetype/ttobjs.c,
- src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
- s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
-
- * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
- member `force_autohint'.
-
- * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
-
- * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
- against a list of font names which need the bytecode interpreter.
-
-2006-08-27 Jens Claudius <[email protected]>
-
- Fix miscellaneous compiler warnings.
-
- * include/freetype/internal/ftobjs.h: Close comment with `*/' to
- avoid `/* in comment' compiler warning.
-
- * src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
- `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
- 64-bit platforms void* is larger than FT_UInt32.
-
- * src/base/ftobjs.c (t_validator_error): Cast away
- volatileness of argument to ft_longjmp. Spotted by Werner
- `Putzfrau' Lemberg.
-
- * src/bdf/bdflib.c (bdf_load_font): Initialize local
- variable `lineno'.
-
- * src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable
- `error' as volatile.
-
-2006-08-27 Werner Lemberg <[email protected]>
-
- * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
- Reported by Jens.
-
-2006-08-22 Jens Claudius <[email protected]>
-
- Fix for previous commit, which caused many compiler warnings/errors
- about addresses of volatile objects passed as function arguments as
- non-volatile pointers.
-
- * include/freetype/internal/ftvalid.h: Make FT_Validator typedef a
- pointer to a volatile object.
-
- * src/gxvalid/gxvmod.c (gxv_load_table): Make function argument
- `table' a pointer to a volatile object.
-
- * src/otvalid/otvmod.c (otv_load_table): Make function argument
- `table' a pointer to a volatile object.
-
-2006-08-18 Jens Claudius <[email protected]>
-
- * src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local variable `_sfnt'
- as volatile since it must keep its value across a call to ft_setjmp.
- (gxv_validate): Same for local variables `memory' and `valid'.
- (classic_kern_validate): Same for local variables `memory',
- `ckern', and `valid'.
-
- * src/otvalid/otvmod.c (otv_validate): Same for function parameter
- `face' and local variables `base', `gdef', `gpos', `gsub', `jstf',
- and 'valid'.
-
- * src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable
- `cmap'.
-
-2006-08-16 David Turner <[email protected]>
-
- * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
- warnings.
-
- * src/base/ftobjs.c (ft_validator_run): Disable function; it is
- buggy by design. Always return -1.
-
-
- Improvements to native TrueType hinting. This is a first try,
- controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
-
- * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
- `extra_points2'.
-
- * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
- `orus'.
-
- * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
- FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
- FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
- handle `extra_points2'.
-
- * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
- Remove compiler warning.
- (cur_to_arg): Remove macro.
- (TT_Hint_Glyph): Updated.
- (TT_Process_Simple_Glyph): Handle `orus'.
-
- * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
- (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
- (LOC_Ins_IUP): Renamed to...
- (IUP_WorkerRec): This.
- Add `orus' member.
- (Shift): Renamed to...
- (_iup_worker_shift): This.
- Updated.
- (Interp): Renamed to...
- (_iup_worker_interpolate): This.
- Updated to handle `orus'.
- (Ins_IUP): Updated.
-
- * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
- Handle `orus'.
-
-2006-08-15 suzuki toshiya <[email protected]>
-
- * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
- build ftvalid in ft2demos. This has been inadvertedly changed
- 2006-08-13.
-
-2006-08-15 suzuki toshiya <[email protected]>
-
- `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
- Jens:
- http://lists.gnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
-
- * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'.
- It reverts the change introduced on 2005-08-20.
-
- * src/gxvalid/gxvmod.c: Ditto.
-
-2006-08-13 Jens Claudius <[email protected]>
-
- * finclude/freetype/internal/psaux.h: (T1_TokenType): Add
- T1_TOKEN_TYPE_KEY.
- (T1_FieldRec): Add `dict'.
- (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
- (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
- keyword is expected as an additional argument.
-
- * src/cid/cidload.c: (cid_field_records): Adjust invocations of
- T1_FIELD_XXX.
-
- * src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
-
- * src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
- (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
- not T1_TOKEN_TYPE_ANY.
- (ps_parser_load_field): Make sure a token that should be a string or
- name is really a string or name.
- Avoid memory leak if a keyword has been already encountered and its
- value is overwritten.
- * src/type1/t1load.c: (t1_keywords): Adjust invocations of
- T1_FIELD_XXX.
- (parse_dict): Ignore keywords that occur in the wrong dictionary
- (e.g., in `Private' instead of `FontDict').
-
- * src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX.
-
- * src/type42/t42parse.c: (t42_keywords): Adjust invocations of
- T1_FIELD_XXX.
-
-2006-07-18 Jens Claudius <[email protected]>
-
- Move creation of field `buildchar' of T1_DecoderRec out of
- `t1_decoder_init' and let the caller of `t1_decoder_init' take care
- of it.
-
- Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
- and `T1_Compute_Max_Advance'.
-
- * include/freetype/internal/psaux.h (T1_DecoderRec): Remove field
- `face', add `len_buildchar'.
-
- * include/freetype/internal/t1types.h (T1_FaceRec): Add field
- `buildchar'.
-
- * src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher
- for T1_Decoder.
- (cid_slot_load_glyph): Do not ignore failure when initializing the
- T1_Decoder.
-
- * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated.
- (t1_decoder_init): Remove initialization of fields `buildchar' and
- `len_buildchar'.
- (t1_decoder_done): Remove deallocation of field `buildchar'.
-
- * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
- T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
- T1_Decoder.
- (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
- `len_buildchar'; make sure to call finisher for T1_Decoder even in
- case of error.
-
- * src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar'
- of T1_FaceRec.
-
- * src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of
- T1_FaceRec.
-
-2006-07-14 Jens Claudius <[email protected]>
-
- * include/freetype/internal/psaux.h: New macros IS_PS_NEWLINE,
- IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
- and IS_PS_BASE85 (from src/psaux/psconv.h).
- (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
- T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
- (T1_DecoderRec): New fields `buildchar' and `face'.
- (IS_PS_TOKEN): New macro.
-
- * include/freetype/internal/t1types.h (T1_FaceRec): New fields
- `ndv_idx', `cdv_idx', and `len_buildchar'.
-
- * include/freetype/t1tables.h (PS_BlendRec): New fields
- `default_design_vector' and `num_default_design_vector'.
-
- * src/psaux/psconv.h: Move macros IS_PS_NEWLINE, IS_PS_SPACE,
- IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, and
- IS_PS_BASE85 to include/freetype/internal/psaux.h.
-
- * src/psaux/psobjs.c (ps_parser_to_token_array): Allow `token'
- argument to be NULL if we want only to count the number of tokens.
- (ps_tocoordarray): Allow `coords' argument to be NULL if we just
- want to skip the array.
- (ps_tofixedarray): Allow `values' argument to be NULL if we just
- want to skip the array.
-
- * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add support
- for (partially commented out) othersubrs 19-25, 27, and 28.
- (t1_decoder_init): Initialize new fields `face' and `buildchar'.
- (t1_decoder_done): Release new field `buildchar'.
-
- * src/type1/t1load.c (parse_buildchar, parse_private): New
- functions.
- (t1_keywords): Register them.
- (t1_allocate_blend): Updated.
- (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
- T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
- (parse_dict): Remove `keyword_flags' argument.
- Use new macro IS_PS_TOKEN.
- Changed function so that later PostScript definitions override
- earlier ones.
- (t1_init_loader): Initialize new field `keywords_encountered'.
- (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
- `len_buildchar'.
- Remove `keywords_flags'.
-
- * src/type1/t1load.h (T1_LoaderRect): New field
- `keywords_encountered'.
- (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
-
- * src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New
- entries for parsing /NDV, /CDV, and /DesignVector.
-
-2006-07-07 Werner Lemberg <[email protected]>
-
- Add many checks to protect against malformed PCF files.
-
- * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
- (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
-
- * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
- data and check that tables don't overlap (using a simple
- bubblesort).
- (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
- New macros which give the size of data structures in the data
- stream.
- (pcf_get_properties): Use rough estimates to get array size limits.
- Assign `face->nprops' and `face->properties' earlier so that a call
- to PCF_Face_Done can do the clean-up in case of error.
- Protect against invalid string offsets.
- (pcf_get_metrics): Clean up code.
- Adjust tracing message levels.
- Use rough estimate to get array size limit.
- (pcf_get_bitmaps): Clean up code.
- Adjust tracing message levels.
- Use rough estimates to get offset limits.
- (pcf_get_encodings): Adjust tracing message level.
- (pcf_get_accel): Clean up code.
-
-2006-06-26 Werner Lemberg <[email protected]>
-
- * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
- don't have a POINT_SIZE property. This fixes Savannah bug #16914.
-
-2006-06-26 Jens Claudius <[email protected]>
-
- * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
- (t1_decoder_parse_charstrings): Operator with
- opcode 15 pops its two arguments.
- Handle the case where the pops of an othersubr may be part of a
- subroutine.
- Handle unknown othersubrs gracefully: count their operands and let
- the following pop operators push the operands as the results onto
- the Type1 stack.
- Improve handling of setcurrentpoint opcode.
-
-2006-06-25 Jens Claudius <[email protected]>
-
- The Type 1 parser now skips over top-level procedures as required
- for a `Simplified Parser'. This makes the parser more robust as it
- doesn't poke around in PostScript code. Additionally, it makes the
- FontDirectory hackery in src/type1/t1load.c unnecessary.
-
- * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
- (skip_literal_string): Add FT_Error as return value.
- Handle escapes better.
- (skip_string): Add FT_Error as return value.
- Don't set `parser->error' but return error code directly.
- (skip_procedure): New function.
- (ps_parser_skip_PS_token): Handle procedures.
- Update code.
- (ps_parser_to_token): Update code.
- (ps_parser_load_field_table): Handle bbox entries also.
-
- * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
- Add commented-out code for synthetic fonts.
-
-2006-06-24 Eugeniy Meshcheryakov <[email protected]>
-
- Fix two hinting bugs as reported in
- http://lists.gnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
-
- * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
- `first_point' member.
-
- * src/truetype/ttgload.c (tt_prepare_zone): Initialize
- `first_point'.
- (TT_Process_Composite_Glyph): Always untouch points.
-
- * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
- `first_point' and `last_point' in case of composite glyphs.
- (Ins_IUP): Fix computation of `end_point'.
-
-2006-06-22 suzuki toshiya <[email protected]>
-
- Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
- Mac. The original patch was written by David Sachitano and Lawrence
- Coopet, and modified by Sean McBride for MPW compatibility. Only
- required data are converted; unused data are left in big endian.
-
- * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
- Mac OS X platforms.
- (OS_INLINE): Undefine before definition.
- (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
- FontAssociation table in FOND resource.
- (count_faces_scalable): Insert EndianS16_BtoN to parse the header
- and fontSize at each entry of FontAssociation table in FOND
- resource.
- (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
- ffStylOff of FamilyRecord header of FOND resource, the header,
- fontSize, fontID at each entry of FontAssociation table, and
- StyleMapping table.
- (count_faces): Call `HUnlock' after all FOND utilization.
-
-2006-06-08 suzuki toshiya <[email protected]>
-
- Public API of TrueTypeGX, OpenType, and classic kern table validator
- should return `FT_Err_Unimplemented_Feature' if validation service
- is unavailable (disabled in `modules.cfg'). It is originally
- suggested by David Turner, cf.
- http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
-
- * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
- FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
- unavailable.
- (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
- classic kern table validation service is unavailable.
-
- * src/base/ftotval.c (FT_OpenType_Validate): Return
- FT_Err_Unimplemented_Feature if OpenType validation service is
- unavailable.
-
-2006-06-08 Werner Lemberg <[email protected]>
-
- * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
- errors.
-
-2006-06-07 David Turner <[email protected]>
-
- * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
- (T1_Read_Metrics): Fix memory leak which happened when the metrics
- file doesn't have kerning pairs. This fixes Savannah bug #16768.
-
-2006-06-06 David Turner <[email protected]>
-
- Fix memory leak described in Savannah bug #16759.
-
- We change `ps_unicodes_init' so that it also takes a
- `free_glyph_name' callback to release the glyph names returned by
- `get_glyph_name'
-
- * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
- Renamed to ...
- (PS_GetGlyphNameFunc): This.
- (PS_FreeGlyphNameFunc): New typedef.
- (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
-
- * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
- argument.
- (cff_sid_free_glyph_name): New function.
- (cff_cmap_unicode_init): Updated.
-
- * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
-
- * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
- PS_FreeGlyphNameFunc and use it.
-
-
-2006-06-04 David Turner <[email protected]>
-
- * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
- `item_size == 0' as well -- though this sounds weird, it can
- theoretically happen. This fixes Savannah bug #16669.
-
- * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
- of `face->num_glyphs' which missed the last glyph, due to
- the offset-by-1 computation, since the PFR format doesn't
- guarantee that glyph index 0 corresponds to the `missing
- glyph. This fixes Savannah bug #16668.
-
-2006-05-25 Werner Lemberg <[email protected]>
-
- * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
- `-no-undefined'. Reported by Christian Biesinger.
-
-2006-05-19 Brian Weed <[email protected]>
-
- * builds/win32/visualc/freetype.dsp: Release libraries no longer
- have debug information, and debug libraries use `C7 compatible'
- debug info.
-
-2006-05-19 suzuki toshiya <[email protected]>
-
- Apply patch by Derek Clegg to fix two memory leaks in the MacOS
- resource fork handler. This fixes Savannah bug #16631.
-
- * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
- `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
-
- * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
- Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
-
-2006-05-19 suzuki toshiya <[email protected]>
-
- * build/unix/configure.raw: Add a fallback to disable Carbon
- dependency, if configured with no options on Mac OS X.
-
-2006-05-19 suzuki toshiya <[email protected]>
-
- * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
- its content cannot be parsed as supported font. This fixes
- the second part of Savannah bug #16590.
-
-2006-05-18 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
- [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
-
-2006-05-17 David Turner <[email protected]>
-
- This is a major patch used to drastically improve the performance of
- loading glyphs. This both speeds up loading the glyph vectors
- themselves and the auto-fitter module.
-
- We now use inline assembler code with GCC to implement `FT_MulFix',
- which is probably the most important function related to the
- engine's performance.
-
- The resulting speed-up is about 25%.
-
-
- * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
- `cursor' and `limit'.
-
- * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
- New functions.
- (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
- [TEST]: Remove.
-
- * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
- code.
-
- * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
- `FT_ZERO'
- (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
- (af_glyph_hints_reload: Rewrite recognition of weak points.
-
- * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
- constant values out of the loops.
-
- * src/autofit/aftypes.h: Updated.
-
- * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
-
- * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
- product to get orientation.
-
- * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
- (FT_Stream_OpenGzip): Use it to handle small files directly in
- memory.
-
- * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
- Improve performance.
-
- * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
- `limit'.
-
- (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
- TT_Load_Composite_Glyph): Updated. Add threshold to protect against
- exceedingly large values of number of contours. Speed up by
- reducing the number of loops.
-
- * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
-
-
- * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
- used to detect rogue clients from 4 to 16. This is to prevent some
- segmentation faults with fonts like `KozMinProVI-Regular.otf' which
- comes from the Japanese Adobe Reader Asian Font pack.
-
-2007-05-17 Werner Lemberg <[email protected]>
-
- * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
- fixes the first part of Savannah bug #16590.
-
-2006-05-16 Werner Lemberg <[email protected]>
-
- * docs/PROBLEMS: Updated icl issues.
-
-----------------------------------------------------------------------------
-
-Copyright 2006, 2007, 2008, 2009, 2010 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.
-
-
-Local Variables:
-version-control: never
-coding: utf-8
-End:
+2010-02-13 Werner Lemberg <[email protected]> + + * Version 2.3.12 released. + ========================== + + + Tag sources with `VER-2-3-12'. + + * docs/CHANGES: Updated. + + * docs/VERSION.DLL: Update documentation and bump version number to + 2.3.12. + + * README, Jamfile (RefDoc), + builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, + builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj, + builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, + builds/win32/visualce/freetype.vcproj, + builds/win32/visualce/index.html, + builds/wince/vc2005-ce/freetype.vcproj, + builds/wince/vc2005-ce/index.html, + builds/wince/vc2008-ce/freetype.vcproj, + builds/wince/vc2008-ce/index.html: s/2.3.11/2.3.12/, s/2311/2312/. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 12. + + * builds/unix/configure.raw (version_info): Set to 10:0:4. + +2010-02-12 suzuki toshiya <[email protected]> + + Improve autotool version checking to work with beta releases. + + * autogen.sh (check_tool_version): Improve the extraction of version + number from "tool --version" output. Some beta releases of + autotools have extra strings before version number. + +2010-02-12 suzuki toshiya <[email protected]> + + Fix overallocating bug in FT_Outline_New_Internal(). + + * src/base/ftoutln.c (FT_Outline_New_Internal): The length of + FT_Outline->points[] should be numPoints, not 2 * numPoints. + Found by Paul Messmer, see + http://lists.gnu.org/archive/html/freetype-devel/2010-02/msg00003.html + +2010-02-10 Ken Sharp <[email protected]> + + Really fix Savannah bug #28678 (part 2). + + Since we consider `sbw' for the horizontal direction only, we still have + to synthesize vertical metrics if the user wants to use the vertical + writing direction. + + * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c + (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): + Synthesize vertical metrics (only) if FT_LOAD_VERTICAL_LAYOUT is + set. + +2010-02-10 Ken Sharp <[email protected]> + + Really fix Savannah bug #28678 (part 1). + + After long discussion, we now consider the character width vector + (wx,wy) returned by the `sbw' Type 1 operator as being part of *one* + direction only. For example, if you are using the horizontal + writing direction, you get the horizontal and vertical components of + the advance width for this direction. Note that OpenType and CFF fonts + don't have such a vertical component; instead, the GPOS table can be + used to generate two-dimensional advance widths (but this isn't + handled by FreeType). + + * include/freetype/ftincrem.h (FT_Incremental_MetricsRec): Add + `advance_v' field to hold the vertical component of the advance + value. + + * src/truetype/ttgload.c (tt_get_metrics), src/cff/cffgload.c + (cff_slot_load), src/type1/t1gload.c + (T1_Parse_Glyph_And_Get_Char_String), src/cid/cidgload.c + (cid_load_glyph): Use it. + +2010-02-08 Werner Lemberg <[email protected]> + + * devel/ftoption.h [FT_CONFIG_OPTION_PIC]: Define. + +2010-02-04 suzuki toshiya <[email protected]> + + Prevent NULL pointer dereference passed to FT_Module_Requester. + + * src/sfnt/sfdriver.c (sfnt_get_interface): Don't use `module'. + * src/psnames/psmodule.c (psnames_get_interface): Ditto. + + * src/cff/cffdrivr.c (cff_get_interface): Check NULL `driver'. + * src/truetype/ttdriver.c (tt_get_interface): Ditto. + +2010-01-29 suzuki toshiya <[email protected]> + + Fix memory leaks in previous patch. + + * src/sfnt/sfobjs.c (sfnt_load_face): Don't overwrite the strings + allocated for face->root.family_name and style_name. + +2010-01-29 suzuki toshiya <[email protected]> + + New parameters for FT_Open_Face() to ignore preferred family names. + + Preferred family names should be used for legacy systems that + can hold only a few faces (<= 4) for a family name. Suggested by + Andreas Heinrich. + http://lists.gnu.org/archive/html/freetype/2010-01/msg00001.html + + * include/freetype/ftsnames.h (FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY, + FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Define. + + * src/sfnt/sfobjs.h (sfnt_load_face): Check the arguments and + ignore preferred family and subfamily names if requested. + +2010-01-27 Ken Sharp <[email protected]> + + Fix Savannah bug #28678. + + * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c + (cid_load_glyph): Handle vertical metrics correctly. + + * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Handle + vertical metrics correctly. + (T1_Load_Glyph): Don't synthesize vertical metrics. + +2010-01-14 Werner Lemberg <[email protected]> + + Make FT_Set_Transform work if no renderer is available. + + * src/base/ftobjs.c (FT_Load_Glyph): Apply `standard' transformation + if no renderer is compiled into the library. + +2010-01-14 Werner Lemberg <[email protected]> + + Fix compilation warning. + + * src/base/ftbase.h: s/LOCAL_DEF/LOCAL/. + * src/base/ftobjc.s: Include ftbase.h conditionally. + +2010-01-11 Kwang Yul Seo <[email protected]> + + Provide inline assembly code for RVCT compiler. + This is Savannah patch #7059. + + * include/freetype/config/ftconfig.h (FT_MULFIX_ASSEMBLER, + FT_MulFix_arm) [__CC_ARM || __ARM_CC]: Define. + +2010-01-08 Ken Sharp <[email protected]> + + Fix Savannah bug #28521. + + Issue #28226 involved a work-around for a font which used the + `setcurrentpoint' operator in an invalid way; this operator is only + supposed to be used with the result of OtherSubrs, and the font used + it directly. The supplied patch removed the block of code which + checked this usage entirely. + + This turns out to be a Bad Thing. If `setcurrentpoint' is being + used correctly it should reset the flex flag in the decoder. If we + don't do this then the flag never gets reset and we omit any further + contours from the glyph (at least until we close the path or + similar). + + * src/psaux/t1decode.c (t1_decoder_parse_charstrings) + <op_setcurrentpoint>: Handle `flex_state' correctly. + +2010-01-05 Werner Lemberg <[email protected]> + + Apply reports from clang static analyzer. + + * src/lzw/ftlzw.c (ft_lzw_file_init), src/base/ftstroke.c + (FT_Stroker_ParseOutline), src/base/ftsynth.c + (FT_GlyphSlot_Embolden): Remove dead code. + + * src/base/ftpatent.c (_tt_check_patents_in_table): Initialize + `offset_i' and `length_i'. + +2010-01-05 Ralph Giles <[email protected]> + + Enable the incremental font interface by default. + + Ghostscript requires the incremental font interface for handling + some Postscript documents. It is moving to using FreeType as its + primary renderer; supporting this in the default build makes it + Ghostscript to be linked against the system FreeType when one is + available. + + * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL): + Uncomment. + +2010-01-05 Werner Lemberg <[email protected]> + + Fix Savannah bug #28395. + + * src/truetype/ttdriver.c (Load_Glyph), src/type1/t1gload.c + (T1_Loada_Glyph): Don't check `num_glyphs' if incremental interface + is used. + +2010-01-05 Ken Sharp <[email protected]> + + Make Type 1 `seac' operator work with incremental interface. + This fixes Savannah bug #28480. + + * src/psaux/t1decode.c (t1operator_seac): Don't check `glyph_names' + if incremental interface is used. + +2010-01-04 Ken Sharp <[email protected]> + + Make incremental interface work with TrueType fonts. + This fixes Savannah bug #28478. + + * src/truetype/ttgload.c (load_truetype_glyph): Don't check + `glyf_offset' if incremental interface is used. + +2009-12-31 Lars Abrahamsson <[email protected]> + + Make compilation with FT_CONFIG_OPTION_PIC work again. + + * src/base/ftglyph.c (FT_Glyph_To_Bitmap) [FT_CONFIG_OPTION_PIC]: + Declare `library' for FT_BITMAP_GLYPH_CLASS_GET. + + * src/base/ftinit.c (ft_destroy_default_module_classes, + ft_create_default_module_classes): Use proper casts (needed for C++ + compilation). + + * src/sfnt/ttcmap.c (tt_cmap13_class_rec): Use FT_DEFINE_TT_CMAP. + +2009-12-22 Marc Kleine-Budde <[email protected]> + + Make freetype-config aware of $SYSROOT. + This is Savannah patch #7040. + + * builds/unix/freetype-config.in: Decorate with ${SYSROOT} where + appropriate. + +2009-12-20 Werner Lemberg <[email protected]> + + Fix compiler warning. + Reported by Sean. + + * src/base/ftdbgmem.c [!FT_DEBUG_MEMORY]: ANSI C doesn't like empty + source files; however, some compilers warn about an unused variable + declaration. This is now replaced with a typedef. + +2009-12-18 Werner Lemberg <[email protected]> + + Fix Savannah bug #28320. + + There exist corrupt, subsetted fonts (embedded in PDF files) which + contain a private dict that ends with an unterminated floating point + number (no operator following). We now ignore this error (as + acrobat does). + + * src/cff/cffparse.c (cff_parser_run): Don't emit a syntax error for + unterminated floating point numbers. + +2009-12-16 Werner Lemberg <[email protected]> + + Really fix compiler warnings. + Reported by Sean. + + * src/truetype/ttgxvar.c (GX_PT_POINTS_ARE_WORDS, + GX_PT_POINT_RUN_COUNT_MASK): Convert enum values to macros. + +2009-12-16 suzuki toshiya <[email protected]> + + Improve configure.raw to copy some options from CFLAGS to LDFLAGS. + The linker of Mac OS X 10.6 is sensitive to the architecture. If + the architectures are specified explicitly for the C compiler, the + linker requires the architecture specifications too. + + * builds/unix/configure.raw: Replace `-isysroot' option parser by + more generic argument parser. + +2009-12-15 Werner Lemberg <[email protected]> + + Fix compiler warnings. + Reported by Sean. + + * src/truetype/ttgxvar.c (ft_var_readpackeddeltas): Fix counter data + type. + +2009-12-14 Ken Sharp <[email protected]> + + Ignore invalid `setcurrentpoint' operations in Type 1 fonts. + This fixes Savannah bug #28226. + + At least two wild PostScript files of unknown provenance contain + Type 1 fonts, apparently converted from TrueType fonts in earlier + PDF versions of the files, which use the `setcurrentpoint' operator + inappropriately. + + FreeType currently throws an error in this case, but Ghostscript and + Adobe Distiller both accept the fonts and ignore the problem. This + commit #ifdefs out the check so PostScript interpreters using + FreeType can render these files. + + The specification says `setcurrentpoint' should only be used to set + the point after a `Subr' call, but these fonts use it to set the + initial point to (0,0). Unnecessarily so, as they correctly use an + `hsbw' operation which implicitly sets the initial point. + + * src/psaux/t1decode.c (t1_decoder_parse_charstrings) + <op_setcurrentpoint>: Comment out code. + +2009-12-14 Bram Tassyns <[email protected]> + + Fix parsing of /CIDFontVersion. + This fixes Savannah bug #28287. + + * src/cid/cidtoken.h: `cid_version' in CID_FaceInfoRec (in + t1tables.h) is of type FT_Fixed. + +2009-12-14 Werner Lemberg <[email protected]> + + Trace glyph index in CID module. + Suggested in Savannah patch #7023. + + * src/cid/cidgload.c (cid_load_glyph): Add tracing message. + +2009-12-03 Werner Lemberg <[email protected]> + + Fix compiler warnings. + + * src/truetype/ttgload.c (tt_get_metrics): Put `Exit' label into the + proper preprocessor conditional. + * src/pfr/pfrobjs.c (pfr_slot_load): Pacify gcc. + +2009-11-25 John Tytgat <[email protected]> + + Better handling of start of `eexec' section. + This fixes Savannah bug #28090. + + * src/type1/t1parse.c (T1_Get_Private_Dict): Skip all whitespace + characters before start of `eexec' section. + +2009-11-20 Werner Lemberg <[email protected]> + + Fix Savannah bug #27742. + + * src/base/ftstroke.c (ft_stroker_outside): Avoid silent division by + zero, using a threshold for `theta'. + +2009-11-20 Werner Lemberg <[email protected]> + + Fix Savannah bug #28036. + + * src/type1/t1afm.c (t1_get_index): Fix comparison. + +2009-11-16 Werner Lemberg <[email protected]> + + Fix compiler warnings. + Reported by Kevin Blenkinsopp <[email protected]>. + + * src/sfnt/ttload.c (check_table_dir): Use proper data type. + +2009-11-15 Werner Lemberg <[email protected]> + + Really fix FreeDesktop bug #21197. + This also fixes Savannah bug #28021. + + * src/autofit/aflatin.c (af_latin_metrics_check_digits), + src/autofit/aflatin2.c (af_latin2_metrics_check_digits): Fix loop. + +2009-11-15 Werner Lemberg <[email protected]> + + Add tracing messages for advance values. + + * src/base/ftobjs.c (FT_Load_Glyph), src/truetype/ttgload.c + (TT_Get_HMetrics, TT_Get_VMetrics): Do it. + +2009-11-08 Werner Lemberg <[email protected]> + + Fix compiler warning. + Reported by Jeremy Manson <[email protected]>. + + * src/truetype/ttgload.c (load_truetype_glyph): Initialize `error'. + +2009-11-04 Werner Lemberg <[email protected]> + + Remove compiler warning. + Reported by Sean McBride <[email protected]>. + + * src/tools/apinames.c (read_header_file)<STATE_TYPE>: Use a cast to + `int', as specified in the printf(3) man page. + +2009-11-04 Werner Lemberg <[email protected]> + + Fix Savannah bug #27921. + + * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c + (cid_face_init), src/type1/t1afm.c (T1_Read_Metrics), + src/type1/t1objs.c (T1_Face_Init): Don't use unsigned constant + values for rounding if the argument can be negative. + +2009-11-03 Bram Tassyns <[email protected]> + + Add basic support for Type1 charstrings in CFF. + This fixes Savannah bug #27922. + + * src/cff/cffgload.c (CFF_Operator, cff_argument_counts): Handle + `seac', `sbw', and `setcurrentpoint' opcodes. + (cff_compute_bias): Add parameter to indicate the charstring type. + Update all callers. + (cff_operator_seac): Add parameter for side bearing. + (cff_decoder_parse_charstrings): Updated for more Type1 support. + +2009-11-03 Werner Lemberg <[email protected]> + + Return correct `linearHoriAdvance' value for embedded TT bitmaps too. + Reported by Jeremy Manson <[email protected]>. + + src/truetype/ttgload.c (load_truetype_glyph): Add parameter to + quickly load the glyph header only. + Update all callers. + (tt_loader_init): Add parameter to quickly load the `glyf' table + only. + Update all callers. + (TT_Load_Glyph): Compute linear advance values for embedded bitmap + glyphs too. + +2009-11-03 Werner Lemberg <[email protected]> + + Improve code readability. + + * src/ttgload.c (load_truetype_glyph): Move metrics calculation + to... + (tt_get_metrics): This new function. + +2009-10-26 Bram Tassyns <[email protected]> + + Fix Savannah bug #27811. + + * src/truetype/ttxgvar.c (ft_var_readpackeddeltas): Fix + signed/unsigned mismatch. + +2009-10-19 Ning Dong <[email protected]> + + Fix handling of `get' and `put' CFF instructions. + + * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_get, + cff_op_put>: Appendix B of Adobe Technote #5177 limits the number of + elements for the `get' and `put' operators to 32. + * src/cff/cffgload.h (CFF_MAX_TRANS_ELEMENTS): Define. + (CFF_Decoder): Use it for `buildchar' and remove `len_buildchar'. + +2009-10-18 Werner Lemberg <[email protected]> + + Fix handling of `dup' CFF instruction. + Problem and solution reported by Ning Dong <[email protected]>. + + * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_dup>: + Increase `args' by 2, not 1. + +2009-10-10 Werner Lemberg <[email protected]> + + * Version 2.3.11 released. + ========================== + + + Tag sources with `VER-2-3-11'. + + * docs/VERSION.DLL: Update documentation and bump version number to + 2.3.11. + + * README, Jamfile (RefDoc), builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj, + builds/win32/visualce/index.html, + builds/win32/visualce/freetype.dsp, + builds/win32/visualce/freetype.vcproj: s/2.3.10/2.3.11/, s/2310/2311/. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 11. + + * builds/unix/configure.raw (version_info): Set to 9:22:3. + +2009-10-10 Werner Lemberg <[email protected]> + + * docs/CHANGES, docs/release: Updated. + +2009-10-10 suzuki toshiya <[email protected]> + + * src/pcf/pcfread.c (pcf_get_properties): Fix a bug in the nprops + truncation. Reported by Martin von Gagern and Peter Volkov. + https://bugs.gentoo.org/288357 and https://bugs.gentoo.org/288256 + +2009-10-06 Werner Lemberg <[email protected]> + + * Version 2.3.10 released. + ========================== + + + Tag sources with `VER-2-3-10'. + + * builds/toplevel.mk (major, minor, patch): Fix regexp to allow more + than a single digit. + (dist): We now use git. + + * docs/VERSION.DLL: Update documentation and bump version number to + 2.3.10. + + * README, Jamfile (RefDoc), builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj, + builds/win32/visualce/index.html, + builds/win32/visualce/freetype.dsp, + builds/win32/visualce/freetype.vcproj: s/2.3.9/2.3.10/, s/239/2310/. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10. + + * builds/unix/configure.raw (version_info): Set to 9:21:3. + +2009-10-06 Werner Lemberg <[email protected]> + + Fix `make multi'. + + * src/cache/ftccache.c, src/cache/ftcsbits.c (FT_COMPONENT): Define. + + * src/sfnt/sfdriver.c: Include FT_INTERNAL_DEBUG_H. + +2009-09-27 suzuki toshiya <[email protected]> + + [cache] Fix Savannah bug #27441, clean up Redhat bugzilla #513582. + Tricky casts in FTC_{CACHE,GCACHE,MRULIST}_LOOKUP_CMP() are removed. + Now these functions should be called with FTC_Node or FTC_MruNode + variable, and the caller should cast them to appropriate pointers to + concrete data. These tricky casts can GCC-4.4 optimizer (-O2) + confused and the crashing binaries are generated. + + * src/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Drop tricky cast. + Now the 4th argument `node' of this function should be typed as + FTC_MruNode. + + * src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): For inline + implementation, new temporal variable FTC_MruNode `_mrunode' to take + the pointer from FTC_MRULIST_LOOKUP_CMP(). For non-inline + implementation, tricky cast is dropped. + + * src/cache/ftcmanag.c (FTC_SIZE_NODE): New macro casting + to FTC_SizeNode. + (FTC_Manager_LookupSize): Replace FTC_SizeNode `node' by FTC_MruNode + `mrunode', and FTC_SIZE_NODE() is inserted. + (FTC_FACE_NODE): New macro casting to FTC_FaceNode. + (FTC_Manager_LookupFace) Replace FTC_FaceNode `node' by FTC_MruNode + `mrunode', and FTC_FACE_NODE() is inserted. + + * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Change the type of + `node' from FTC_INode to FTC_Node. Extra casting macro FTC_NODE() + is dropped. + (FTC_ImageCache_LookupScaler): Ditto. + (FTC_SBitCache_Lookup): Change the type of `node' from FTC_SNode to + FTC_Node. Extra casting macro FTC_NODE() is dropped. FTC_SNODE() + is inserted. + (FTC_SBitCache_LookupScaler): Ditto. + + * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the type of + `node' from FTC_CMapNode to FTC_Node. Extra casting macro + FTC_NODE() is dropped, FTC_CMAP_NODE() is inserted. + +2009-09-25 suzuki toshiya <[email protected]> + + [cache, psaux, type1] Fix for multi build. + In multi build, some cpp functions are left as unresolved symbols. + + * src/cache/ftcbasic.c: Include FT_INTERNAL_DEBUG_H for FT_TRACE1(). + + * src/psaux/t1decode.c: Include FT_INTERNAL_CALC_H for + FIXED_TO_INT(). + * src/type1/t1gload.c: Ditto. + * src/type1/t1objs.c: Ditto. + +2009-09-25 suzuki toshiya <[email protected]> + + [autofit] Fix for multi build. + + * src/autofit/afmodule.h: Include FT_INTERNAL_OBJECTS_H to use + FT_DECLARE_MODULE() macro in multi build. + + * src/autofit/aflatin.c: Include <ft2build.h> to handle + FT_ADVANCES_H correctly in multi build. + +2009-09-24 suzuki toshiya <[email protected]> + + [cache] Check the face filled by FTC_Manager_LookupFace(). + + * src/cache/ftcbasic.c (ftc_basic_family_get_count): Return + immediately if FTC_Manager_LookupFace() fills face by NULL. Such + case can occur when the code is optimized by GCC-4.2.x. + +2009-09-23 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2009-09-12 Werner Lemberg <[email protected]> + + [raster] Fix 5-levels grayscale output. + This was broken since version 2.3.0. + + * src/raster/ftraster.c (count_table): Use pre-2.3.0 values (which + were then computed dynamically). + (Vertical_Gray_Sweep_Step): Updated. + + (ft_black_render): Initialize `worker->gray_lines' (problem found by + valgrind). + + (FT_RASTER_OPTION_ANTI_ALIASING, DEBUG_RASTER): Dont' #undef, just + comment out. + +2009-09-12 suzuki toshiya <[email protected]> + + Improve configure.raw for cross build. + + * builds/unix/configure.raw: Remove temporal files created by the + suffix checking for CC_BUILD. Set XX_ANSIFLAGS and XX_CFLAGS when + cross compiler is GCC. AC_PROG_CC checks whether the cross compiler + is GCC, its result is stored in GCC. + +2009-09-12 suzuki toshiya <[email protected]> + + [BDF] Modify hash API to take size_t value instead of void *. + + The hash API in BDF driver is designed to be generic, it takes + void * typed data. But BDF driver always gives an unsigned long + integer (the index to a property). To reduce non-essential + casts from unsigned long to void* and from void* to unsigned + long, the hash API is changed to take size_t integer. + The issue of incompatible cast between unsigned long and void* + on LLP64 platform is reported by NightStrike from MinGW-Win64 + project. See + http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html + + * src/bdf/bdf.h: The type of hashnode->data is changed from + void* to size_t. + + * src/bdf/bdflib.c (hash_insert): Get size_t data, instead of + void* data. + (bdf_create_property): Get the name length of new property by + size_t variable, with a cut-off at FT_ULONG_MAX. + (_bdf_set_default_spacing): Get the name length of the face by + size_t variable, with a cut-off at 256. + (bdf_get_property): Get the property id by size_t variable to + reduce the casts between 32-bit prop ID & hashnode->data during + simple copying. + (_bdf_add_property): Ditto. + (_bdf_parse_start): Calculate the index to the property array + by size_t variable. + (bdf_get_font_property): Drop a cast to unsigned long. + +2009-09-10 suzuki toshiya <[email protected]> + + [Win64] Improve the computation of random seed from stack address. + + On LLP64 platform, the conversion from pointer to FT_Fixed need + to drop higher 32-bit. Explict casts are required. Reported by + NightStrike from MinGW-w64 project. See + http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html + + * src/cff/cffgload.c: Convert the pointers to FT_Fixed explicitly. + + * src/psaux/t1decode.c: Ditto. + + +2009-09-03 Werner Lemberg <[email protected]> + + [raster] Improvements for stand-alone mode. + + * src/raster/rules.mk: Don't handle ftmisc.h. It is needed for + stand-alone mode only. + + * src/raster/ftmisc.h (FT_MemoryRec , FT_Alloc_Func, FT_Free_Func, + FT_Realloc_Func): Copy declarations from ftsystem.h. + +2009-09-02 Bram Tassyns <[email protected]> + + Improve vertical metrics calculation (Savannah bug #27364). + + The calculation of `vertBearingX' is not defined in the OTF font + spec so FreeType does a `best effort' attempt. However, this value + is defined in the PDF and PostScript specs, and that algorithm is + better than the one FreeType currently uses: + + FreeType: Use the middle of the bounding box as the X coordinate + of the vertical origin. + + Adobe PDF spec: Use the middle of the horizontal advance vector as + the X coordinate of the vertical origin. + + FreeType's algorithm goes wrong if you have a really small glyph + (like the full-width, circle-like dot at the end of the sentence, as + used in CJK scripts) with large bearings. With the FreeType + algorithm this dot gets centered on the baseline; with the PDF + algorithm it gets the correct location (in the top right). Note + that this is a serious issue, it's like printing the dot at the end + of a Roman sentence at the center of the textline instead of on the + baseline like it should. So i believe the PDF spec's algorithm + should be used in FreeType as well. + + The `vertBearingY' value for such small glyphs is also very strange + if no `vmtx' information is present, since the height of the bbox is + not representable for the height of the glyph visually (the + whitespace up to the baseline is part of the glyph). The fix also + includes some code for a better estimate of `vertBearingY'. + + * src/base/ftobjs.c (ft_synthesize_vertical_metrics): `vertBearingX' + is now calculated as described by the Adobe PDF Spec. Estimate for + `vertBearingY' now works better for small glyphs completely above or + below the baseline into account. + + * src/cff/cffgload.c (cff_slot_load): `vertBearingX' is now + calculated as described by the Adobe PDF Spec. Vertical metrics + information was always ignored when FT_CONFIG_OPTION_OLD_INTERNALS + was not defined. + + * src/truetype/ttgload.c (compute_glyph_metrics): `vertBearingX' is + now calculated as described by the Adobe PDF Spec. + +2009-09-01 John Tytgat <[email protected]> + + Fix custom cmap for empty Type 1 font (Savannah bug #27294). + + * include/freetype/internal/t1types.h (T1_EncodingRecRec_): Update + comment to reflect revised code_last meaning. + * src/type1/t1load.c (T1_Open_Face), src/type42/t42objs.c + (T42_Open_Face): Assign max_char as highest character code + 1 and + use this for T1_EncodingRecRec_::code_last. + * src/psaux/t1cmap.c (t1_cmap_custom_init): Follow revised + T1_EncodingRecRec_::code_last meaning. + +2009-08-25 Werner Lemberg <[email protected]> + + Fix rendering of horizontally compressed CFFs. + Bug reported by Ivan Nincic <[email protected]>. + + * src/cff/cffgload.c (cff_slot_load): Thinko: Check `xx' element of + `font_matrix' also. + + * docs/CHANGES: Updated. + +2009-08-03 [email protected] + + Don't call `ft_fseek' every time when executing `ft_fread'. + + * src/base/ftstream.c (FT_Stream_Seek), src/base/ftsystem.c + (ft_ansi_stream_io): Implement it. + +2009-07-31 suzuki toshiya <[email protected]> + + sfnt: Cast a charcode to 32-bit in cmap format 14 parser. + + * src/sfnt/ttcmap.c (tt_cmap14_char_var_index, + tt_cmap14_char_var_isdefault, tt_cmap14_char_variants, + tt_cmap14_variant_chars): Correct mismatches from + FT_CMap_CharVarIndexFunc prototype, FT_ULong arguments + are replaced by FT_UInt32 arguments. + +2009-07-31 suzuki toshiya <[email protected]> + + sfnt: Cast a charcode to 32-bit in cmap format 12 parser. + + * src/sfnt/ttcmap.c (tt_cmap12_char_next): + Insert explicit cast from FT_UFast to FT_UInt32 + for return value. + +2009-07-31 suzuki toshiya <[email protected]> + + psaux: Fix a few casts to FT_Int32 value. + + * src/psaux/t1decode.c (t1_decoder_parse_charstrings): + Fix a few casts setting `value' from FT_Long to FT_Int32, + because `value' is typed as FT_Int32 since 2009-06-22. + +2009-07-31 suzuki toshiya <[email protected]> + + sfnt: Fix a data type mismatching with its source. + + * src/sfnt/ttcmap.c (tt_cmap13_char_next): Fix the + type of `gindex' from FT_ULong to FT_UInt because + it is set by FT_UInt tt_cmap13_char_map_binary() or + TT_CMap13->cur_gindex. + +2009-07-31 suzuki toshiya <[email protected]> + + sfnt: Extend a few local variables to load 32-bit values. + + * src/sfnt/ttkern.c (tt_face_load_kern): Extend `count' + and `kern' to load 32-bit values. + +2009-07-31 suzuki toshiya <[email protected]> + + pfr: Extend `num_aux' to take 32-bit value. + + * src/pfr/pfrload.c (pfr_phy_font_load): Extend + `num_aux' to load 32-bit value. + +2009-07-31 suzuki toshiya <[email protected]> + + pcf: Truncate FT_ULong `nprops' to fit to int PCF_Face->nprops. + + * src/pcf/pcfread.c (pcf_get_properties): Load `nprops' + as FT_ULong value from PCF file, but truncate it as + int to fit PCF_Face->nprops. The number of truncated + properties is shown in the trace message. + +2009-07-31 suzuki toshiya <[email protected]> + + gxvalid: Extend a few local variables to reduce the casts. + + * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate): + Extend `type' and `rest' to take FT_ULong values. + +2009-07-31 suzuki toshiya <[email protected]> + + gxvalid: Extend `settingTable' to take 32-bit offset. + + * src/gxvalid/gxvfeat.c (gxv_feat_name_validate): + Extend `settingTable' to take 32-bit offset. + +2009-07-31 suzuki toshiya <[email protected]> + + autofit: Cast FT_Long glyph_count to compare with FT_UInt GID. + + * src/autofit/afglobal.c (af_face_globals_is_digit, + af_face_globals_compute_script_coverage): Cast FT_Long + globals->glyph_count to FT_ULong, to compare with FT_UInt + gindex. + +2009-07-31 suzuki toshiya <[email protected]> + + smooth: Exclude 16-bit system in invalid pitch/height check. + + * src/smooth/ftsmooth.c (ft_smooth_render_generic): + pitch and height are typed as FT_UInt but checked to fit + 16-bit range, to avoid the overflows. On 16-bit system, + this checking inserts a conditional that never occurs. + +2009-07-03 suzuki toshiya <[email protected]> + + cff: Type large constants > 0x7FFF as long for 16-bit systems. + + * src/cff/cffload.c (cff_charset_load): Type large + constants > 0x7FFF as long, because normal constants + are typed signed integer that is less than 0x8000 on + 16-bit systems. + +2009-07-31 suzuki toshiya <[email protected]> + + base: Remove an unused variable. + + * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove an + unused variable `library'. glyph->library is used. + +2009-07-31 suzuki toshiya <[email protected]> + + cache: Check higher bits in flags for non ILP32 systems. + + 4 public functions ought to take FT_ULong flags, but take + FT_UInt flags. To keep binary compatibility, we drop higher + bits on non ILP32 platforms, + ILP64 systems: No drop occurs. + LP64 systems: Higher bits are not used. + 16-bit systems: Drop can occur. + See + http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00065.html + These functions will be refined to take FT_ULong flags in + next bump with incompatible API change. + + * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): + Check `flags' in `type', the 2nd argument. + (FTC_SBitCache_Lookup): Ditto. + (FTC_ImageCache_LookupScaler): Check `load_flags', + the 3rd argument. + (FTC_SBitCache_LookupScaler): Ditto. + +2009-07-31 suzuki toshiya <[email protected]> + + sfnt: Ignore invalid GIDs in glyph name lookup. + + * include/freetype/internal/fttrace.h: + New trace module for sfdriver.c is added. + + * src/sfnt/sfdriver.c (sfnt_get_name_index): + Restrict glyph name lookup to FT_UInt GID. + Genuine TrueType can hold 16-bit glyphs. + +2009-07-31 suzuki toshiya <[email protected]> + + pcf: Fix a comparison between FT_Long and FT_ULong. + + * src/pcf/pcfread.c (pcf_get_bitmaps): Return an error + if PCF_Face->nemetrics is negative. + +2009-07-31 suzuki toshiya <[email protected]> + + gxvalid: Guarantee `nFeatureFlags' size up to 32-bit. + + * src/gxvalid/gxvmort.c (gxv_mort_featurearray_validate): + Extend the 3rd argument `nFeatureFlags' to FT_ULong. + * src/gxvalid/gxvmort.h: Ditto. + +2009-07-31 suzuki toshiya <[email protected]> + + sfnt: Insert explicit cast for LP64 system. + + * src/sfnt/ttkern.c (tt_face_load_kern): Insert + cast from unsigned long to FT_UInt32. + +2009-07-31 suzuki toshiya <[email protected]> + + gxvalid: Guarantee `just' table size upto 32-bit. + + * src/gxvalid/gxvjust.c (gxv_just_validate): + The type of `offset' is changed from FT_UInt to + FT_Offset, for 16-bit platforms. + +2009-07-31 suzuki toshiya <[email protected]> + + gxvalid: Guarantee `trak' table size upto 32-bit. + + * src/gxvalid/gxvtrak.c (gxv_trak_validate): + The type of `offset' is changed from FT_UInt to + FT_Offset, for 16-bit platforms. + +2009-07-31 suzuki toshiya <[email protected]> + + type1: Fix a data type mismatching with its source. + + * include/freetype/internal/t1types.h: The type of + T1_Face->buildchar is matched with T1_Decorder->top. + +2009-07-31 suzuki toshiya <[email protected]> + + pfr: Fix a data type mismatching with its source. + + * src/pfr/pfrtypes.h: The type of PFR_KernItem->offset + is extended from FT_UInt32 to FT_Offset, because it is + calculated with the pointer difference, in + pfr_extra_item_load_kerning_pairs(). + +2009-07-31 suzuki toshiya <[email protected]> + + pfr: Fix a data type mismatching with its source. + + * src/pfr/pfrtypes.h: The type of PFR_PhysFont->chars_offset + is extended from FT_UInt32 to FT_Offset, because it is + calculated with the pointer difference in pfr_phy_font_load(). + +2009-07-31 suzuki toshiya <[email protected]> + + pfr: Fix a data type mismatching with its source. + + * src/pfr/pfrtypes.h: The type of PFR_PhyFont->bct_offset + is extended from FT_UInt32 to FT_Long, because it is + loaded by FT_STREAM_POS() in pfr_phy_font_load(). + +2009-07-31 suzuki toshiya <[email protected]> + + smooth: Improve the format in debug message. + + * src/smooth/ftgrays.c (gray_dump_cells): Improve the + format specifications to dump variables. + +2009-07-31 suzuki toshiya <[email protected]> + + sfnt: Fix a data type mismatching with its source. + + * src/sfnt/sfobjs.c (sfnt_load_face): The type of + local `flags' is matched with FT_Face->face_flags. + +2009-07-31 suzuki toshiya <[email protected]> + + psaux: Fix a data type mismatching with its source. + + * include/freetype/internal/psaux.h: The type of + T1_DecorderRec.buildchar is matched with + T1_DecorderRec.top. + +2009-07-31 suzuki toshiya <[email protected]> + + truetype: Extend TrueType GX packed deltas to FT_Offset. + + * src/truetype/ttgxvar.c (ft_var_readpackeddeltas): + The type of 2nd argument `delta_cnt' is changed from + FT_Int to FT_Offset, because its source can be cvt + table size calculated from stream position. + +2009-07-31 suzuki toshiya <[email protected]> + + truetype: Extend mmvar_len to hold size_t values. + + * src/truetype/ttgxvar.h: The type of + GX_BlendRec.mmvar_len is changed from FT_Int to + FT_Offset, because TT_Get_MM_Var() calculates it + by sizeof() results. + +2009-07-31 suzuki toshiya <[email protected]> + + truetype: Check invalid function number in IDEF instruction. + + * src/truetype/ttinterp.c (Ins_IDEF): Check + if the operand fits to 8-bit opcode limitation. + +2009-07-31 suzuki toshiya <[email protected]> + + truetype: Check invalid function number in FDEF instruction. + + * src/truetype/ttinterp.c (Ins_FDEF): Check + if the operand fits 16-bit function number. + +2009-07-31 suzuki toshiya <[email protected]> + + truetype: Truncate the deltas of composite glyph at 16-bit values. + + * src/truetype/ttgload.c (load_truetype_glyph): + Insert cast from FT_Long (deltas[i].{x,y}) to + FT_Int16 in the summation of deltas[] for composite + glyphs. Because deltas[i] is typed as FT_Pos, + its component x, y are typed as FT_Long, but + their sources are always FT_Int16 when they are + loaded by ft_var_readpackeddeltas(). However, + the limitation about the summed deltas is unclear. + +2009-07-31 suzuki toshiya <[email protected]> + + truetype: Truncate the instructions upto 16-bit per a glyph. + + * src/truetype/ttgload.c (TT_Hint_Glyph): Truncate + the instructions upto 16-bit length per a glyph. + +2009-07-31 suzuki toshiya <[email protected]> + + truetype: Cast the numerical operands to 32-bit for LP64 systems. + + * src/truetype/ttinterp.c (Ins_SPHIX, INS_MIAP, + Ins_MIRP): Insert cast from long (args[], the + operands passed to TrueType operator) to FT_Int32 + (the argument of TT_MulFix14()). + +2009-07-31 suzuki toshiya <[email protected]> + + truetype: Cast the project vector to 32-bit for LP64 system. + + * src/truetype/ttinterp.c (Project, DualProject): + Insert casts from FT_Pos (the arguments `dx', `dy') + to FT_UInt32 (the argument to TT_DotFix14()). + +2009-07-31 suzuki toshiya <[email protected]> + + truetype: Cast the scaling params to 32-bit for LP64 system. + + * src/truetype/ttgload.c (TT_Process_Composite_Component): + Insert casts from long (return value of FT_MulFix()) to + FT_Int32 (the argument to FT_SqrtFixed()). + +2009-07-31 suzuki toshiya <[email protected]> + + sfnt: Cast a character code to FT_UInt32 for LP64 system. + + * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary, + tt_cmap14_variants, tt_cmap14_char_variants, + tt_cmap14_def_char_count, tt_cmap14_get_def_chars, + tt_cmap14_get_nondef_chars, tt_cmap14_variant_chars) + Insert casts when FT_UInt32 variable is loaded by + TT_NEXT_{UINT24|ULONG}. Because most of them are + compared with FT_UInt32 values in public API, replacing + FT_UFast is not recommended. + +2009-07-31 suzuki toshiya <[email protected]> + + sfnt: Cast a character code to FT_UInt32 for LP64 system. + + * src/sfnt/ttcmap.c (tt_cmap4_init, tt_cmap4_next): + Insert the casts from unsigned long constant to + FT_UInt32. + +2009-07-31 suzuki toshiya <[email protected]> + + sfnt: Extend TT_BDF->strings_size to FT_ULong for huge BDF. + + * include/freetype/internal/tttypes.h: The type + of TT_BDF->string_size is extended from FT_UInt32 + to FT_ULong, because BDF specification does not + restrict the length of string. + * src/sfnt/ttbdf.c: The scratch variable `strings' + to load TT_BDF->string_size is matched with + TT_BDF->string_size. + +2009-07-31 suzuki toshiya <[email protected]> + + psaux: Handle the string length by FT_Offset variables. + + * src/psaux/afmparse.c (afm_parser_next_key, + afm_tokenize, afm_parse_track_kern, + afm_parse_kern_pairs, afm_parse_kern_data, + afm_parser_skip_section, afm_parser_parse): + The length of key is handled by FT_Offset, + instead of FT_UInt. Although the length of + PostScript strings or name object is 16-bit, + AFM_STREAM_KEY_LEN() calculates the length + from the pointer difference. + + * src/psaux/afmparse.h (afm_parser_next_key): + Ditto. + +2009-07-31 suzuki toshiya <[email protected]> + + pcf: Fix some data types mismatching with their sources. + + * src/pcf/pcfread.c (pcf_get_bitmaps): The types + of `nbitmaps', `i', `sizebitmaps' are matched with + the type of area FT_Bitmap.pitch * FT_Bitmap.rows. + +2009-07-31 suzuki toshiya <[email protected]> + + pcf: Handle the string length by size_t variables. + + * src/pcf/pcfread.c (pcf_interpret_style): The types + of nn, len, lengths[4] are changed to size_t, because + they are loaded by (or compared with) ft_strlen(). + + * src/pcf/pcfutil.c (BitOrderInvert, TwoByteSwap, + FourByteSwap): The type of the 2nd argument `nbytes' + is changed to size_t, for similarity with ANSI C + string functions. + + * src/pcf/pcfdrivr.c (PCF_Glyph_Load): The type of + `bytes' is changed to FT_Offset, because it is passed + to FT_ALLOC(), via ft_glyphslot_alloc_bitmap(). At + least, using unsigned type is better. + +2009-07-31 suzuki toshiya <[email protected]> + + pcf: Fix some data types mismatching with their sources. + + * src/pcf/pcfread.c (pcf_seek_to_table_type, + pcf_has_table_type): The type of 3rd argument + `ntables' is matched with PCF_Toc->count. + +2009-07-31 suzuki toshiya <[email protected]> + + otvalid: Truncate the glyph index to 16-bit. + + * src/otvalid/otvalid.c (otv_validate): Checks + face->num_glyphs does not exceed 16-bit limit, + pass FT_UInt num_glyphs to backend functions + otv_{GPOS|GSUB|GDEF|JSTF|MATH}_validate(). + +2009-07-31 suzuki toshiya <[email protected]> + + cache: Insert explict casts for LP64 systems. + + * src/cache/ftcbasic.c (FTC_ImageCache_Lookup, + FTC_SBitCache_Lookup): The type of FTC_ImageType->width + is FT_Int, so the cast to unsigned larger type FT_ULong + is introduced for the comparisons with 0x10000L for + LP64 platform. + +2009-07-31 suzuki toshiya <[email protected]> + + cache: Fix some data types mismatching with their sources. + + * src/cache/ftccache.h: The type of return value + by FTC_Node_WeightFunc function is changed to + FT_Offset. The type of FTC_CacheClass->cache_size + is changed to FT_Offset, too. + + * src/cache/ftccback.h (ft_inode_weight, + ftc_snode_weight): Ditto. + + * src/cache/ftccmap.c (ftc_cmap_node_weight): Ditto. + + * src/cache/ftcimage.c (ftc_inode_weight, + FTC_INode_Weight): Ditto. + + * src/cache/ftcsbits.c (ftc_snode_weight, + FTC_SNode_Weight): Ditto. + + * src/cache/ftcmru.h: The type of + FTC_MruListClass->node_size is changed to FT_Offset, + because it is passed to FT_ALLOC() to specify the + size of buffer. + +2009-07-31 suzuki toshiya <[email protected]> + + XXX_cmap_encoding_char_next() return FT_UInt32 values. + + * include/freetype/internal/services/svpscmap.h: + The size of the charcode value returned by + the function typed PS_Unicodes_CharNextFunc is + matched with its input charcode value. + + * src/cff/cffmap.c (cff_cmap_encoding_char_next, + cff_cmap_unicode_char_next): Ditto. + + * src/pfr/pfrmap.c (pfr_cmap_encoding_char_next): + Ditto. + + * src/psaux/t1cmap.c (t1_cmap_std_char_next, + t1_cmap_custom_char_next, t1_cmap_unicode_char_next): + Ditto. + + * src/psnames/psmodule.c (ps_unicodes_char_next): + Ditto. + + * src/winfonts/winfnt.c (fnt_cmap_char_next): + Ditto. + + * src/sfnt/ttcmap.c (tt_cmap0_char_next, + tt_cmap2_char_next, tt_cmap4_char_next, + tt_cmap6_char_next, tt_cmap10_char_next, + tt_cmap12_char_next, tt_cmap13_char_next): Ditto. + (tt_cmap14_char_variants): Handle base unicode + codepoint by FT_UInt32 variable to avoid overflow + on 16-bit platforms. + (tt_cmap14_ensure): The type of `num_results' is + extend to FT_UInt32, to cover unsigned 32-bit + `numVarSelectorRecords' in cmap14 table header. + +2009-07-31 suzuki toshiya <[email protected]> + + truetype: Extend TT_Face->num_locations for broken TTFs. + + * include/freetype/internal/tttypes.h: + TT_Face->num_locations are extended from FT_UInt + to FT_ULong, to stand with broken huge loca table. + Some people insists there are broken TTF including + the glyphs over 16-bit limitation, in PRC market. + * src/truetype/ttpload.c (tt_face_load_loca): + Remove unrequired 16-bit truncation for FT_UInt + TT_Face->num_locations. + +2009-07-31 suzuki toshiya <[email protected]> + + smooth: Fix some data types mismatching with their sources. + + * src/smooth/ftgrays.c: The type of `TCoord' is + matched to `TPos', because they are mixed in + gray_set_cell(). The type of TCell->x is extended + to `TPos', because gray_find_cell() sets it by + TWorker.ex. The type of TCell->cover is extended + to `TCoord', because gray_render_scanline() adds + TCoord value to it. The type of TWork.cover is matched + with TCell->cover. The types of + TWork.{max_cells,num_cells} are changed to FT_PtrDist, + because they are calculated from the memory addresses. + The type of TWork.ycount is changed to TPos, because + it is calculated from TPos variables. + (gray_find_cell): The type of `x' is matched with + its initial value ras.ex. + (gray_render_scanline): The types of `mod', `lift' + and `rem' are changed to TCoord, because their values + are set with explicit casts to TCoord. When ras.area + is updated by the differential values including + `delta', they are explicitly cast to TArea, because + the type of `delta' is not TArea but TCoord. + (gray_render_line): The type of `mod' is extended + from int to TCoord, because (TCoord)dy is added to mod. + (gray_hline): The argument `acount' is extended to + TCoord, to match with the parameters in the callers. + +2009-07-31 suzuki toshiya <[email protected]> + + cff: Fix some data types mismatching with their sources. + + * src/cff/cffobjs.c (cff_face_init): The type of + `scaling' is matched with the scaling parameter + in FT_Matrix_Multiply_Scaled() and + FT_Vector_Transform_Scaled(). + + * src/cff/cffparse.c (cff_parse_real): The type of + `power_ten', `scaling', `exponent_add', + `integer_length', `fraction_length', + `new_fraction_length' and `shift' are matched with + the type of `exponent' to avoid unexpected truncation. + (cff_parse_fixed_scaled): The type of `scaling' is + matched with the `scaling' argument to + cff_parse_real(). + (cff_parse_fixed_dynamic): Ditto. + (cff_parse_font_matrix): The type of `scaling' is + matched with the `scaling' argument to + cff_parse_dynamic(). + +2009-07-31 suzuki toshiya <[email protected]> + + autofit: Fix some data types mismatching with their sources. + + * src/autofit/afglobal.c: Correct the type of + AF_FaceGlobalsRec.glyph_count to match with + FT_Face->num_glyphs. + (af_face_globals_compute_script_coverage): + Insert explicit cast to compare + FT_Long AF_FaceGlobalsRec.glyph_count versus + FT_UInt gindex. The type of `nn' is changed + to scan glyph index upto AF_FaceGlobalsRec.glyph_count. + (af_face_globals_get_metrics): The type of `script_max' + is changed to cover size_t value. Insert explicit cast + to compare FT_Long AF_FaceGlobalsRec.glyph_count versus + FT_UInt gindex. + + * src/autofit/afhints.c (af_axis_hints_new_segment): + Insert explicit cast to calculate `big_max' from + integer and size_t values. + (af_axis_hints_new_edge): Ditto. + + * src/autofit/aflatin.c (af_latin_metrics_init_blues): + The type of `best_y' is matched to FT_Vector.y. + (af_latin_compute_stem_width): The type of `delta' is + matched to `dist' and `org_dist'. + +2009-07-31 suzuki toshiya <[email protected]> + + autofit: Count the size of the memory object by ptrdiff_t. + + * src/autofit/afcjk.c (af_cjk_hint_edges): The + number of edges `n_edges' should be counted by + FT_PtrDist variable instead of FT_Int. + + * src/autofit/aflatin.c (af_latin_hint_edges): + Ditto. + + * src/autofit/aftypes.h: In AF_ScriptClassRec, + the size of metric `script_metrics_size' should + be counted by FT_Offset variable instead of FT_UInt. + + * src/autofit/afhints.c + (af_glyph_hints_align_strong_points): The cursors + for the edges `min', `max', `mid' in the memory + buffer should be typed FT_PtrDist. + +2009-07-31 suzuki toshiya <[email protected]> + + autofit: Fix for unused variable `first'. + + * src/autofit/afhints.c (af_glyph_hints_reload): Insert + FT_UNUSED() to hide the unused variable warning. + +2009-07-31 suzuki toshiya <[email protected]> + + Improve bitmap size or pixel variables for 16-bit systems. + + * include/freetype/config/ftstdlib.h: Introduce + FT_INT_MIN, to use in signed integer overflow in + 16-bit and 64-bit platforms. + + * include/freetype/internal/fttrace.h: Add a tracer + to ftsynth.c. + + * src/base/ftbitmap.c (FT_Bitmap_Embolden): Check + invalid strength causing integer overflow on 16-bit + platform. + + * src/base/ftcalc.c (ft_corner_orientation): Change + the internal calculation from FT_Int to FT_Long, to + avoid an overflow on 16-bit platforms. The caller of + this function should use only the sign of result, + so the cast to FT_Int is acceptable. + + * src/base/ftsynth.c: Introduce a tracer for synth module. + (FT_GlyphSlot_Embolden): Check invalid strength causing + integer overflow on 16-bit platform. + + * src/bdf/bdfdrivr.c (BDF_Face_Init): The glyph index + in FT2 API is typed as FT_UInt, although BDF driver + can handle unsigned long glyph index internally. To + avoid integer overflow on 16-bit platform, too large + glyph index should be excluded. + (BDF_Glyph_Load): The glyph pitch in FT2 is typed as + FT_UInt, although BDF driver can handle unsigned long + glyph pitch internally. To avoid integer overflow on + 16-bit platform, too large glyph pitch should not be + returned. + + * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): The glyph + pitch in FT2 is typed as FT_UInt, although PFR font + format can include huge bitmap glyph with 24-bit pitch + (however, a glyph spends 16.7 pixel, it's not realistic). + To avoid integer overflow on 16-bit platform, huge + bitmap glyph should be excluded. + + * src/smooth/ftgrays.c (gray_hline): As FT_Span.x is + truncated to fit its type (16-bit short), FT_Span.y + should be truncated to fit its type (FT_Int). + + * src/cff/cffdrivr.c (cff_get_ros): CFF specification + defines the supplement in ROS as a real number. + Truncate it to fit public FT2 API. + + * src/cff/cffparse.c (cff_parse_cid_ros): Warn the + supplement if it is truncated or rounded in cff_get_ros(). + + * src/cff/cfftypes.h: Change the type of internal variable + `supplement' from FT_Long to FT_ULong to fit the signedness + to the type in public API. + +2009-07-31 suzuki toshiya <[email protected]> + + psaux: Prevent invalid arguments to afm_parser_read_vals(). + + * src/psaux/afmparse.c (afm_parser_read_vals): Change + the type of `n' to prevent negative number how many + arguments should be parsed. + + * src/psaux/afmparse.h (afm_parser_read_vals): Ditto. + +2009-07-31 suzuki toshiya <[email protected]> + + base: Prevent some overflows on LP64 systems. + + * src/base/ftadvance.c (FT_Get_Advances): Cast the + unsigned long constant FT_LOAD_ADVANCE_ONLY to FT_UInt32 + for LP64 platforms. + + * src/base/ftcalc.c (FT_Sqrt32): All internal variables + are changed to FT_UInt32 from FT_ULong. + (FT_MulDiv): Insert casts to FT_Int32 for LP64 platforms. + This function is designed for 32-bit integer, although + their arguments and return value are FT_Long. + + * src/base/ftobjs.c (FT_Get_Char_Index): Check `charcode' + is within unsigned 32-bit integer for LP64 platforms. + (FT_Face_GetCharVariantIndex): Check `charcode' and + `variantSelector' are within 32-bit integer for LP64 + platforms. + (FT_Face_GetCharsOfVariant): Check `variantSelector' is + within unsigned 32-bit integer for LP64 platforms. + + * src/base/fttrigon.c (ft_trig_downscale): The FT_Fixed + variable `val' and unsigned long constant FT_TRIG_SCALE + are cast to FT_UInt32, when calculates FT_UInt32. + (FT_Vector_Rotate): The long constant 1L is cast to + FT_Int32 to calculate FT_Int32 `half'. + +2009-07-31 suzuki toshiya <[email protected]> + + cff: Cast the long variables to 32-bit for LP64 systems. + + * src/cff/cffdrivr.c (cff_get_advances): Insert + explicit cast to modify a 32-bit flag by unsigned + long constant. + + * src/cff/cffobjs.c (cff_face_init): Ditto. + + * src/cff/cffgload.c (cff_decoder_parse_charstrings): + Replace the casts to FT_Long by the casts to FT_Int32 + for LP64 platforms. + +2009-07-31 suzuki toshiya <[email protected]> + + pcf: Improve PCF_PropertyRec.value names on LP64 platforms. + + * src/pcf/pcf.h: In PCF_PropertyRec.value, the member + `integer' is replaced by `l', `cardinal' is replaced + by `ul', to fix the difference between the name and + the types on LP64 platforms. + + * src/pcf/pcfdrivr.c (pcf_get_bdf_property): Reflect + PCF_PropertyRec.value change, with appropriate casts + to FT_Int32/FT_UInt32. Their destinations + BDF_PropertyRec.{integer|cardinal} are public and + explicitly defined as FT_Int32/FT_UInt32. + + * src/pcf/pcfread.c (pcf_get_properties, pcf_load_font): + Reflect PCF_PropertyRec.value change. + +2009-07-31 suzuki toshiya <[email protected]> + + pcf: Fix some data types mismatching with their sources. + + * src/pcf/pcfdrivr.c (pcf_cmap_char_index): The type of + `code' is matched to PCF_Encoding->enc. + (pcf_cmap_char_next): The type of `charcode' is matched + to PCF_Encoding->enc. When *acharcode is set by charcode, + an overflow is checked and cast to unsigned 32-bit + integer. + +2009-07-31 suzuki toshiya <[email protected]> + + bdf: Improve bdf_property_t.value names for LP64 platforms. + + * src/bdf/bdf.h: In bdf_property_t.value, the member + `int32' is replaced by `l', `card32' is replaced by + `ul', to fix the difference between the name and the + types on LP64 platforms. + + * src/bdf/bdfdrivr.c (BDF_Face_Init): Reflect + bdf_property_t.value change. + (bdf_get_bdf_property): Reflect bdf_property_t.value + change, with appropriate casts to FT_Int32/FT_UInt32. + Their destinations BDF_PropertyRec.{integer|cardinal} + are public and explicitly defined as FT_Int32/FT_UInt32. + + * src/bdf/bdflib.c (_bdf_add_property): Reflect + bdf_property_t.value change. + +2009-07-31 suzuki toshiya <[email protected]> + + bdf: Fix some data types mismatching with their sources. + + * src/bdf/bdrdrivr.c (bdf_cmap_char_index): The type + of `code' is matched with BDF_encoding_el->enc. + (bdf_cmap_char_next): The type of `charcode' is + matched with BDF_encoding_el->enc. When *acharcode + is set by charcode, an overflow is checked and + cast to unsigned 32-bit integer. + +2009-07-31 suzuki toshiya <[email protected]> + + autofit: Improve Unicode range definitions. + + * src/autofit/aftypes.h (AF_UNIRANGE_REC): New macro + to declare a range by two unsigned 32-bit integer, + to avoid 64-bit range definition on LP64 platforms. + + * src/autofit/aflatin.c (af_latin_uniranges): Ditto. + + * src/autofit/aflatin2.c (af_latin2_uniranges): Ditto. + + * src/autofit/afindic.c (af_indic_uniranges): Ditto. + + * src/autofit/afcjk.c (af_cjk_uniranges): Declare + the ranges by AF_UNIRANGE_REC. + +2009-07-31 suzuki toshiya <[email protected]> + + smooth: Fix a data type mismatching with its source. + + * src/smooth/ftgrays.c (gray_sweep): The type of + `area' is matched with the 3rd argument `area' + of gray_hline(). + +2009-07-31 suzuki toshiya <[email protected]> + + smooth: Fix a data type mismatching with its source. + + * src/smooth/ftgrays.c (gray_render_line): The type + of `area' is matched with TWorker.area. + +2009-07-31 suzuki toshiya <[email protected]> + + cache: Disable the legacy compatibility if 16-bit system. + + * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Exclude + the legacy behaviour from 16-bit platform, because the + current hack cannot detect the caller uses this function + via legacy convension. + (FTC_SBitCache_Lookup): Ditto. + +2009-07-31 suzuki toshiya <[email protected]> + + cache: Check 32-bit glyph index on 16-bit systems. + + * src/cache/ftcbasic.c (ftc_basic_family_get_count): + Check overflow caused by the face including large + number of glyphs > 64k. + +2009-07-31 suzuki toshiya <[email protected]> + + cache: Fix some data types mismatching with their sources. + + * src/cache/ftccache.c (ftc_cache_resize): The types of + `p', `mask', `count' are matched with FTC_Cache->{p,mask}. + (FTC_Cache_Clear): The type of `old_index' is matched to + FTC_Cache->{p,mask}. + + * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): The type + of `_idx' is matched with FTC_Cache->{p,mask}. + +2009-07-31 suzuki toshiya <[email protected]> + + cache: Fix some data types mismatching with their sources. + + * src/cache/ftcsbits.c (ftc_snode_load): The types + of `xadvance' and `yadvance' are matched with + FT_GlyphSlot->advance.{x|y}. + +2009-07-31 suzuki toshiya <[email protected]> + + cache: Cast NULL to a required function type explicitly. + + * src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID): + Insert explicit cast from NULL to function type. + +2009-07-31 suzuki toshiya <[email protected]> + + fttypes.h: Cast FT_MAKE_TAG output to FT_Tag exlicitly. + + * include/freetype/fttypes.h (FT_MAKE_TAG): + Cast the result to FT_Tag. + +2009-07-31 suzuki toshiya <[email protected]> + + psnames: Handle Unicode codepoints by FT_UInt32 variables. + + * src/psnames/psmodule.c (BASE_GLYPH): Cast the result + to unsigned 32-bit integer for LP64 platform. + (ps_unicode_value): Return the value by unsigned 32-bit + integer instead of unsigned long. + +2009-07-31 suzuki toshiya <[email protected]> + + psaux: Use size_t variable to pass the buffer size. + + * src/psaux/psaux.h (to_bytes): The type of `max_bytes' + (the argument to pass the buffer size) is changed to + size_t, to match with ANSI C string functions. + + * src/psaux/psconv.h (PS_Conv_StringDecode, + PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto. + + * src/psaux/psconv.c (PS_Conv_StringDecode, + PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto. + + * src/psaux/psobjs.h (ps_parser_to_bytes): Ditto. + + * src/psaux/psobjs.c (ps_parser_to_bytes): Ditto. + +2009-07-31 suzuki toshiya <[email protected]> + + type1: Use size_t variable to pass the string length. + + * psaux.h: The type of `len' (the argument to pass + the buffer size to the function in AFM_ParserRec) + is changed to size_t, to match with ANSI C string + functions. + + * t1afm.c (t1_get_index): Ditto. + + * test_afm.c (dummy_get_index): Ditto. + + * afmparse.c (afm_parser_read_vals): To call + AFM_ParserRec.get_index, the length of token + `len' is cast to size_t. + +2009-07-31 suzuki toshiya <[email protected]> + + cid: Fix some data types mismatching with their sources. + + * src/cid/cidparse.c (cid_parser_new): The types of + `read_len' and `stream_len' are matched to + FT_Stream->size. Unrequired cast is removed. + +2009-07-31 suzuki toshiya <[email protected]> + + cff: Fix for unused variable `rest'. + + * src/cff/cffparse.c (cff_parse_real): Insert + FT_UNUSED() to hide the unused variable warning. + +2009-07-31 suzuki toshiya <[email protected]> + + cff: Fix some data types mismatching with their sources. + + * src/cff/cffgload.c (cff_slot_load): The types of + `top_upm' and `sub_upm' are matched with + CFF_FontRecDict->units_per_em. + + * src/cff/cffobjs.c (cff_size_select): Ditto. + (cff_size_request): Ditto. + +2009-07-31 suzuki toshiya <[email protected]> + + bdf: Fix some data types mismatching with their sources. + + * bdflib.c (_bdf_list_ensure): The type of `num_items' + is matched with _bdf_list_t.used. Also the types of + `oldsize', `newsize', `bigsize' are matched too. + (_bdf_readstream): `cursor' is used as an offset to + the pointer, it should be typed as FT_Offset. Also + the types of `bytes', `start', `end', `avail' are matched. + + * bdfdrivr.c: The type of BDF_CMap->num_encodings is + matched with FT_CMap->clazz->size. + (bdf_cmap_char_index): The types of `min', `max', `mid' + are matched with BDF_CMap->num_encodings. The type of + `result' is matched with encoding->glyph. + (bdf_cmap_char_next): Ditto, the type of `code' is + matched with BDF_encoding_el.enc. + (bdf_interpret_style): The type of `lengths' is changed + to size_t, to take the value by ft_strlen(). Also the + types of `len', `nn', `mm' are matched. + +2009-07-31 suzuki toshiya <[email protected]> + + sfnt: Count the size of the memory object by ptrdiff_t. + + * src/sfnt/ttbdf.c (tt_face_find_bdf_prop): The type of + `peroperty_len' is changed from FT_UInt to FT_Offset, + to match with size_t, which is appropriate type for the + object in the memory buffer. + +2009-07-31 suzuki toshiya <[email protected]> + + lzw: Count the size of the memory object by ptrdiff_t. + + * src/lzw/ftzopen.h: The types of FT_LzwState->{buf_total, + stack_size} are changed from FT_UInt to FT_Offset, to match + with size_t, which is appropriate type for the object in + the memory buffer. + + * src/lzw/ftzopen.c (ft_lzwstate_stack_grow): The types of + `old_size' and `new_size' are changed from FT_UInt to + FT_Offset, to match with size_t, which is appropriate type + for the object in the memory buffer. + +2009-07-31 suzuki toshiya <[email protected]> + + otvalid: Count the table size on memory by ptrdiff_t. + + * src/otvalid/otvgpos.c (otv_ValueRecord_validate): + Change the type of table size from FT_UInt to + FT_PtrDist because it is calculated by the memory + addresses. + +2009-07-31 suzuki toshiya <[email protected]> + + otvalid: Prevent an overflow by GPOS/GSUB 32b-bit offset. + + * src/otvalid/otvgpos.c (otv_ExtensionPos_validate): + Extend ExtensionOffset from FT_UInt to FT_ULong, to + cover 32-bit offset on 16-bit platform. + + * src/otvalid/otvgsub.c (otv_ExtensionSubst_validate): + Ditto. + +2009-07-31 suzuki toshiya <[email protected]> + + ftobjs.c: Prevent an overflow in glyph index handling. + + * src/base/ftobjs.c (FT_Face_GetCharsOfVariant): + Improve the cast in comparison to avoid the truncation. + +2009-07-31 suzuki toshiya <[email protected]> + + Improve the variable types in raccess_make_file_name(). + + * src/base/ftrfork.c (raccess_make_file_name): + Change the type of cursor variable `tmp' to const char*, + to prevent the unexpected modification of original pathname. + (raccess_make_file_name): Change the type of new_length + to size_t. + +2009-07-31 suzuki toshiya <[email protected]> + + ftpatent.c: Fix for unused variable `error'. + + * src/base/ftpatent.c (_tt_check_patents_in_range): + Fix warning for unused variable `error'. + +2009-07-31 suzuki toshiya <[email protected]> + + type1: Check invalid string longer than PostScript limit. + + * src/type1/t1afm.c (t1_get_index): Check invalid string + which exceeds the limit of PostScript string/name objects. + +2009-07-31 suzuki toshiya <[email protected]> + + gzip: Use FT2 zcalloc() & zfree() in ftgzip.c by default. + + * src/gzip/ftgzip.c (zcalloc, zcfree): Disable all + zcalloc() & zfree() by zlib in zutil.c, those in + ftgzip.c by FT2 are enabled by default. To use + zlib zcalloc() & zfree(), define USE_ZLIB_ZCALLOC. + See discussion: + http://lists.gnu.org/archive/html/freetype-devel/2009-02/msg00000.html + +2009-07-31 suzuki toshiya <[email protected]> + + gzip: Distinguish PureC from TurboC on MSDOS. + + * src/gzip/zutil.c (zcalloc, zcfree): Enable only for + MSDOS platform. + +2009-07-31 suzuki toshiya <[email protected]> + + gxvalid: Insert PureC pragma to allow unevaluated variables. + + * builds/atari/ATARI.H: Insert PureC pragma not to + warn against set-but-unevaluated variable in gxvalid + module. + +2009-07-31 suzuki toshiya <[email protected]> + + gxvalid: Pass the union by the pointer instead of the value. + + * src/gxvalid/gxvcommn.h: + - Declare new type `GXV_LookupValueCPtr'. + - Update the type of the 2nd argument to pass GXV_LookupValueDesc + data to the function prototyped as GXV_Lookup_Value_Validate_Func, + from GXV_LookupValueDesc to GXV_LookupValueCPtr. + - Likewise for the function prototyped as + GXV_Lookup_Fmt4_Transit_Func. + + - Declare new type `GXV_StateTable_GlyphOffsetCPtr'. + - Update the type of the 3rd argument to pass + GXV_StateTable_GlyphOffsetDesc data to the function prototyped + as GXV_StateTable_Entry_Validate_Func, from + GXV_StateTable_GlyphOffsetDesc to GXV_StateTable_GlyphOffsetCPtr. + + - Declare new type `GXV_XStateTable_GlyphOffsetCPtr'. + - Update the type of the 3rd argument to pass + GXV_XStateTable_GlyphOffsetDesc data to the function prototyped + as GXV_XStateTable_Entry_Validate_Func, + from GXV_XStateTable_GlyphOffsetDesc + to GXV_XStateTable_GlyphOffsetCPtr. + + * src/gxvalid/gxvcommn.c (gxv_LookupTable_fmt0_validate, + gxv_XClassTable_lookupval_validate, + gxv_XClassTable_lookupfmt4_transit): + Update from GXV_LookupValueDesc to GXV_LookupValueCPtr. + + * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate, + gxv_bsln_LookupFmt4_transit): Ditto. + + * src/gxvalid/gxvjust.c + (gxv_just_pcTable_LookupValue_entry_validate, + gxv_just_classTable_entry_validate, + gxv_just_wdcTable_LookupValue_validate): Ditto. + + * src/gxvalid/gxvkern.c + (gxv_kern_subtable_fmt1_entry_validate): Ditto. + + * src/gxvalid/gxvlcar.c (gxv_lcar_LookupValue_validate, + gxv_lcar_LookupFmt4_transit): Ditto. + + * src/gxvalid/gxvopbd.c (gxv_opbd_LookupValue_validate, + gxv_opbd_LookupFmt4_transit): Ditto. + + * src/gxvalid/gxvprop.c (gxv_prop_LookupValue_validate, + gxv_prop_LookupFmt4_transit): Ditto. + + * src/gxvalid/gxvmort4.c + (gxv_mort_subtable_type4_lookupval_validate): Ditto. + + * src/gxvalid/gxvmort0.c + (gxv_mort_subtable_type0_entry_validate): Update + from GXV_StateTable_GlyphOffsetDesc + to GXV_StateTable_GlyphOffsetCPtr. + + * src/gxvalid/gxvmort1.c + (gxv_mort_subtable_type1_entry_validate): Ditto. + + * src/gxvalid/gxvmort2.c + (gxv_mort_subtable_type2_entry_validate): Ditto. + + * src/gxvalid/gxvmort5.c + (gxv_mort_subtable_type5_entry_validate): Ditto. + + * src/gxvalid/gxvmorx2.c + (gxv_morx_subtable_type2_entry_validate): Ditto. + + * src/gxvalid/gxvmorx5.c + (gxv_morx_subtable_type5_entry_validate): Ditto. + + * src/gxvalid/gxvmorx1.c + (gxv_morx_subtable_type1_entry_validate): Ditto. + (gxv_morx_subtable_type1_LookupValue_validate, + gxv_morx_subtable_type1_LookupFmt4_transit): + Update from GXV_LookupValueDesc to GXV_LookupValueCPtr. + + * src/gxvalid/gxvmorx0.c + (gxv_morx_subtable_type0_entry_validate): Update + from GXV_XStateTable_GlyphOffsetDesc + to GXV_XStateTable_GlyphOffsetCPtr. + +2009-07-29 Fabrice Bellet <[email protected]> + + Fix Redhat bugzilla #513582 and Savannah bug #26849. + + * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP) <FTC_INLINE>: Fix + aliasing bug. + +2009-07-19 Werner Lemberg <[email protected]> + + Document recent library changes. + + * docs/CHANGES: Do it. + +2009-07-17 Werner Lemberg <[email protected]> + + Fix Savannah bug #23786. + + * src/truetype/ttobjs.c (tt_size_init_bytecode): Don't reset x_ppem + and y_ppem. Otherwise the `*_CVT_Stretched' functions in ttinterp.c + get never called. + An anonymous guy suggested this change on Savannah, and it seems to + be the right solution. + +2009-07-15 Werner Lemberg <[email protected]> + + * docs/release: Updated. + +2009-07-15 Werner Lemberg <[email protected]> + + README.CVS -> README.git + + * README.CVS: Renamed to... + * README.git: This. + Updated. + +2009-07-15 suzuki toshiya <[email protected]> + + Borland C++ compiler patch proposed by Mirco Babin. + http://lists.gnu.org/archive/html/freetype/2009-07/msg00016.html. + + * builds/exports.mk: Delete unused flags, CCexe_{CFLAGS,LDFLAGS}. + Fix APINAMES_C and APINAMES_EXE pathnames to reflect the platform + specific pathname syntax. + * builds/compiler/bcc.mk: Remove unused flag, CCexe_LDFLAGS. + Define TE = `-e' separately (bcc32 cannot specify the pathname of + binary executable by T = `-o'). + Extend the large page size in linking freetype.lib. + Add extra CLEAN target to delete bcc specific temporary files. + * builds/compiler/bcc-dev.mk: Ditto. + +2009-07-14 Werner Lemberg <[email protected]> + + Fix Savannah bug #27026. + + * builds/win32/vc2005/freetype.sln: Use correct version number. + +2009-07-12 suzuki toshiya <[email protected]> + + Add a script to check the undefined and unused trace macros. + + * src/tools/chktrcmp.py: A script to check trace_XXXX macros + that are used in C source but undefined in fttrace.h, or + defined in fttrace.h but unused in C sources. See + http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html. + * docs/DEBUG: Mention on chktrcmp.py. + * docs/release: Ditto. + +2009-07-09 Werner Lemberg <[email protected]> + + [ftraster] Make it compile again with -D_STANDALONE_. + + * src/raster/ftraster.c [_STANDALONE_]: Define + FT_CONFIG_STANDARD_LIBRARY_H. + Include `string.h'. + Don't include `rastpic.h'. + Define FT_DEFINE_RASTER_FUNCS. + +2009-07-09 suzuki toshiya <[email protected]> + + smooth: Check glyph size by width/height, instead of pitch/height. + Suggested by der Mouse <[email protected]>. + + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Improve + the check for too large glyph. Replace the pair of `pitch' and + `height' by the pair of `width' and `height'. `pitch' cannot + be greater than `height'. The required is checking the product + `pitch' * `height' <= FT_ULONG_MAX, but we use cheap checks for + the realistic case only. + +2009-07-09 suzuki toshiya <[email protected]> + + Register 2 missing trace components, t1afm and ttbdf. + + * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( t1afm ) + and FT_TRACE_DEF( ttbdf ). See + http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html + +2009-07-09 suzuki toshiya <[email protected]> + + Register a trace component for ftgloadr.c. + + * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( gloader ). + The macro `trace_gloader' was already used in the initial version + on 2002-02-24. + +2009-07-08 suzuki toshiya <[email protected]> + + Prevent the overflows by a glyph with too many points or contours. + The bug is reported by Boris Letocha <[email protected]>. See + http://lists.gnu.org/archive/html/freetype-devel/2009-06/msg00031.html + http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00002.html + + * include/freetype/ftimage.h (FT_OUTLINE_CONTOURS_MAX, + FT_OUTLINE_POINTS_MAX): New macros to declare the maximum + values of FT_Outline.{n_contours,n_points}. + * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Check the + total numbers of points and contours cause no overflows in + FT_Outline.{n_contours,n_points}. + + * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P, + FT_GLYPHLOADER_CHECK_C): Compare the numbers of points and + contours as unsigned long number, instead of signed int, to + prevent the overflows on 16-bit systems. + +2009-07-05 Bram Tassyns <[email protected]> + + Improve compatibility to Acroread. + This fixes Savannah bug #26944. + + * src/cff/cffload.c (cff_charset_compute_cids): For multiple GID to + single CID mappings, make the lowest value win. + +2009-06-28 suzuki toshiya <[email protected]> + + ftpatent: Fix a bug by wrong usage of service->table_info(). + http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00039.html + + * include/freetype/internal/services/svsfnt.h: Extend + FT_SFNT_TableInfoFunc() to take new argument to obtain the offset + to the specified table. + * src/sfnt/sfdriver.c (sfnt_table_info): Extend to return the + table-offset to the caller function. + * src/base/ftpatent.c (_tt_check_patents_in_table): Use new + service->table_info(). + * src/base/ftobjs.c (FT_Sfnt_Table_Info): Synchronize to new + service->table_info(). + +2009-06-28 Werner Lemberg <[email protected]> + + [psaux, cff] Protect against nested `seac' calls. + + * include/freetype/internal/psaux.h (T1_Decoder), src/cff/cffgload.h + (CFF_Decoder): Add `seac' boolean variable. + + * src/cff/cffgload.c (cff_operator_seac), src/psaux/t1decode.c + (t1operator_seac): Use it. + +2009-06-28 Werner Lemberg <[email protected]> + + Thinko. + + * src/psaux/t1decode.c (t1operator_seac) + [FT_CONFIG_OPTION_INCREMENTAL]: Test for existence of incremental + interface. + +2009-06-28 Werner Lemberg <[email protected]> + + * devel/ftoption.h [FT_CONFIG_OPTION_INCREMENTAL]: Define. + +2009-06-27 suzuki toshiya <[email protected]> + + Add tools to preprocess the source files for AtariST PureC. + + * builds/atari/deflinejoiner.awk: New file to filter C source files + for broken C preprocessor of PureC compiler. + + * builds/atari/gen-purec-patch.sh: New file to generate a patch set + for PureC, by using deflinejoiner.awk. + +2009-06-27 suzuki toshiya <[email protected]> + + Keep existing modules.cfg in the building tree. + + * configure: If `configure' is executed outside of the source tree, + an existing `modules.cfg' file in the build directory should be + kept, not overwritten by the version in the source tree. + +2009-06-27 suzuki toshiya <[email protected]> + + Filter --srcdir= option before invoking builds/unix/configure. + + * configure: If builds/unix/configure is invoked with --srcdir + option, the option should take `builds/unix' directory instead of + the top source directory. Thus the configure script in the top + directory should modify the --srcdir= option if + `builds/unix/configure' is invoked. + +2009-06-27 suzuki toshiya <[email protected]> + + Improve configure.raw for cross-building on exe-suffixed systems. + + * builds/unix/configure.raw: Fix a bug in sed script to extract + native suffix for binary executables, patch by Peter Breitenlohner. + http://lists.gnu.org/archive/html/freetype-devel/2009-04/msg00036.html + +2009-06-26 Werner Lemberg <[email protected]> + + [truetype] Remove TT_SubGlyphRec. + + * src/truetype/ttobjs.h (TT_SubGlyphRec): Removed, unused. + +2009-06-26 Werner Lemberg <[email protected]> + + * */*: For warning messages, replace FT_ERROR with FT_TRACE0. + + FT_ERROR is now used only if a function produces a non-zero `error' + value. + + Formatting, improving and harmonizing debug strings. + +2009-06-25 Werner Lemberg <[email protected]> + + Provide version information better. + + * src/base/ftinit.c (FT_Init_FreeType): Don't set version here + but... + * src/base/ftobjs.c (FT_New_Library): Here. + +2009-06-22 Werner Lemberg <[email protected]> + + Use 16.16 format while parsing Type 1 charstrings. + This fixes Savannah bug #26867. + + Previously, only integers have been used which can lead to serious + rounding errors. + + However, fractional values are only used internally; after the + charstrings (of either Type 1 or 2) have been processed, the + resulting coordinates get rounded to integers currently -- before + applying scaling. This should be fixed; at the same time a new load + flag should be introduced, to be used in combination with + FT_LOAD_NO_SCALE, which indicates that font units are returned in + 16.16 format. Similarly, the incremental interface should be + extended to allow fractional values for metrics. + + * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `shift' + field. + * include/freetype/internal/pshints.h (T1_Hints_SetStemFunc, + T1_Hints_SetStem3Func): Use FT_Fixed for coordinates. + + * src/psaux/psobjs.c: Include FT_INTERNAL_CALC_H. + (t1_build_add_point): Always convert fixed to integer. + * src/psaux/t1decode.c (t1_decoder_parse_charstrings): + Use 16.16 format everywhere (except for large integers followed by a + `div'). + [CAN_HANDLE_NON_INTEGRAL_T1_OPERANDS]: Remove #ifdef and activate + code uncoditionally. + Add support for random numbers and update remaining code + accordingly; this should work now. + (t1_operator_seac): Updated. + * src/psaux/pshrec.c: Include FT_INTERNAL_CALC_H. + (ps_hints_t1stem3, t1_hints_stem): Updated. + + * src/cid/cidgload.c: Include FT_INTERNAL_CALC_H. + (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL], + (cid_face_compute_max_advance, cid_slot_load_glyph): Updated. + + * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String) + [FT_CONFIG_OPTION_INCREMENTAL], (T1_Get_Advances, T1_Load_Glyph): + Updated. + * src/type1/t1load.c: Include FT_INTERNAL_CALC_H. + * src/type1/t1objs.c (T1_Face_Init): Updated. + +2009-06-21 Werner Lemberg <[email protected]> + + * src/pshinter/pshrec.c: Use PSH_Err_Ok. + +2009-06-21 Werner Lemberg <[email protected]> + + Code beautification. + + * src/type1/t1load.c (FT_INT_TO_FIXED): Removed. + Replace everywhere with INT_TO_FIXED. + (FT_FIXED_TO_INT): Move to ... + * include/freetype/internal/ftcalc.h (FIXED_TO_INT): Here. + Update all users. + +2009-06-20 Werner Lemberg <[email protected]> + + Remove unused variables. + + * include/freetype/internal/psaux.h (T1_BuilderRec), + src/cff/cffgload.h (CFF_Builder): Remove `last'. + Update all users. + +2009-06-20 Werner Lemberg <[email protected]> + + [psaux] Check large integers while parsing charstrings. + + * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Large + integers must be followed by a `div' operator. + +2009-06-20 Werner Lemberg <[email protected]> + + [cff] Revert last change. + + * src/cff/cffgload.c (cff_decoder_parse_charstrings): Do it. + Next time, don't confuse Type 2 charstring opcodes with TOP DICT + values... + +2009-06-20 Werner Lemberg <[email protected]> + + * src/autofit/aflatin.c (af_latin_metrics_check_digits): Fix + compiler warning. + +2009-06-20 Werner Lemberg <[email protected]> + + * builds/compiler/gcc.mk (CFLAGS): Use -O3, not -O6. + +2009-06-19 Werner Lemberg <[email protected]> + + [cff] Fix handling of reserved byte 0xFF. + + * src/cff/cffgload.c (cff_decoder_parse_charstrings): Abort if byte + 0xFF is encountered. + +2009-06-19 Werner Lemberg <[email protected]> + + Improve debug messages for Type1 charstrings. + + * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Emit newlines + after instructions. + Prettify output. + +2009-06-19 Werner Lemberg <[email protected]> + + More ftgray fixes for FT_STATIC_RASTER. + Problems reported by [email protected]. + + * src/smooth/ftgrays.c (gray_move_to, gray_raster_render): Use + RAS_VAR. + +2009-06-18 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2009-06-18 Werner Lemberg <[email protected]> + + Fix B/W rasterization of subglyphs with different drop-out modes. + + Normally, the SCANMODE instruction (if present) to set the drop-out + mode in a TrueType font is located in the `prep' table only and thus + valid for all glyphs. However, there are fonts like `pala.ttf' + which additionally contain this instruction in the hinting code of + some glyphs (but not all). As a result it can happen that a + composite glyph needs multiple drop-out modes for its subglyphs + since the rendering state gets reset for each subglyph. + + FreeType collects the hinted outlines from all subglyphs, then it + sends the data to the rasterizer. It also sends the drop-out mode + -- after hinting has been applied -- and here is the error: It sends + the drop-out mode of the last subglyph only; drop-out modes of all + other subglyphs are lost. + + This patch fixes the problem; it adds a second, alternative + mechanism to pass the drop-out mode: For each contour, the + rasterizer now checks the first `tags' array element. If bit 2 is + set, bits 5-7 contain the contour's drop-out mode, overriding the + global drop-out mode. + + * include/freetype/ftimage.h (FT_CURVE_TAG_HAS_SCANMODE): New macro. + + * src/truetype/ttgload.c (TT_Hint_Glyph): Store drop-out mode in + `tags[0]'. + + * src/raster/ftraster.c (Flow_Up, Overshoot_Top, Overshoot_Bottom): + Use bits 3-5 instead of 0-2. + (New_Profile): Set the drop-out mode in the profile's `flags' field. + (Decompose_Curve): Check `tags[0]' and set `dropOutControl' if + necessary. + (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, + Horizontal_Gray_Sweep_Drop, Draw_Sweep): Use the profile's drop-out + mode. + +2009-06-16 Werner Lemberg <[email protected]> + + Improve scan conversion rules 4 and 6. + + Two new constraints are introduced to better identify a `stub' -- a + concept which is only vaguely described in the OpenType + specification. The old code was too rigorous and suppressed more + pixel than it should. + + . The intersection of the two profiles with the scanline is less + than a half pixel. Code related to this was already present in + the sources but has been commented out. + + . The endpoint of the original contour forming a profile has a + distance (`overshoot') less than half a pixel to the scanline. + + Note that the two additional conditions fix almost all differences + to the Windows rasterizer, but some problematic cases remain. + + * src/raster/ftraster.c (Overshoot_Top, Overshoot_Bottom): New + macros for the `flags' field in the `TProfile' structure. + (IS_BOTTOM_OVERSHOOT, IS_TOP_OVERSHOOT): New macros. + (New_Profile, End_Profile): Pass overshoot flag as an argument and + set it accordingly. + Update callers. + (Vertical_Sweep_Drop, Horizontal_Sweep_Drop): Implement the two new + constraints. + +2009-06-11 Werner Lemberg <[email protected]> + + Increase precision for B/W rasterizer. + + * src/raster/ftraster.c (Set_High_Precision): Add two more bits to + the precision. This corrects rendering of some small glyphs, for + example, glyph `xi' in verdana.ttf at 13 ppem. Testing with ftbench + on my GNU/Linux box I don't see a performance degradation. + +2009-06-08 Michael Zucchi <[email protected]> + + Handle FT_STROKER_LINECAP_BUTT. + This fixes Savannah bug #26757. + + * src/base/ftstroke.c (ft_stroker_cap): Implement it. + +2009-06-07 Harald Fernengel <[email protected]> + + Fix some potential out-of-memory crashes. + + * src/base/ftobjs.c (ft_glyphslot_done): Check `slot->internal'. + * src/base/ftstream.c (FT_Stream_ReleaseFrame): Check `stream'. + * src/truetype/ttinterp.c (TT_New_Context): Avoid double-free of + `exec' in case of failure. + +2009-06-07 Werner Lemberg <[email protected]> + + Simplify math. + Suggested by Alexei Podtelezhnikov <[email protected]>. + + * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, + Horizontal_Gray_Sweep_Drop): Do it. + +2009-06-04 Werner Lemberg <[email protected]> + + Preparation for fixing scan conversion rules 4 and 6. + + * src/raster/ftraster.c (TFlow): Replace enumeration with... + (Flow_Up): This macro. + (TProfile): Replace `flow' member with `flags' bit field. + Update all affected code. + +2009-05-29 James Cloos <[email protected]> + + Enable autohinting for glyphs rotated by multiples of 90°. + + * src/base/ftobjs.c (FT_Load_Glyph): Alter check for permitted + matrices to allow rotations by multiples of 90°, not only unrotated, + possibly slanted matrices. + +2009-05-28 Werner Lemberg <[email protected]> + + Remove compiler warning. + Reported by Krzysztof Kowalczyk <[email protected]>. + + * src/autofit/aflatin2.c (af_latin2_hint_edges): Move declaration of + `n_edges' into `#if' block. + +2009-05-28 Werner Lemberg <[email protected]> + + Make compilation work with FT_CONFIG_OPTION_USE_ZLIB not defined. + Reported by Krzysztof Kowalczyk <[email protected]>. + + * src/pcf/pcfdrivr.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_ZLIB]: + Make it work. + Simplify #ifdef logic. + +2009-05-22 Werner Lemberg <[email protected]> + + Improve b/w rasterizer. + Problem reported by Krzysztof Kotlenga <[email protected]>. + + * src/raster/raster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, + Horizontal_Gray_Sweep_Drop): For smart drop-out mode, if + intersections are equally distant relative to next pixel center, + select the left pixel, not the right one. + +2009-05-19 Werner Lemberg <[email protected]> + + Fix Savannah bug #26600. + + * src/type42/t42parse.c (t42_load_keyword): Handle + T1_FIELD_LOCATION_FONT_EXTRA. + +2009-04-30 Werner Lemberg <[email protected]> + + Document recent changes to ftview. + + * docs/CHANGES: Do it. + +2009-04-27 Werner Lemberg <[email protected]> + + autohinter: Don't change digit widths if all widths are the same. + This fixes FreeDesktop bug #21197. + + * src/autofit/afglobal.c (AF_DIGIT): New macro. + (af_face_globals_compute_script_coverage): Mark ASCII digits in + `glyph_scripts' array. + (af_face_globals_get_metrics): Updated. + (af_face_globals_is_digit): New function. + * src/autofit/afglobal.h: Updated. + (AF_ScriptMetricsRec): Add `digits_have_same_width' flag. + + * src/autofit/aflatin.c: Include FT_ADVANCES_H. + (af_latin_metrics_check_digits): New function. + (af_latin_metrics_init): Use it. + * src/autofit/aflatin.h: Updated. + * src/autofit/afcjk.c (af_cjk_metrics_init): Updated. + + * src/autofit/aflatin2.c: Similar changes as with aflatin.c. + + * src/autofit/afloader.c (af_loader_load_g): Test digit width. + + * docs/CHANGES: Document it. + +2009-04-26 Werner Lemberg <[email protected]> + + Make ftgrays compile with _STANDALONE_ and FT_STATIC_RASTER again. + Problems reported by [email protected]. + + * src/smooth/ftgrays.c (FT_DEFINE_OUTLINE_FUNCS, + FT_DEFINE_RASTER_FUNCS) [_STANDALONE_]: Define. + [!_STANDALONE_]: Include ftspic.h only here. + (ras): Define/declare after definition of `TWorker'. + Use `RAS_VAR_' where necessary. + +2009-04-21 Karl Berry <[email protected]> + + Fix AC_CHECK_FT2. + + * builds/unix/freetype2.m4: Only check PATH for freetype-config if + we did not already find it from a prefix option. + +2009-04-05 Oran Agra <[email protected]> + + Add #error to modules and files that do not support PIC yet. + + When FT_CONFIG_OPTION_PIC is defined the following files will + create #error: + * src/bdf/bdfdrivr.h + * src/cache/ftcmanag.c + * src/cid/cidriver.h + * src/gxvalid/gxvmod.h + * src/gzip/ftgzip.c + * src/lzw/ftlzw.c + * src/otvalid/otvmod.h + * src/pcf/pcfdrivr.h + * src/pfr/pfrdrivr.h + * src/psaux/psauxmod.h + * src/type1/t1driver.h + * src/type42/t42drivr.h + * src/winfonts/winfnt.h + +2009-04-05 Oran Agra <[email protected]> + + Position Independent Code (PIC) support in autofit module. + + * include/freetype/internal/autohint.h add macros to init + instances of FT_AutoHinter_ServiceRec. + + * src/autofit/afmodule.h declare autofit_module_class + using macros from ftmodapi.h, + when FT_CONFIG_OPTION_PIC is defined create and destroy + functions will be declared. + * src/autofit/afmodule.c when FT_CONFIG_OPTION_PIC is defined + af_autofitter_service and autofit_module_class structs + will have functions to init or create and destroy them + instead of being allocated in the global scope. + And macros will be used from afpic.h in order to access them. + + * src/autofit/aftypes.h add macros to init and declare + instances of AF_ScriptClassRec. + + * src/autofit/afcjk.h declare af_cjk_script_class + using macros from aftypes.h, + when FT_CONFIG_OPTION_PIC is defined init function will be declared. + * src/autofit/afcjk.c when FT_CONFIG_OPTION_PIC is defined + af_cjk_script_class struct will have function to init it instead of + being allocated in the global scope. + + * src/autofit/afdummy.h declare af_dummy_script_class + using macros from aftypes.h, + when FT_CONFIG_OPTION_PIC is defined init function will be declared. + * src/autofit/afdummy.c when FT_CONFIG_OPTION_PIC is defined + af_dummy_script_class struct will have function to init it instead of + being allocated in the global scope. + + * src/autofit/afindic.h declare af_indic_script_class + using macros from aftypes.h, + when FT_CONFIG_OPTION_PIC is defined init function will be declared. + * src/autofit/afindic.c when FT_CONFIG_OPTION_PIC is defined + af_indic_script_class struct will have function to init it instead of + being allocated in the global scope. + + * src/autofit/aflatin.h declare af_latin_script_class + using macros from aftypes.h, + when FT_CONFIG_OPTION_PIC is defined init function will be declared. + * src/autofit/aflatin.c when FT_CONFIG_OPTION_PIC is defined + af_latin_script_class struct will have function to init it instead of + being allocated in the global scope. + Change af_latin_blue_chars to be PIC-compatible by being a two + dimentional array rather than array of pointers. + + + * src/autofit/aflatin2.h declare af_latin2_script_class + using macros from aftypes.h, + when FT_CONFIG_OPTION_PIC is defined init function will be declared. + * src/autofit/aflatin2.c when FT_CONFIG_OPTION_PIC is defined + af_latin2_script_class struct will have function to init it instead of + being allocated in the global scope. + Change af_latin2_blue_chars to be PIC-compatible by being a two + dimentional array rather than array of pointers. + + * src/autofit/afglobal.c when FT_CONFIG_OPTION_PIC is defined + af_script_classes array initialization was moved to afpic.c and + is later refered using macros defeined in afpic.h. + + New Files: + * src/autofit/afpic.h declare struct to hold PIC globals for autofit + module and macros to access them. + * src/autofit/afpic.c implement functions to allocate, destroy and + initialize PIC globals for autofit module. + + * src/autofit/autofit.c add new file to build: afpic.c. + * src/autofit/jamfile add new files to FT2_MULTI build: afpic.c. + +2009-04-05 Oran Agra <[email protected]> + + Position Independent Code (PIC) support in pshinter module. + + * include/freetype/internal/pshints.h add macros to init + instances of PSHinter_Interface. + + * src/pshinter/pshmod.h declare pshinter_module_class + using macros from ftmodapi.h, + when FT_CONFIG_OPTION_PIC is defined create and destroy + functions will be declared. + * src/pshinter/pshmod.c when FT_CONFIG_OPTION_PIC is defined + pshinter_interface and pshinter_module_class structs + will have functions to init or create and destroy them + instead of being allocated in the global scope. + And macros will be used from pshpic.h in order to access them. + + New Files: + * src/pshinter/pshpic.h declare struct to hold PIC globals for pshinter + module and macros to access them. + * src/pshinter/pshpic.c implement functions to allocate, destroy and + initialize PIC globals for pshinter module. + + * src/pshinter/pshinter.c add new file to build: pshpic.c. + * src/pshinter/jamfile add new files to FT2_MULTI build: pshpic.c. + +2009-04-05 Oran Agra <[email protected]> + + Position Independent Code (PIC) support in psnames module. + + * include/freetype/internal/services/svpscmap.h add macros to init + instances of FT_Service_PsCMapsRec. + + * src/psnames/psmodule.h declare psnames_module_class + using macros from ftmodapi.h, + when FT_CONFIG_OPTION_PIC is defined create and destroy + functions will be declared. + * src/psnames/psmodule.c when FT_CONFIG_OPTION_PIC is defined + pscmaps_interface and pscmaps_services structs + and psnames_module_class array + will have functions to init or create and destroy them + instead of being allocated in the global scope. + And macros will be used from pspic.h in order to access them. + + New Files: + * src/psnames/pspic.h declare struct to hold PIC globals for psnames + module and macros to access them. + * src/psnames/pspic.c implement functions to allocate, destroy and + initialize PIC globals for psnames module. + + * src/psnames/psnames.c add new file to build: pspic.c. + * src/psnames/jamfile add new files to FT2_MULTI build: pspic.c. + +2009-04-05 Oran Agra <[email protected]> + + Position Independent Code (PIC) support in raster renderer. + + * src/raster/ftrend1.h declare ft_raster1_renderer_class + and ft_raster5_renderer_class + using macros from ftrender.h, + when FT_CONFIG_OPTION_PIC is defined create and destroy + functions will be declared. + * src/smooth/ftrend1.c when FT_CONFIG_OPTION_PIC is defined + ft_raster1_renderer_class and ft_raster5_renderer_class structs + will have functions to init or create and destroy them + instead of being allocated in the global scope. + Macros will be used from rastpic.h in order to access + ft_standard_raster from the pic_container (allocated in ftraster.c). + In ft_raster1_render when PIC is enabled, the last letter of + module_name is used to verfy the renderer class rather than the + class pointer. + + * src/raster/ftraster.c when FT_CONFIG_OPTION_PIC is defined + ft_standard_raster struct will have function to init it + instead of being allocated in the global scope. + + New Files: + * src/raster/rastpic.h declare struct to hold PIC globals for raster + renderer and macros to access them. + * src/raster/rastpic.c implement functions to allocate, destroy and + initialize PIC globals for raster renderer. + + * src/raster/raster.c add new file to build: rastpic.c. + * src/raster/jamfile add new files to FT2_MULTI build: rastpic.c. + +2009-04-05 Oran Agra <[email protected]> + + Position Independent Code (PIC) support in smooth renderer. + + * src/smooth/ftsmooth.h declare ft_smooth_renderer_class, + ft_smooth_lcd_renderer_class and ft_smooth_lcd_v_renderer_class + using macros from ftrender.h, + when FT_CONFIG_OPTION_PIC is defined create and destroy + functions will be declared. + * src/smooth/ftsmooth.c when FT_CONFIG_OPTION_PIC is defined + the following structs: + ft_smooth_renderer_class, ft_smooth_lcd_renderer_class + and ft_smooth_lcd_v_renderer_class + will have functions to init or create and destroy them + instead of being allocated in the global scope. + And macros will be used from ftspic.h in order to access + ft_grays_raster from the pic_container (allocated in ftgrays.c). + + * src/smooth/ftgrays.h include FT_CONFIG_CONFIG_H + * src/smooth/ftgrays.c when FT_CONFIG_OPTION_PIC is NOT defined + func_interface was moved from gray_convert_glyph_inner function + to the global scope. + When FT_CONFIG_OPTION_PIC is defined + func_interface and ft_grays_raster structs + will have functions to init them + instead of being allocated in the global scope. + And func_interface will be allocated on the stack of + gray_convert_glyph_inner. + + New Files: + * src/smooth/ftspic.h declare struct to hold PIC globals for smooth + renderer and macros to access them. + * src/smooth/ftspic.c implement functions to allocate, destroy and + initialize PIC globals for smooth renderer. + + * src/smooth/smooth.c add new file to build: ftspic.c. + * src/smooth/jamfile add new files to FT2_MULTI build: ftspic.c. + +2009-04-05 Oran Agra <[email protected]> + + Position Independent Code (PIC) support in cff driver. + + * include/freetype/internal/services/svcid.h add macros to init + instances of FT_Service_CIDRec. + * include/freetype/internal/services/svpsinfo.h add macros to init + instances of FT_Service_PsInfoRec. + + * src/cff/cffcmap.h declare cff_cmap_encoding_class_rec + and cff_cmap_unicode_class_rec using macros from + ftobjs.h, when FT_CONFIG_OPTION_PIC is defined create and destroy + functions will be declared. + * src/cff/cffcmap.c when FT_CONFIG_OPTION_PIC is defined + the following structs: + cff_cmap_encoding_class_rec and cff_cmap_unicode_class_rec + will have functions to init or create and destroy them + instead of being allocated in the global scope. + + * src/cff/cffdrivr.h declare cff_driver_class using macros from + ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy + functions will be declared. + * src/cff/cffdrivr.c when FT_CONFIG_OPTION_PIC is defined + the following structs: + cff_service_glyph_dict, cff_service_ps_info, cff_service_ps_name + cff_service_get_cmap_info, cff_service_cid_info, cff_driver_class, + and cff_services array + will have functions to init or create and destroy them + instead of being allocated in the global scope. + And macros will be used from cffpic.h in order to access them + from the pic_container. + Use macros from cffpic.h in order to access the + structs allocated in cffcmap.c + + * src/cff/cffobjs.c Use macros from cffpic.h in order to access the + structs allocated in cffcmap.c + + * src/cff/parser.c when FT_CONFIG_OPTION_PIC is defined + implement functions to create and destroy cff_field_handlers array + instead of being allocated in the global scope. + And macros will be used from cffpic.h in order to access it + from the pic_container. + + New Files: + * src/cff/cffpic.h declare struct to hold PIC globals for cff + driver and macros to access them. + * src/cff/cffpic.c implement functions to allocate, destroy and + initialize PIC globals for cff driver. + + * src/cff/cff.c add new file to build: cffpic.c. + * src/cff/jamfile add new files to FT2_MULTI build: cffpic.c. + +2009-04-05 Oran Agra <[email protected]> + + Position Independent Code (PIC) support in sfnt driver. + + * include/freetype/internal/services/svbdf.h add macros to init + instances of FT_Service_BDFRec. + * include/freetype/internal/services/svgldict.h add macros to init + instances of FT_Service_GlyphDictRec. + * include/freetype/internal/services/svpostnm.h add macros to init + instances of FT_Service_PsFontNameRec. + * include/freetype/internal/services/svsfnt.h add macros to init + instances of FT_Service_SFNT_TableRec. + * include/freetype/internal/services/svttcmap.h add macros to init + instances of FT_Service_TTCMapsRec. + * include/freetype/internal/sfnt.h add macros to init + instances of SFNT_Interface. + + * src/sfnt/sfdriver.h declare sfnt_module_class using macros from + ftmodapi.h, when FT_CONFIG_OPTION_PIC is defined create and destroy + functions will be declared. + * src/sfnt/sfdriver.c when FT_CONFIG_OPTION_PIC is defined + the following structs: + sfnt_service_sfnt_table, sfnt_service_glyph_dict, sfnt_service_ps_name + tt_service_get_cmap_info, sfnt_service_bdf, sfnt_interface, + sfnt_module_class, and sfnt_services array + will have functions to init or create and destroy them + instead of being allocated in the global scope. + And macros will be used from sfntpic.h in order to access them + from the pic_container. + + * src/sfnt/ttcmap.h add macros to init + instances of TT_CMap_ClassRec. + * src/sfnt/ttcmap.c when FT_CONFIG_OPTION_PIC is defined + the following structs: + tt_cmap0_class_rec, tt_cmap2_class_rec, tt_cmap4_class_rec + tt_cmap6_class_rec, tt_cmap8_class_rec, tt_cmap10_class_rec, + tt_cmap12_class_rec, tt_cmap14_class_rec and tt_cmap_classes array + will have functions to init or create and destroy them + instead of being allocated in the global scope. + And macros will be used from sfntpic.h in order to access them + from the pic_container. + The content of tt_cmap_classes is now described in the + new file 'ttcmapc.h'. + + New Files: + * src/sfnt/sfntpic.h declare struct to hold PIC globals for sfnt + driver and macros to access them. + * src/sfnt/sfntpic.c implement functions to allocate, destroy and + initialize PIC globals for sfnt driver. + * src/sfnt/ttcmapc.h describing the content of + tt_cmap_classes allocated in ttcmap.c + + * src/sfnt/sfnt.c add new file to build: sfntpic.c. + * src/sfnt/jamfile add new files to FT2_MULTI build: sfntpic.c. + +2009-04-05 Oran Agra <[email protected]> + + Position Independent Code (PIC) support in truetype driver. + + * include/freetype/internal/services/svmm.h add macros to init + instances of FT_Service_MultiMastersRec. + * include/freetype/internal/services/svttglyf.h add macros to init + instances of FT_Service_TTGlyfRec. + + * src/truetype/ttdriver.h declare tt_driver_class using macros from + ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy + functions will be declared. + * src/truetype/ttdriver.c when FT_CONFIG_OPTION_PIC is defined + the following structs: + tt_service_gx_multi_masters, tt_service_truetype_glyf, tt_driver_class + and tt_services array, + will have functions to init or create and destroy them + instead of being allocated in the global scope. + And macros will be used from ttpic.h in order to access them + from the pic_container. + * src/truetype/ttobjs.c change trick_names array to be + PIC-compatible by being a two dimentional array rather than array + of pointers. + + New Files: + * src/truetype/ttpic.h declare struct to hold PIC globals for truetype + driver and macros to access them. + * src/truetype/ttpic.c implement functions to allocate, destroy and + initialize PIC globals for truetype driver. + + * src/truetype/truetype.c add new file to build: ttpic.c. + * src/truetype/jamfile add new files to FT2_MULTI build: ttpic.c. + +2009-04-05 Oran Agra <[email protected]> + + Position Independent Code (PIC) support and infrastructure in base. + + * include/freetype/config/ftoption.h add FT_CONFIG_OPTION_PIC + * include/freetype/internal/ftobjs.h Add pic_container member to + FT_LibraryRec. + Add macros to declare and init instances of FT_CMap_ClassRec. + Add macros to init instances of FT_Outline_Funcs and FT_Raster_Funcs. + Add macros to declare, allocate and initialize modules + (FT_Module_Class). + Add macros to declare, allocate and initialize renderers + (FT_Renderer_Class). + Add macro to init instances of FT_Glyph_Class. + Add macros to declare, allocate and initialize drivers + (FT_Driver_ClassRec). + * include/freetype/internal/ftpic.h new file to declare the + FT_PIC_Container struct and the functions to allocate and detroy it. + * include/freetype/internal/ftserv.h add macros to allocate and + destory arrays of FT_ServiceDescRec. + * include/freetype/internal/internal.h define macro to include + ftpic.h. + + New Files: + * src/base/ftpic.c implement functions to allocate and destory the + global pic_container. + * src/base/basepic.h declare struct to hold PIC globals for base and + macros to access them. + * src/base/basepic.c implement functions to allocate, destroy and + initialize PIC globals for base. + + * src/base/ftinit.c when FT_CONFIG_OPTION_PIC is defined implement + functions that allocate and destroy ft_default_modules according to + FT_CONFIG_MODULES_H in the pic_container instead of the global scope + and use macro from basepic.h to access it. + * src/base/ftobjs.c add calls to the functions that allocate and + destroy the global pic_container when the library is created and + destroyed. + + * src/base/jamfile add new files to FT2_MULTI build: + ftpic.c and basepic.c. + * src/base/ftbase.c add new files to build: + ftpic.c and basepic.c. + + * src/base/ftglyph.c when FT_CONFIG_OPTION_PIC is defined + ft_bitmap_glyph_class and ft_outline_glyph_class will be allocated + in the pic_container instead of the global scope and use macros from + basepic.h to access them. + * src/base/ftbbox.c allocate bbox_interface stract on the stack + instead of the global scope when FT_CONFIG_OPTION_PIC is defined. + * src/base/ftstroke.c access ft_outline_glyph_class allocated in + ftglyph.c via macros from basepic.h + +2009-04-05 Oran Agra <[email protected]> + + Preparing changes in cff parser later needed for PIC version. + + * src/cff/cffload.c, src/cff/cffload.h, src/cff/cffobjs.c, + src/cff/cffparse.c, src/cff/cffparse.h: Add library pointer to + 'CFF_ParserRec' set by `cff_parser_init'. + Route library pointer from 'cff_face_init' to 'cff_subfont_load' + for `cff_parser_init'. + + * src/cff/cffparse.c (CFF_Field_Handler): Move it to... + * src/cff/cffparse.h: This file, to be used by other C files. + +2009-04-05 Oran Agra <[email protected]> + + Minor change in ftstroke.c. + + * src/base/ftstroke.c (FT_StrokerRec): Replace `memory' member with + `library' needed for PIC version. + Update all callers. + +2009-04-04 Werner Lemberg <[email protected]> + + ftnames.c -> ftsnames.c + + * src/base/ftnames.c: Rename to... + * src/base/ftsnames.c: This. + * src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated. + +2009-04-04 Werner Lemberg <[email protected]> + + Add support for cmap type 13. + + * devel/ftoption.h, include/freetype/config/ftoption.h + (TT_CONFIG_CMAP_FORMAT_13): New macro. + + * src/sfnt/ttcmap.c (TT_CMap13Rec, tt_cmap13_init, + tt_cmap13_validate, tt_cmap13_char_index, tt_cmap13_char_next, + tt_cmap13_get_info, tt_cmap13_char_map_def_binary, + tt_cmap14_class_rec): New functions and structures for cmap 13 + support. + (tt_cmap_classes): Register tt_cmap13_class_rec. + + * docs/CHANGES: Mention cmap 13 support. + +2009-04-01 Werner Lemberg <[email protected]> + + Ignore empty contours in CFF glyphs. + + Problem reported by Albert Astals Cid <[email protected]>. + + * src/cff/cffgload.c (cff_builder_close_contour): Synchronize with + t1_builder_close_contour. + +2009-03-21 Werner Lemberg <[email protected]> + + Another redundant header inclusion. + + * src/truetype/ttgxvar.c: Fix Ghostscript Coverity issue #4041. + +2009-03-21 Werner Lemberg <[email protected]> + + Remove redundant header inclusions. + + This covers many Ghostscript Coverity issues. + + * src/*: Do it. + +2009-03-21 Werner Lemberg <[email protected]> + + Fix Ghostscript Coverity issue #3904. + + * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against + invalid values of `runcnt'. + +2009-03-20 Werner Lemberg <[email protected]> + + Fix `make multi' run. + + * src/smooth/ftsmooth.h: Include FT_INTERNAL_DEBUG_H. + +2009-03-20 Werner Lemberg <[email protected]> + + Fix Savannah bug #25923. + + * src/cache/ftccmap.c (FTC_CMAP_HASH): Fix typo. + +2009-03-20 Werner Lemberg <[email protected]> + + Protect against too large glyphs. + + Problem reported by Tavis Ormandy <[email protected]>. + + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Don't allow + `pitch' or `height' to be larger than 0xFFFF. + +2009-03-20 Werner Lemberg <[email protected]> + Tavis Ormandy <[email protected]> + + Fix validation for various cmap table formats. + + * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate, + tt_cmap12_validate): Check `length' correctly. + (tt_cmap_14_validate): Check `length' and `numMappings' correctly. + +2009-03-20 Werner Lemberg <[email protected]> + + Protect against malformed compressed data. + + * src/lzw/ftzopen.c (ft_lzwstate_io): Test whether `state->prefix' is + zero. + +2009-03-20 Werner Lemberg <[email protected]> + + Protect against invalid SID values in CFFs. + + Problem reported by Tavis Ormandy <[email protected]>. + + * src/cff/cffload.c (cff_charset_load): Reject SID values larger + than 64999. + +2009-03-19 Vincent Richomme <[email protected]> + + Update WinCE Visual C project files. + + * builds/wince/vc2005-ce/freetype.vcproj, + builds/wince/vc2008-ce/freetype.vcproj: Add missing base extension + files. + +2009-03-19 Werner Lemberg <[email protected]> + + Remove unused Win32 code. + + * builds/wince/ftdebug.c: Remove code guarded with `!_WIN32_WCE'. + Since Win32 is handled separately this is no longer needed. + +2009-03-19 Vincent Richomme <[email protected]> + + Make `gzip' module compile on WinCE. + + * src/gzip/zconf.h [_WIN32_WCE]: Define NO_ERRNO_H. + +2009-03-19 Werner Lemberg <[email protected]> + + Remove unused WinCE code. + + * builds/win32/ftdebug.c: Remove code guarded with `_WIN32_WCE'. + Since WinCE is handled separately this is no longer needed. + +2009-03-16 Werner Lemberg <[email protected]> + + docmaker: Don't ignore single-line code blocks. + + * src/tools/docmaker/content.py (DocBlock::_init__): Fix change from + 2009-01-31. + +2009-03-15 Steve Langasek <[email protected]> + + Use __asm__ for declaring assembly instead of asm. + + * builds/unix/ftconfig.in (FT_MulFix_arm): Use __asm__ instead of + asm on arm, fixing a build failure on armel with -pedantic. + +2009-03-14 Werner Lemberg <[email protected]> + + Fix valgrind warning. + + * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned): Don't read + past the end of the frame. + +2009-03-12 Werner Lemberg <[email protected]> + + * Version 2.3.9 released. + ========================= + + + Tag sources with `VER-2-3-9'. + +2009-03-12 Werner Lemberg <[email protected]> + + * builds/unix/freetype2.in: Move @FT2_EXTRA_LIBS@ to `Libs.private'. + +2009-03-12 Werner Lemberg <[email protected]> + + Fix some FreeType Coverity issues as reported for Ghostscript. + + * src/base/ftobjs.c (FT_New_Face, FT_New_Memory_Face): Initialize + `args.stream' (#3874, #3875). + (open_face_PS_from_sfnt_stream): Improve error management (#3786). + * src/base/ftmm.c (ft_face_get_mm_service): Fix check of `aservice' + (#3870). + * src/base/ftstroke.c (ft_stroke_border_get_counts): Remove dead + code (#3790). + * src/base/ftrfork.c (raccess_guess_apple_generic): Check error + value of `FT_Stream_Skip' (#3784). + + * src/type1/t1gload.c (T1_Load_Glyph): Check `size' before accessing + it (#3872) + + * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Check `face' before accessing + it (#3871). + * src/pcf/pcfread.c (pcf_get_metrics): Handle return value of + `pcf_get_metric' (#3789, #3782). + (pcf_get_properties): Use FT_STREAM_SKIP (#3783). + + * src/cache/ftcmanag.c (FTC_Manager_RegisterCache): Fix check of + `acache' (#3797) + + * src/cff/cffdrivr.c (cff_ps_get_font_info): Fix check of `cff' + (#3796). + * src/cff/cffgload.c (cff_decoder_prepare): Check `size' (#3795). + * src/cff/cffload.c (cff_index_get_pointers): Add comment (#3794). + + * src/bdf/bdflib.c (_bdf_add_property): Check `fp->value.atom' + (#3793). + (_bdf_parse_start): Add comment (#3792). + + * src/raster/ftraster.c (Finalize_Profile_Table): Check + `ras.fProfile' (#3791). + + * src/sfnt/ttsbit.c (Load_SBit_Image): Use FT_STREAM_SKIP (#3785). + + * src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Properly ignore + seek error (#3781). + +2009-03-11 Michael Toftdal <[email protected]> + + Extend CID service functions to handle CID-keyed CFFs as CID fonts. + + * include/freetype/ftcid.h (FT_Get_CID_Is_Internally_CID_keyed, + FT_Get_CID_From_Glyph_Index): New functions. + + * include/freetype/internal/services/svcid.h + (FT_CID_GetIsInternallyCIDKeyedFunc, + FT_CID_GetCIDFromGlyphIndexFunc): New function typedefs. + (CID Service): Use them. + + * src/base/ftcid.c: Include FT_CID_H. + (FT_Get_CID_Is_Internally_CID_keyed, FT_Get_CID_From_Glyph_Index): + New functions. + + * src/cff/cffdrivr.c (cff_get_is_cid, cff_get_cid_from_glyph_index): + New functions. + (cff_service_cid_info): Add them. + * src/cff/cffload.c (cff_font_load): Don't free `font->charset.sids' + -- it is needed for access as a CID-keyed font. It gets deleted + later on. + + * src/cid/cidriver.c (cid_get_is_cid, cid_get_cid_from_glyph_index): + New functions. + (cid_service_cid_info): Add them. + + * docs/CHANGES: Updated. + +2009-03-11 Bram Tassyns <[email protected]> + + Fix Savannah bug #25597. + + * src/cff/cffparse.c (cff_parse_real): Don't allow fraction_length + to become larger than 9. + +2009-03-11 Werner Lemberg <[email protected]> + + Fix Savannah bug #25814. + + * builds/unix/freetype2.in: As suggested in the bug report, move + @LIBZ@ to `Libs.private'. + +2009-03-11 Werner Lemberg <[email protected]> + + Fix Savannah bug #25781. + We now simply check for a valid `offset', no longer handling `delta + = 1' specially. + + * src/sfnt/ttcmap.c (tt_cmap4_validate): Don't check `delta' for + last segment. + (tt_cmap4_set_range, tt_cmap4_char_map_linear, + tt_cmap4_char_map_binary): Check offset. + +2009-03-11 Werner Lemberg <[email protected]> + + * src/base/Jamfile: Fix handling of ftadvanc.c. + Reported by Oran Agra <[email protected]>. + +2009-03-10 Vincent Richomme <[email protected]> + + Restructure Win32 and Wince compiler support. + + * src/builds/win32: Remove files for WinCE. + Move VC 2005 support to a separate directory. + Add directory for VC 2008 support. + + * src/builds/wince: New directory hierarchy for WinCE compilers + (VC 2005 and VC 2008). + +2009-03-09 Werner Lemberg <[email protected]> + + More preparations for 2.3.9 release. + + * docs/CHANGES: Updated. + + * Jamfile, README: s/2.3.8/2.3.9/, s/238/239/. + +2009-03-09 Werner Lemberg <[email protected]> + + * src/sfnt/rules.mk (SFNT_DRV_H): Add ttsbit0.c. + +2009-03-09 Alexey Kryukov <[email protected]> + + Fix handling of EBDT formats 8 and 9 (part 2). + + This patch fixes the following problems in ttsbit0.c: + + . Bitmaps for compound glyphs were never allocated. + + . `SBitDecoder' refused to load metrics if some other metrics have + already been loaded. This condition certainly makes no sense for + recursive calls, so I've just disabled it. Another possibility + would be resetting `decoder->metrics_loaded' to false before + loading each composite component. However, we must restore the + original metrics after finishing the recursion; otherwise we can + get a misaligned glyph. + + . `tt_sbit_decoder_load_bit_aligned' incorrectly handled `x_pos', + causing some glyph components to be shifted too far to the right + (especially noticeable for small sizes). + + Note that support for grayscale bitmaps (not necessarily compound) is + completely broken in ttsbit0.c. + + * src/sfnt/tt_sbit_decoder_load_metrics: Always load metrics. + (tt_sbit_decoder_load_bit_aligned): Handle `x_pos' correctly in case + of `h == height'. + (tt_sbit_decoder_load_compound): Reset metrics after loading + components. + Allocate bitmap. + +2009-03-09 Werner Lemberg <[email protected]> + + * builds/unix/configure.raw (version_info): Set to 9:20:3. + +2009-03-03 David Turner <[email protected]> + + Protect SFNT kerning table parser against malformed tables. + + This closes Savannah BUG #25750. + + * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning): Fix a + bug where a malformed table would be successfully loaded but later + crash the engine during parsing. + +2009-03-03 David Turner <[email protected]> + + Update documentation and bump version number to 2.3.9. + + * include/freetype/freetype.h: Bump patch version to 9. + * docs/CHANGES: Document the ABI break in 2.3.8. + * docs/VERSION.DLL: Update version numbers table for 2.3.9. + +2009-03-03 David Turner <[email protected]> + + Remove ABI-breaking field in public PS_InfoFontRec definition. + + Instead, we define a new internal PS_FontExtraRec structure to + hold the additional field, then place it in various internal + positions of the corresponding FT_Face derived objects. + + * include/freetype/t1tables.h (PS_FontInfoRec): Remove the + `fs_type' field from the public structure. + * include/freetype/internal/psaux.h (T1_FieldLocation): New + enumeration `T1_FIELD_LOCATION_FONT_EXTRA'. + * include/freetype/internal/t1types.h (PS_FontExtraRec): New + structure. + (T1_FontRec, CID_FaceRec): Add it. + + * src/cid/cidload.c (cid_load_keyword): Handle + T1_FIELD_LOCATION_FONT_EXTRA. + * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c: + Adjust FT_STRUCTURE and T1CODE properly to handle `FSType'. + * src/type1/t1load.c (t1_load_keyword): Handle + T1_FIELD_LOCATION_FONT_EXTRA. + + * include/freetype/internal/services/svpsinfo.h (PsInfo service): + Add `PS_GetFontExtraFunc' function typedef. + + * src/base/ftfstype.c: Include FT_INTERNAL_SERVICE_H and + FT_SERVICE_POSTSCRIPT_INFO_H. + (FT_Get_FSType_Flags): Use POSTSCRIPT_INFO service. + + * src/cff/cffdrivr.c (cff_service_ps_info): Updated. + * src/cid/cidriver.c (cid_ps_get_font_extra): New function. + (cid_service_ps_info): Updated. + * src/type1/t1driver.c (t1_ps_get_font_extra): New function. + (t1_service_ps_info): Updated. + * src/type42/t42drivr.c (t42_ps_get_font_extra): New function. + (t42_service_ps_info): Updated. + +2009-03-02 Alexey Kryukov <[email protected]> + + Fix handling of EBDT formats 8 and 9. + + The main cycle in `blit_sbit' makes too many iterations: it actually + needs the count of lines in the source bitmap rather than in the + target image. + + * src/sfnt/ttsbit.c (blit_sbit) [FT_CONFIG_OPTION_OLD_INTERNALS]: + Add parameter `source_height' and use it for main loop. + (Load_SBit_Single) [FT_CONFIG_OPTION_OLD_INTERNALS]: Updated. + +2009-02-23 Werner Lemberg <[email protected]> + + Fix Savannah bug #25669. + + * src/base/ftadvanc.h (FT_Get_Advances): Fix serious typo. + + * src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics): Fix + scaling factor for non-scalable fonts. + + * src/cff/cffdrivr.c (cff_get_advances): Use correct advance width + value to prevent incorrect scaling. + + * docs/CHANGES: Document it. + +2009-02-15 Matt Godbolt <[email protected]> + + Fix Savannah bug #25588. + + * builds/unix/ftconfig.in (FT_MulFix_arm): Use correct syntax for + `orr' instruction. + +2009-02-11 Werner Lemberg <[email protected]> + + * src/truetype/ttobjs.c (tt_check_trickyness): Add `DFKaiShu'. + Reported by David Bevan <[email protected]>. + +2009-02-09 Werner Lemberg <[email protected]> + + Fix Savannah bug #25495. + + * src/sfnt/sfobjs.c (sfnt_load_face): Test for bitmap strikes before + setting metrics and bbox values. This ensures that the check for a + font with neither a `glyf' table nor bitmap strikes can be performed + early enough to set metrics and bbox values too. + +2009-02-04 Werner Lemberg <[email protected]> + + Fix Savannah bug #25480. + + * builds/unix/freetype-config.in: For --ftversion, don't use $prefix + but $includedir. + +2009-01-31 Werner Lemberg <[email protected]> + + Minor docmaker improvements. + + * src/tools/docmaker/content.py (DocBlock::__init__): Ignore empty + code blocks. + +2009-01-25 Werner Lemberg <[email protected]> + + Fix SCANCTRL handling in TTFs. + Problem reported by Alexey Kryukov <[email protected]>. + + * src/truetype/ttinterp.c (Ins_SCANCTRL): Fix threshold handling. + +2009-01-23 Werner Lemberg <[email protected]> + + Move FT_Get_FSType_Flags to a separate file. + Problem reported by Mickey Gabel <[email protected]>. + + * src/base/ftobjs.c (FT_Get_FSType_Flags): Move to... + * src/base/ftfstype.c: This new file. + + * modules.cfg (BASE_EXTENSION): Add ftfstype.c. + + * docs/INSTALL.ANY: Updated. + + * builds/mac/*.txt, builds/amiga/*makefile*, + builds/win32/{visualc,visualce}/freetype.*, builds/symbian/*: + Updated. + +2009-01-22 suzuki toshiya <[email protected]> + + * builds/unix/ftsystem.c (FT_Stream_Open): Fix 2 error + messages ending without "\n". + +2009-01-22 suzuki toshiya <[email protected]> + + Fix Savannah bug #25347. + + * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Rewind + the stream to the original position passed to this function, + when ft_lookup_PS_in_sfnt_stream() failed. + (Mac_Read_sfnt_Resource): Rewind the stream to the head of + sfnt resource body, when open_face_PS_from_sfnt_stream() + failed. + +2009-01-19 Michael Lotz <[email protected]> + + Fix Savannah bug #25355. + + * include/freetype/config/ftconfig.h (FT_MulFix_i386): Make + assembler code work with gcc 2.95.3 (as used by the Haiku project). + Add `cc' register to the clobber list. + +2009-01-18 Werner Lemberg <[email protected]> + + Protect FT_Get_Next_Char. + + * src/sfnt/ttcmap.c (tt_cmap4_set_range): Apply fix similar to + change from 2008-07-22. + + Patch from Ronen Ghoshal <[email protected]>. + +2009-01-18 Werner Lemberg <[email protected]> + + Implement FT_Get_Name_Index for SFNT driver. + + * src/sfnt/sfdriver.c (sfnt_get_name_index): New function. + (sfnt_service_glyph_dict): Use it. + + Problem reported by Truc Truong <[email protected]>. + +2009-01-18 Werner Lemberg <[email protected]> + + * include/freetype/ftstroke.h (FT_Outline_GetInsideBorder): Fix + documentation. Problem reported by Truc Truong <[email protected]>. + + * docs/CHANGES: Updated. + +2009-01-14 Werner Lemberg <[email protected]> + + * Version 2.3.8 released. + ========================= + + + Tag sources with `VER-2-3-8'. + + * docs/VERSION.DLL: Update documentation and bump version number to + 2.3.8. + + * README, Jamfile (RefDoc), builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj, + builds/win32/visualce/index.html, + builds/win32/visualce/freetype.dsp, + builds/win32/visualce/freetype.vcproj: s/2.3.7/2.3.8/, s/237/238/. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8. + + * builds/unix/configure.raw (version_info): Set to 9:19:3. + + * docs/release: Updated. + +2009-01-14 Werner Lemberg <[email protected]> + + * builds/toplevel.mk (dist): Compress better. + +2009-01-13 Werner Lemberg <[email protected]> + + * src/base/ftobjs.c (FT_Get_FSType_Flags): Cast for compilation + with C++. + +2009-01-13 Werner Lemberg <[email protected]> + + Don't use stdlib.h and friends directly. + Reported by Mickey Gabel <[email protected]>. + + * src/base/ftdbgmem.c: s/<stdlib.h>/FT_CONFIG_STANDARD_LIBRARY_H/. + + * src/gzip/ftgzip.c, src/lzw/ftlzw.c, src/raster/ftmisc.h: + s/<string.h>/FT_CONFIG_STANDARD_LIBRARY_H/. + + * src/autofit/aftypes.h, src/autofit/afhints.c, + src/pshinter/pshalgo.c: s/<stdio.h>/FT_CONFIG_STANDARD_LIBRARY_H/ + + * src/lzw/ftlzw.c, src/base/ftdbgmem.c: Don't include stdio.h. + +2009-01-12 Werner Lemberg <[email protected]> + + Avoid compiler warnings. + + * */*: s/do ; while ( 0 )/do { } while ( 0 )/. + Reported by Sean McBride <[email protected]>. + +2009-01-12 Werner Lemberg <[email protected]> + + Fix stdlib dependencies. + + Problem reported by Mickey Gabel <[email protected]>. + + * include/freetype/config/ftstdlib.h (ft_exit): Removed. Unused. + + * src/autofit/afhints.c, src/base/ftlcdfil.c, src/smooth/ftsmooth.c: + s/memcpy/ft_memcpy/. + * src/psaux/t1decode.c: s/memset/ft_memset/, s/memcpy/ft_memcpy/. + +2009-01-11 Werner Lemberg <[email protected]> + + * docs/formats.txt: Add link to PCF specification. + + * include/freetype/ftbdf.h (FT_Get_BDF_Property): Improve + documentation. + +2009-01-09 suzuki toshiya <[email protected]> + + * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance, + FT_Get_Advances): Change the type of load_flags from FT_UInt32 to + FT_Int32, to match with the flags for FT_Load_Glyph(). + * src/cff/cffdrivr.c (cff_get_advances): Ditto. + * src/truetype/ttdriver.c (tt_get_advances): Ditto. + * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances): + Ditto. + * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc): + Ditto. + +2009-01-09 Daniel Zimmermann <[email protected]> + + * src/gxvalid/gxvmort.c (gxv_mort_feature_validate): Fix wrong + length check. From Savannah patch #6682. + +2009-01-09 Werner Lemberg <[email protected]> + + Fix problem with T1_FIELD_{NUM,FIXED}_TABLE2. + + * src/psaux/psobjs.c (ps_parser_load_field_table): Don't handle + `count_offset' if it is zero (i.e., unused). Otherwise, the first + element of the structure which holds the data is erroneously + modified. Problem reported by Chi Nguyen <[email protected]>. + +2009-01-09 suzuki toshiya <[email protected]> + + * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance, + FT_Get_Advances): Extend the type of load_flags from FT_UInt to + FT_UInt32, to pass 32-bit flags on 16bit platforms. + * src/cff/cffdrivr.c (cff_get_advances): Ditto. + * src/truetype/ttdriver.c (tt_get_advances): Ditto. + * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances): + Ditto. + * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc): + Ditto. + +2009-01-09 suzuki toshiya <[email protected]> + + * src/base/ftobjs.c (FT_Done_Library): Issue an error message when + FT_Done_Face() cannot free all faces. If the list of the opened + faces includes broken face which FT_Done_Face() cannot free, + FT_Done_Library() retries FT_Done_Face() and it can fall into + an endless loop. See the discussion: + http://lists.gnu.org/archive/html/freetype-devel/2008-09/msg00047.html + http://lists.gnu.org/archive/html/freetype-devel/2008-10/msg00000.html + +2009-01-07 Werner Lemberg <[email protected]> + + * docs/CHANGES: Document new key `a' in ftdiff. + +2009-01-06 Werner Lemberg <[email protected]> + + * autogen.sh: Don't use GNUisms while calling sed. Problem reported + by Sean McBride. + +2009-01-06 Werner Lemberg <[email protected]> + + * src/base/ftbitmap.c (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_LCD + and FT_PIXEL_MODE_LCD_V. Problem reported by Chi Nguyen + <[email protected]>. + +2009-01-06 Diego Pettenò <[email protected]> + + * builds/unix/configure.raw: Don't call AC_CANONICAL_BUILD and + AC_CANONICAL_TARGET and use $host_os only. A nice explanation for + this change can be found at + http://blog.flameeyes.eu/s/canonical-target. + + From Savannah patch #6712. + +2009-01-06 Sean McBride <[email protected]> + + * src/base/ftdbgmem.c (_debug_mem_dummy): Make it static. + + * src/base/ftmac.c: Remove some #undefs. + +2008-12-26 Werner Lemberg <[email protected]> + + Set `face_index' field in FT_Face for all font formats. + + * cff/cffobjs.c (cff_face_init), winfonts/winfnt.c (FNT_Face_Init), + sfnt/sfobjs.c (sfnt_init_face): Do it. + + * docs/CHANGES: Document it. + +2008-12-22 Steve Grubb + + * builds/unix/ftsystem.c (FT_Stream_Open): Reject zero-length files. + Patch from Savannah bug #25151. + +2008-12-21 Werner Lemberg <[email protected]> + + * src/pfr/pfrdrivr.c, src/winfonts/winfnt.c, src/cache/ftcmanag.c, + src/smooth/ftgrays.c, src/base/ftobjc.s, src/sfobjs.c: + s/_Err_Bad_Argument/_Err_Invalid_Argument/. The former is for + errors in the bytecode interpreter only. + +2008-12-21 Werner Lemberg <[email protected]> + + * src/base/ftpfr.c (FT_Get_PFR_Metrics): Protect against NULL + arguments. + Fix return value for non-PFR fonts. Both problems reported by Chi + Nguyen <[email protected]>. + +2008-12-21 anonymous + + FT_USE_MODULE declares things as: + + extern const FT_Module_Class + + (or similar for C++). However, the actual types of the variables + being declared are often different, e.g., FT_Driver_ClassRec or + FT_Renderer_Class. (Some are, indeed, FT_Module_Class.) + + This works with most C compilers (since those structs begin with an + FT_Module_Class struct), but technically it's undefined behavior. + + To quote the ISO/IEC 9899:TC2 final committee draft, section 6.2.7 + paragraph 2: + + All declarations that refer to the same object or function shall + have compatible type; otherwise, the behavior is undefined. + + (And they are not compatible types.) + + Most C compilers don't reject (or even detect!) code which has this + issue, but the GCC LTO development branch compiler does. (It + outputs the types of the objects while generating .o files, along + with a bunch of other information, then compares them when doing the + final link-time code generation pass.) + + Patch from Savannah bug #25133. + + * src/base/ftinit.c (FT_USE_MODULE): Include variable type. + + * builds/amiga/include/freetype/config/ftmodule.h, + include/freetype/config/ftmodule.h, */module.mk: Updated to declare + pass correct types to FT_USE_MODULE. + +2008-12-21 Hongbo Ni <[email protected]> + + * src/autofit/aflatin.c (af_latin_hint_edges), + src/autofit/aflatin2.c (af_latin2_hint_edges), src/autofit/afcjk.c + (af_cjk_hint_edges): Protect against division by zero. This fixes + Savannah bug #25124. + +2008-12-18 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2008-12-18 Bevan, David <[email protected]> + + Provide API for accessing embedding and subsetting restriction + information. + + * include/freetype.h (FT_FSTYPE_INSTALLABLE_EMBEDDING, + FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING, + FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING, FT_FSTYPE_EDITABLE_EMBEDDING, + FT_FSTYPE_NO_SUBSETTING, FT_FSTYPE_BITMAP_EMBEDDING_ONLY): New + macros. + (FT_Get_FSType_Flags): New function declaration. + + * src/base/ftobjs.c (FT_Get_FSType_Flags): New function. + + * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c + (t42_keywords): Handle `FSType'. + + * include/freetype/t1tables.h (PS_FontInfoRec): Add `fs_type' field. + +2008-12-17 Werner Lemberg <[email protected]> + + * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Don't use internal + macros so that copying the source code into an application works + out of the box. + +2008-12-17 Werner Lemberg <[email protected]> + + * include/freetype/ftsynth.h, src/base/ftsynth.c: Move + FT_GlyphSlot_Own_Bitmap to... + * include/freetype/ftbitmap.h, src/base/ftbitmap.c: These files. + + * docs/CHANGES: Document it. + +2008-12-10 Werner Lemberg <[email protected]> + + Generalize the concept of `tricky' fonts by introducing + FT_FACE_FLAG_TRICKY to indicate that the font format's hinting + engine is necessary for correct rendering. + + At the same time, slightly modify the behaviour of tricky fonts: + FT_LOAD_NO_HINTING is now ignored. To really force raw loading + of tricky fonts (without hinting), both FT_LOAD_NO_HINTING and + FT_LOAD_NO_AUTOHINT must be used. + + Finally, tricky TrueType fonts always use the bytecode interpreter + even if the patented code is used. + + * include/freetype/freetype.h (FT_FACE_FLAG_TRICKY, FT_IS_TRICKY): + New macros. + + * src/truetype/ttdriver.c (Load_Glyph): Handle new load flags + semantics as described above. + + * src/truetype/ttobjs.c (tt_check_trickyness): New function, using + code of ... + (tt_face_init): This function, now simplified and updated to new + semantics. + + * src/base/ftobjs.c (FT_Load_Glyph): Don't use autohinter for tricky + fonts. + + * docs/CHANGES: Document it. + +2008-12-09 Werner Lemberg <[email protected]> + + Really fix Savannah bug #25010: An SFNT font with neither outlines + nor bitmaps can be considered as containing space `glyphs' only. + + * src/truetype/ttpload.c (tt_face_load_loca): Handle the case where + a `glyf' table is missing. + + * src/truetype/ttgload.c (load_truetype_glyph): Abort if we have no + `glyf' table but a non-zero `loca' entry. + (tt_loader_init): Handle missing `glyf' table. + + * src/base/ftobjs.c (FT_Load_Glyph): Undo change 2008-12-05. + + * src/sfnt/sfobjs.c (sfnt_load_face): A font with neither outlines + nor bitmaps is scalable. + +2008-12-05 Werner Lemberg <[email protected]> + + * src/autofit/aflatin.c (af_latin_uniranges): Add more ranges. This + fixes Savannah bug #21190 which also provides a basic patch. + +2008-12-05 Werner Lemberg <[email protected]> + + * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): Use value + 0x100 instead of 0x10000; the latter value is already occupied by + FT_LOAD_TARGET_LIGHT. Bug reported by James Cloos. + + + Handle SFNT with neither outlines nor bitmaps. This fixes Savannah + bug #25010. + + * src/base/ftobjs.c (FT_Load_Glyph): Reject fonts with neither + outlines nor bitmaps. + + * src/sfnt/sfobjs.c (sfnt_load_face): Don't return an error if there + is no table with glyphs. + + + * src/sfnt/ttload.c (tt_face_lookup_table): Improve debugging + message. + +2008-12-01 Werner Lemberg <[email protected]> + + GDEF tables need `glyph_count' too for validation. Problem reported + by Chi Nguyen <[email protected]>. + + * src/otvalid/otvgdef.c (otv_GDEF_validate), src/otvalid/otvalid.h + (otv_GDEF_validate), src/otvalid/otvmod.c (otv_validate): Pass + `glyph_count'. + +2008-11-29 Werner Lemberg <[email protected]> + + * src/autofit/afcjk.c, src/base/ftoutln.c, src/base/ftrfork.c, + src/bdf/bdfdrivr.c, src/gxvalid/gxvmorx.c, src/otvalid/otvmath.c, + src/pcf/pcfdrivr.c, src/psnames/pstables.h, src/smooth/ftgrays.c, + src/tools/glnames.py, src/truetype/ttinterp.c, src/type1/t1load.c, + src/type42/t42objs.c, src/winfonts/winfnt.c: Fix compiler warnings + (Atari PureC). + +2008-11-29 James Cloos <[email protected]> + + * src/type/t1load.c (mm_axis_unmap): Revert previous patch and fix + it correctly by using FT_INT_TO_FIXED (FreeType expects 16.16 values + in the /BlendDesignMap space). + +2008-11-29 James Cloos <[email protected]> + + * src/type1/t1load.c (mm_axis_unmap): `blend_points' is FT_Fixed*, + whereas `design_points' is FT_Long*. Therefore, return blend rather + than design points. + +2008-11-27 Werner Lemberg <[email protected]> + + * src/cff/cffparse.c (cff_parse_real): Handle more than nine + significant digits correctly. This fixes Savannah bug #24953. + +2008-11-25 Daniel Zimmermann <[email protected]> + + * src/base/ftstream.c (FT_Stream_ReadFields): Don't access stream + before the NULL check. From Savannah patch #6681. + +2008-11-24 Werner Lemberg <[email protected]> + + Fixes from the gnuwin32 port. + + * src/base/ftlcdfil.c: s/EXPORT/EXPORT_DEF/. + + * src/base/ftotval.c: Include FT_OPENTYPE_VALIDATE_H. + + * src/psaux/psobjs.c (ps_table_add): Check `length'. + +2008-11-15 Werner Lemberg <[email protected]> + + * src/truetype/ttinterp.c (tt_default_graphics_state): The default + value for `scan_type' is zero, as confirmed by Greg Hitchcock from + Microsoft. Problem reported by Michal Nowakowski + <[email protected]>. + +2008-11-12 Tor Andersson <[email protected]> + + * src/cff/cffdrivr.c (cff_get_cmap_info): Initialize `format' field. + This fixes Savannah bug #24819. + +2008-11-08 Werner Lemberg <[email protected]> + + * src/sfnt/sfobjs.c (sfnt_load_face): Remove #if 0/#endif guards + since OpenType version 1.5 has been released. + + * include/ttnameid.h (TT_NAME_ID_WWS_FAMILY, + TT_NAME_ID_WWS_SUBFAMILY): New macros for OpenType 1.5. + (TT_URC_COPTIC, TT_URC_VAI, TT_URC_NKO, TT_URC_BALINESE, + TT_URC_PHAGSPA, TT_URC_NON_PLANE_0, TT_URC_PHOENICIAN, + TT_URC_TAI_LE, TT_URC_NEW_TAI_LUE, TT_URC_BUGINESE, + TT_URC_GLAGOLITIC, TT_URC_YIJING, TT_URC_SYLOTI_NAGRI, + TT_URC_LINEAR_B, TT_URC_ANCIENT_GREEK_NUMBERS, TT_URC_UGARITIC, + TT_URC_OLD_PERSIAN, TT_URC_SHAVIAN, TT_URC_OSMANYA, + TT_URC_CYPRIOT_SYLLABARY, TT_URC_KHAROSHTHI, TT_URC_TAI_XUAN_JING, + TT_URC_CUNEIFORM, TT_URC_COUNTING_ROD_NUMERALS, TT_URC_SUNDANESE, + TT_URC_LEPCHA, TT_URC_OL_CHIKI, TT_URC_SAURASHTRA, TT_URC_KAYAH_LI, + TT_URC_REJANG, TT_URC_CHAM, TT_URC_ANCIENT_SYMBOLS, + TT_URC_PHAISTOS_DISC, TT_URC_OLD_ANATOLIAN, TT_URC_GAME_TILES): New + macros for OpenType 1.5. + +2008-11-08 Wenlin Institute <[email protected]> + + * src/base/ftobjs.c (ft_glyphslot_free_bitmap): Protect against + slot->internal == NULL. Reported by Graham Asher. + +2008-11-08 Werner Lemberg <[email protected]> + + * src/sfnt/sfobjs.c (tt_face_get_name): Modified to return an error + code so that memory allocation problems can be distinguished from + missing table entries. Reported by Graham Asher. + (GET_NAME): New macro. + (sfnt_load_face): Use it. + +2008-11-05 Werner Lemberg <[email protected]> + + * devel/ftoption.h, include/freetype/config/ftoption.h + [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Undefine + TT_CONFIG_OPTION_UNPATENTED_HINTING. This fixes the return value of + `FT_Get_TrueType_Engine_Type' (and makes it work as documented). + Reported in bug #441638 of bugzilla.novell.com. + + * docs/CHANGES: Document it. + +2008-11-03 Werner Lemberg <[email protected]> + + * src/type1/t1load.c (parse_subrs): Use an endless loop. There are + fonts (like HELVI.PFB version 003.001, used on OS/2) which define + some `subrs' elements more than once. Problem reported by Peter + Weilbacher <[email protected]>. + +2008-10-15 Graham Asher <[email protected]> + + * src/sfnt/ttpost.c (tt_post_default_names): Add `const'. + +2008-10-15 David Turner <[email protected]> + + * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Disambiguate for + meddlesome compilers' warning against `for ( ...; ...; ...) ;'. + +2008-10-14 Werner Lemberg <[email protected]> + + * src/cff/cffobjs.c (cff_face_init): Remove compiler warning. + Suggested by Bram Tassyns in Savannah patch #6651. + +2008-10-12 Graham Asher <[email protected]> + + * src/sfnt/sfobjs.c (sfnt_load_face): Fix computation of + `underline_position'. + +2008-10-12 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2008-10-09 suzuki toshiya <[email protected]> + + Fix Savannah bug #24468. + + According to include/freetype/internal/ftobjs.h, the appropriate + type to interchange single character codepoint is FT_UInt32. It + should be distinguished from FT_UInt which can be 16bit integer. + + * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Change the type + of the second argument `pcharcode' from FT_UInt* to FT_UInt32*. + (tt_cmap4_char_map_binary): Ditto. + (tt_cmap14_get_nondef_chars): Change the type of return value + from FT_UInt* to FT_UInt32*. + +2008-10-08 John Tytgat <[email protected]> + + Fix Savannah bug #24485. + + * src/type1/t1load.c (parse_charstrings): Assure that we always have + a .notdef glyph. + +2008-10-05 suzuki toshiya <[email protected]> + + * src/base/ftmac.c: Include FT_TRUETYPE_TAGS_H for multi build. + * builds/mac/ftmac.c: Ditto. + +2008-10-05 suzuki toshiya <[email protected]> + + * include/freetype/tttags.h (TTAG_TYP1, TTAG_typ1): Fix definitions. + * src/base/ftobjs.c: Include FT_TRUETYPE_TAGS_H. + +2008-10-05 suzuki toshiya <[email protected]> + + * src/sfnt/sfobjs.c (sfnt_open_font): Allow `typ1' version tag in + the beginning of sfnt container. + * src/sfnt/ttload.c (check_table_dir): Return + `SFNT_Err_Table_Missing' when sfnt table directory structure is + correct but essential tables for TrueType fonts (`head', `bhed' or + `SING') are missing. Other errors are returned by + SFNT_Err_Unknown_File_Format. + + * src/base/ftobjs.c (FT_Open_Face): When TrueType driver returns + `FT_Err_Table_Missing', try `open_face_PS_from_sfnt_stream'. It is + enabled only when old mac font support is configured. + +2008-10-04 suzuki toshiya <[email protected]> + + * include/freetype/tttags.h (TTAG_CID, TTAG_FOND, TTAG_LWFN, + TTAG_POST, TTAG_sfnt, TTAG_TYP1, TTAG_typ1): New tags to simplify + the repeated calculations of these values in ftobjs.c and ftmac.c. + * src/base/ftobjs.c: Replace all FT_MAKE_TAG by new tags. + * src/base/ftmac.c: Ditto. + * builds/mac/ftmac.c: Ditto. + +2008-10-04 suzuki toshiya <[email protected]> + + * src/base/ftobjs.c (ft_lookup_PS_in_sfnt_stream): Remove wrong + initialization of *is_sfnt_cid. + +2008-10-04 Werner Lemberg <[email protected]> + + * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Remove compiler + warnings. + +2008-10-04 suzuki toshiya <[email protected]> + + * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Replaced by... + (ft_lookup_PS_in_sfnt_stream): This. + (open_face_PS_from_sfnt_stream): New function. It checks whether + the stream is sfnt-wrapped Type1 PS font or sfnt-wrapped CID-keyed + font, then try to open a face for given face_index. + (Mac_Read_sfnt_Resource): Replace the combination of + `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' by + `open_face_PS_from_sfnt_stream'. + * src/base/ftmac.c (FT_New_Face_From_SFNT): Ditto. + * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto. + * src/base/ftbase.h: Remove `ft_lookup_PS_in_sfnt' and add + `open_face_PS_from_sfnt_stream'. + +2008-10-03 suzuki toshiya <[email protected]> + + * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Set *is_sfnt_cid to + FALSE if neither `CID ' nor `TYP1' is found in the sfnt container. + +2008-10-03 suzuki toshiya <[email protected]> + + * include/freetype/config/ftconfig.h: Define FT_MACINTOSH when SC or + MrC compiler of MPW is used. These compilers do not define the + macro __APPLE__ by themselves. + * builds/unix/ftconfig.in: Ditto. + * builds/vms/ftconfig.h: Ditto. + * src/base/ftbase.c: Use FT_MACINTOSH instead of __APPLE__, to + include ftmac.c if FreeType 2 is built by MPW. + * src/base/ftobjs.c: Use FT_MACINTOSH instead of __APPLE__, to + enable shared functions for ftmac.c if FreeType 2 is built by MPW. + + * builds/mac/ftmac.c: Include ftbase.h. + (memory_stream_close): Removed. + (new_memory_stream): Ditto. + (open_face_from_buffer): Removed. Use the implementation in + ftobjs.c. + (ft_lookup_PS_in_sfnt): Ditto. + + * builds/mac/FreeType.m68k_far.make.txt: Build ftmac.c as an + included part of ftbase.c, to share the functions in ftobjs.c. The + rule compiling ftmac.c separately is removed and the rule copying + ftbase.c from src/base/ftbase.c to builds/mac/ftbase.c is added. + * builds/mac/FreeType.m68k_cfm.make.txt: Ditto. + * builds/mac/FreeType.ppc_classic.make.txt: Ditto. + * builds/mac/FreeType.ppc_carbon.make.txt: Ditto. + +2008-10-02 Bram Tassyns <[email protected]> + + * src/cff/cffgload.c (cff_slot_load): Map CID 0 to GID 0. This + fixes Savannah bug #24430. + +2008-10-02 Werner Lemberg <[email protected]> + + * builds/freetype.mk (BASE_H): Rename to... + (INTERNAL_H): This. + (FREETYPE_H): Updated. + * src/base/rules.mk: (BASE_OBJ_S, OBJ_DIR/%.$O): Add BASE_H. + * src/bdf/rules.mk (BDF_DRV_H): Add bdferror.h. + * src/cache/rules.mk (CACHE_DRV_H): Add ftccache.h and ftcsbits.h. + * src/pcf/rules.mk (PCF_DRV_H): Add pcfread.h. + * src/raster/rules.mk (RASTER_DRV_H): Add ftmisc.h. + * src/type42/rules.mk (T42_DRV_H): Add t42types.h. + +2008-10-02 suzuki toshiya <[email protected]> + + * src/base/ftbase.h: New file to declare the private utility + functions shared by the sources of base modules. Currently, + `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' are declared to + share between ftobjs.c and ftmac.c. + + * src/base/rule.mk: Add ftbase.h. + + * src/base/ftobjs.c: Include ftbase.h. + (memory_stream_close): Build on any platform when old MacOS font + support is enabled. + (new_memory_stream): Ditto. + (open_face_from_buffer): Build on any platform when old MacOS font + support is enabled. The counting of the face in a font file is + slightly different between Carbon-dependent parser and Carbon-free + parser. They are merged with the platform-specific conditional. + (ft_lookup_PS_in_sfnt): Ditto. + + * src/base/ftmac.c: Include ftbase.h. + (memory_stream_close): Removed. + (new_memory_stream): Ditto. + (open_face_from_buffer): Removed. Use the implementation in + ftobjs.c. + (ft_lookup_PS_in_sfnt): Ditto. + +2008-10-02 Werner Lemberg <[email protected]> + + * src/sfnt/sfobjs.c (sfnt_load_face): `psnames_error' is only needed + if TT_CONFIG_OPTION_POSTSCRIPT_NAMES is defined. + +2008-10-01 Werner Lemberg <[email protected]> + + * src/truetype/ttobjs.c (tt_face_done), src/cff/cffobjs.c + (cff_face_done), src/pfr/pfrobjs.c (pfr_face_done), + src/pcf/pcfdrivr.c (PCF_Face_Done), src/cid/cidobjs.c + (cid_face_done), src/bdf/bdfdrivr. (BDF_Face_Done), + src/sfnt/sfobjs.c (sfnt_face_done): Protect against face == 0. + Reported by Graham Asher. + +2008-09-30 suzuki toshiya <[email protected]> + + * src/base/rules.mk: Add conditional source to BASE_SRC, for `make + multi' on Mac OS X. If the macro $(ftmac_c) is defined, + $(BASE_DIR)/$(ftmac_c) is added to BASE_SRC. In a normal build, the + lack of ftmac.c in BASE_SRC is not serious because ftbase.c includes + ftmac.c. + * builds/unix/unix-def.in: Add a macro definition of $(ftmac_c). + * builds/unix/configure.raw: Add procedure to set up appropriate + value of $(ftmac_c) with the consideration of the availability of + Carbon framework. + +2008-09-30 suzuki toshiya <[email protected]> + + * src/base/Jamfile: Add target for multi build by jam on Mac OS X. + * src/base/ftobjs.c (FT_New_Face): Fix the condition to include this + function for MPW building. It is synchronized the condition to + include ftmac.c source into ftbase.c. + +2008-09-22 Werner Lemberg <[email protected]> + + * src/cff/cffgload.c (CFF_Operator, cff_argument_counts, + cff_decoder_parse_charstrings): Handle (invalid) + `callothersubr' and `pop' instructions. + +2008-09-22 John Tytgat <[email protected]> + + Fix Savannah bug #24307. + + * include/freetype/internal/t1types.h (CID_FaceRec), + src/type42/t42types.h (T42_FaceRec): Comment out `afm_data'. + +2008-09-21 Werner Lemberg <[email protected]> + + * src/smooth/ftgrays.c (gray_raster_render): Don't dereference + `target_map' if FT_RASTER_FLAG_DIRECT is set. Problem reported by + Stephan T. Lavavej <[email protected]>. + +2008-09-21 suzuki toshiya <[email protected]> + + * src/otvalid/Jamfile: Add missing target `otvmath' for multi build + by jam. + * src/sfnt/Jamfile: Add missing target `ttmtx' for multi build by + jam. + +2008-09-20 Werner Lemberg <[email protected]> + + * src/smooth/ftgrays.c (gray_find_cell): Fix threshold. The values + passed to this function are already `normalized'. Problem reported + by Stephan T. Lavavej <[email protected]>. + + * docs/CHANGES: Document it. + +2008-09-20 Werner Lemberg <[email protected]> + + * src/base/ftoutln.c: Include FT_INTERNAL_DEBUG_H. + (FT_Outline_Decompose): Decorate with tracing messages. + + * src/smooth/ftgrays.c [DEBUG_GRAYS]: Replace with + FT_DEBUG_LEVEL_TRACE. + [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: Include stdio.h and + stdarg.h. + + (FT_TRACE) [_STANDALONE_]: Remove. + (FT_Message) [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: New function. + (FT_TRACE5, FT_TRACE7) [_STANDALONE_]: New macros. + (FT_ERROR) [_STANDALONE_]: Updated. + + (gray_hline) [FT_DEBUG_LEVEL_TRACE]: Fix condition. + Use FT_TRACE7. + (gray_dump_cells): Make it `static void'. + (gray_convert_glyph): Use FT_TRACE7. + + (FT_Outline_Decompose) [_STANDALONE_]: Synchronize with version in + ftoutln.c. + + * src/base/ftadvanc.c (FT_Get_Advance, FT_Get_Advances): Use + FT_ERROR_BASE. + + * docs/formats.txt: Updated. + +2008-09-19 suzuki toshiya <[email protected]> + + * src/base/ftmac.c: Import sfnt-wrapped Type1 and sfnt-wrapped + CID-keyed font support. + * builds/mac/ftmac.c: Ditto. + +2008-09-19 suzuki toshiya <[email protected]> + + * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Fix double free bug in + sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font support code. + `open_face_from_buffer' frees the passed buffer if it cannot open a + face from the buffer, so the caller must not free it. + +2008-09-19 suzuki toshiya <[email protected]> + + * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add initial support + for sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font. + (ft_lookup_PS_in_sfnt): New function to look up `TYP1' or `CID ' + table in sfnt table directory. It is used before loading TrueType + font driver. + + * docs/CHANGES: Add note about the current status of sfnt-wrapped + Type1 and sfnt-wrapped CID-keyed font support. + +2008-09-18 Werner Lemberg <[email protected]> + + * src/base/ftsystem.c (FT_Done_Memory): Use ft_sfree directly for + orthogonality (ft_free and ft_sfree could belong to different memory + pools). This fixes Savannah bug #24297. + +2008-09-18 suzuki toshiya <[email protected]> + + * src/cff/cffobjs.c (cff_face_init): Use TTAG_OTTO defined + in ttags.h instead of numerical value 0x4F54544FL. + +2008-09-16 Werner Lemberg <[email protected]> + + * src/cff/cffgload.h, src/cff/cffgload.c + (cff_decoder_set_width_only): Eliminate function call. + +2008-09-15 George Williams <[email protected]> + + Fix Savannah bug #24179, reported by Bram Tassyns. + + * src/type1/t1load.c (mm_axis_unmap, T1_Get_MM_Var): Fix computation + of default values. + +2008-09-15 Werner Lemberg <[email protected]> + + * src/tools/glnames.py (main): Surround `ft_get_adobe_glyph_index' + and `ft_adobe_glyph_list' with FT_CONFIG_OPTION_ADOBE_GLYPH_LIST to + prevent unconditional definition. This fixes Savannah bug #24241. + + * src/psnames/pstables.h: Regenerated. + +2008-09-13 Werner Lemberg <[email protected]> + + * autogen.sh, builds/unix/configure.raw, + include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: Minor + beautifying. + + * include/freetype/ftadvanc.h, include/freetype/ftgasp.h, + include/freetype/ftlcdfil.h: Protect against FreeType 1. + Some other minor fixes. + + * devel/ftoption.h: Synchronize with + include/freetype/config/ftoption.h. + +2008-09-11 Werner Lemberg <[email protected]> + + * src/base/ftbase.c: Include ftadvanc.c. + +2008-09-11 suzuki toshiya <[email protected]> + + * builds/unix/ftconfig.in: Duplicate the cpp computation of + FT_SIZEOF_{INT|LONG} from include/freetype/config/ftconfig.h. + (FT_USE_AUTOCONF_SIZEOF_TYPES): New macro. If defined, the cpp + computation is disabled and the statically configured sizes are + used. This fixes Savannah bug #21250. + + * builds/unix/configure.raw: Add the checks to compare the cpp + computation results of the bit length of int and long versus the + sizes detected by running `configure'. If the results are + different, FT_USE_AUTOCONF_SIZEOF_TYPES is defined to prioritize the + results. + New option --{enable|disable}-biarch-config is added to define or + undefine FT_USE_AUTOCONF_SIZEOF_TYPES manually. + +2008-09-05 suzuki toshiya <[email protected]> + + * builds/unix/configure.raw: Clear FT2_EXTRA_LIBS when Carbon or + ApplicationService framework is missing. Although this value is not + used in building of FreeType2, it is written in `freetype2.pc' and + `freetype-config'. + +2008-09-01 david turner <[email protected]> + + * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Accept a negative cmap + index to mean `use default cached FT_Face's charmap'. This fixes + Savannah bug #22625. + * include/freetype/ftcache.h: Document it. + + + Make FT_MulFix an inlined function. This is done to speed up + FreeType a little (on x86 3% when loading+hinting, 10% when + rendering, ARM savings are more important though). Disable this by + undefining FT_CONFIG_OPTION_INLINE_MULFIX. + + Use of assembler code can now be controlled with + FT_CONFIG_OPTION_NO_ASSEMBLER. + + * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in + [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_arm): New assembler + implementation. + [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_i386): Assembler + implementation taken from `ftcalc.c'. + [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MULFIX_ASSEMBLER): New macro + which is defined to the platform-specific assembler implementation + of FT_MulFix. + [FT_CONFIG_OPTION_INLINE_MULFIX && FT_MULFIX_ASSEMBLER] + (FT_MULFIX_INLINED): New macro. + + * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_NO_ASSEMBLER, + FT_CONFIG_OPTION_INLINE_MULFIX): New macros. + + * include/freetype/freetype.h: Updated to handle FT_MULFIX_INLINED. + + * src/base/ftcalc.c: Updated to use FT_MULFIX_ASSEMBLER and + FT_MULFIX_INLINED. + + + Add a new header named FT_ADVANCES_H declaring some new APIs to + extract the advances of one or more glyphs without necessarily + loading their outlines. Also provide `fast loaders' for the + TrueType, Type1, and CFF font drivers (more to come later). + + * src/base/ftadvanc.c, include/freetype/ftadvanc.h: New files. + + * include/freetype/config/ftheader.h (FT_ADVANCES_H): New macro. + * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): New macro. + + * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc): + `flags' and `advances' are now of type `FT_UInt' and `FT_Fixed', + respectively. + + * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC): Add + ftadvanc.c. + + * src/cff/cffdrivr.c (cff_get_advances): New function. + (cff_driver_class): Register it. + + * src/cff/cffgload.c (cff_decoder_set_width_only): New function. + (cff_decoder_parse_charstrings): Handle `width_only'. + (cff_slot_load): Handle FT_LOAD_ADVANCE_ONLY. + + * src/cff/cffgload.h (cff_decoder): New element `width_only'. + (cff_decoder_set_width_only): New declaration. + + * src/truetype/ttdriver.c (tt_get_advances): New function. + (tt_driver_class): Register it. + + * src/truetype/ttgload.c (Get_HMetrics, Get_VMetrics): Renamed to... + (TT_Get_HMetrics, TT_Get_VMetrics): This. + Update callers. + * src/truetype/ttgload.h: Declare them. + + * src/type1/t1gload.h, src/type1/t1gload.c (T1_Get_Advances): New + function. + * src/type1/t1driver.c (t1_driver_class): Register T1_Get_Advances. + + + Add checks for minimum version of the `autotools' stuff. + + * autogen.sh: Implement it. + (get_major_version, get_minor_version, get_patch_version, + compare_to_minimum_version, check_tool_version): New auxiliary + functions. + + * README.CVS: Document it. + +2008-08-29 suzuki toshiya <[email protected]> + + * src/sfnt/sfobjs.c (sfnt_open_font): Use TTAG_OTTO defined in + ttags.h instead of FT_MAKE_TAG( 'O', 'T', 'T', 'O' ). + +2008-08-28 Werner Lemberg <[email protected]> + + * src/type1/t1load.c (parse_encoding): Protect against infinite + loop. This fixes Savannah bug #24150 (where a patch has been posted + too). + +2008-08-23 Werner Lemberg <[email protected]> + + * src/type/t1afm.c (compare_kern_pairs), src/pxaux/afmparse.c + (afm_compare_kern_pairs): Fix comparison. This fixes Savannah bug + #24119. + +2008-08-19 suzuki toshiya <[email protected]> + + * src/base/ftobjs.c (FT_Stream_New): Initialize *astream always, + even if passed library or arguments are invalid. This fixes a bug + that an uninitialized stream is freed when an invalid library handle + is passed. Originally proposed by Mike Fabian, 2008/08/18 on + freetype-devel. + (FT_Open_Face): Ditto (stream). + (load_face_in_embedded_rfork): Ditto (stream2). + +2008-08-18 suzuki toshiya <[email protected]> + + * src/base/ftmac.c: Add a fallback to guess the availability of the + `ResourceIndex' type. It is used when built without configure + (e.g., a build with Jam). + * builds/mac/ftmac.c: Ditto. + * builds/unix/configure.raw: Set HAVE_TYPE_RESOURCE_INDEX to 1 or 0 + explicitly, even if `ResourceIndex' is unavailable. + +2008-08-18 suzuki toshiya <[email protected]> + + * builds/unix/configure.raw: In checking of Mac OS X features, + all-in-one header file `Carbon.h' is replaced by the minimum + header file `CoreServices.h', similar to current src/base/ftmac.c. + +2008-08-18 suzuki toshiya <[email protected]> + + * src/sfnt/ttcmap.c (tt_cmap2_validate): Skip the validation of + sub-header when its code_count is 0. Many Japanese Dynalab fonts + include such an empty sub-header (code_count == 0, first_code == 0 + delta == 0, but offset != 0) as the second sub-header in SJIS cmap. + +2008-08-04 Werner Lemberg <[email protected]> + + * src/type1/t1tokens.h: Handle `ForceBold' keyword. This fixes + Savannah bug #23995. + + * src/cid/cidload.c (parse_expansion_factor): New callback function. + (cid_field_records): Use it for `ExpansionFactor'. + * src/cod/cidtoken.h: Handle `ForceBold' keyword. + Don't handle `ExpansionFactor'. + +2008-08-04 Bram Tassyns <[email protected]> + + * src/cff/cffparse.c (cff_parse_fixed_scaled): Fix thinko which + resulted in incorrect scaling. This fixes Savannah bug #23973. + +2008-08-04 Werner Lemberg <[email protected]> + + Be more tolerant w.r.t. invalid entries in SFNT table directory. + + * src/sfnt/ttload.c (check_table_dir): Ignore invalid entries and + adjust table count. + Add more trace messages. + (tt_face_load_font_dir): Updated. + +2008-07-30 Werner Lemberg <[email protected]> + + * src/cff/cffgload.c (cff_decoder_parse_charstrings): No longer + assume that the first argument on the stack is the bottom-most + element. Two reasons: + + o According to people from Adobe it is missing in the Type 2 + specification that pushing of additional, superfluous arguments + on the stack is prohibited. + + o Acroread in general handles fonts differently, namely by popping + the number of arguments needed for a particular operand (as a PS + interpreter would do). In case of buggy fonts this causes a + different interpretation which of the elements on the stack are + superfluous and which not. + + Since there are CFF subfonts (embedded in PDFs) which rely on + Acroread's behaviour, FreeType now does the same. + +2008-07-27 Werner Lemberg <[email protected]> + + Add extra mappings for `Tcommaaccent' and `tcommaaccent'. This + fixes Savannah bug #23940. + + * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): Rename to... + (EXTRA_GLYPH_LIST_SIZE): This. + Increase by 2. + (ft_wgl_extra_unicodes): Rename to... + (ft_extra_glyph_unicodes): This. + Add two code values. + (ft_wgl_extra_glyph_names): Rename to... + (ft_extra_glyph_names): This. + Add two glyphs. + (ft_wgl_extra_glyph_name_offsets): Rename to... + (ft_extra_glyph_name_offsets): This. + Add two offsets. + + (ps_check_wgl_name, ps_check_wgl_unicode): Rename to... + (ps_check_extra_glyph_name, ps_check_extra_glyph_unicode): This. + Updated. + (ps_unicodes_init): Updated. + +2008-07-26 Werner Lemberg <[email protected]> + + * src/cff/cffgload.c (cff_decoder_prepare, + cff_decoder_parse_charstrings): Improve debug output. + +2008-07-22 Martin McBride <[email protected]> + + * src/sfnt/ttcmap.c (tt_cmap4_validate, tt_cmap4_char_map_linear, + tt_cmap4_char_map_binary): Handle fonts which treat the last segment + specially. According to the specification, such fonts would be + invalid but acroread accepts them. + +2008-07-16 Jon Foster <[email protected]> + + * src/pfr/pfrdrivr.c (pfr_get_advance): Fix off-by-one error. + + * src/base/ftcalc.c (FT_MulFix): Fix portability issue. + + * src/sfnt/ttpost.c (MAC_NAME) [!FT_CONFIG_OPTION_POSTSCRIPT_NAMES]: + Fix compiler warning. + +2008-07-16 Werner Lemberg <[email protected]> + + Handle CID-keyed fonts wrapped in an SFNT (with cmaps) correctly. + + * src/cff/cffload.c (cff_font_load): Pass `pure_cff'. + Invert sids table only if `pure_cff' is set. + * src/cff/cffload.h: Udpated. + + * src/cff/cffobjs.c (cff_face_init): Updated. + Set FT_FACE_FLAG_CID_KEYED only if pure_cff is set. + + * docs/CHANGES: Updated. + +2008-07-09 Werner Lemberg <[email protected]> + + * src/truetype/ttpload.c (tt_face_load_loca): Handle buggy fonts + where num_locations < num_glyphs. Problem reported by Ding Li. + +2008-07-05 Werner Lemberg <[email protected]> + + Since FreeType uses `$(value ...)', we now need GNU make 3.80 or + newer. This fixes Savannah bug #23648. + + * configure: zsh doesn't like ${1+"$@"}. + Update needed GNU make version. + * builds/toplevel.mk: Check for `$(eval ...)'. + * docs/INSTALL.GNU, docs/INSTALL.CROSS, docs/INSTALL.UNIX: Document + it. + +2008-07-04 Werner Lemberg <[email protected]> + + * src/raster/ftraster.c (Draw_Sweep): If span is smaller than one + pixel, only check for dropouts if neither start nor end point lies + on a pixel center. This fixes Savannah bug #23762. + +2008-06-29 Werner Lemberg <[email protected]> + + * Version 2.3.7 released. + ========================= + + + Tag sources with `VER-2-3-7'. + + * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump + version number to 2.3.7. + + * README, Jamfile (RefDoc), builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj, + builds/win32/visualce/index.html, + builds/win32/visualce/freetype.dsp, + builds/win32/visualce/freetype.vcproj: s/2.3.6/2.3.7/, s/236/237/. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7. + + * builds/unix/configure.raw (version_info): Set to 9:18:3. + + * docs/release: Updated. + +2008-06-28 Werner Lemberg <[email protected]> + + * src/ftglyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to... + * src/ftcalc.c: Here. This fixes Savannah bug #23729. + +2008-06-27 Werner Lemberg <[email protected]> + + * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, + Horizontal_Gray_Sweep_Drop): Test for intersections which + degenerate to a single point can be ignored; this has been confirmed + by Greg Hitchcock from Microsoft. (This was commented out code.) + +2008-06-26 Werner Lemberg <[email protected]> + + Improve navigation in API reference. + + * src/tools/docmaker/tohtml.py (html_header_3): Renamed to... + (html_header_6): This. + (html_header_3, html_header_3i, html_header_4, html_header_5, + html_header_5t): New strings. + (toc_footer_start, toc_footer_end): New strings. + (HtmlFormatter::html_header): Updated. + (HtmlFormatter::html_index_header, HtmlFormatter::html_toc_header): + New strings. + (HtmlFormatter::index_enter): Use `html_index_header'. + (HtmlFormatter::index_exit): Print `html_footer'. + (HtmlFormatter::toc_enter): Use `html_toc_header'. + (HtmlFormatter::toc_exit): Print proper footer. + + Convert ~ to non-breakable space. + + * src/tools/docmaker/tohtml.py (make_html_para): Implement it. + Update header files accordingly. + +2008-06-24 suzuki toshiya <[email protected]> + + * builds/unix/configure.raw: Check type `ResourceIndex' explicitly + and define HAVE_TYPE_RESOURCE_INDEX if it is defined. Mac OS X 10.5 + bundles 10.4u SDK with MAC_OS_X_VERSION_10_5 macro but without + ResourceIndex type definition. The macro does not inform the type + availability. + * src/base/ftmac.c: More parentheses are inserted to clarify the + conditionals to disable legacy APIs in `10.5 and later' cases. If + HAVE_TYPE_RESOURCE_INDEX is not defined, ResourceIndex is defined. + +2008-06-24 Werner Lemberg <[email protected]> + + * src/truetype/ttinterp.c (Ins_SCANTYPE): Don't check rendering + mode. + + * src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph, + Draw_Sweep): No-dropout mode is value 2, not value 0. + (Draw_Sweep): Really skip dropout handling for no-dropout mode. + +2008-06-24 Werner Lemberg <[email protected]> + + * src/psaux/psobjs.c (t1_builder_close_contour): Don't add contour + if it consists of one point only. Based on a patch from Savannah + bug #23683 (from John Tytgat). + +2008-06-22 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff + with IS_HINTED. + + * docs/CHANGES: Updated. + +2008-06-22 suzuki toshiya <[email protected]> + + * builds/unix/configure.raw: If CFLAGS has `-isysroot XXX' option + but LDFLAGS does not, import it to LDFLAGS. The option is used to + specify non-default SDK on Mac OS X (e.g., universal binary SDK for + Mac OS X 10.4 on PowerPC platform). Although Apple TechNote 2137 + recommends to add the option only to CFLAGS, LDFLAGS should include + it because libfreetype.la is built with -no-undefined. This fixes a + bug reported by Ryan Schmidt in MacPorts, + http://trac.macports.org/ticket/15331. + +2008-06-21 Werner Lemberg <[email protected]> + + Enable access to the various dropout rules of the B&W rasterizer. + Pass dropout rules from the TT bytecode interpreter to the + rasterizer. + + * include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS, + FT_OUTLINE_EXCLUDE_STUBS): New flags for for FT_Outline. + + * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, + Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the + OpenType specification. + Fix mode 4 computation. + (Render_Glyph, Render_Gray_Glyph): Handle new outline flags. + + * src/truetype/ttgload.c (TT_Load_Glyph) Convert scan conversion + mode to FT_OUTLINE_XXX flags. + + * src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check. + +2008-06-19 Werner Lemberg <[email protected]> + + * src/cff/cffobjs.c (cff_face_init): Compute final + `dict->units_per_em' value before assigning it to + `cffface->units_per_EM'. Otherwise, CFFs without subfonts are + scaled incorrectly if the font matrix is non-standard. This fixes + Savannah bug #23630. + + * docs/CHANGES: Updated. + +2008-06-19 Werner Lemberg <[email protected]> + + * src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm fix + from 2008-06-19. + +2008-06-18 Werner Lemberg <[email protected]> + + * src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21. + Reported by Peter Weilbacher <[email protected]>. + + * docs/CHANGES: Updated. + +2008-06-15 George Williams <[email protected]> + + * src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set + `valid->extra2' to 1. This is undocumented in the OpenType 1.5 + specification. + +2008-06-15 Werner Lemberg <[email protected]> + + * src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly + from clobbering. Patch from Savannah bug report #23556. + + * docs/CHANGES: Document it. + +2008-06-10 Werner Lemberg <[email protected]> + + * autogen.sh: Add option `--install' to libtoolize. + +2008-06-10 Werner Lemberg <[email protected]> + + * Version 2.3.6 released. + ========================= + + + Tag sources with `VER-2-3-6'. + + * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump + version number to 2.3.6. + + * README, Jamfile (RefDoc), builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj, + builds/win32/visualce/index.html, + builds/win32/visualce/freetype.dsp, + builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6. + + * builds/unix/configure.raw (version_info): Set to 9:17:3. + + + * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x' + and `scale_y'. + * src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'. + + + * src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H. + * src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H. + +2008-06-10 Werner Lemberg <[email protected]> + + * src/base/ftobjs.c (open_face): Check `clazz->init_face' and + `clazz->done_face'. + +2008-06-09 VaDiM <[email protected]> + + Support debugging on WinCE. From Savannah patch #6536; this fixes + bug #23497. + + * builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro + as a replacement for OutputDebugStringA (which WinCE doesn't have). + Update all callers. + (ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have + environment variables. + +2008-06-09 Werner Lemberg <[email protected]> + + * README.CVS: Updated. + + * builds/unix/configure.raw, builds/unix/freetype-config.in: Updated + for newer versions of autoconf and friends. + +2008-06-08 Werner Lemberg <[email protected]> + + * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and + `private_len' unsigned. + + * src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read + it as such. + (T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned. + + + * src/base/ftstream.c (FT_Stream_Skip): Reject negative values. + + + * src/type1/t1load.c (parse_blend_design_positions): Check `n_axis' + for sane value. + Fix typo. + + + * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly. + + + * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check + `last_point'. + + + * src/sfnt/ttload.c (tt_face_load_max_profile): Limit + `maxTwilightPoints'. + +2008-06-06 Werner Lemberg <[email protected]> + + * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0' + correctly. This fixes glyphs `t' and `h' of Arial Narrow at 12ppem. + +2008-06-03 Werner Lemberg <[email protected]> + + * include/freetype/ftcache.h (FTC_FaceID): Change type back to + FT_Pointer. Reported by Ian Britten <[email protected]>. + +2008-06-02 Werner Lemberg <[email protected]> + + Emit header info for defined FreeType objects in reference. + + * src/tools/docmaker/content.py (re_header_macro): New regexp. + (ContentProcessor::__init__): Initialize new dictionary `headers'. + (DocBlock::__init__): Collect macro header definitions. + + * src/tools/docmaker/tohtml.py (header_location_header, + header_location_footer): New strings. + (HtmlFormatter::__init__): Pass `headers' dictionary. + (HtmlFormatter::print_html_field): Don't emit paragraph tags. + (HtmlFormatter::print_html_field_list): Emit empty paragraph. + (HtmlFormatter::block_enter): Emit header info. + +2008-06-01 Werner Lemberg <[email protected]> + + * include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H, + FT_INCREMENTAL_H): Added. + +2008-05-28 Werner Lemberg <[email protected]> + + * src/tools/docmaker/sources.py (SourceBlock::__init__): While + looking for markup tags, return immediately as soon a single one is + found. + +2008-05-28 Werner Lemberg <[email protected]> + + * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses + original, unscaled input values. Confirmed by Greg Hitchcock from + Microsoft. + +2008-05-27 Werner Lemberg <[email protected]> + + * src/tools/docmaker/tohtml.py (block_footer_start, + block_footer_middle): Beautify output. + +2008-05-25 Werner Lemberg <[email protected]> + + * src/raster/ftraster.c (fc_black_render): Return 0 when we are + trying to render into a zero-width/height bitmap, not an error code. + + * src/truetype/ttgload.c (load_truetype_glyph): Move initialization + of the graphics state for subglyphs to... + (TT_Hint_Glyph): This function. + Hinting instructions for a composite glyph apparently refer to the + just hinted subglyphs, not the unhinted, unscaled outline. This + seems to fix Savannah bugs #20973 and (at least partially) #23310. + +2008-05-20 suzuki toshiya <[email protected]> + + * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid + `aface' is returned by FT_New_Face_From_FOND(). The patch was + proposed by an anonymous reporter of Savannah bug #23204. + +2008-05-18 Werner Lemberg <[email protected]> + + * src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after + correction for pixel boundary. Without this patch, the effect can + be cumulative under certain circumstances, making glyphs taller and + taller after each call. This fixes Savannah bug #19976. + +2008-05-18 Werner Lemberg <[email protected]> + + * src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr. + This fixes Savannah bug #23280. + + * docs/CHANGES: Updated. + +2008-05-18 David Turner <[email protected]> + + * src/psnames/psmodule.c (ft_wgl_extra_unicodes, + ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets, + ps_check_wgl_name, ps_check_wgl_unicode): Use `static' to make + declarations non-global. + + * src/type1/t1load.c: Add missing comment. + +2008-05-17 Sam Hocevar <samh> + + * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour + glyphs correctly. Patch from Savannah bug #23277. + +2008-05-16 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2008-05-16 Sergey Tolstov <[email protected]> + + Improve support for WGL4 encoded fonts. + + * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): New macro. + (ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names, + ft_wgl_extra_glyph_name_offsets): New arrays. + (ps_check_wgl_name, ps_check_wgl_unicode): New functions. + (ps_unicodes_init): Use them to add additional Unicode mappings. + +2008-05-15 Werner Lemberg <[email protected]> + + * src/psaux/t1decode.c (t1_decoder_parse_charstrings) + <op_closepath>: `closepath' without a path is a no-op, not an error + (cf. the PS reference manual). + + Reported by Martin McBride. + +2008-05-15 Werner Lemberg <[email protected]> + + * builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated. + +2008-05-15 Werner Lemberg <[email protected]> + + * src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array + which contains a single but empty entry. This is technically + invalid (since it must end with `return'), but... + + Reported by Martin McBride. + +2008-05-14 Werner Lemberg <[email protected]> + + Finish fix of scaling bug of CID-keyed CFF subfonts. + + * include/freetype/internal/ftcalc.h, src/base/ftcalc.c + (FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New + functions. + + * src/cff/cffobjs.h (CFF_Internal): New struct. It is used to + provide global hinting data for both the top-font and all subfonts + (with proper scaling). + + * src/cff/cffobjs.c (cff_make_private_dict): New function, using + code from `cff_size_init'. + (cff_size_init, cff_size_done, cff_size_select, cff_size_request): + Use CFF_Internal and handle subfonts. + (cff_face_init): Handle top-dict and subfont matrices correctly; + apply some heuristic in case of unlikely matrix concatenation + results. This has been discussed with people from Adobe (thanks + goes mainly to David Lemon) who confirm that the CFF specs are fuzzy + and not correct. + + * src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument. + + * src/cff/cffgload.c (cff_builder_init): Updated. + (cff_decoder_prepare): Handle hints globals for subfonts. + Update all callers. + (cff_slot_load): Handling scaling of subfonts properly. + + * src/cff/cffparse.c (cff_parse_fixed_dynamic): New function. + (cff_parse_font_matrix): Use it. + + * src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em' + FT_ULong. + + * docs/CHANGES: Document it. + +2008-05-13 Werner Lemberg <[email protected]> + + * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init): + Handle case `face_index < 0'. + * docs/CHANGES: Document it. + +2008-05-04 Werner Lemberg <[email protected]> + + First steps to fix the scaling bug of CID-keyed CFF subfonts, + reported by Ding Li on 2008/03/28 on freetype-devel. + + * src/base/cff/cffparse.c (power_tens): New array. + (cff_parse_real): Rewritten to introduce a fourth parameter which + returns the `scaling' of the real number so that we have no + precision loss. This is not used yet. + Update all callers. + (cff_parse_fixed_thousand): Replace with... + (cff_parse_fixed_scaled): This function. Update all callers. + +2008-05-03 Werner Lemberg <[email protected]> + + * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without + transformation since it recursively calls FT_Load_Glyph. This fixes + Savannah bug #23143. + +2008-04-26 Werner Lemberg <[email protected]> + + * include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x' + and `scale_y' as obsolete since they aren't used. + * src/psaux/psobjs.c (t1_builder_init): Updated. + + * src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as + obsolete since they aren't used. + * src/cff/cffgload.c (cff_builder_init): Updated. + +2008-04-14 Werner Lemberg <[email protected]> + + * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to + `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'. From Savannah + bug #22909. + +2008-04-13 Werner Lemberg <[email protected]> + + * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if + integer part is zero. + +2008-04-01 Werner Lemberg <[email protected]> + + Fix compilation with g++ 4.1 (with both `single' and `multi' + targets). + + * src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block + which is crossed by a `goto'. + + * src/otvalid/otvalid.h (otv_MATH_validate): Add prototype. + +2008-03-31 Werner Lemberg <[email protected]> + + Fix support for subsetted CID-keyed CFFs. + + * include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED, + FT_IS_CID_KEYED): New macros. + + * src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the + maximum CID value in CID-keyed CFFs. + Handle FT_FACE_FLAG_CID_KEYED flag. + + * docs/CHANGES: Document it. + + + Fix CFF font matrix calculation and improve precision. + + * src/cff/cffparse.c (cff_parse_real): Increase precision if integer + part is zero. + (cff_parse_font_matrix): Simplify computation of `units_per_em'; + this prevents overflow also. + + + Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts. + + * src/cid/cidriver.c: Include FT_SERVICE_CID_H. + (cid_get_ros): New function. + (cid_service_cid_info): New service structure. + (cid_services): Register it. + +2008-03-23 Werner Lemberg <[email protected]> + + Adjustments for Visual C++ 8.0, as reported by Rainer Deyke. + + * builds/compiler/visualc.mk (CFLAGS): Remove /W5. + (ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE. + +2008-03-21 Laurence Darby <ldarby> + + * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'. Patch from + Savannah bug #22675. + +2008-03-13 Derek Clegg <[email protected]> + + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop. + Patch from Savannah bug #22541. + +2008-03-03 Masatoshi Kimura <[email protected]> + + * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary, + tt_cmap14_find_variant): Return correct value. + (tt_cmap14_variant_chars): Fix check for `di'. + +2008-02-29 Wermer Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2008-02-29 Wolf + + Add build support for symbian platform. From Savannah bug #22440. + + * builds/symbian/*: New files. + +2008-02-21 suzuki toshiya <[email protected]> + + * src/base/ftmac.c (parse_fond): Fix a bug of PostScript font name + synthesis. For any face of a specified FOND, always the name for + the first face was used. Except of a FOND that refers multiple + Type1 font files, wrong synthesized font names are not used at all, + so this is an invisible bug. A few limit checks are added too. + + * builds/mac/ftmac.c: Ditto. + +2008-02-21 suzuki toshiya <[email protected]> + + * builds/unix/configure.raw: Split compiler option to link Carbon + frameworks to one option for CoreServices framework and another + option for ApplicationServices framework. The split options can be + managed by GNU libtool to avoid unrequired duplication when FreeType + is linked with other applications. Suggested by Daniel Macks, + Savannah bug #22366. + +2008-02-18 Victor Stinner <[email protected]> + + * src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix + from Savannah bug #22356. + +2008-02-17 Jonathan Blow <[email protected]> + + * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph): + Check for valid callback pointers. + +2008-02-15 suzuki toshiya <[email protected]> + + * src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource + handle by its value instead of ResError(), fix provided by Deron + Kazmaier. According to the Resource Manager Reference, + GetResource(), Get1Resource(), GetNamedResource(), + Get1NamedResource() and RGetResource() set noErr but return NULL + handle when they can not find the requested resource. These + functions never return undefined values, so it is sufficient to + check if the handle is not NULL. + + * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto. + +2008-02-14 suzuki toshiya <[email protected]> + + * src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" as other + inclusion styles. Now it always includes src/base/ftmac.c; + builds/mac/ftmac.c is never included in any configuration. + + * builds/unix/configure.raw: Print warning if configure is executed + with options to specify Carbon functionalities explicitly. + + * docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not + included automatically and manual replacement is required. + +2008-02-11 Werner Lemberg <[email protected]> + + * builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk + (dos_setup), builds/freetype.mk (clean_project_dos, + distclean_project_dos): Don't use \ but $(SEP). Reported by Duncan + Murdoch. + +2008-01-18 Sylvain Pasche <[email protected]> + + * src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to + mention intra-pixel algorithm. + + * include/freetype/freetype.h (FT_Render_Mode): Mention that + FT_Library_SetLcdFilter can be used to reduce fringes. + +2008-01-16 Werner Lemberg <[email protected]> + + * src/raster/ftraster.c (ft_black_render): Check `outline' before + using it. Reported by Allan Yang. + +2008-01-12 Werner Lemberg <[email protected]> + + * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove. + +2008-01-12 Allan Yang, Jian Hua - SH <[email protected]> + + * src/raster/ftraster.c (ft_black_init) + [FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation. + +2008-01-10 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c (load_truetype_glyph): Handle the case + where the number of contours in a simple glyph is zero (and which + does contain an entry in the `glyf' table). This fixes Savannah bug + #21990. + +2008-01-04 suzuki toshiya <[email protected]> + + Formatting suggested by Sean McBride. + + * builds/mac/ftmac.c: Formatting (tab expanded). + * src/autofit/afindic.c: Ditto. + * src/base/ftcid.c: Ditto. + * src/base/ftmac.c: Ditto. + +2007-12-30 Werner Lemberg <[email protected]> + + * src/smooth/ftgrays.c (gray_raster_render): Check `outline' + correctly. + +2007-12-21 suzuki toshiya <[email protected]> + + Improvement of POSIX resource-fork accessor to load unsorted + references in a resource. In HelveLTMM (resource-fork PostScript + Type1 font bundled with Mac OS X since 10.3.x), the appearance order + of PFB chunks is not sorted; sorting the chunks by reference IDs is + required. + + * include/freetype/internal/ftrfork.h (FT_RFork_Ref): New structure + type to store a pair of reference ID and offset to the chunk. + + * src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to + sort FT_RFork_Ref by their reference IDs. + + (FT_Raccess_Get_DataOffsets): Returns an array of offsets that is + sorted by reference ID. + +2007-12-14 Werner Lemberg <[email protected]> + + * src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten' + division too early; otherwise the most significant digit(s) of the + final result are lost as the value is truncated to an integer. This + fixes Savannah bug #21794 (where the patch has been posted too). + +2007-12-06 Fix <[email protected]> + + Pass options from one configure script to another as-is (not + expanded). This is needed for options like + --includedir='${prefix}/include'. + + * builds/unix/detect.mk, configure: Prevent argument expansion in + call to the (real) `configure' script. + +2007-12-06 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if + TT_USE_BYTECODE_INTERPRETER isn't defined. + +2007-12-06 Werner Lemberg <[email protected]> + + There exist CFFs which contain opcodes for the Type 1 operators + `hsbw' and `closepath' which are both invalid in Type 2 charstrings. + However, it doesn't harm to support them. + + * src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and + `cff_op_closepath.' + (cff_argument_counts): Ditto. + + (cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath) + and 13 (hsbw) which are invalid in Type 2 charstrings. + +2007-12-06 suzuki toshiya <[email protected]> + + * src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to + support new pathname syntax `..namedfork/rsrc' to access a resource + fork on Mac OS X. The legacy syntax `/rsrc' does not work on + case-sensitive HFS+. + (raccess_guess_darwin_hfsplus): Fix a bug in the calculation of + buffer size to store a pathname. + * include/freetype/internal/ftrfork.h: Increment the number of + resource fork guessing rule. + +2007-12-06 suzuki toshiya <[email protected]> + + * builds/unix/configure.raw: Improve the compile tests to search + Carbon functions. + * builds/mac/ftmac.c: Import fixes for Carbon incompatibilities + proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16). + +2007-12-06 suzuki toshiya <[email protected]> + + The documents and comments for Mac OS X are improved by Sean + McBride. + + * src/base/ftmac.c: Fix a comment. + * include/freetype/ftmac.h: Ditto. + * docs/INSTALL.MAC: Improve English and add comment on lowest + system version specified by MACOSX_DEPLOYMENT_TARGET. + +2007-12-04 Werner Lemberg <[email protected]> + + * src/cff/cffload.c (cff_subfont_load): Don't use logical OR to + concatenate error codes. + * src/sfnt/ttsbit.c (Load_SBit_Range): Ditto. + +2007-12-04 Graham Asher <[email protected]> + + * src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to + concatenate error codes. + +2007-12-04 Sean McBride <[email protected]> + + * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler + warning. + +2007-11-20 suzuki toshiya <[email protected]> + + Fix MacOS legacy font support by Masatake Yamato on Mac OS X. It is + not working since 2.3.5. In FT_Open_New(), if FT_New_Stream() + cannot mmap() the specified file and cannot seek to head of the + specified file, it returns NULL stream and FT_Open_New() returns the + error immediately. On MacOS, most legacy MacOS fonts fall into such + a scenario because their data forks are zero-sized and cannot be + sought. To proceed to guessing of resource fork fonts, the + functions for legacy MacOS font must properly handle the NULL stream + returned by FT_New_Stream(). + + * src/base/ftobjs.c (IsMacBinary): Return error + FT_Err_Invalid_Stream_Operation immediately when NULL stream is + passed. + (FT_Open_Face): Even when FT_New_Stream() returns an error, proceed + to fallback. Originally, legacy MacOS font is tested in the cases + of FT_Err_Invalid_Stream_Operation (occurs when data fork is empty) + or FT_Err_Unknown_File_Format (occurs when AppleSingle header or + .dfont header is combined). Now the case of + FT_Err_Cannot_Open_Stream is included. + + * src/base/ftrfork.c (FT_Raccess_Guess): When passed stream is NULL, + skip FT_Stream_Seek(), which seeks to the head of stream, and + proceed to unit testing of raccess_guess_XXX(). FT_Stream_Seek() + for a NULL stream causes a Bus error on Mac OS X. + (raccess_guess_apple_double): Return FT_Err_Cannot_Open_Stream + immediately if passed stream is NULL. + (raccess_guess_apple_single): Ditto. + +2007-11-16 suzuki toshiya <[email protected]> + + Fix for Carbon incompatibilities since Mac OS X 10.5, + proposed by Sean McBride. + + * doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET. + + * include/freetype/ftmac.h: Deprecate FT_New_Face_From_FOND and + FT_GetFilePath_From_Mac_ATS_Name. Since Mac OS X 10.5, calling + Carbon functions from a forked process is classified as unsafe + by Apple. All Carbon-dependent functions should be deprecated. + + * src/base/ftmac.c: Use essential header files + <CoreServices/CoreServices.h> and + <ApplicationServices/ApplicationServices.h> instead of + all-in-one header file <Carbon/Carbon.h>. + + Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple + genuine macro PATH_MAX. + + Add fallback macro for kATSOptionFlagsUnRestrictedScope which + is not found in Mac OS X 10.0. + + Multi-character constants ('POST', 'sfnt' etc) are replaced by + 64bit constants calculated by FT_MAKE_TAG() macro. + + For the index in the segment of resource fork, new portable + type ResourceIndex is introduced for better compatibility. + This type is since Mac OS X 10.5, so it is defined as short + when built on older platforms. + + (FT_ATSFontGetFileReference): If build target is only the systems + 10.5 and newer, it calls Apple genuine ATSFontGetFileReference(). + + (FT_GetFile_From_Mac_ATS_Name): Return an error if system is 10.5 + and newer or 64bit platform, because legacy type FSSpec type is + removed completely. + + (FT_New_Face_From_FSSpec): Ditto. + +2007-11-01 Werner Lemberg <[email protected]> + + * src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere. This + fixes Savannah bug #21485. + +2007-10-29 Daniel Svoboda <dasvo@planeta@cz> + + * src/winfonts/winfnt.c (FNT_Face_Init): Check first that the driver + can handle the font at all, then check `face_index'. Otherwise, the + driver might return the wrong error code. This fixes Savannah bug + #21468. + +2007-10-21 Werner Lemberg <[email protected]> + + * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare + support for bit 8 of the `fsSelection' field in the `OS/2' table. + MS is already using this; hopefully, this becomes part of OpenType + 1.5. + Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22 + (WWS_SUBFAMILY). + +2007-10-20 Werner Lemberg <[email protected]> + + * src/tools/docmaker/tohtml.py (html_header_2): Fix typo. + Add `td.left' element to CSS. + (toc_section_enter): Use it. + +2007-10-18 David Turner <[email protected]> + + * include/freetype/freetype.h, src/base/ftobjs.c: Rename API + functions related to cmap type 14 support to the + `FT_Object_ActionName' scheme: + + FT_Get_Char_Variant_index -> FT_Face_GetCharVariantIndex + FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault + FT_Get_Variant_Selectors -> FT_Face_GetVariantSelectors + FT_Get_Variants_Of_Char -> FT_Face_GetVariantsOfChar + FT_Get_Chars_Of_Variant -> FT_Face_GetCharsOfVariant + + Update documentation accordingly. + + * src/sfnt/ttcmap.c: Stronger cmap 14 validation. + Make the code a little more consistent with FreeType coding + conventions and modify the cmap14 functions that returned a newly + allocated array to use a persistent vector from the TT_CMap14 object + instead. + + (TT_CMap14Rec): Provide array and auxiliary data for result. + (tt_cmap14_done, tt_cmap14_ensure): New functions. + + (tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_map_def_binary, + tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant, + tt_cmap14_char_var_index, tt_cmap14_variants, + tt_cmap14_char_variants, tt_cmap14_def_char_count, + tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars, + tt_cmap14_variant_chars, tt_cmap14_class_rec): Updated and improved. + +2007-10-15 George Williams <[email protected]> + + Add support for cmap type 14. + + * devel/ftoption.h, include/freetype/config/ftoption.h + (TT_CONFIG_CMAP_FORMAT_14): New macro. + + * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIndexFunc, + FT_CMap_CharVarIsDefaultFunc, FT_CMap_VariantListFunc, + FT_CMap_CharVariantListFunc, FT_CMap_VariantCharListFunc): New + support function prototypes. + (FT_CMap_ClassRec): Add them. + Update all users. + + * include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New + macro. + + * include/freetype/freetype.h (FT_Get_Char_Variant_Index, + FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors, + FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API + functions. + + * src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary + function. + (FT_Set_Charmap): Disallow cmaps of type 14. + (FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault, + FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char, + FT_Get_Chars_Of_Variant): New API functions. + + * src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros. + + (TT_CMap14Rec, tt_cmap14_init, tt_cmap14_validate, + tt_cmap14_char_index, tt_cmap14_char_next, tt_cmap14_get_info, + tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary, + tt_cmap14_find_variant, tt_cmap14_char_var_index, + tt_cmap14_char_var_isdefault, tt_cmap14_variants, + tt_cmap14_char_variants, tt_cmap14_def_char_count, + tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars, + tt_cmap14_variant_chars, tt_cmap14_class_rec): New functions and + structures for cmap 14 support. + (tt_cmap_classes): Register tt_cmap14_class_rec. + (tt_face_build_cmaps): One more error message. + + * docs/CHANGES: Mention cmap 14 support. + +2007-10-01 Werner Lemberg <[email protected]> + + * src/base/ftobjs.c (find_unicode_charmap): If search for a UCS-4 + charmap fails, do the loop again while searching a UCS-2 charmap. + This favours MS charmaps over Apple ones. + +2007-08-29 suzuki toshiya <[email protected]> + + * src/base/ftmac.c: Introduction of abstract `short' data types, + ResFileRefNum and ResID. These types were introduced for Copland, + then backported to MPW. The variables exchanged with FileManager + QuickDraw frameworks are redefined by these data types. Patch was + proposed by Sean McBride. + * builds/mac/ftmac.c: Ditto. + +2007-08-18 Werner Lemberg <[email protected]> + + * src/otvalid/otvcmmn.c (otv_x_y_ux_sy): Skip context glyphs. Found + by Imran Yousaf. Fixes Savannah bug #20773. + + (otv_Lookup_validate): Correct handling of LookupType. Found by + Imran Yousaf. Fixes Savannah bug #20782. + +2007-08-17 George Williams <[email protected]> + + * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of + SingleSubstFormat1. + +2007-08-11 suzuki toshiya <[email protected]> + + * builds/unix/configure.raw: Fix a bug which sets CC_BUILD by + ${build-gcc} (unchecked) instead of by ${build}-gcc (checked). + Found by Ryan Hill. + +2007-08-11 George Williams <[email protected]> + + * src/otvalid/otvcommn.c, src/otvalid/otvcommn.h + (otv_Coverage_validate): Add fourth argument to pass an expected + count value. Update all users. + Check glyph IDs. + (otv_ClassDef_validate): Check `StartGlyph'. + + * src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID + checks. + + * src/otvalid/otvmath.c (otv_MathConstants_validate): There are only + 56 constants. + (otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate): + Check glyph IDs. + +2007-08-08 Werner Lemberg <[email protected]> + + * src/otvalid/otvbase.c, src/otvalid/otvcommn.c, + src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, src/otvalid/otvgsub.c, + src/otvalid/otvjstf.c: s/FT_INVALID_DATA/FT_INVALID_FORMAT/ where + appropriate. Reported by George. + + * include/freetype/internal/fttrace.h: Define `trace_otvmath'. + + * src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c. + + * docs/CHANGES: Updated. + +2007-08-08 George Williams <[email protected]> + + Add `MATH' validating support to otvalid module. + + * include/freetype/tttags.h (TTAG_MATH): New macro. + * include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro. + (FT_VALIDATE_OT): Updated. + + * src/otvalid/otmath.c: New file. + + * src/otvalid/otvalid.c: Include otvmath.c. + * src/otvalid/otvmod.c (otv_validate): Handle `MATH' table. + +2007-08-04 Werner Lemberg <[email protected]> + + * builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL. + Fixes Savannah bug #20686. + +2007-08-03 Werner Lemberg <[email protected]> + + * src/psnames/psmodule.c: Fix usage of + FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro. Reported by Graham Asher. + +2007-07-31 suzuki toshiya <[email protected]> + + * src/base/ftmac.c (open_face_from_buffer): The argument + `driver_name' is typed as `const char*' to match with the + callers in FT_New_Face_From_LWFN and FT_New_Face_From_SFNT. + This is same with open_face_from_buffer in src/base/ftobjs.c. + Found and fixed by Sean McBride. + +2007-07-28 Werner Lemberg <[email protected]> + + * src/raster/ftraster.c (count_table): Make it conditional. + * src/base/ftobjs.c (FT_New_Library): Check FT_RENDER_POOL_SIZE with + a preprocessor statement. + +2007-07-27 Werner Lemberg <[email protected]> + + * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before + first usage. From Savannah patch #6115. + +2007-07-16 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2007-07-16 Derek Clegg <[email protected]> + + Add new service for getting the ROS from a CID font. + + * include/freetype/config/ftheader.h (FT_CID_H): New macro. + * include/freetype/ftcid.h: New file. + + * include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro. + * include/freetype/internal/services/svcid.h: New file. + + * src/base/ftcid.c: New file. + + * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H. + (cff_get_ros): New function. + (cff_service_cid_info): New service structure. + (cff_services): Register it. + + * src/cff/cffload.c (cff_font_done): Free registry and ordering. + + * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'. + + * modules.cfg (BASE_EXTENSIONS): Add ftcid.c. + +2007-07-11 Derek Clegg <[email protected]> + + Add support for postscript name service to CFF driver. + + * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H. + (cff_get_ps_name): New function. + (cff_service_ps_name): New service structure. + (cff_services): Register it. + +2007-07-07 Werner Lemberg <[email protected]> + + * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of + `target'. Reported by Sean McBride. + +2007-07-06 Werner Lemberg <[email protected]> + + * src/pfr/pfrcmap.c: Include pfrerror.h. + + * src/autofit/afindic.c: Add some external declarations to pacify + `make multi' compilation. + + * src/cid/cidgload.c (cid_load_glyph): Pacify compiler. + + * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c + (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP), + src/autofit/aflatin.c (af_latin_hints_compute_edges), + src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c + (tt_face_get_metrics), src/base/ftobjs.c (open_face) + [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler. + + * docs/release: Mention test compilation targets. + +2007-07-04 Werner Lemberg <[email protected]> + + * docs/PROBLEMS: Mention that some PS based fonts can't be + handled correctly by FreeType. + + * src/truetype/ttgload.c (load_truetype_glyph): Always allow a + recursion depth of 1. This was the maximum value in TrueType 1.0, + and some older fonts don't set this field correctly. + + * src/gxvalid/gxvmort1.c + (gxv_mort_subtable_type1_substTable_validate): Fix tracing message. + +2007-07-03 Werner Lemberg <[email protected]> + + * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize + `round' to pacify compiler. + +2007-07-02 Werner Lemberg <[email protected]> + + + * Version 2.3.5 released. + ========================= + + + Tag sources with `VER-2-3-5'. + + * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump + version number to 2.3.5. + + * README, Jamfile (RefDoc), builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj, + builds/win32/visualce/index.html, + builds/win32/visualce/freetype.dsp, + builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5. + + * builds/unix/configure.raw (version_info): Set to 9:16:3. + +2007-07-01 David Turner <[email protected]> + + * include/freetype/freetype.h, src/base/ftpatent.c + (FT_Face_SetUnpatentedHinting): New function to dynamically change + the setting after a face is created. + + * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug + that created distortions in the bytecode interpreter results. + +2007-06-30 David Turner <[email protected]> + + * src/truetype/ttinterp.c (Ins_IUP): Add missing variable + initialization. + + * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an + infinite loop in the case of degenerate fonts. + +2007-06-26 Rahul Bhalerao <[email protected]> + + Add autofit module for Indic scripts. This currently just reuses + the CJK-specific functions. + + * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New + macro. + * devel/ftoption.h: Synchronize with + include/freetype/config/ftoption.h. + + * src/autofit/afindic.c, src/autofit/afindic.h: New files. + + * src/autofit/afglobal.c, src/autofit/aftypes.h, + src/autofit/autofit.c: Updated. + + * src/autofit/Jamfile (_sources), * src/autofit/rules.mk + (AUTOF_DRV_SRC): Updated. + +2007-06-23 David Turner <[email protected]> + + * src/truetype/ttgload.c (TT_Load_Simple): Fix change from + 2007-06-16 that prevented the TrueType module from loading most + glyphs. + +2007-06-20 Werner Lemberg <[email protected]> + + * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28 + change. + +2007-06-19 Werner Lemberg <[email protected]> + + * src/type1/t1load.c (parse_encoding): Handle one more error. + +2007-06-19 Dmitry Timoshkov <[email protected]> + + * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error + FNT_Err_Invalid_File_Format if file format was recognized but + the file doesn't contain any FNT(NE) or RT_FONT(PE) resources. + Add verbose debug logs to make it easier to debug failing load + attempts. + (FNT_Face_Init): A single FNT font can't contain more than 1 face, + so return an error if requested face index is > 0. + Do not do further attempt to load fonts if a previous attempt has + failed but returned error FNT_Err_Invalid_File_Format, i.e., the + file format has been recognized but no fonts found in the file. + +2007-07-19 suzuki toshiya <[email protected]> + + * src/base/ftmac.c: Apply patches proposed by Sean McBride. + (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix + the compiler warnings against unused arguments. + (FT_ATSFontGetFileReference): Ditto. + (FT_GetFile_From_Mac_ATS_Name): Ditto. + (FT_New_Face_From_FSSpec): Ditto. + (lookup_lwfn_by_fond): Fix wrong comment. + Replace `const StringPtr' by more appropriate type + `ConstStr255Param'. + FSRefMakePathPath always returns UTF8 POSIX pathname in + Mach-O, thus HFS pathname support is dropped. + (count_faces): Remove HLock and HUnlock which is not + required on Mac OS X anymore. + (FT_New_Face_From_SFNT): Ditto. + (FT_New_Face_From_FOND): Ditto. + * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c, + except of HFS pathname support and HLock/HUnlock. + They are required on classic CFM environment. + +2007-06-18 Werner Lemberg <[email protected]> + + * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect + assertion. + (ps_parser_to_bytes): Fix error message. + + * src/type42/t42objs.c (T42_Open_Face): Handle one more error. + * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/. + Don't allow mixed binary and hex strings. + Handle string_size == 0 and string_buf == 0. + (t42_parse_encoding): Handle one more error. + +2007-06-18 Werner Lemberg <[email protected]> + + * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit + logic. + (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters + correctly. + (ps_parser_load_field_table): Use `fields->array_max' instead of + T1_MAX_TABLE_ELEMENTS to limit the number of arguments. + + * src/cff/cffgload.c (cff_decoder_prepare): Fix change from + 2007-06-06. + +2007-06-17 Werner Lemberg <[email protected]> + + * src/tools/ftrandom.c (font_size): New global variable. + (TestFace): Use it. + (main): Handle new option `--size' to set `font_size'. + (Usage): Updated. + + * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of + invalid font. + (FNT_Load_Glyph): Protect against invalid bitmap width. + +2007-06-16 David Turner <[email protected]> + + * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline): + Prevent integer overflows when rendering very large outlines. + + * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the + well-formedness of the contours array when loading a glyph. + + * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1', + and `zp2'. + (Ins_IP): Check argument ranges to reject bogus operations properly. + (IUP_WorkerRec): Add `max_points' member. + (_iup_worker_interpolate): Check argument ranges. + (Ins_IUP): Ignore empty outlines. + +2007-06-16 Dmitry Timoshkov <[email protected]> + + * src/winfonts/winfnt.h: Add necessary structures for PE resource + parsing. + (WinPE32_HeaderRec): New structure. + (WinPE32_SectionRec): New structure. + (WinPE_RsrcDirRec): New structure. + (WinPE_RsrcDirEntryRec): New structure. + (WinPE_RsrcDataEntryRec): New structure. + (FNT_FontRec): Remove unused `size_shift' field. + + * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for + loading bitmap .fon files in PE format. + +2007-06-15 Dmitry Timoshkov <[email protected]> + + * builds/win32/ftdebug.c: Unify debug level handling with other + platforms. + +2007-06-14 Dmitry Timoshkov <[email protected]> + + * builds/win32/ftdebug.c (FT_Message): Send debug output to the + console as well as to the debugger. + +2007-06-14 Werner Lemberg <[email protected]> + + * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to + cover all ranges which could possibly be handled by the aflatin + module (since the default fallback for unknown ranges is now the + afcjk module). It might be necessary to fine-tune this further by + splitting off modules for Greek, Cyrillic, or other blocks. + +2007-06-11 David Turner <[email protected]> + + * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix + incorrect segment linking computation. This was the root cause of + Savannah bug #19565. + + + * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes + to improve the Latin auto-hinter. Note that the new code is + disabled by default since it is not stabilized yet. + + * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files + (disabled currently). + + * src/autofit/afhints.c: Remove dead code. + (af_axis_hints_new_edge): Add argument to handle segment directions. + (af_edge_flags_to_string): New function. + (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle + option flags. + (af_glyph_hints_reload): Add argument to handle inflections. + Simplify. + (af_direction_compute): Fine tuning. + (af_glyph_hints_align_edge_points): Fix logic. + (af_glyph_hints_align_strong_points): Do linear search for small + edge counts. + (af_glyph_hints_align_weak_points): Skip any touched neighbors. + (af_iup_shift): Handle zero `delta'. + + * src/autofit/afhints.h: Updated. + (AF_SORT_SEGMENTS): New macro (disabled). + (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'. + + * src/autofit/afglobal.c (af_face_globals_get_metrics): Add + argument to pass option flags for handling scripts. + * src/autofit/afglobal.h: Updated. + + * src/autofit/afcjk.c: Updated. + * src/autofit/aflatin.c: Updated. + (af_latin_metrics_scale_dim): Don't reduce scale by 2%. + + (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code. + (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code. + Don't set `edge->dir' + (af_latin_hint_edges): Add more logging. + + * src/autofit/afloader.c: Updated. + +2007-06-11 Werner Lemberg <[email protected]> + + * docs/CHANGES: Document FT_Face_CheckTrueTypePatents. + +2007-06-10 David Turner <[email protected]> + + * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to + the TrueType glyph loader. + + * include/freetype/config/ftoption.h: Clarify documentation + regarding unpatented hinting. + + + Add new `FT_Face_CheckTrueTypePatents' API. + + * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New + declaration. + + * include/freetype/internal/services/svttglyf.h, + src/base/ftpatent.c: New files. + + * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H): + New macro. + + * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and + `ttpload.h'. + (tt_service_truetype_glyf): New service structure. + (tt_services): Register it. + + * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add + `ftpatent.c'. + +2007-06-08 Werner Lemberg <[email protected]> + + * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28. + Fonts without a cmap must be handled correctly by FreeType (anything + else would be a bug). + + + * src/psaux/t1decode.c (t1_decoder_parse_charstrings) + [FT_DEBUG_LEVEL_TRACE]: Improve tracing message. + +2007-06-07 Werner Lemberg <[email protected]> + + * src/sfnt/ttsbit0.c (tt_sbit_decoder_init, + tt_sbit_decoder_load_image): Protect against integer overflows. + + + * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks + for `x_control' and `y_control'. + +2007-06-06 Werner Lemberg <[email protected]> + + * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'. + + + * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal + FreeType error. + + + * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of + `font_count'. + + + * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'. + + + * src/cff/cffgload.c (cff_decoder_prepare): Change return type to + `FT_Error'. + Check `fd_index'. + (cff_slot_load): Updated. + * src/cff/cffgload.h: Updated. + +2007-06-05 Werner Lemberg <[email protected]> + + * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code. + (pfr_glyph_load_simple): Convert assertion into normal FreeType + error. + Check `idx'. + (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to): + Convert assertion into normal FreeType error. + + * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code. + + + * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'. + + + * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1 + in case of parsing error. + (ps_parser_load_field): Updated. + + * src/type1/t1load.c (parse_font_matrix): Updated. + +2007-06-04 Werner Lemberg <[email protected]> + + * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'. + + * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'. + +2007-06-03 Werner Lemberg <[email protected]> + + * src/tools/ftrandom/*: Add the `ftrandom' test program written by + George Williams (with some modifications). + +2007-06-03 Werner Lemberg <[email protected]> + + * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c + (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for + face == NULL. Suggested by Graham Asher. + +2007-06-03 Ismail Dönmez <[email protected]> + + * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning. + +2007-06-02 Werner Lemberg <[email protected]> + + * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header, + FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files. + + * src/bdf/bdflib.c (bdf_load_font): Use them. + + * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better. + +2007-06-01 Werner Lemberg <[email protected]> + + * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c + (FTC_CMapCache_Lookup): Remove unused code. + +2007-06-01 Sean McBride <[email protected]> + + * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed, + unused. + +2007-06-01 Werner Lemberg <[email protected]> + + * src/cid/cidparse.c (cid_parser_new): Don't continue second search + pass for `StartData' if an error has occurred. + Exit properly if no `StartData' has been seen at all. + + * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but + LONG_MAX to avoid compiler warning. Suggested by Sean McBride. + +2007-05-30 Werner Lemberg <[email protected]> + + * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect + against too small binary data strings. + + * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better. + +2007-05-28 David Turner <[email protected]> + + * src/cff/cffgload.c (cff_slot_load): Do not apply the identity + transformation. This significantly reduces the loading time of CFF + glyphs. + + * docs/CHANGES: Updated. + + * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default + hinting script to CJK, since it works well with more scripts than + latin. Thanks to Rahul Bhalerao <[email protected]> for pointing + this out! + +2007-05-25 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2007-05-24 Werner Lemberg <[email protected]> + + * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration + into TT_USE_BYTECODE_INTERPRETER preprocessor block. + +2007-05-24 Graham Asher <[email protected]> + + * src/truetype/ttobjs.c (tt_size_ready_bytecode) + [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused. + +2007-05-22 David Turner <[email protected]> + + * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to + avoid crashes in case the bytecode interpreter is not used. + + + Avoid heap blowup with very large .Z font files. This fixes + Savannah bug #19910. + + * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor', + `in_limit', `pad', `pad_bits', and `in_buff' members. + Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and + `buf_total' members. + + * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes + only one argument. + (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated. + +2007-05-20 Ismail Dönmez <[email protected]> + + * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'. + (ps_dimension_set_mask_bits): Remove `const'. + +2007-05-19 Werner Lemberg <[email protected]> + + * src/sfnt/ttmtx.c (tt_face_get_metrics) + [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix. + +2007-05-19 Derek Clegg <[email protected]> + + Savannah patch #5929. + + * include/freetype/tttables.h, src/base/ftobjcs.c + (FT_Get_CMap_Format): New function. + + * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add + `format' member. + * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set + cmap_info->format. + +2007-05-19 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state + before handling subglyphs so that it can be reinitialized each time. + This fixes Savannah bug #19859. + +2007-05-16 Werner Lemberg <[email protected]> + + * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink), + src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h + (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init), + src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea, + tt_face_get_metrics): Fix type-punning issues. + +2007-05-15 David Turner <[email protected]> + + * include/freetype/config/ftstdlib.h, + include/freetype/internal/ftobjs.h: As suggested by Graham Asher, + ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values + instead on relying on the locale-dependent functions provided by + <ctypes.h>. + +2007-05-15 Graham Asher <[email protected]> + + * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused + variable. + * src/autofit/afloader.c (af_loader_load_g): Ditto. + + * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'. + (open_face_from_buffer): Initialize `stream'. + (FT_Request_Metrics): Remove unused variable. + Remove redundant `break' statements. + (FT_Get_Track_Kerning): Remove unused variable. + + * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs, + afm_parse_kern_data): Remove redundant + `break' statements. + (afm_parser_parse): Ditto. + Don't use uninitialized variables. + + * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long. + Use `|' operator instead of `^' to set it. + Update all users. + + * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'. + * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable. + + * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant + comparison. + (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'. + (TT_Load_Glyph): Remove unused variable. + +2007-05-13 Derek Clegg <[email protected]> + + * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool + if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928. + +2007-05-11 David Turner <[email protected]> + + * src/cache/ftbasic.c, include/freetype/ftcache.h + (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new + functions that allow us to look up glyphs using an FTC_Scaler object + to specify the size, making it possible to use fractional pixel + sizes. + + * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set + `size->cvt_ready'. Reported by Boris Letocha. + +2007-05-09 Graham Asher <[email protected]> + + * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c + (af_latin_metrics_scale_dim): Fix compiler warnings. + +2007-05-06 Werner Lemberg <[email protected]> + + * builds/win32/visualce/freetype.sln: Removed, as requested by + Vincent. + +2007-05-04 Vincent RICHOMME <[email protected]> + + * builds/win32/visualce/*: Add Visual C++ project files for Pocket + PC targets. + + * docs/CHANGES: Document them. + +2007-05-04 <[email protected]> + + * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of + mmap (which might happen on some RTOS). From Savannah patch #5909. + +2007-05-03 Werner Lemberg <[email protected]> + + * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code. + * include/freetype/freetype.h (FT_Set_Char_Size): Update + documentation. + +2007-04-28 Victor Stinner <[email protected]> + + * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading + `cmap'. + +2007-04-27 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative + number of points in contours. Problem reported by Victor Stinner + <[email protected]>. + (TT_Process_Simple_Glyph): Synchronize variable types. + +2007-04-26 Werner Lemberg <[email protected]> + + * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to + zero in case of error. This fixes Savannah bug #19689. + +2007-04-25 Boris Letocha <[email protected]> + + * src/truetype/ttobjs.c: Fix a typo that created a speed regression + in the TrueType bytecode loader. + +2007-04-10 Martin Horak <[email protected]> + + * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]: + Ignore `hhea' table. This fixes Savannah bug #19261. + +2007-04-09 Werner Lemberg <[email protected]> + + + * Version 2.3.4 released. + ========================= + + + Tag sources with `VER-2-3-4'. + + * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump + version number to 2.3.4. + + * README, Jamfile (RefDoc), builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4. + + * builds/unix/configure.raw (version_info): Set to 9:15:3. + +2007-04-09 Martin Horak <[email protected]> + + * src/truetype/ttgload.c (load_truetype_glyph): Save and restore + memory stream to avoid a crash with the incremental memory + interface (Savannah bug #19260). + +2007-04-06 David Turner <[email protected]> + + * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug + (Savannah bug #19536). + +2007-04-04 Werner Lemberg <[email protected]> + + + * Version 2.3.3 released. + ========================= + + + Tag sources with `VER-2-3-3'. + + * docs/CHANGES: Mention CVE-2007-1351. + +2007-04-03 David Turner <[email protected]> + + * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos, + if one of the resolution values is 0, treat it as if it were the + same as the other value. + +2007-04-02 David Turner <[email protected]> + + Add special code to detect `extra-light' fonts and do not snap their + stem widths too much to avoid bizarre hinting effects. + + * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and + `extra_light' members. + + * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize + them. + (af_latin_metrics_scale_dim): Set `extra_light'. + (af_latin_compute_stem_width): Use `extra_light'. + +2007-03-28 David Turner <[email protected]> + + * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the + padding. + +2007-03-28 Werner Lemberg <[email protected]> + + * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128 + gracefully. + (_bdf_set_default_spacing): Increase `name' buffer size to 256 and + issue an error for longer names. This fixes CVE-2007-1351. + (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the + number of code points in Unicode. + + * builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/, + s/232/233/. + + * docs/CHANGES: Mention ftdiff. + +2007-03-26 David Turner <[email protected]> + + * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and + corresponding code. + (Ins_MD): Last regression fix. + + * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues + computations in order to ignore single-point contours. These are + never rasterized and correspond in certain fonts to mark-attach + points that are very far from the glyph's real outline, ruining the + computation. + + * src/autofit/afloader.c (af_loader_load_g): In the case of + monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0. + Otherwise code that uses them will most certainly ruin the fixed + advance property. + + * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update + documentation and bump version number to 2.3.3. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3. + + * builds/unix/configure.raw (version_info): Set to 9:14:3. + +2007-03-26 suzuki toshiya <[email protected]> + + * builds/unix/ftconfig.in: Disable Carbon framework dependency on + 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride. + * builds/vms/ftconfig.h: Ditto. + * include/freetype/config/ftconfig.h: Ditto. + +2007-03-22 suzuki toshiya <[email protected]> + + * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent + 32bit unsigned long overflow by 64bit filesize on LP64 platform, as + proposed by Sean McBride: + http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html + +2007-03-22 suzuki toshiya <[email protected]> + + * builds/unix/ftconfig.in: Suppress SGI compiler's warning against + setjmp, proposed by Sean McBride: + http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html + +2007-03-19 suzuki toshiya <[email protected]> + + * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of + conftest.c, to avoid unexpected shell evaluation. Possibly it is a + bug or undocumented behaviour of autoconf. + +2007-03-18 David Turner <[email protected]> + + * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression + fix; testing still needed. + + * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix. + +2007-03-17 David Turner <[email protected]> + + * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the + (undocumented) twilight zone special case. + +2007-03-09 Werner Lemberg <[email protected]> + + + * Version 2.3.2 released. + ========================= + + + Tag sources with `VER-2-3-2'. + + * builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/, + s/231/232/. + +2007-03-08 David Turner <[email protected]> + + * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release. + + * builds/unix/configure.raw (version_info): Set to 9:13:3. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2. + + * README, Jamfile (RefDoc): s/2.3.1/2.3.2/. + + * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the + function to work properly, over-writing user-provided buffers in + some cases. Reported by James Cloos <[email protected]>. + + +2007-03-05 Werner Lemberg <[email protected]> + + * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper + macro for `strstr'. + + * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning + `trick_names', as suggested by Ivan Nincic. + +2007-03-05 David Turner <[email protected]> + + * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in + case FT_Init_FreeType fails for some reason. Problem reported by + Maximilian Schwerin <[email protected]>. + + * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem' + and `y_ppem' fields of the `TT_Size.metrics' structure, not those of + `TT_Size.root.metrics'. Problem reported by Daniel Glöckner + <[email protected]>. + + * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit + signed values, not unsigned ones. Problem reported by Johannes + Walther <[email protected]>. + +2007-02-21 David Turner <[email protected]> + + * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting + of small and ghost stems in the Postscript interpreter. + +2007-02-20 suzuki toshiya <[email protected]> + + * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory + leak, patch by "Jjgod Jiang" <[email protected]>. + * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto. + +2007-02-16 Werner Lemberg <[email protected]> + + * src/truetype/ttinterp.c (Ins_MD): Remove unused variable. + * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto. + +2007-02-14 David Turner <[email protected]> + + It seems that the following changes fix most of the known + interpreter problems with my fonts, but more testing is needed, + though. + + * src/truetype/ttinterp.c (FIX_BYTECODE): Activate. + (TT_MulFix14): Rewrite. + (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated. + (Ins_MIRP): Ditto. + +2007-02-12 Werner Lemberg <[email protected]> + + * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler + warnings. + + * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c + (bdf_interpret_style): Ditto. + +2007-02-12 David Turner <[email protected]> + + Simplify projection and dual-projection code interface. + + * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not + FT_Vector' as argument type. + * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj): + Updated. + (CUR_fast_project, CUR_fast_dualproj): New macros. + (Project, Dual_Project, Project_x, Project_y): Updated. + (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast' + macros. + + + * src/autofit/afloader.c (af_loader_load_g): Improve spacing + adjustments for the non-light auto-hinted modes. Gets rid of + `inter-letter spacing is too wide' problems. + + * src/autofit/aflatin.c (af_latin_hints_link_segments, + af_latin_hints_compute_edges): Slight optimization of the segment + linker and better handling of serif segments to get rid of broken + `9' in Arial at 9pt (96dpi). + + + Introduce new string functions and the corresponding macros to get + rid of various uses of strcpy and other `evil' functions, as well as + to simplify a few things. + + * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup, + ft_mem_strcpyn): New declarations. + (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New + macros. + * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New + functions. + + * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init), + src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c + (pcf_get_properties, pcf_interpret_style, pcf_load_font), + src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c + (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy), + src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c + (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name, + t42_get_name_index): Use new functions and simplify code. + + * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN. + +2007-02-11 Werner Lemberg <[email protected]> + + * src/autofit/afloader.c (af_loader_load_g): Don't change width for + non-spacing glyphs. + +2007-02-07 Tom Parker <[email protected]> + + * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL + pointer. + +2007-02-05 suzuki toshiya <[email protected]> + + * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE): + Introduce __attribute((deprecated))__ to warn functions + which use non-ANSI data types in its interfaces. + (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec. + (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec. + (FT_New_Face_From_FSSpec): Deprecated, using FSSpec. + (FT_New_Face_From_FSRef): Deprecated, using FSRef. + + * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void + to avoid warning in building FreeType. + * builds/mac/ftmac.c: Ditto. + +2007-02-05 suzuki toshiya <[email protected]> + + * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured + `--with-fsspec' etc. Replace #include "ftmac.c" with + #include <ftmac.c>. + +2007-02-05 suzuki toshiya <[email protected]> + + * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name): + Introduced as replacement of FT_GetFile_From_Mac_ATS_Name. + * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto. + (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of + FT_GetFilePath_From_Mac_ATS_Name. + * builds/mac/ftmac.c: Ditto. + +2007-02-05 suzuki toshiya <[email protected]> + + * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of + FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are + for passing to FT_New_Face_From_FSSpec. + +2007-02-05 suzuki toshiya <[email protected]> + + * builds/unix/configure.raw: Check whether Mac OS X system headers + can be built under ANSI C mode. + + * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version + compatible to ANSI C in case system headers are ANSI C incompatible. + * builds/mac/ftmac.c (OS_INLINE): Ditto. + +2007-02-01 Werner Lemberg <[email protected]> + + * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN): + Explain why applications shouldn't use it. Found by Alexei. + +2007-02-01 Alexei Podtelezhnikov <[email protected]> + + * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning + message. + + * src/gxvalid/gxvmort1.c + (gxv_mort_subtable_type1_substTable_validate): Fix debugging + message. + +2007-01-31 Werner Lemberg <[email protected]> + + + * Version 2.3.1 released. + ========================= + + + Tag sources with `VER-2-3-1-FINAL'. + + * builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj: s/230/231/. + * builds/win32/visualc/index.html: s/221/231/. + + * vms_make.com: Add `ftgasp'. + +2007-01-30 David Turner <[email protected]> + + Tag sources with VER-2-3-1 to prepare release. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. + + * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc): + s/2.3.0/2.3.1/. + + * builds/unix/configure.raw (version_info): Set to 9:12:3. + + + * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c + (af_loader_load_g): Disable the warper (i.e., the light hinting + improvements) to make a 2.3.1 bugfix release before introducing a + new feature. This should give us more time to tune and improve the + warper for the next release. + + * docs/CHANGES: Update accordingly. + +2007-01-25 David Turner <[email protected]> + + For light auto-hinting, improve glyph advance widths and resurrect + normal/full hinting to its normal quality. + + * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta' + and `xmax_delta'. + * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta' + and `xmax_delta'. + + * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace + preprocessor conditional with if-clause, handling both light and + normal mode. + + * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again. + (af_warper_compute): Handle `xmin_delta' and `xmax_delta'. + +2007-01-25 Werner Lemberg <[email protected]> + + * docs/release: Updated -- Savannah uses a new uploading scheme. + +2007-01-25 David Turner <[email protected]> + + * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix. + + * src/cff/cffgload.c (cff_decoder_parse_charstrings) + <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty + functions. + + * docs/CHANGES: Document light auto-hinting improvement. + +2007-01-25 Werner Lemberg <[email protected]> + + * src/cff/cffload.c (cff_index_get_pointers): Handle last entry + correctly in a sanity check. Since this function is only used to + load local and global functions, any charstring that called the last + local/global function would fail otherwise. This fixes Savannah bug + #18867. + + * docs/CHANGES: Document it. + +2007-01-23 David Turner <[email protected]> + + * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that + prevented compilation when disabling both the unpatented and the + bytecode interpreter in the TrueType font driver. + + + Fix and enable the warper to improve `light' hinting mode. This is + not necessarily a final version, but it seems to work well. + + * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]: + Disable code. + (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT. + * src/autofit/aftypes.h: Activate AF_USE_WARPER. + + * src/autofit/afwarp.c (AF_WarpScore): Tune table. + (af_warper_compute_line_best): Fix array size of `scores'. + (af_warper_compute): Better handling of border cases. + * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1' + and `X2'. + +2007-01-21 Werner Lemberg <[email protected]> + + * ChangeLog: Split off older entries into... + * ChangeLog.22: This new file. + +2007-01-21 Werner Lemberg <[email protected]> + + * docs/CHANGES: Document SHZ fix. + +2007-01-21 George Williams <[email protected]> + + * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom + points. + +2007-01-21 Werner Lemberg <[email protected]> + + * src/sfnt/ttmtx.c (tt_face_get_metrics) + [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check. + +2007-01-17 Werner Lemberg <[email protected]> + + + * Version 2.3.0 released. + ========================= + + + Tag sources with `VER-2-3-0-FINAL'. + +2007-01-17 Werner Lemberg <[email protected]> + + * docs/release: Updated. + +2007-01-16 David Turner <[email protected]> + + * src/autofit/aflatin.c (af_latin_hints_compute_segments), + src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c + (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler + warnings. + +2007-01-15 Detlef Würkner <[email protected]> + + * builds/amiga/makefile, builds/amiga/makefile.os4, + builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'. + + * builds/amiga/include/freetype/config/ftconfig.h: Synchronize. + +2007-01-14 Detlef Würkner <[email protected]> + + Fix various compiler warnings. + + * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h, + src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h: + s/index/strike_index/. + * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/. + + * src/gxvalid/gxvmorx5.c + (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/. + + * src/truetype/ttinterp.c (Compute_Point_Displacement), + src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly + uninitialized variables. + +2007-01-13 suzuki toshiya <[email protected]> + + * docs/CHANGES, docs/INSTALL.MAC: Improvements. + +2007-01-13 Werner Lemberg <[email protected]> + + * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM + versions up to 0x3FF without complaining. + +2007-01-13 Derek Clegg <[email protected]> + + Add FT_Get_PS_Font_Info interface to CFF driver. + + * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H. + (CFF_FontRec): Add `font_info' field. + + * src/cff/cffload.c: Include FT_TYPE1_TABLES_H. + (cff_font_done): Free font->font_info if necessary. + + * src/cff/cffdrvr.c (cff_ps_get_font_info): New function. + (cff_service_ps_info): Register cff_ps_get_font_info. + +2007-01-13 Werner Lemberg <[email protected]> + + * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation + with C++ compiler. + + * src/autofit/afhints.c (af_glyph_hints_dump_segments, + af_glyph_hints_dump_edges): Ditto. + + * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in + `modules.cfg'). + + * src/sfnt/ttsbit0.h: Remove. + + * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c. + +2007-01-12 David Turner <[email protected]> + + * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping + bug in the bitmap emboldener if the pitch of the source bitmap is + much larger than its width. + + * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related + compilation warning. + +2007-01-12 Werner Lemberg <[email protected]> + + * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from + `automake' CVS module from sources.redhat.com. + +2007-01-11 Werner Lemberg <[email protected]> + + * src/type1/t1load.c (is_space): Removed. + (parse_encoding, parse_charstrings): Use IS_PS_DELIM. + (parse_charstrings): Use IS_PS_TOKEN. + + + * autogen.sh: Avoid bash specific syntax. + +2007-01-11 David Turner <[email protected]> + + * docs/CHANGES: Small update. + + * builds/unix/configure.raw (version_info): Set to 9:11:3. + + * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a + crash with some Mac OS X .dfont files. Submitted by Masatake + Yamato. + + * autogen.sh: Small fix to get it working on Mac OS X properly: + The issue is that GNU libtool is called `glibtool' on this platform, + and we must call `glibtoolize', since `libtoolize' doesn't exist. + +2007-01-10 David Turner <[email protected]> + + * all-sources: Tag all sources with VER-2-3-0-RC1 and + VER-2-3-0. + + * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update + version number to 2.3.0. + + * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3. + (FREETYPE_PATCH): Set to 0. + + * include/freetype/ftchapters.h, include/freetype/ftgasp.h, + include/freetype/ftlcdfil.h: Update reference documentation with + GASP support and LCD filtering sections. + + * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo + which created an endless loop with some malformed font files. + +2007-01-10 Derek Clegg <[email protected]> + + * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point + values. + +2007-01-08 David Turner <[email protected]> + + * docs/CHANGES: Updated. + + * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add + a new API `FT_Get_Gasp' to return entries of the `gasp' table + corresponding to a given character pixel size. + + * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the + `gasp' table, in order to avoid potential problems with later + versions. + + * include/freetype/config/ftheader.h (FT_GASP_H): New macro for + <freetype/ftgasp.h>. + + * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources), + modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the + default build. + +2007-01-07 Werner Lemberg <[email protected]> + + * src/cid/cidparse.c (cid_parser_new): Improve error message for + Type 11 fonts. + Scan for `/sfnts' token. + +2007-01-07 Werner Lemberg <[email protected]> + + * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts. + +2007-01-06 Werner Lemberg <[email protected]> + + * src/cff/cffload.c (cff_index_init): Remove unused variable. + (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing. + +2007-01-04 David Turner <[email protected]> + + * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts + correctly. This fixes Savannah bug #17876. + + + Do not allocate interpreter-specific tables in memory if we are not + going to load glyphs with the bytecode interpreter anyway. + + * src/truetype/ttgload.c (tt_loader_init): Load execution context + only if glyph is hinted. + Updated. + * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready' + and `cvs_ready'. + Add `tt_size_ready_bytecode' declaration. + * src/truetype/ttobjs.c (tt_size_done_bytecode, + tt_size_init_bytecode, tt_size_ready_bytecode): New functions. + (tt_size_init): Move most code into `tt_size_init_bytecode'. + (tt_size_done): Move most code into `tt_size_done_bytecode'. + (tt_size_reset): Move some code to `tt_size_ready_bytecode'. + + + Don't extract the metrics table from the SFNT font file. Instead, + reparse it on each glyph load. The runtime difference is not + noticeable, and it can save a lot of heap memory when memory-mapped + files are not used. + + * include/freetype/internal/tttypes.h (TT_FaceRec): Add members + `horz_metrics_offset' and `vert_metrics_ofset'. + * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): + Updated. + + + * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization. + + + Do not load the CFF index offsets into memory, since this wastes a + *lot* of heap memory with large Asian CFF fonts. There is no + significant performance loss. + + * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration. + * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and + `data_size'. + (CFF_CharsetRec): Add field `num_glyphs'. + + * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets, + cff_charset_cid_to_gindex): New functions. + (cff_new_index): Renamed to... + (cff_index_init): This. Update all callers. + Updated -- some code has been moved to `cff_index_load_offsets'. + (cff_done_index): Renamed to... + (cff_index_done): This. Update all callers. + (cff_index_get_pointers, cff_index_access_element): Updated to use + stream offsets. + (cff_charset_compute_cids): Set `num_glyphs' field. + (cff_encoding_load): Updated. + + * src/cff/cffgload.c (cff_slot_load): Updated. + +2007-01-04 David Turner <[email protected]> + + * docs/INSTALL.UNIX: Simplify some parts, add reference to + autogen.sh and pointer to README.CVS. + + * README.CVS: Add common problem description and solution + when running autogen.sh. + + * docs/INSTALL: Add reference to MacOS X. + + * docs/MAKEPP, docs/INSTALL.MAC: New documentation files. + + * docs/TODO: Remove obsolete items. + + * src/raster/ftraster.c: (TRaster_Instance): Replace it with... + (TWorker): This. + Remove `count_table' and `memory'. + Make `grays' a pointer. + (TRaster): New structure. + (count_table): New static array. + (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras, + Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done, + ft_black_set_mode, ft_black_render): Updated. + (ft_black_init): Don't initialize `count_table'. + (ft_black_reset): Use the render pool. This saves about 6KB of + heap space for each FT_Library instance. + + * src/smooth/ftgrays.c (TRaster): Replaced with... + (TWorker): This. + Remove `memory'. + (TRaster): New structure. + + (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line, + gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to, + gray_render_span, gray_raster_render): Updated. + (gray_raster_reset): Use the render pool. This saves about 6KB of + heap space for each FT_Library instance. + + * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h, + src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h, + src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove + FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since + the optimization is no longer experimental. + + * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points): + Remove a typo that results in no hinting and a memory leak with some + large Asian CFF fonts. + + * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak + which happens when FT_Done_Library is called with still opened + CFF_Faces in it. We need to close all faces before destroying the + modules, or else some bad things (memory leaks) may happen. + +2007-01-02 Werner Lemberg <[email protected]> + + * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): + Remove compiler warning. + +2007-01-02 David Turner <[email protected]> + + * src/sfnt/sfobjs.c: Add documentation comment. + +2006-12-31 Masatake YAMATO <[email protected]> + + * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New + function. + Check uniqueness of the gid pairs. + (gxv_kern_subtable_fmt0_validate): Move some code to + `gxv_kern_subtable_fmt0_pairs_validate'. + +2006-12-22 David Turner <[email protected]> + + * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler + warnings. + + * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE + to avoid deprecation warnings with Visual C++ 8. + +2006-12-16 Anders Kaseorg <[email protected]> + + * src/base/ftlcdfil.c (FT_Library_SetLcdFilter) + [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo. + +2006-12-15 suzuki toshiya <[email protected]> + + * include/freetype/internal/services/svotval.h: Add `volatile' to + sync with the modification by Jens Claudius on 2006-08-22; cf. + http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5 + +2006-12-15 suzuki toshiya <[email protected]> + + * src/base/ftmac.c: Specialized for Mac OS X only. + * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework. + * builds/unix/configure.raw: Ditto. When explicit switches for + FSSpec/FSRef/QuickDraw/ATS availability are given to configure, + builds/mac/ftmac.c is used instead of default src/base/ftmac.c. + +2006-12-15 suzuki toshiya <[email protected]> + + * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system. + * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c + instead of src/base/ftmac.c + * builds/mac/FreeType.ppc_carbon.make.txt: Ditto. + * builds/mac/FreeType.ppc_classic.make.txt: Ditto. + * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c + that cannot be built at present. + +2006-12-15 suzuki toshiya <[email protected]> + + * src/base/ftobjs.c: Improvement of resource fork handler for + POSIX, cf. + http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html + (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font + format or .dfont, to simulate the face index number counted by ftmac.c. + (IsMacResource): Return the number of scalable faces correctly. + +2006-12-10 Werner Lemberg <[email protected]> + + * builds/toplevel.mk (version): Protect against `distclean' target. + +2006-12-09 Werner Lemberg <[email protected]> + + * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat' + or `type'. + + * builds/freetype.mk (version): Extracted from freetype.h, using + GNU make's built-in string functions. + (refdoc): Use $(version) instead of static version number. + +2006-12-08 Werner Lemberg <[email protected]> + + * builds/toplevel.mk (dist): Extract version number from freetype.h. + +2006-12-08 Vladimir Volovich <[email protected]> + + * src/tools/apinames.c (State): Remove final comma in structure -- + xlc v5 under AIX 4.3 doesn't like this. + +2006-12-07 David Turner <[email protected]> + + * src/autofit/afloader.c (af_loader_load_g): Small adjustment + to the spacing of auto-fitted glyphs. This only impacts rare + cases (e.g., Arial Bold at rather small character sizes). + +2006-12-03 Werner Lemberg <[email protected]> + + * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c. + +2006-12-01 Werner Lemberg <[email protected]> + + * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are + encoded in UTF-16BE. Patch from Rajeev Pahuja <[email protected]>. + (tt_name_entry_ascii_from_ucs4): Removed. + + + * include/freetype/ftxf86.h: Fix and extend comment so that it + appears in the documentation. + + * include/freetype/ftchapters.h: Add `font_format' section. + + + * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link + to TOC in index page. + +2006-11-28 David Turner <[email protected]> + + * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are + trying to render into a zero-width/height bitmap, not an error code. + + * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch. + + * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType + ones instead. + + * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused + variable. + +2006-11-26 Pierre Hanser <[email protected]> + + * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer. + +2006-11-25 David Turner <[email protected]> + + * src/autofit/afhints.c (af_glyph_hints_dump_points, + af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]: + Add stubs to link the `ftgrid' test program when debugging is + disabled in the auto-hinter. + +2006-11-23 David Turner <[email protected]> + + * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c, + src/autofit/aftypes.h: Miscellaneous auto-hinter improvements. + + * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]: + Emit more sensible information. + + * src/autofit/afhints.h (AF_SegmentRec): Add `height' member. + + * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve + rounding of blue values. + (af_latin_hints_compute_segments): Hint segment heights. + (af_latin_hints_link_segments): Reduce `len_score' value. + (af_latin_hints_compute_edges): Increase `segment_length_threshold' + value and use `height' member for comparisons. + (af_latin_hint_edges): Extend logging message. + Improve handling of remaining edges. + +2006-11-22 Werner Lemberg <[email protected]> + + Fix Savannah bug #15553. + + * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT + program after a change from mono to grayscaling (and vice versa). + Use correct constant for comparison to get `exec->grayscale'. + +2006-11-18 Werner Lemberg <[email protected]> + + Because FT_Load_Glyph expects CID values for CID-keyed fonts, the + test for a valid glyph index must be deferred to the font drivers. + This patch fixes Savannah bug #18301. + + * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'. + * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c + (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph), + src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c + (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph), + src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c + (FNT_Load_Glyph): Check validity of `glyph_index'. + +2006-11-13 David Turner <[email protected]> + + * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter + `enhancements' are still too buggy for general use. + + * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and + FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros + when building the library to change the default LCD filter to be + used. This is only useful for experimentation. + + * include/freetype/ftlcdfil.h: Update documentation. + +2006-11-10 David Turner <[email protected]> + + * src/smooth/ftsmooth.c: API change for the LCD + filter. The FT_LcdFilter value is an enumeration describing which + filter to apply, with new values FT_LCD_FILTER_LIGHT and + FT_LCD_FILTER_LEGACY (the latter implements the LibXft original + algorithm which produces strong color fringes for everything + except very-well hinted text). + + * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change + second parameter to an enum type. + + * src/base/ftlcdfil.c (USE_LEGACY): Define. + (_ft_lcd_filter): Rename to... + (_ft_lcd_filter_fir): This. + Update parameters. + (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function. + (FT_Library_Set_LcdFilter): Update parameters. + Handle new filter modes. + + * include/internal/ftobjs.h: Include FT_LCD_FILTER_H. + (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'. + (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering + callback and update other fields. + + * src/smooth/ftsmooth.c (ft_smooth_render_generic) + [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update. + Other minor improvements. + + * src/autofit/aflatin.c: Various tiny improvements that drastically + improve the handling of serif fonts and of LCD/LCD_V hinting modes. + (af_latin_hints_compute_edges): Fix typo. + (af_latin_compute_stem_width): Take better care of diagonal stems. + +2006-11-09 David Turner <[email protected]> + + * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix + typo which created a variable-used-before-initialized bug. + +2006-11-07 Zhe Su <[email protected]> + + * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout + also. + +2006-11-03 Werner Lemberg <[email protected]> + + * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'. + +2006-11-02 David Turner <[email protected]> + + Add a few tweaks to better handle serif fonts. + Add more debugging messages. + + * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore + segments that are less than 1.5 pixels high. This gets rid of + *many* corner cases with serifs. + (af_latin_align_linked_edge): Add logging message. + (af_latin_hint_edges): Use AF_HINTS_DO_BLUES. + Add logging messages. + Handle AF_EDGE_FLAG flag specially. + + * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug, + _af_debug_disable_blue_hints, and _af_debug_hints variables. + + * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug. + Update external declarations. + (af_corner_orientation, af_corner_is_flat): Replaced by... + + * include/freetype/internal/ftcalc.h (ft_corner_orientation, + ft_corner_is_flat): These declarations. + + * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat): + Comment out. Replaced by... + + * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat): + These functions. Update all callers. + (FT_Add64) [!FT_LONG64]: Simplify. + + * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H. + (af_direction_compute): Add a missing FT_ABS call. This bug caused + production of garbage by missing lots of segments. + + * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro. + + * src/autofit/afloader.c (af_loader_init, af_loader_done) + [AF_DEBUG]: Set _af_debug_hints. + + + * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H. + (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat + and ft_corner_orientation. + + + * src/gzip/inftrees.c (huft_build): Remove compiler warning. + +2006-10-24 Werner Lemberg <[email protected]> + + * src/cff/cffload.c (cff_encoding_load): Remove unused variable. + + * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE + as argument. + +2006-10-23 Zhe Su <[email protected]> + + * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to + better deal with broken Asian fonts with strange glyphs, having + self-intersections and other peculiarities. The used algorithm is + based on the nonzero winding rule. + +2006-10-23 David Turner <[email protected]> + + Speed up the CFF font loader. With some large CFF fonts, + FT_Open_Face is now more than three times faster. + + * src/cff/cffload.c (cff_get_offset): Removed. + (cff_new_index): Inline functionality of `cff_get_offset'. + (cff_charset_compute_cids, cff_charset_free_cids): New functions. + (cff_charset_done): Call `cff_charset_free_cids'. + (cff_charset_load): Call `cff_charset_compute_cids'. + (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop. + + * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX + with FT_NEXT_XXX. + + + Speed up the Postscript hinter, with more than 100% speed increase + on my machine. + + * src/pshinter/pshalgo.c (psh_corner_is_flat, + psh_corner_orientation): New functions. + (psh_glyph_compute_inflections): Merge loops for efficiency. + Use `psh_corner_orientation'. + (psh_glyph_init): Use `psh_corner_is_flat'. + (psh_hint_table_find_strong_point): Renamed to... + (psh_hint_table_find_strong_points): This. + Rewrite, adding argument to handle all points at once. + Update all callers. + (PSH_MAX_STRONG_INTERNAL): New macro. + (psh_glyph_interpolate_normal_points): Rewrite for efficiency. + +2006-10-15 suzuki toshiya <[email protected]> + + * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable + `error' with FT_Err_Ok. + +2006-10-14 suzuki toshiya <[email protected]> + + * docs/INSTALL.CROSS: New document file for cross-building. + + * builds/unix/configure.raw: Preliminary cross-building support. + Find native C compiler and pass it by CC_BUILD, and + find suffix for native executable and pass it by EXEEXT_BUILD. + Also suffix for target executable is passed by EXEEXT. + + * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to + build `apinames' which runs on building system. They are set by + CC_BUILD and EXEEXT_BUILD. + + * builds/exports.mk (APINAMES_EXE): Change the extension for + apinames from the suffix for target (E) to that for building host + (E_BUILD). + +2006-10-12 Werner Lemberg <[email protected]> + + * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to... + * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents + which reference those files. + +2006-10-12 suzuki toshiya <[email protected]> + + * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is + embedded in freetype2.pc and freetype-config. Use it to record + Carbon dependency of MacOSX. + + * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS. + + * builds/unix/freetype-config.in: Ditto. + +2006-10-11 Werner Lemberg <[email protected]> + + * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for + development. + +2006-10-03 Jens Claudius <[email protected]> + + * include/freetype/config/ftstdlib.h: Cast away volatileness from + argument to ft_setjmp. + + * include/freetype/internal/ftvalid.h: Add comment that + ft_validator_run must not be used. + +2006-10-01 Werner Lemberg <[email protected]> + + * src/base/ftbase.c: Undo change from 2006-09-30. + + * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'. + +2006-09-30 David Turner <[email protected]> + + * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): + s/unpatented_hinting/ignore_unpatented_hinter/. + Update all callers. + + * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether + auto-hinting shall be used or not. + + * src/truetype/ttobjs.c (tt_face_init): Ditto. + +2006-09-30 Werner Lemberg <[email protected]> + + * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer + in use). + + * src/base/ftbase.c: Include `ftlcdfil.c'. + +2006-09-29 Werner Lemberg <[email protected]> + + * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for + overlapping segments. Bug reported by Stefan Koch. + +2006-09-28 David Turner <[email protected]> + + Fix a bug in the automatic unpatented hinting support which prevents + normal bytecode hinting to work properly. + + * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): + s/force_autohint/unpatented_hinting/. Update all callers. + + * src/base/ftobjs.c (FT_Load_Glyph): Updated code. + + * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces. + +2006-09-27 David Turner <[email protected]> + + * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2. + + + Add a new API to support color filtering of subpixel glyph bitmaps. + In a default build, the function `FT_Library_SetLcdFilter' returns + `FT_Err_Unimplemented_Feature'; you need to #define + FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the + real implementation. + + * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files. + + * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New + typedef. + (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members + `lcd_filter_weights' and `lcd_filter'. + + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments + `hmul' and `vmul'. + + Handle subpixel rendering. + Simplify function. + (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'. + (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'. + + * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro, + pointing to <freetype/ftlcdfil.h>. + + * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC), + vms_make.com: Add `ftlcdfil.c' to the list of compiled source files. + + * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c. + +2006-09-26 David Bustin + + * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes + correctly. Reported as Savannah bug #17843. + +2006-09-26 David Turner <[email protected]> + + * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL, + AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable + horizontal and vertical hinting for the purpose of debugging the + auto-fitter. + + * src/autofit/afmodule.c (_af_debug_disable_horz_hints, + _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables. + + * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables. + + * include/freetype/config/ftoption.h, devel/ftoption.h + (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether + we want to compile LCD-optimized rendering code (à la ClearType) or + not. The macro *must* be disabled in default builds of the library + for patent reasons. + + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable + LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING + isn't defined at compile time. This only changes the content of the + rendered glyph to match the one of normal gray-level rendering, + hence clients should not need to be modified. + + * docs/CHANGES: Updated. + +2006-09-18 Garrick Meeker <[email protected]> + + * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if + LWFN fails and both are available. + +2006-09-11 David Turner <[email protected]> + + * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which + report their English names through an Apple Roman + (platform,encoding) pair, with language_id != English. + + If the font uses another name entry with language_id == English, it + will be selected correctly, though. + + * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting + selection for `mingli.ttf'. + +2006-09-05 Werner Lemberg <[email protected]> + + * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size' + values which have the upper two bytes set to 0xFF instead of 0x00 + (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and + `HAN NOM B.ttf'). + + * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code. + +2006-09-05 David Turner <[email protected]> + + Minor source cleanups and optimizations. + + * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed. + (TRaster): Remove `count_ex' and `count_ey'. + (gray_find_cell): Remove 2nd and 3rd argument. + (gray_alloc_cell): Merged with `gray_find_cell'. + (gray_record_cell): Simplify. + (gray_set_cell): Rewrite. + (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'. + (gray_render_span): Don't use FT_MEM_SET for small values. + (gray_dump_cells) [DEBUG_GRAYS]: New function. + (gray_sweep): Avoid buffer overwrites when to drawing the end of a + bitmap scanline. + (gray_convert_glyph): Fix speed-up. + +2006-09-04 David Turner <[email protected]> + + * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with + 64bit processors. + +2006-09-03 Werner Lemberg <[email protected]> + + * devel/ftoption.h: Synchronize with + include/freetype/config/ftoption.h. + + * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing + variable declaration. + (gray_convert_glyph): Fix compiler warnings. + +2006-09-01 David Turner <[email protected]> + + * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader + to recognize a few fonts that require the automatic unpatented + loader. + + * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased + rasterizer. The speed improvement is between 15% and 25%, depending + on the font data. + + (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code. + (TCell): Redefine. + (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'. + (gray_init_cells): Updated. + (gray_find_cell, gray_alloc_cell): New functions. + (gray_record_cell): Rewritten to use `gray_find_cell' and + `gray_alloc_cell'. + (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT, + QSORT_THRESHOLD): + Removed. + (gray_shell_sort, gray_quick_sort, gray_check_sort, + gray_dump_cells): Removed. + (gray_sweep): Rewritten. + (gray_convert_glyph): Rewrite code which used one of the sorting + functions. + (gray_raster_render): Updated. + +2006-08-29 Dr. Werner Fink <[email protected]> + + * configure: Make it possible to handle configure options which + have strings containing spaces. + +2006-08-27 David Turner <[email protected]> + + * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER): + New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER + or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined. + + * include/freetype/internal/ftcalc.h, src/base/ftcalc.c, + src/truetype/truetype.c, src/truetype/ttdriver.c, + src/truetype/ttgload.c, src/truetype/ttgload.h, + src/truetype/ttinterp.c, src/truetype/ttobjs.c, + src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c: + s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/. + + * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New + member `force_autohint'. + + * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'. + + * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing + against a list of font names which need the bytecode interpreter. + +2006-08-27 Jens Claudius <[email protected]> + + Fix miscellaneous compiler warnings. + + * include/freetype/internal/ftobjs.h: Close comment with `*/' to + avoid `/* in comment' compiler warning. + + * src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast + `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on + 64-bit platforms void* is larger than FT_UInt32. + + * src/base/ftobjs.c (t_validator_error): Cast away + volatileness of argument to ft_longjmp. Spotted by Werner + `Putzfrau' Lemberg. + + * src/bdf/bdflib.c (bdf_load_font): Initialize local + variable `lineno'. + + * src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable + `error' as volatile. + +2006-08-27 Werner Lemberg <[email protected]> + + * builds/unix/ftconfig.in: Synchronize with main ftconfig.h. + Reported by Jens. + +2006-08-22 Jens Claudius <[email protected]> + + Fix for previous commit, which caused many compiler warnings/errors + about addresses of volatile objects passed as function arguments as + non-volatile pointers. + + * include/freetype/internal/ftvalid.h: Make FT_Validator typedef a + pointer to a volatile object. + + * src/gxvalid/gxvmod.c (gxv_load_table): Make function argument + `table' a pointer to a volatile object. + + * src/otvalid/otvmod.c (otv_load_table): Make function argument + `table' a pointer to a volatile object. + +2006-08-18 Jens Claudius <[email protected]> + + * src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local variable `_sfnt' + as volatile since it must keep its value across a call to ft_setjmp. + (gxv_validate): Same for local variables `memory' and `valid'. + (classic_kern_validate): Same for local variables `memory', + `ckern', and `valid'. + + * src/otvalid/otvmod.c (otv_validate): Same for function parameter + `face' and local variables `base', `gdef', `gpos', `gsub', `jstf', + and 'valid'. + + * src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable + `cmap'. + +2006-08-16 David Turner <[email protected]> + + * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler + warnings. + + * src/base/ftobjs.c (ft_validator_run): Disable function; it is + buggy by design. Always return -1. + + + Improvements to native TrueType hinting. This is a first try, + controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c. + + * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member + `extra_points2'. + + * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member + `orus'. + + * src/base/ftgloadr.c (FT_GlyphLoader_Reset, + FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra, + FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to + handle `extra_points2'. + + * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'. + Remove compiler warning. + (cur_to_arg): Remove macro. + (TT_Hint_Glyph): Updated. + (TT_Process_Simple_Glyph): Handle `orus'. + + * src/truetype/ttinterp.c (FIX_BYTECODE): New macro. + (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'. + (LOC_Ins_IUP): Renamed to... + (IUP_WorkerRec): This. + Add `orus' member. + (Shift): Renamed to... + (_iup_worker_shift): This. + Updated. + (Interp): Renamed to... + (_iup_worker_interpolate): This. + Updated to handle `orus'. + (Ins_IUP): Updated. + + * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new): + Handle `orus'. + +2006-08-15 suzuki toshiya <[email protected]> + + * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to + build ftvalid in ft2demos. This has been inadvertedly changed + 2006-08-13. + +2006-08-15 suzuki toshiya <[email protected]> + + `ft_validator_run' wrapping `setjmp' can cause a crash, as found by + Jens: + http://lists.gnu.org/archive/html/freetype-devel/2006-08/msg00004.htm. + + * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'. + It reverts the change introduced on 2005-08-20. + + * src/gxvalid/gxvmod.c: Ditto. + +2006-08-13 Jens Claudius <[email protected]> + + * finclude/freetype/internal/psaux.h: (T1_TokenType): Add + T1_TOKEN_TYPE_KEY. + (T1_FieldRec): Add `dict'. + (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros. + (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS + keyword is expected as an additional argument. + + * src/cid/cidload.c: (cid_field_records): Adjust invocations of + T1_FIELD_XXX. + + * src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX. + + * src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing. + (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY, + not T1_TOKEN_TYPE_ANY. + (ps_parser_load_field): Make sure a token that should be a string or + name is really a string or name. + Avoid memory leak if a keyword has been already encountered and its + value is overwritten. + * src/type1/t1load.c: (t1_keywords): Adjust invocations of + T1_FIELD_XXX. + (parse_dict): Ignore keywords that occur in the wrong dictionary + (e.g., in `Private' instead of `FontDict'). + + * src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX. + + * src/type42/t42parse.c: (t42_keywords): Adjust invocations of + T1_FIELD_XXX. + +2006-07-18 Jens Claudius <[email protected]> + + Move creation of field `buildchar' of T1_DecoderRec out of + `t1_decoder_init' and let the caller of `t1_decoder_init' take care + of it. + + Call the finisher for T1_Decoder in `cid_face_compute_max_advance' + and `T1_Compute_Max_Advance'. + + * include/freetype/internal/psaux.h (T1_DecoderRec): Remove field + `face', add `len_buildchar'. + + * include/freetype/internal/t1types.h (T1_FaceRec): Add field + `buildchar'. + + * src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher + for T1_Decoder. + (cid_slot_load_glyph): Do not ignore failure when initializing the + T1_Decoder. + + * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated. + (t1_decoder_init): Remove initialization of fields `buildchar' and + `len_buildchar'. + (t1_decoder_done): Remove deallocation of field `buildchar'. + + * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize + T1_Decoder's `buildchar' and `len_buildchar'; call finisher for + T1_Decoder. + (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and + `len_buildchar'; make sure to call finisher for T1_Decoder even in + case of error. + + * src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar' + of T1_FaceRec. + + * src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of + T1_FaceRec. + +2006-07-14 Jens Claudius <[email protected]> + + * include/freetype/internal/psaux.h: New macros IS_PS_NEWLINE, + IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, + and IS_PS_BASE85 (from src/psaux/psconv.h). + (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER, + T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND. + (T1_DecoderRec): New fields `buildchar' and `face'. + (IS_PS_TOKEN): New macro. + + * include/freetype/internal/t1types.h (T1_FaceRec): New fields + `ndv_idx', `cdv_idx', and `len_buildchar'. + + * include/freetype/t1tables.h (PS_BlendRec): New fields + `default_design_vector' and `num_default_design_vector'. + + * src/psaux/psconv.h: Move macros IS_PS_NEWLINE, IS_PS_SPACE, + IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, and + IS_PS_BASE85 to include/freetype/internal/psaux.h. + + * src/psaux/psobjs.c (ps_parser_to_token_array): Allow `token' + argument to be NULL if we want only to count the number of tokens. + (ps_tocoordarray): Allow `coords' argument to be NULL if we just + want to skip the array. + (ps_tofixedarray): Allow `values' argument to be NULL if we just + want to skip the array. + + * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add support + for (partially commented out) othersubrs 19-25, 27, and 28. + (t1_decoder_init): Initialize new fields `face' and `buildchar'. + (t1_decoder_done): Release new field `buildchar'. + + * src/type1/t1load.c (parse_buildchar, parse_private): New + functions. + (t1_keywords): Register them. + (t1_allocate_blend): Updated. + (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER, + T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND. + (parse_dict): Remove `keyword_flags' argument. + Use new macro IS_PS_TOKEN. + Changed function so that later PostScript definitions override + earlier ones. + (t1_init_loader): Initialize new field `keywords_encountered'. + (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and + `len_buildchar'. + Remove `keywords_flags'. + + * src/type1/t1load.h (T1_LoaderRect): New field + `keywords_encountered'. + (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros. + + * src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New + entries for parsing /NDV, /CDV, and /DesignVector. + +2006-07-07 Werner Lemberg <[email protected]> + + Add many checks to protect against malformed PCF files. + + * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers. + (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors. + + * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table + data and check that tables don't overlap (using a simple + bubblesort). + (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE): + New macros which give the size of data structures in the data + stream. + (pcf_get_properties): Use rough estimates to get array size limits. + Assign `face->nprops' and `face->properties' earlier so that a call + to PCF_Face_Done can do the clean-up in case of error. + Protect against invalid string offsets. + (pcf_get_metrics): Clean up code. + Adjust tracing message levels. + Use rough estimate to get array size limit. + (pcf_get_bitmaps): Clean up code. + Adjust tracing message levels. + Use rough estimates to get offset limits. + (pcf_get_encodings): Adjust tracing message level. + (pcf_get_accel): Clean up code. + +2006-06-26 Werner Lemberg <[email protected]> + + * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which + don't have a POINT_SIZE property. This fixes Savannah bug #16914. + +2006-06-26 Jens Claudius <[email protected]> + + * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15. + (t1_decoder_parse_charstrings): Operator with + opcode 15 pops its two arguments. + Handle the case where the pops of an othersubr may be part of a + subroutine. + Handle unknown othersubrs gracefully: count their operands and let + the following pop operators push the operands as the results onto + the Type1 stack. + Improve handling of setcurrentpoint opcode. + +2006-06-25 Jens Claudius <[email protected]> + + The Type 1 parser now skips over top-level procedures as required + for a `Simplified Parser'. This makes the parser more robust as it + doesn't poke around in PostScript code. Additionally, it makes the + FontDirectory hackery in src/type1/t1load.c unnecessary. + + * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro. + (skip_literal_string): Add FT_Error as return value. + Handle escapes better. + (skip_string): Add FT_Error as return value. + Don't set `parser->error' but return error code directly. + (skip_procedure): New function. + (ps_parser_skip_PS_token): Handle procedures. + Update code. + (ps_parser_to_token): Update code. + (ps_parser_load_field_table): Handle bbox entries also. + + * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery. + Add commented-out code for synthetic fonts. + +2006-06-24 Eugeniy Meshcheryakov <[email protected]> + + Fix two hinting bugs as reported in + http://lists.gnu.org/archive/html/freetype-devel/2006-06/msg00057.html. + + * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add + `first_point' member. + + * src/truetype/ttgload.c (tt_prepare_zone): Initialize + `first_point'. + (TT_Process_Composite_Glyph): Always untouch points. + + * src/truetype/ttinterp.c (Ins_SHC): Fix computation of + `first_point' and `last_point' in case of composite glyphs. + (Ins_IUP): Fix computation of `end_point'. + +2006-06-22 suzuki toshiya <[email protected]> + + Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel + Mac. The original patch was written by David Sachitano and Lawrence + Coopet, and modified by Sean McBride for MPW compatibility. Only + required data are converted; unused data are left in big endian. + + * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non + Mac OS X platforms. + (OS_INLINE): Undefine before definition. + (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of + FontAssociation table in FOND resource. + (count_faces_scalable): Insert EndianS16_BtoN to parse the header + and fontSize at each entry of FontAssociation table in FOND + resource. + (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse + ffStylOff of FamilyRecord header of FOND resource, the header, + fontSize, fontID at each entry of FontAssociation table, and + StyleMapping table. + (count_faces): Call `HUnlock' after all FOND utilization. + +2006-06-08 suzuki toshiya <[email protected]> + + Public API of TrueTypeGX, OpenType, and classic kern table validator + should return `FT_Err_Unimplemented_Feature' if validation service + is unavailable (disabled in `modules.cfg'). It is originally + suggested by David Turner, cf. + http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html + + * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return + FT_Err_Unimplemented_Feature if TrueTypeGX validation service is + unavailable. + (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if + classic kern table validation service is unavailable. + + * src/base/ftotval.c (FT_OpenType_Validate): Return + FT_Err_Unimplemented_Feature if OpenType validation service is + unavailable. + +2006-06-08 Werner Lemberg <[email protected]> + + * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of + errors. + +2006-06-07 David Turner <[email protected]> + + * src/type1/t1afm.c (KERN_INDEX): Make it more robust. + (T1_Read_Metrics): Fix memory leak which happened when the metrics + file doesn't have kerning pairs. This fixes Savannah bug #16768. + +2006-06-06 David Turner <[email protected]> + + Fix memory leak described in Savannah bug #16759. + + We change `ps_unicodes_init' so that it also takes a + `free_glyph_name' callback to release the glyph names returned by + `get_glyph_name' + + * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc): + Renamed to ... + (PS_GetGlyphNameFunc): This. + (PS_FreeGlyphNameFunc): New typedef. + (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc. + + * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first + argument. + (cff_sid_free_glyph_name): New function. + (cff_cmap_unicode_init): Updated. + + * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated. + + * src/psnames/psmodule.c (ps_unicodes_init): Add variable for + PS_FreeGlyphNameFunc and use it. + + +2006-06-04 David Turner <[email protected]> + + * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept + `item_size == 0' as well -- though this sounds weird, it can + theoretically happen. This fixes Savannah bug #16669. + + * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation + of `face->num_glyphs' which missed the last glyph, due to + the offset-by-1 computation, since the PFR format doesn't + guarantee that glyph index 0 corresponds to the `missing + glyph. This fixes Savannah bug #16668. + +2006-05-25 Werner Lemberg <[email protected]> + + * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out + `-no-undefined'. Reported by Christian Biesinger. + +2006-05-19 Brian Weed <[email protected]> + + * builds/win32/visualc/freetype.dsp: Release libraries no longer + have debug information, and debug libraries use `C7 compatible' + debug info. + +2006-05-19 suzuki toshiya <[email protected]> + + Apply patch by Derek Clegg to fix two memory leaks in the MacOS + resource fork handler. This fixes Savannah bug #16631. + + * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace + `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak. + + * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name): + Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak. + +2006-05-19 suzuki toshiya <[email protected]> + + * build/unix/configure.raw: Add a fallback to disable Carbon + dependency, if configured with no options on Mac OS X. + +2006-05-19 suzuki toshiya <[email protected]> + + * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when + its content cannot be parsed as supported font. This fixes + the second part of Savannah bug #16590. + +2006-05-18 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c (TT_Load_Composite_Glyph) + [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again. + +2006-05-17 David Turner <[email protected]> + + This is a major patch used to drastically improve the performance of + loading glyphs. This both speeds up loading the glyph vectors + themselves and the auto-fitter module. + + We now use inline assembler code with GCC to implement `FT_MulFix', + which is probably the most important function related to the + engine's performance. + + The resulting speed-up is about 25%. + + + * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields + `cursor' and `limit'. + + * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation): + New functions. + (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out. + [TEST]: Remove. + + * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test + code. + + * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call + `FT_ZERO' + (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten. + (af_glyph_hints_reload: Rewrite recognition of weak points. + + * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move + constant values out of the loops. + + * src/autofit/aftypes.h: Updated. + + * src/base/ftcalc.c (FT_MulFix): Use inline assembler code. + + * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector + product to get orientation. + + * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function. + (FT_Stream_OpenGzip): Use it to handle small files directly in + memory. + + * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode): + Improve performance. + + * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and + `limit'. + + (TT_Load_Glyph_Header, TT_Load_Simple_Glyph, + TT_Load_Composite_Glyph): Updated. Add threshold to protect against + exceedingly large values of number of contours. Speed up by + reducing the number of loops. + + * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix. + + + * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold + used to detect rogue clients from 4 to 16. This is to prevent some + segmentation faults with fonts like `KozMinProVI-Regular.otf' which + comes from the Japanese Adobe Reader Asian Font pack. + +2007-05-17 Werner Lemberg <[email protected]> + + * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This + fixes the first part of Savannah bug #16590. + +2006-05-16 Werner Lemberg <[email protected]> + + * docs/PROBLEMS: Updated icl issues. + +---------------------------------------------------------------------------- + +Copyright 2006, 2007, 2008, 2009, 2010 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. + + +Local Variables: +version-control: never +coding: utf-8 +End: diff --git a/components/external/freetype/ChangeLog.20 b/components/external/freetype/ChangeLog.20 index cba6fa8b7a..8fcc5e70ab 100644 --- a/components/external/freetype/ChangeLog.20 +++ b/components/external/freetype/ChangeLog.20 @@ -1,2613 +1,2613 @@ -2002-02-09 Werner Lemberg <[email protected]>
-
- * README: Fix typo.
- * docs/CHANGES: Minor fixes.
-
-
- * Version 2.0.8 released.
- =========================
-
-
-2002-02-08 David Turner <[email protected]>
-
- * docs/CHANGES: Updating for 2.0.8.
-
- * include/freetype/freetype.h: Setting `PATCH_LEVEL' to 8 and
- removing `FT_Get_Next_Char' from the API (temporarily).
-
- * include/freetype/freetype.h: Adding comments to FT_Get_Next_Char;
- note that this function might temporarily be removed for the 2.0.8
- release.
-
-2002-02-07 David Turner <[email protected]>
-
- * src/pcf/pcfread.c (pcf_load_font): Removed immature support of
- the AVERAGE_WIDTH property.
-
-2002-02-06 David Turner <[email protected]>
-
- * src/sfnt/sfobjs.c (SFNT_Load_Face): Since many fonts embedded in
- PDF documents do not include 'cmap', 'post' and 'name' tables, the
- SFNT face loader has been changed to not immediately report an
- error if these are not present.
-
- Note that the specification _requires_ these tables, but Adobe
- seems to ignore it completely.
-
- * src/sfnt/ttcmap.c: Removing compiler warnings.
-
- * src/pcf/pcfread.c (pcf_read_TOC): Use FT_UInt.
- (pcf_parse_metric, pcf_parse_compressed_metric): Removed. Code
- is now in ...
- (pcf_get_metric): Here.
- (pcfSeekToType): Renamed to ...
- (pcf_seek_to_table_type): This.
- Use FT_Int.
- (pcfHasType): Renamed to ...
- (pcf_has_table_type): This.
- Use FT_Int.
- (find_property): Renamed to ...
- (pcf_find_property): This.
- Use FT_Int.
- (pcf_get_bitmaps, pcf_get_encodings): Handle invalid PCF fonts
- better (delaying format checks out of FT_Access_Frame ..
- FT_Forget_Frame blocks to avoid leaving the stream in an incorrect
- state when encountering an invalid PCF font).
-
- * src/pcf/pcfdriver.c (PCF_Done_Face): Renamed to ...
- (PCF_Face_Done): This.
- (PCF_Init_Face): Renamed to ...
- (PCF_Face_Init): This.
- (PCF_Get_Char_Index): Renamed to ...
- (PCF_Char_Get_Index): This.
- (PCF_Get_Next_Char): Renamed to ...
- (PCF_Char_Get_Next): This.
- (pcf_driver_class): Updated.
-
- * src/pcf/pcf.h (PCF_Done_Face): Removed.
-
-2002-02-06 Detlef Würkner <[email protected]>
-
- * src/pcf/pcfdriver.c (FT_Done_Face): Fixed small memory leak.
-
- * src/pcf/pcfread.c (pcf_load_font): Now handles the `AVERAGE_WIDTH'
- property to return correct character pixel (width/height) pairs for
- embedded bitmaps.
-
-2002-02-04 Keith Packard <[email protected]>
-
- Adding the function `FT_Get_Next_Char', doing the obvious thing
- w.r.t. the selected charmap.
-
- * include/freetype/freetype.h: Add prototype.
- * include/freetype/internal/ftdriver.h: Add `FTDriver_getNextChar'
- typedef.
- (FT_Driver_Class): Use it.
- * include/freetype/internal/psnames.h: Add `PS_Next_Unicode_Func'
- typedef.
- (PSNames_Interface): Use it.
- * include/freetype/internal/tttypes.h: Add `TT_CharNext_Func'
- typedef.
- (TT_CMapTable): Use it.
-
- * src/base/ftobjs.c (FT_Get_Next_Char): New function, implementing
- high-level API.
- * src/cff/cffdrivr.c (cff_get_next_char): New function.
- (cff_driver_class): Add it.
- * src/cid/cidriver.c (Cid_Get_Next_Char): New function.
- (t1cid_driver_class): Add it.
- * src/pcf/pcfdriver.c (PCF_Get_Next_Char): New function.
- (pcf_driver_class): Add it.
- * src/psnames/psmodule.c (PS_Next_Unicode): New function.
- (psnames_interface): Add it.
- * src/sfnt/ttcmap.c (code_to_next0, code_to_next2, code_to_next4,
- code_to_next6, code_to_next_8_12, code_to_next_10): New auxiliary
- functions.
- (TT_CharMap_Load): Use them.
- * src/truetype/ttdriver.c (Get_Next_Char): New function.
- (tt_driver_class): Add it.
- * src/type1/t1driver.c (Get_Next_Char): New function.
- (t1_driver_class): Add it.
- * src/winfonts/winfnt.c (FNT_Get_Next_Char): New function.
- (winfnt_driver_class): Add it.
-
- * src/pcf/pcfread.c (pcf_load_font): For now, report Unicode for
- Unicode and Latin 1 encodings.
-
-2002-02-02 Keith Packard <[email protected]>
-
- * builds/unix/freetype-config.in: Add missing `fi'.
-
-
- * Version 2.0.7 released.
- =========================
-
-
-2002-02-01 David Turner <[email protected]>
-
- * include/freetype/freetype.h: Increasing FREETYPE_PATCH to 7
- for the new release.
-
-2002-01-31 David Turner <[email protected]>
-
- * README, README.UNX, docs/CHANGES: Updating documentation for the
- 2.0.7 release.
-
-2002-01-30 David Turner <[email protected]>
-
- * INSTALL: Moved to ...
- * docs/INSTALL: Here to avoid conflicts with the `install' script on
- Windows, where the filesystem doesn't preserve case.
-
-2002-01-29 David Turner <[email protected]>
-
- * configure: Fixed the script. It previously didn't accept more
- than one argument correctly. For example, when typing:
-
- ./configure --disable-shared --disable-nls
-
- the `--disable-nls' was incorrectly sent to the `make' program.
-
-2002-01-29 Werner Lemberg <[email protected]>
-
- * README.UNX: Fix typo.
- * builds/unix/install.mk (uninstall): Fix library name for libtool.
-
-2002-01-28 Francesco Zappa Nardelli <[email protected]>
-
- * src/pcf/pcfdriver.c (PCF_Done_Face): Fix incorrect destruction of
- the face object (face->toc.tables, face->root.family_name,
- face->root.available_size, face->charset_encoding,
- face->charset_registry are now freed). Thanks to Niels Moseley.
-
-2002-01-28 Roberto Alameda <[email protected]>
-
- * src/type1/t1load.c (parse_encoding): Set `loader->num_chars'.
-
-2002-01-28 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.c (parse_subrs, parse_charstrings): Use copy
- of `base' string for decrypting to not modify the original data.
- Based on a patch by Jakub Bogusz <[email protected]>.
-
-2002-01-27 Giuliano Pochini <[email protected]>
-
- * src/smooth/ftgrays.c (gray_render_scanline): Fix bug which caused
- bad rendering of thin lines (less than one pixel thick).
-
-2002-01-25 Werner Lemberg <[email protected]>
-
- * src/cff/cffdrivr.c (cff_get_name_index): Make last patch work
- actually.
-
-2002-01-25 Martin Zinser <[email protected]>
-
- * src/cache/ftccache.c (ftc_node_done, ftc_node_destroy): Fix
- compilation warnings.
- * src/base/descrip.mms (OBJS): Add `ftmm.obj'.
- * src/cache/descrip.mms (ftcache.obj): Dependencies added.
-
-2002-01-25 WANG Yi <[email protected]>
-
- * src/cff/cffdrivr.c (cff_get_name_index): Fix deallocation bug.
-
-2002-01-21 Antoine Leca <[email protected]>
-
- * docs/PATENTS: Typo fixed (thanks to Detlef `Hawkeye' Würkner) in
- the URL for the online resource.
-
-2002-01-18 Ian Brown <[email protected]>
-
- * builds/win32/ftdebug.c: New file.
- * builds/win32/visualc/freetype.dsp: Updated.
-
-2002-01-18 Detlef Würkner <[email protected]>
-
- * builds/amiga/src/base/ftsystem.c: Updated for AmigaOS 3.9.
- * builds/amiga/README: Updated.
-
-2002-01-18 Ian Brown <[email protected]>
-
- * builds/win32/visualc/freetype.dsp: Updated.
-
-2002-01-13 Werner Lemberg <[email protected]>
-
- * builds/unix/freetype2.a4: The script was still buggy.
- * builds/unix/freetype-config.in: Make it really work for any install
- prefix.
-
-2002-01-10 Werner Lemberg <[email protected]>
-
- * builds/unix/freetype2.a4: Fix some serious bugs.
-
-2002-01-09 David Turner <[email protected]>
-
- * builds/unix/configure.ac: Build top-level Jamfile.
-
-2002-01-09 Maxim Shemanarev <[email protected]>
-
- * src/smooth/ftgrays.c (gray_render_line): Small optimization to
- the smooth anti-aliased renderer that deals with vertical segments.
- This results in a 5-7% speedup in rendering speed.
-
-2002-01-08 David Turner <[email protected]>
-
- Added some wrapper scripts to make the installation more
- Unix-friendly.
-
- * configure, install: New files.
-
- * INSTALL, README.UNX: Updated installation documentation to use the
- new 'configure' and 'install' scripts.
-
-2002-01-07 David Turner <[email protected]>
-
-
- * Version 2.0.6 released.
- =========================
-
-
- * docs/BUGS, docs/CHANGES: Updating documentation for 2.0.6 release.
-
- * src/tools/docmaker.py: Fixed HTML quoting in sources.
- (html_format): Replaced with ...
- (html_quote): New function.
- (html_quote0): New function.
- (DocCode::dump_html): Small improvement.
- (DocParagraph::dump, DocBlock::html): Use html_quote0 and html_quote.
-
- * include/freetype/config/ftoption.h: Setting default options for
- a release build (debugging off, bytecode interpreter off).
-
- * src/base/ftobjs.c, src/base/ftoutln.c, src/cache/ftccmap.c,
- src/cff/cffload.c, src/cff/cffobjs.c, src/pshinter/pshalgo2.c,
- src/sfnt/ttload.c, src/sfnt/ttsbit.c: Removing small compiler
- warnings (in pedantic compilation modes).
-
-2002-01-05 David Turner <[email protected]>
-
- * src/autohint/ahhint.c (ah_align_linked_edge): Modified computation
- of auto-hinted stem widths; this avoids color fringes in
- `ClearType-like' rendering.
-
- * src/truetype/ttgload.c (TT_Load_Glyph_Header,
- TT_Load_Simple_Glyph, TT_Load_Composite_Glyph, load_truetype_glyph):
- Modified the TrueType loader to make it more paranoid; this avoids
- nasty buffer overflows in the case of invalid glyph data (as
- encountered in the output of some buggy font converters).
-
-2002-01-04 David Turner <[email protected]>
-
- * README.UNX: Added special README file for Unix users.
-
- * builds/unix/ftsystem.c (FT_New_Stream): Fixed typo.
-
- * src/base/ftobjs.c: Added #include FT_OUTLINE_H to get rid
- of compiler warnings.
-
- * src/base/ftoutln.c (FT_Outline_Check): Remove compiler warning.
-
-2002-01-03 Werner Lemberg <[email protected]>
-
- * src/type1/t1objs.c (T1_Face_Init): Add cast to avoid compiler
- warning.
-
-2002-01-03 Keith Packard <[email protected]>
-
- * builds/unix/ftsystem.c (FT_New_Stream): Added a fix to ensure that
- all FreeType input streams are closed in child processes of a `fork'
- on Unix systems. This is important to avoid (potential) access
- control issues.
-
-2002-01-03 David Turner <[email protected]>
-
- * src/type1/t1objs.c (T1_Face_Init): Fixed a bug that crashed the
- library when dealing with certain weird fonts like `Stalingrad', in
- `sadn.pfb' (this font has no full font name entry).
-
- * src/base/ftoutln.c, include/freetype/ftoutln.h (FT_Outline_Check):
- New function to check the consistency of outline data.
-
- * src/base/ftobjs.c (FT_Load_Glyph): Use `FT_Outline_Check' to
- ensure that loaded glyphs are valid. This allows certain fonts like
- `tt1095m_.ttf' to be loaded even though it appears they contain
- really funky glyphs.
-
- There still is a bug there, though.
-
- * src/truetype/ttgload.c (load_truetype_glyph): Fix error condition.
-
-2001-12-30 David Turner <[email protected]>
-
- * src/autohint/ahhint.c (ah_hinter_load): Fix advance width
- computation of auto-hinted glyphs. This noticeably improves the
- spacing of letters in KDE and Gnome.
-
-2001-12-25 Antoine Leca <[email protected]>
-
- * builds/dos/detect.mk: Correcting the order for Borland compilers:
- 16-bit bcc was never selected, always overridden by 32-bit bcc32.
-
-2001-12-22 Francesco Zappa Nardelli <[email protected]>
-
- * src/pfc/pcfread.c (pcf_load_font): Handle property `POINT_SIZE'
- and fix incorrect computation of `available_sizes'.
-
-2001-12-22 David Turner <[email protected]>
-
- * src/autohint/ahhint.c (ah_hinter_load): Auto-hinted glyphs had an
- incorrect glyph advance in the case of mono-width fonts (like
- Courier, Andale Mono, and others).
-
-2001-12-22 Detlef Würkner <[email protected]>
-
- * builds/amiga/*: Adaptations to latest changes.
- Support added for MorphOS.
-
-2001-12-22 Werner Lemberg <[email protected]>
-
- * src/pshinter/pshrec.c (FT_COMPONENT): Redefine to `trace_pshrec'.
- (ps_mask_table_merge, ps_hints_open, ps_hints_stem,
- ps_hints_t1stem3, ps_hints_t2mask, ps_hints_t2counter): Fix
- FT_ERROR messages.
- * src/pshinter/pshalgo1.c (FT_COMPONENT): Define as
- `trace_pshalgo1'.
- * src/pshinter/pshalgo2.c (FT_COMPONENT): Define as
- `trace_pshalgo2'.
- * include/freetype/internal/ftdebug.h (FT_Trace): Updated.
-
- * docs/modules.txt: New file.
-
-2001-12-21 David Turner <[email protected]>
-
- * src/pshinter/pshrec.c (ps_hints_t2mask, ps_hints_t2counter):
- Ignore invalid `hintmask' and `cntrmask' operators (instead of
- returning an error). Glyph 2028 of the CFF font `MSung-Light-Acro'
- couldn't be rendered otherwise (it seems its charstring is buggy,
- though this requires more analysis).
- (FT_COMPONENT): Define.
-
- * src/cff/cffgload.c (CFF_Parse_CharStrings), src/psaux/t1decode.c
- (T1_Decoder_Parse_Charstrings), src/pshinter/pshalgo2.c (*), Fixed a
- bug where the X and Y axis where inverted in the postscript hinter.
- This caused problem when displaying on non-square surfaces.
-
- * src/pshinter/pshalgo2.c: s/vertical/dimension/.
-
- * src/pshinter/pshglob.c (psh_globals_new): Replaced a floating
- point constant with a fixed-float equivalent. For some reasons not
- all compilers are capable of directly computing a floating pointer
- constant casted to FT_Fixed, and will link a math library instead.
-
-2001-12-20 Werner Lemberg <[email protected]>
-
- * src/cache/ftccache.c (ftc_node_destroy, ftc_cache_lookup): Fix
- tracing strings.
- * src/cache/ftccmap.c (ftc_cmap_family_init): Ditto.
- * src/cache/ftcmanag.c (ftc_family_table_alloc,
- ftc_family_table_free, FTC_Manager_Check): Ditto.
- * src/cache/ftcsbits.c (ftc_sbit_node_load): Ditto.
-
- * src/base/ftobjs.c (FT_Done_Library): Remove compiler warning.
-
-2001-12-20 David Turner <[email protected]>
-
- Added PostScript hinter support to the CFF and CID drivers.
-
- * include/freetype/internal/cfftypes.h (CFF_Font): New member
- `pshinter'.
- * src/cff/cffload.c (CFF_Get_Standard_Encoding): New function.
- * src/cff/cffload.h: Updated.
- * src/cff/cffgload.c (CFF_Init_Builder): Renamed to ...
- (CFF_Builder_Init): This.
- Added new argument `hinting'.
- (CFF_Done_Builder): Renamed to ...
- (CFF_Builder_Done): This.
- (CFF_Init_Decoder): Added new argument `hinting'.
- (CFF_Parse_CharStrings): Implement vstem support.
- (CFF_Load_Glyph): Updated.
- Add hinting support.
- (cff_lookup_glyph_by_stdcharcode): Use CFF_Get_Standard_Encoding().
- (cff_argument_counts): Updated.
- * src/cff/cffgload.h: Updated.
- * src/cff/cffobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
- (CFF_Size_Get_Globals_Funcs, CFF_Size_Done, CFF_Size_Init,
- CFF_Size_Reset, CFF_GlyphSlot_Done, CFF_GLyphSlot_Init): New
- functions.
- (CFF_Init_Face): Renamed to ...
- (CFF_Face_Init): This.
- Add hinter support.
- (CFF_Done_Face): Renamed to ...
- (CFF_Face_Done): This.
- (CFF_Init_Driver): Renamed to ...
- (CFF_Driver_Init): This.
- (CFF_Done_Driver): Renamed to ...
- (CFF_Driver_Done): This.
- * src/cff/cffobjs.h: Updated.
- * src/cff/cffdrivr.c (cff_driver_class): Updated.
-
- * include/freetype/internal/t1types.h (CID_FaceRec): New member
- `pshinter'.
- * src/cid/cidgload.c (CID_Load_Glyph): Add hinter support.
- * src/cid/cidobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
- (CID_GlyphSlot_Done, CID_GlyphSlot_Init, CID_Size_Get_Globals_Funcs,
- CID_Size_Done, CID_Size_Init, CID_Size_Reset): New functions.
- (CID_Done_Face): Renamed to ...
- (CID_Face_Done): This.
- (CID_Init_Face): Renamed to ...
- (CID_Face_Init): This.
- Add hinting support.
- (CID_Init_Driver): Renamed to ...
- (CID_Driver_Init): This.
- (CID_Done_Driver): Renamed to ...
- (CID_Driver_Done): This.
- * src/cid/cidobjs.h: Updated.
- * src/cidriver.c: Updated.
-
- * src/pshinter/pshrec.c (t2_hint_stems): Fixed.
-
- * src/base/ftobjs.c (FT_Done_Library): Fixed a stupid bug that
- crashed the library on exit.
-
- * src/type1/t1gload.c (T1_Load_Glyph): Enable font matrix
- transformation of hinted glyphs.
-
- * src/cid/cidload.c (cid_read_subrs): Fix error condition.
-
- * src/cid/cidobjs.c (CID_Face_Done): Fixed a memory leak; the subrs
- routines were never released when CID faces were destroyed.
-
- * src/cff/cffload.h, src/cff/cffload.c, src/cff/cffgload.c: Updated
- to move the definition of encoding tables back within `cffload.c'
- instead of making them part of a shared header (causing problems in
- `multi' builds). This reverts change 2001-08-08.
-
- * docs/CHANGES: Updated for 2.0.6 release.
- * docs/TODO: Added `stem3 and counter hints support' to the TODO
- list for the Postscript hinter.
- * docs/BUGS: Closed the AUTOHINT-NO-SBITS bug.
-
-2001-12-19 David Turner <[email protected]>
-
- * include/freetype/cache/ftcache.h: Added comments to indicate that
- some of the exported functions should only be used by applications
- that need to implement custom cache types.
-
- * src/truetype/ttgload.c (cur_to_org, org_to_cur): Fixed a nasty bug
- that prevented composites from loading correctly, due to missing
- parentheses around macro parameters.
-
- * src/sfnt/sfobjs.c (SFNT_Load_Face): Make the `post' and `name'
- tables optional to load PCL fonts properly.
-
- * src/truetype/ttgload.c (TT_Load_Glyph), src/base/ftobjs.c
- (FT_Load_Glyph), include/freetype/freetype.h (FT_LOAD_SBITS_ONLY):
- `Fixed' the bug that prevented embedded bitmaps to be loaded when
- the auto-hinter is used. This actually is a hack but will be enough
- until the internal re-design scheduled for FreeType 2.1.
-
- * src/raster/ftrend1.c (ft_raster1_render): Fixed a nasty outline
- shifting bug in the monochrome renderer.
-
- * README: Updated version numbers to 2.0.6.
-
-2001-12-17 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c (load_truetype_glyph): Fix test for invalid
- glyph header.
-
-2001-12-15 Werner Lemberg <[email protected]>
-
- * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove compiler warning.
- * include/freetype/ftcache.h (FTC_Node_Unref): Removed. It is
- already in ftcmanag.h.
- * src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused variable
- `gfam'.
- * src/cache/ftcmanag.c (ftc_family_table_alloc,
- * ftc_family_table_free): Use FT_EXPORT_DEF.
- * include/freetype/cache/ftcmanag.h: Updated.
- * src/cache/ftccache.c (ftc_node_destroy): Use FT_EXPORT_DEF.
- * src/cache/ftccmap.c (ftc_cmap_node_init): Remove unused variable
- `cfam'.
- Remove compiler warning.
- (FTC_CMapCache_Lookup): Remove compiler warnings.
- (ftc_cmap_family_init): Ditto.
- (FTC_CMapCache_Lookup): Ditto.
-
- * builds/unix/configure.ac: Increase `version_info' to 8:0:2.
- * builds/unix/configure: Regenerated.
-
-2001-12-14 Werner Lemberg <[email protected]>
-
- * builds/mac/README: Updated.
-
-2001-12-14 Scott Long <[email protected]>
-
- * src/truetype/ttgload.c (load_truetype_glyph): Fixing crash when
- dealing with invalid fonts (i.e. glyph size < 10 bytes).
-
-2001-12-14 Sam Latinga <[email protected]>
-
- * builds/mac/freetype.make: A new Makefile to build with MPW on
- MacOS classic.
-
-2001-12-14 David Turner <[email protected]>
-
- * src/truetype/ttgload.c (TT_Load_Glyph), src/type1/t1gload.c
- (T1_Load_Glyph), src/cid/cidgload.c (CID_Load_Glyph),
- src/cff/cffgload.c (CFF_Load_Glyph): Fixed a serious bug common to
- all font drivers (the advance width was never hinted when it
- should).
-
- * include/freetype/freetype.h (FREETYPE_PATCH): New macro.
- * src/base/ftdbgmem.c (debug_mem_dummy) [!FT_DEBUG_MEMORY]: Don't
- use `extern' keyword.
-
-2001-12-12 David Turner <[email protected]>
-
- * src/pshinter/pshglob.c (psh_blues_scale_zones, psh_blues_snap_stem
- psh_globals_new): Adding correct BlueScale/BlueShift support, plus
- family blues processing.
- * src/pshinter/pshglob.h (PSH_BluesRec): Updated.
-
- Started adding support for the Postscript hinter in the CFF module.
-
- * src/cff/cffgload.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
- (CFF_Parse_CharStrings): Implement it.
- * src/cff/cffgload.h: Updated.
-
-2001-12-12 Werner Lemberg <[email protected]>
-
- * builds/unix/freetype2.m4: Some portability fixes.
-
-2001-12-11 Jouk Jansen <[email protected]>
-
- * src/base/descrip.mms (OBJS): Add ftdebug.obj.
-
-2001-12-11 Werner Lemberg <[email protected]>
-
- * src/sfnt/ttload.c (TT_Load_Generic_Header): Typos.
-
-2001-12-11 David Turner <[email protected]>
-
- * builds/unix/freetype-config.in: Modified the script to prevent
- passing `-L/usr/lib' to gcc.
-
- * docs/FTL.TXT: Simple fix (change `LICENSE.TXT' to `FTL.TXT').
-
- * builds/unix/freetype2.m4: New file for checking configure paths.
- We need to install it in $(prefix)/share/aclocal/freetype2.m4 but I
- didn't modify builds/unix/install.mk yet.
-
- * INSTALL: Updated the instructions to build shared libraries with
- Jam. They were simply wrong.
-
- * src/base/fttrigon.c (FT_Cos): Fixed a small bug that caused
- slightly improper results for `FT_Cos' and `FT_Sin' (example:
- FT_Sin(0) == -1!).
-
-2001-12-11 Detlef Würkner <[email protected]>
-
- * include/freetype/internal/ftstream.h (GET_LongLE, GET_ULongLE):
- Fixed incorrect argument types.
-
-2001-12-10 Francesco Zappa Nardelli <[email protected]>
-
- * src/pcf/pcfdriver.c (PCF_Init_Face): Allow Xft to use PCF fonts
- by setting the `face->metrics.max_advance' correctly.
-
-2001-12-07 David Turner <[email protected]>
-
- * include/freetype/cache/ftccmap.h, src/cache/ftccmap.c: Added new
- charmap cache.
- * src/cache/ftcache.c: Updated.
-
- * src/autohint/ahhint.c (ah_hinter_hint_edges): s/UNUSED/FT_UNUSED/.
-
-2001-12-06 Leonard Rosenthol <[email protected]>
-
- Added support for reading .dfont files on Mac OS X. Also added a
- new routine which looks up a given font by name in the Mac OS and
- returns the disk file where it resides.
-
- * src/base/ftmac.c: Include <Files.h> and <TextUtils.h>.
- (is_dfont): New auxiliary function.
- (FT_New_Face_From_dfont): New function.
- (FT_GetFile_From_Mac_Name): New exported function.
- (FT_New_Face): Updated.
- * include/freetype/ftmac.h: Updated.
-
-2001-12-06 David Turner <[email protected]>
-
- * src/cache/Jamfile, src/cache/rules.mk: Updated.
-
-2001-12-06 Werner Lemberg <[email protected]>
-
- * INSTALL: Small update.
-
-2001-12-05 David Turner <[email protected]>
-
- * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Re-ordered code for
- debugging purposes.
- Comment out use of `origin'.
-
- * src/smooth/ftsmooth.c (ft_smooth_render): Fixed a nasty hidden bug
- where outline shifting wasn't correctly undone after bitmap
- rasterization. This created problems with certain glyphs (like '"'
- of certain fonts) and the cache system.
-
- * src/pshinter/pshalgo1.c (psh1_hint_table_init): Fix typo.
- * src/pshinter/pshalgo2.c (psh2_hint_table_init): Fix typo.
- (ps2_hints_apply): Small fix.
-
-2001-12-05 David Turner <[email protected]>
-
- * src/pshinter/pshalgo2.c (psh2_hint_table_init),
- src/pshinter/pshalgo1.c (psh1_hint_table_init): Removed compiler
- warnings.
-
- * include/freetype/ftcache.h, include/freetype/cache/*, src/cache/*:
- Yet another massive rewrite of the caching sub-system in order to
- both increase performance and allow simpler cache sub-classing. As
- an example, the code for the image and sbit caches is now much
- simpler.
-
- I still need to update the documentation in
- www/freetype2/docs/cache.html to reflect the new design though.
-
- * include/freetype/config/ftheader.h (FT_CACHE_CHARMAP_H): New
- macro.
- (FT_CACHE_INTERNAL_CACHE_H): Updated.
-
-2001-12-05 David Krause <[email protected]>
-
- * docs/license.txt: s/X Windows/X Window System/.
-
-2001-12-04 Werner Lemberg <[email protected]>
-
- * src/raster/ftraster.c: Fix definition condition of MEM_Set().
- * src/smooth/ftgrays.c (M_Y): Change value to 192.
- * src/base/ftdbgmem.c (ft_mem_table_destroy): Fix printf() parameter.
- Remove unused variable.
- * src/cache/ftcimage.c (ftc_image_node_init,
- ftc_image_node_compare): Remove unused variables.
- * src/cache/ftcsbits.c (ftc_sbit_node_weight): Remove unused
- variable.
- * src/raster/ftraster.c (MEM_Set): Move definition down to avoid
- compiler warning.
- * src/autohint/ahhint.c (ah_hinter_hint_edges): Use UNUSED() to
- avoid compiler warnings.
- * src/pcf/pcfread.c (tableNames): Use `const'.
- (pcf_read_TOC): Change counter name to avoid compiler warning.
- Use `const'.
- * src/pshinter/pshrec.c (ps_hints_close): Remove redundant
- declaration.
- * src/pshinter/pshalgo1.c (psh1_hint_table_init): Rename variables
- to avoid shadowing.
- * src/pshinter/pshalgo2.c (psh2_hint_table_activate_mask): Ditto.
- * src/type1/t1objs.h: Remove double declarations of `T1_Size_Init()'
- and `T1_Size_Done()'.
-
-2001-11-20 Antoine Leca <[email protected]>
-
- * include/freetype/ttnameid.h: Added some new Microsoft language
- codes and LCIDs as found in MSDN (Passport SDK). Also added
- comments about the meaning of bit 57 of the `OS/2' table
- (TT_UCR_SURROGATES) which (with OpenType v.1.3) now means `there is
- a character beyond 0xFFFF in this font'. Thanks to Detlef Würkner
- <[email protected]> for noticing this.
-
-2001-11-20 David Turner <[email protected]>
-
- * src/pshinter/{pshalgo2.c, pshalgo1.c}: Fixed stupid bug in sorting
- routine that created nasty alignment artefacts.
-
- * src/pshinter/pshrec.c, tests/gview.c: Debugging updates.
-
- * src/smooth/ftgrays.c: De-activated experimental gamma support.
- Apparently, `optimal' gamma tables depend on the monitor type,
- resolution and general karma, so it's better to compute them outside
- of the rasterizer itself.
- (gray_convert_glyph): Use `volatile' keyword.
-
-2001-10-29 David Turner <[email protected]>
-
- Adding experimental `gamma' support. This produces smoother glyphs
- at small sizes for very little cost.
-
- * src/smooth/ftgrays.c (grays_init_gamma): New function.
- (gray_raster_new): Use it.
-
- Various fixes to the auto-hinter. They merely improve the output of
- sans-serif fonts. Note that there are still problems with serifed
- fonts and composites (accented characters).
-
- * src/autohint/ahglyph.c (ah_outline_load,
- ah_outline_link_segments): Implement it.
- Fix typos.
- (ah_outline_save, ah_outline_compute_segments): Fix typos.
- * src/autohint/ahhint.c (ah_align_serif_edge): New argument
- `vertical'. Implement improvement.
- (ah_hint_edges_3, ah_hinter_hint_edges): Implement it.
- Fix typos.
- (ah_hinter_align_strong_points, ah_hinter_align_weak_points): Fix
- typos.
- (ah_hinter_load): Set `ah_debug_hinter' if DEBUG_HINTER is defined.
- * src/autohint/ahmodule.c: Implement support for DEBUG_HINTER macro.
- * src/autohint/ahtypes.h: Ditto.
- (AH_Hinter): Remove `disable_horz_edges' and `disable_vert_edges'
- (making them global as `ah_debug_disable_horz' and
- `ah_debug_disable_vert').
- Fix typos.
-
- * tests/gview.c: Updated the debugging glyph viewer to show the
- hints generated by the `autohint' module.
-
-2001-10-27 David Turner <[email protected]>
-
- * src/cache/ftcchunk.c (ftc_chunk_cache_lookup): Fixed a bug that
- considerably lowered the performance of the abstract chunk cache.
-
-2001-10-26 David Turner <[email protected]>
-
- * include/freetype/ftcache.h, include/freetype/cache/*.h,
- src/cache/*.c: Major re-design of the cache sub-system to provide
- better performance as well as an `Acquire'/`Release' API. Seems to
- work well here, but probably needs a bit more testing.
-
-2001-10-26 Leonard Rosenthol <[email protected]>
-
- * builds/mac/README: Updated to reflect my taking over the project
- and that is now being actively maintained.
-
- * src/base/ftmac.c (parse_fond): Applied patches from Paul Miller
- <[email protected]> to support loading a face other than the
- first from a FOND resource.
- (FT_New_Face_From_FOND): Updated.
-
-2001-10-25 Leonard Rosenthol <[email protected]>
-
- * builds/mac/ftlib.prj: Update of CodeWarrior project file for Mac
- OS for latest version (7) of CWPro and for recent changes to the FT
- source tree.
-
-2001-10-25 David Turner <[email protected]>
-
- * include/freetype/config/ftoption.h: Updated comments to explain
- precisely how to use project-specific macro definitions without
- modifying this file manually.
-
- (FT_CONFIG_FORCE_INT64): Define.
-
- (FT_DEBUG_MEMORY): New macro.
-
-2001-10-24 Tom Kacvinsky <[email protected]>
-
- * builds/unix/ftsystem.c (FT_New_Memory): Added a missing `{'.
-
-2001-10-23 David Turner <[email protected]>
-
- * include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c:
- Improvements to the memory debugger to report more information in
- case of errors. Also, some allocations that occurred through REALLOC
- couldn't be previously caught correctly.
-
- * src/autohint/ahglyph.c (ah_outline_compute_segments,
- ah_outline_compute_edges), src/raster/ftraster.c (ft_black_new),
- src/smooth/ftgrays.c (gray_render_span, gray_raster_new): Replaced
- liberal uses of memset() by the MEM_Set() macro.
-
-2001-10-23 David Turner <[email protected]>
-
- * src/raster/ftraster.c (Update): Removed to be inlined in ...
- (Sort): Updated.
-
-2001-10-22 David Turner <[email protected]>
-
- * builds/unix/ftsystem.c (FT_New_Memory, FT_Done_Memory),
- builds/vms/ftsystem.c (FT_New_Memory, FT_Done_Memory),
- builds/amiga/ftsystem.c (FT_New_Memory, FT_Done_Memory),
- src/base/ftdbgmem.c: Updated the memory debugger and
- platform-specific implementations of `ftsystem' in order to be able
- to debug memory allocations on Unix, VMS and Amiga too!
-
- * src/pshinter/pshalgo2.c (psh2_hint_table_record_mask): Removed
- some bogus warnings.
-
- * include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c:
- Modified the debugging memory manager to report the location (source
- file name + line number) where leaked memory blocks are allocated in
- the source file.
-
- * src/base/ftdbgmem.c: New debugging memory manager. You must
- define the FT_DEBUG_MEMORY macro in `ftoption.h' to enable it. It
- will record every memory block allocated and report simple errors
- like memory leaks and double deletes.
-
- * src/base/Jamfile: Include ftdbgmem.
- * src/base/rules.mk: Ditto.
- * src/base/ftbase.c: Include ftdbgmem.c.
-
- * include/freetype/config/ftoption.h: Added the FT_DEBUG_MEMORY
- macro definition.
-
- * src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory): Modified the
- base component to use the debugging memory manager when the macro
- FT_DEBUG_MEMORY is defined.
-
-2001-10-21 Tom Kacvinsky <[email protected]>
-
- * src/cff/cffload.c (CFF_Done_Font): Free subfonts array only if
- we are working with a CID keyed CFF font. Otherwise, a variable
- that was never allocated memory might freed. This is a correction
- to the previous patch for freeing subfonts.
-
-2001-10-21 Tom Kacvinsky <[email protected]>
-
- * src/cff/cffload.c (CFF_Done_Font): Free the subfonts array to
- avoid a memory leak.
-
-2001-10-21 David Turner <[email protected]>
-
- * src/pshinter/pshalgo2.c, src/pshinter/pshalgo1.c,
- src/pshinter/pshglob.c: Removing compiler warnings in pedantic modes
- (in multi-object compilation mode, mainly).
-
-2001-10-20 Tom Kacvinsky <[email protected]>
-
- * src/type1/t1load.c (parse_encoding): Add a test to make sure
- that custom encodings (i.e., neither StandardEncoding nor
- ExpertEncoding) are not loaded twice when the Type 1 font is
- synthetic.
-
- * src/type1/t1load.c (parse_font_name, parse_subrs): Added a test
- for when loading synthetic fonts to make sure that the font name
- and subroutines are not loaded twice. This is to remove a memory
- leak that occurred because the original memory blocks for these
- objects were not deallocated when the objects were parsed the
- second time.
-
-2001-10-19 David Turner <[email protected]>
-
- * src/smooth/ftgrays.c, src/pshinter/pshglob.h,
- src/pshinter/pshrec.c, src/pshinter/pshalgo2.c: Getting rid of
- compiler warnings.
-
- * src/pshinter/module.mk, src/pshinter/rules.mk: Adding control
- files to build the PostScript hinter with the `old' build system.
-
-2001-10-19 Jacob Jansen <[email protected]>
-
- * descrip.mms, src/pshinter/descrip.mms: Updates to the VMS build
- files.
-
-2001-10-18 David Turner <[email protected]>
-
- * src/psnames/pstables.h, src/tools/glnames.py: Rewrote the
- `glnames.py' script used to generate the `pstables.h' header file.
- The old one contained a serious bug that made FreeType return
- incorrect glyph names for certain glyphs.
-
- * src/truetype/ttdriver.c (Set_Char_Sizes): Changing computation of
- pixel size from character size to use rounding. This is an
- experiment to see whether this gives values similar to Windows for
- scaled ascent/descent/etc.
-
- * src/base/ftcalc.c (FT_Div64by32): Changed the implementation
- slightly since the original code was mis-compiled on Mac machines
- using the MPW C compiler.
-
- * src/base/ftobjs.c (FT_Realloc): When a memory block was grown
- through FT_Realloc(), the new bytes were not set to 0, which created
- some strange bugs in the PostScript hinter.
- (destroy_face): Don't deallocate unconditionally.
-
- * src/cid/cidgload.c (CID_Compute_Max_Advance, CID_Load_Glyph):
- Adding support to new PostScript hinter.
-
- * include/freetype/internal/psglobal.h,
- include/freetype/internal/pshints.h,
- include/freetype/config/ftmodule.h, src/pshinter/Jamfile,
- src/pshinter/pshalgo.h, src/pshinter/pshalgo1.h,
- src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.h,
- src/pshinter/pshalgo2.c, src/pshinter/pshglob.h,
- src/pshinter/pshglob.c, src/pshinter/pshinter.c,
- src/pshinter/pshmod.c, src/pshinter/pshmod.h, src/pshinter/pshrec.c,
- src/pshinter/pshrec.h: Adding new PostScript hinter module.
-
- * include/freetype/internal/ftobjs.h,
- include/freetype/internal/internal.h,
- include/freetype/internal/psaux.h,
- include/freetype/internal/t1types.h, src/psaux/psobjs.c,
- src/psaux/psobjs.h, src/psaux/t1decode.h, src/psaux/t1decode.c,
- src/type1/t1driver.c, src/type1/t1gload.c, src/type1/t1objs.c,
- src/type1/t1objs.h: Updates to use the new PostScript hinter.
-
- * tests/Jamfile, tests/gview.c: Adding a new glyph hinting
- viewer/debugger to the source tree. Note that you will _not_ be
- able to compile it since it depends on an unavailable graphics
- library named `Nirvana' to render vector images.
-
-2001-10-17 David Turner <[email protected]>
-
-
- * Version 2.0.5 released.
- =========================
-
-
- * include/freetype/freetype.h, include/internal/ftobjs.h,
- src/base/ftobjs.c, src/type1/t1driver.c: Adding a new function named
- 'FT_Get_Postscript_Name' to retrieve the PostScript name of a given
- font. Should work with all formats except pure CFF/CEF fonts (this
- will be added soon).
-
- * src/cid/cidriver (cid_get_postscript_name): New function.
- (CID_Get_Interface): Handle `postscript_name' interface.
-
- * src/sfnt/sfdriver.c (get_sfnt_postscript_name): New function.
- (SFNT_Get_Interface): Handle `postscript_name' interface.
-
- * src/type1/t1driver.c (t1_get_ps_name): New function.
- (Get_Interface): Handle `postscript_name' interface.
-
- * README, docs/CHANGES: Updated for 2.0.5 release.
-
-2001-10-08 David Turner <[email protected]>
-
- Fixed a bug in `glnames.py' that prevented it from generating
- correct glyph names tables. This resulted in the unavailability of
- certain glyphs like `Cacute', `cacute' and `lslash' in Unicode
- charmaps, even if these were present in the font (causing problems
- for Polish users).
-
- * src/tools/glnames.py (mac_standard_names): Fixed.
- (t1_standard_strings): Some fixes and renamed to ...
- (sid_standard_names): This.
- (t1_expert_encoding): Fixed.
- (the_adobe_glyph_list): Renamed to ...
- (adobe_glyph_names): This.
- (the_adobe_glyphs): Renamed to ...
- (adobe_glyph_values): This.
- (dump_mac_indices, dump_glyph_list, dump_unicode_values, main):
- Updated.
- * src/psnames/pstables.h: Regenerated.
- * src/psnames/psmodule.c (PS_Unicode_Value): Fix offset.
- Fix return value.
- Use `sid_standard_table' and `ps_names_to_unicode' instead of
- `t1_standard_glyphs' and `names_to_unicode'.
- (PS_Macintosh_Name): Use `ps_glyph_names' instead of
- `standard_glyph_names'.
- (PS_Standard_Strings): Use `sid_standard_names' instead of
- `t1_standard_glyphs'.
-
- * doc/BUGS, doc/TODO: New documents.
-
-2001-10-07 Richard Barber <[email protected]>
-
- * src/cache/ftlru.c (FT_Lru_Lookup_Node): Fixed a bug that prevented
- correct LRU behaviour.
-
-2001-10-07 David Turner <[email protected]>
-
- setjmp() and longjmp() are now used for rollback (i.e. when memory
- pool overflow occurs).
-
- Function names are now all uniformly prefixed with `gray_'.
-
- * src/smooth/ftgrays.c: Include <setjmp.h>.
- (ErrRaster_MemoryOverflow): New macro.
- (TArea): New type to store area values in each cell (using `int' was
- too small on 16-bit systems). <limits.h> is included to properly
- get the needed data type.
- (TCell, TRaster): Use it.
- (TRaster): New element `jump_buffer'.
- (gray_compute_cbox): Use `RAS_ARG' as the only parameter and get
- `outline' from it.
- (gray_record_cell): Use longjmp().
- (gray_set_cell): Use gray_record_cell() for error handling.
- (gray_render_line, gray_render_conic, gray_render_cubic): Simplify.
- (gray_convert_glyph_inner): New function, using setjmp().
- (gray_convert_glyph): Use it.
-
-2001-10-07 David Turner <[email protected]>
-
- Provide a public API to manage multiple size objects for a given
- FT_Face in the new header file `ftsizes.h'.
-
- * include/freetype/ftsizes.h: New header file,
- * include/freetype/internal/ftobjs.h: Use it.
- Remove declarations of FT_New_Size and FT_Done_Size (moved to
- ftsizes.h).
- * include/freetype/config/ftheader.h (FT_SIZES_H): New macro.
- * src/base/ftobjs.c (FT_Activate_Size): New function.
- * src/cache/ftcmanag.c: Include ftsizes.h.
- (ftc_manager_init_size, ftc_manager_flush_size): Use
- FT_Activate_Size.
-
-2001-09-20 Detlef Würkner <[email protected]>
-
- * builds/amiga/*: Added port to Amiga with the SAS/C compiler.
-
-2001-09-15 Detlef Würkner <[email protected]>
-
- * src/type1/t1afm.c (T1_Done_AFM): Free `afm'.
-
-2001-09-10 Yao Zhang <[email protected]>
-
- * src/sfnt/ttcmap.c (code_to_index2): Handle code values with
- hi-byte == 0 correctly.
-
-2001-09-10 Werner Lemberg <[email protected]>
-
- * builds/link-std.mk ($(PROJECT_LIBRARY)): Fix typo.
-
-2001-08-30 Martin Muskens <[email protected]>
-
- * src/type1/t1load.c (parse_font_matrix): A new way to compute the
- units per EM with greater accuracy (important for embedded T1 fonts
- in PDF documents that were automatically generated from TrueType
- ones).
-
- * src/type1/t1load.c (is_alpha): Now supports `+' in font names;
- this is used in embedded fonts.
-
- * src/psaux/psobjs.c (PS_Table_Add): Fixed a reallocation bug that
- generated a dangling pointer reference.
-
-2001-08-30 Anthony Feik <[email protected]>
-
- * src/type1/t1afm.c (T1_Read_Afm): Now correctly sets the flag
- FT_FACE_FLAG_KERNING when appropriate for Type1 + AFM files.
-
-2001-08-25 Werner Lemberg <[email protected]>
-
- * src/sfnt/ttload.c (TT_Load_CMap): Fix frame length of
- `cmap_rec_fields'.
-
- * include/freetype/fterrors.h [!FT_CONFIG_OPTION_USE_MODULE_ERRORS]:
- Undefine FT_ERR_BASE before defining again.
-
-2001-08-22 Werner Lemberg <[email protected]>
-
- * src/truetype/ttinterp.h: Fix prototype of TT_Move_Func.
-
-2001-08-21 Werner Lemberg <[email protected]>
-
- * builds/dos/dos-def.mk (NO_OUTPUT): Don't use `&>' but `>'.
-
-2001-08-21 David Turner <[email protected]>
-
- * include/freetype/config/ftoption.h: Changed the default setting
- for FT_CONFIG_OPTION_USE_MODULE_ERRORS to undefined, since it breaks
- source compatibility in a few cases. Updated the comment to explain
- that too.
-
-2001-08-17 Martin Muskens <[email protected]>
-
- * src/base/ftcalc.c (FT_MulDiv): Fixed serious typo.
-
-2001-08-12 Werner Lemberg <[email protected]>
-
- Updating to OpenType 1.3.
-
- * include/freetype/internal/tttypes.h (TT_CMap0, TT_CMap2, TT_CMap4,
- TT_CMap6): Adding field `language'.
- (TT_CMapTable): Removing field `language'.
- Type of `length' field changed to FT_ULong.
- Adding fields for cmaps format 8, 10, and 12.
- (TT_CMapGroup): New auxiliary structure.
- (TT_CMap8_12, TT_CMap10): New structures.
- * include/freetype/tttables.h (TT_HoriHeader, TT_VertHeader):
- Removed last element of `Reserved' array.
- * include/freetype/ttnameid.h (TT_PLATFORM_CUSTOM, TT_MS_ID_UCS_4,
- TT_NAME_ID_CID_FINDFONT_NAME): New macros.
-
- * src/sfnt/ttcmap.c (TT_CharMap_Load): Updated loading of `language'
- field to the new structures.
- Fixed freeing of arrays in case of unsuccessful loads.
- Added support for loading format 8, 10, and 12 cmaps.
- (TT_CharMap_Free): Added support for freeing format 8, 10, and 12
- cmaps.
- (code_to_index4): Small improvement.
- (code_to_index6): Ditto.
- (code_to_index8_12, code_to_index10): New functions.
- * src/sfnt/ttload.c (TT_Load_Metrics_Header): Updated to new
- structure.
- (TT_Load_CMap): Ditto.
-
- * src/sfnt/sfobjs.c (tt_encodings): Add MS UCS4 table (before MS
- Unicode).
-
-2001-08-11 Werner Lemberg <[email protected]>
-
- * src/type1/t1driver.c (t1_get_name_index): Fix compiler warning.
-
-2001-08-09 Tom Kacvinsky <[email protected]>
-
- * src/cff/cffdrivr.c (get_cff_glyph_name): Renamed to
- cff_get_glyph_name for consistency.
-
- (cff_get_glyph_index): Minor documentation change.
-
- * src/type1/t1driver.c (t1_get_name_index): New function used in
- Get_Interface as the function returned when the `name_index'
- function is requested.
-
- (get_t1_glyph_name): Renamed to t1_get_glyph_name for consistency.
-
-2001-08-08 Tom Kacvinsky <[email protected]>
-
- * src/cff/cffload.c: Removed definitions of cff_isoadobe_charset,
- cff_expert_charset, cff_expertsubset_charset, cff_standard_encoding,
- and cff_expert_encoding arrays to cffload.h.
-
- * src/cff/cffload.h: Added definitions of cff_isoadobe_charset,
- cff_expert_charset, cff_expertsubset_charset, cff_standard_encoding,
- and cff_expert_encoding arrays.
-
- * src/cff/cffdrivr.c (cff_get_name_index): New function, returned
- when `cff_get_interface' is called with a request for the
- `name_index' function.
-
- (cff_get_interface): Modified so that it returns the function
- `cff_get_name_index' when the `name_index' function is requested.
-
- * src/base/ftobjs.c (FT_Get_Name_Index): New function, used to
- return a glyph index for a given glyph name only if the driver
- supports glyph names.
-
- * include/freetype/internal/ftobjs.h (FT_Name_Index_Requester):
- New function pointer type definition used in the function
- FT_Get_Name_Index.
-
- * include/freetype/freetype.h (FT_Get_Name_Index): Added
- documentation and prototype.
-
-2001-07-26 Werner Lemberg <[email protected]>
-
- * builds/cygwin/*: Removed. Use the unix stuff instead.
-
-2001-07-26 Jouk Jansen <[email protected]>
-
- * builds/vms/ftconfig.h (FT_CALLBACK_DEF): Updated to change dated
- 2001-06-27.
-
-2001-07-17 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/psaux.h (PS_Table): Use FT_Offset for
- `cursor' and `capacity'.
- * src/psaux/psobjc.c (reallocate_t1_table): Use FT_Long for second
- parameter.
- (PS_Table_Add): Use FT_Offset for `new_size'.
-
- Add support for version 0.5 maxp tables.
-
- * src/sfnt/ttload.c (TT_Load_MaxProfile): Implement it.
- (TT_Load_OS2): Initialize some values.
-
-2001-07-13 Werner Lemberg <[email protected]>
-
- * src/base/ftsynth.c: Include ftcalc.h unconditionally.
-
-2001-07-07 David Turner <[email protected]>
-
- * src/truetype/ttgload.c, src/truetype/ttinterp.c, src/pcf/pcfread:
- Removed pedantic compiler warnings when the bytecode interpreter is
- compiled in.
-
-2001-07-03 Werner Lemberg <[email protected]>
-
- * src/autohint/ahhint.c (ah_hinter_align_weak_points): Remove
- unused variable `edges'.
- (ah_hinter_load): Remove unused variables `old_width' and
- `new_width'.
- * src/cid/cidload.c (cid_decrypt): Use `U' for constant (again).
- * src/psaux/psobjs.c (T1_Decrypt): Ditto.
- * src/type1/t1parse.c (T1_Get_Private_Dict): Ditto.
-
-2001-06-28 David Turner <[email protected]>
-
- * include/internal/ftstream.h: Modified the definitions
- of the FT_GET_XXXX and NEXT_XXXX macros for 16-bit correctness.
-
-2001-06-26 Werner Lemberg <[email protected]>
-
- * src/cid/cidload.c, src/cid/cidload.h (cid_decrypt): Use FT_Offset
- instead of FT_Int as type for `length' parameter.
- * include/freetype/internal/psaux.h (PSAux_Interface): Updated.
-
-2001-06-27 Wolfgang Domröse <[email protected]>
-
- * src/psaux/psobjs.c, src/psaux/psobjs.h (T1_Decrypt): Use FT_Offset
- instead of FT_Int as type for `length' parameter.
-
-
- * Version 2.0.4 released.
- =========================
-
-
-2001-06-27 David Turner <[email protected]>
-
- * builds/unix/ftconfig.in: Changed the definition of the
- FT_CALLBACK_DEF macro.
-
- * include/freetype/ftconfig.h, src/*/*.c: Changed the definition and
- use of the FT_CALLBACK_DEF macro in order to support 16-bit
- compilers.
-
- * builds/unix/ftconfig.in: Changed the definition of the
- FT_CALLBACK_DEF macro.
-
- * src/sfnt/ttload.c (TT_Load_Kern): The kern table loader now ensures
- that the kerning table is correctly sorted (some problem fonts don't
- have a correct kern table).
-
-2001-06-26 Wolfgang Domröse <[email protected]>
-
- * include/freetype/internal/ftstream.h (FT_GET_OFF3_LE): Fix typo.
-
-2001-06-24 David Turner <[email protected]>
-
- * src/base/ftcalc.c (ft_div64by32): Fixed the source to work
- correctly on 16-bit systems.
-
-2001-06-23 Anthony Fok <[email protected]>
-
- * debian/*: Added Debian package build directory for 2.0.4.
-
-2001-06-22 David Turner <[email protected]>
-
- * docs/PATENTS: Added patents disclaimer. This one was missing!
-
- * docs/CHANGES, docs/todo: Updated for the upcoming 2.0.4 release.
-
-2001-06-20 Werner Lemberg <[email protected]>
-
- * include/freetype/config/ftconfig.h: Add two more `L's to
- constants.
- Add missing semicolons.
-
- * builds/toplevel.mk: Do similar change as for
- builds/unix/detect.mk.
-
- * include/freetype/freetype.h (FT_ENC_TAG): New version to make it
- easier to redefine.
- * include/freetype/ftimage.h (FT_IMAGE_TAG): Ditto.
-
- * src/pcf/pcfread.c (pcf_get_encodings): Add cast.
-
-2001-06-19 David Turner <[email protected]>
-
- * builds/win32/visualc/freetype.dsp, builds/win32/visualc/index.html:
- Updated the Visual C++ project (for the 2.0.4 release).
-
- * builds/unix/detect.mk: Added rule for AIX detection (which uses
- /usr/sbin/init instead of /sbin/init).
-
- * include/freetype/fterrors.h, src/*/*err*.h: Updated some of the
- error macros to simplify handling of new error scheme.
-
-2001-06-19 Werner Lemberg <[email protected]>
-
- * include/freetype/fttypes.h (FT_ERROR_MODULE): New macro.
-
-2001-06-19 David Turner <[email protected]>
-
- Removing _lots_ of compiler warnings when the most pedantic warning
- levels of Visual C++ and Borland C++ are used. Too many files to be
- listed here, but FT2 now compiles without warnings with VC++ and the
- `/W4' warning level (lint-style).
-
- * include/freetype/freetype.h (FT_New_Memory_Face): Updated
- documentation.
- * include/freetype/fttypes.h (FT_BOOL): New macro.
- * include/freetype/internal/ftdebug.h: Add #pragma for Visual C++
- to suppress warning.
- * include/freetype/internal/ftstream.h (FT_GET_SHORT_{BE,LE},
- FT_GET_OFF3_{BE,LE}, FT_GET_LONG_{BE,LE}): New macros.
- (NEXT_*): Use them.
- * src/autohint/ahglobal.c: Include FT_INTERNAL_DEBUG_H.
- (FT_New_Memory_Face): Add `const' to function declaration.
-
-2001-06-18 Werner Lemberg <[email protected]>
-
- Minor cleanups to remove compiler warnings.
-
- * include/freetype/cache/ftcmanag.h (FTC_MAX_BYTES_DEFAULT): Use
- `L' for constant.
- * include/freetype/config/ftoption.h (FT_RENDER_POOL_SIZE): Ditto.
- * src/base/ftcalc.c (FT_MulDiv): Use `L' for constant.
- * src/base/ftglyph.c (FT_Glyph_Get_CBox): Remove `error' variable.
- * src/base/fttrigon.c (ft_trig_arctan_table): Use `L' for constants.
- * src/base/ftobjs.c (FT_Done_Size): Fix return value.
- (FT_Set_Char_Size, FT_Set_Pixel_Sizes, FT_Get_Kerning): Remove
- unused `memory' variable.
- * src/autohint/ahglyph.c (ah_get_orientation): Use `L' for constant.
- * src/autohint/ahhint.c (ah_hint_edges_3,
- ah_hinter_align_edge_points): Remove unused `before' and `after'
- variables.
- (ah_hinter_align_weak_points): Remove unused `edge_limit' variable.
- (ah_hinter_load): Remove unused `new_advance', `start_contour',
- and `metrics' variables.
- * src/cff/cffload.c (CFF_Load_Encoding): Remove dead code to avoid
- compiler warning.
- * src/cff/cffobjs.c (CFF_Init_Face): Remove unused `base_offset'
- variable.
- * src/cff/cffgload.c (CFF_Parse_CharStrings): Remove unused
- `outline' variable.
- (cff_compute_bias): Use `U' for constant.
- * src/cid/cidload.c (cid_decrypt): Ditto.
- * src/psaux/psobjs.c (T1_Decrypt): Ditto.
- * src/psaux/t1decode.c (T1_Decoder_Parse_CharStrings): Ditto.
- * src/sfnt/ttload.c (TT_Load_Kern): Remove unused `version'
- variable.
- * src/sfnt/ttsbit.c (TT_Load_SBit_Image): Remove unused `top'
- variable.
- * src/truetype/ttgload.c (load_truetype_glyph): Remove unused
- `num_contours' and `ins_offset' variables.
- (compute_glyph_metrics): Remove unused `Top' and `x_scale'
- variables.
- (TT_Load_Glyph): Remove unused `memory' variable.
- * src/smooth/ftgrays.c (grays_raster_render): Use `L' for constants.
-
-2001-06-18 Werner Lemberg <[email protected]>
-
- Make the new error scheme source compatible with older FT versions
- by introducing another layer.
-
- * include/freetype/fterrors.h (FT_ERRORDEF_, FT_NOERRORDEF_): New
- macros.
- (FT_NOERRORDEF): Removed.
- * include/*/*err*.h: Use FT_ERRORDEF_ and FT_NOERRORDEF_.
-
-2001-06-16 Werner Lemberg <[email protected]>
-
- * include/freetype/freetype.h (FT_ENC_TAG): New macro.
- (FT_Encoding_): Use it.
- * include/freetype/ftimage.h (FT_IMAGE_TAG): Define it
- conditionally.
-
-2001-06-14 David Turner <[email protected]>
-
- Modified the TrueType interpreter to let it use the new
- trigonometric functions provided in `fttrigon.h'. This gets rid of
- some old 64-bit computation routines, as well as many warnings when
- compiling the library with the `long long' 64-bit integer type.
-
- * include/freetype/config/ftoption.h: Undefine
- FT_CONFIG_OPTION_OLD_CALCS.
- * include/freetype/internal/ftcalc.h: Rearrange use of
- FT_CONFIG_OPTION_OLD_CALCS.
- * src/base/ftcalc.c: Add declaration of FT_Int64 if
- FT_CONFIG_OPTION_OLD_CALCS isn't defined.
- * src/truetype/ttinterp.c: Use FT_TRIGONOMETRY_H.
- (Norm): Add a special version if FT_CONFIG_OPTION_OLD_CALCS isn't
- defined.
- (Current_Ratio, Normalize): Simplify code.
-
-2001-06-11 Mike Owens <[email protected]>
-
- * src/base/ftcalc.c (FT_MulDiv, FT_DivFix, FT_Sqrt64): Remove
- compiler warnings.
-
-2001-06-08 Werner Lemberg <[email protected]>
-
- * builds/unix/configure.in: Renamed to ...
- * builds/unix/configure.ac: This to make sure that autoconf 2.50 is
- needed.
- Run `autoupdate' on it.
- Increase `version_info' to 7:0:1.
- * builds/unix/configure: Regenerated.
-
-2001-06-08 David Turner <[email protected]>
-
- * src/autohint/ahhint.c (ah_hinter_load_glyph): Fixed a bug that
- corrupted transformed glyphs that were auto-hinted (the transform
- was applied twice).
-
- Fixed a bug that returned an invalid linear width for composite
- TrueType glyphs.
-
- * include/internal/tttypes.h (TT_Loader_): Two new elements `linear'
- and `linear_def'.
- * src/truetype/ttgload.c (load_truetype_glyph,
- compute_glyph_metrics): Use it.
-
- * include/fttypes.h (FT_ERROR_BASE): New macro.
- * src/base/ftobjs.c (FT_Open_Face, FT_Render_Glyph_Internal): Use it
- to make source code work with the new error scheme implemented by
- Werner.
- * src/base/ftoutln.c (FT_Outline_Render): Ditto.
-
-2001-06-07 Werner Lemberg <[email protected]>
-
- Updating to libtool 1.4.0 and autoconf 2.50.
-
- * builds/unix/ltconfig: Removed.
- * builds/unix/ltmain.sh, builds/unix/configure.in,
- builds/unix/aclocal.m4: Updated.
- * builds/unix/configure: Regenerated.
-
-2001-06-06 Werner Lemberg <[email protected]>
-
- Complete redesign of error codes. Please check ftmoderr.h for more
- details.
-
- * include/freetype/internal/cfferrs.h,
- include/freetype/internal/tterrors.h,
- include/freetype/internal/t1errors.h: Removed. Replaced with files
- local to the module. All extra error codes have been moved to
- `fterrors.h'.
-
- * src/sfnt/ttpost.h: Move error codes to `fterrors.h'.
-
- * src/autohint/aherrors.h, src/cache/ftcerror.h, src/cff/cfferrs.h,
- src/cid/ciderrs.h, src/pcf/pcferror.h, src/psaux/psauxerr.h,
- src/psnames/psnamerr.h, src/raster/rasterrs.h, src/sfnt/sferrors.h,
- src/smooth/ftsmerrs.h, src/truetype/tterrors.h,
- src/type1/t1errors.h, src/winfonts/fnterrs.h: New files defining the
- error names for the module it belongs to.
-
- * include/freetype/ftmoderr.h: New file, defining the module error
- offsets. Its structure is similar to `fterrors.h'.
-
- * include/freetype/fterrors.h (FT_NOERRORDEF): New macro.
- (FT_ERRORDEF): Redefined to use module error offsets.
- All internal error codes are now public; unused error codes have
- been removed, some are new.
-
- * include/freetype/config/ftheader.h (FT_MODULE_ERRORS_H): New
- macro.
- * include/freetype/config/ftoption.h
- (FT_CONFIG_OPTION_USE_MODULE_ERRORS): New macro.
-
- All other source files have been updated to use the new error codes;
- some already existing (internal) error codes local to a module have
- been renamed to give them the same name as in the base module.
-
- All make files have been updated to include the local error files.
-
-2001-06-06 Werner Lemberg <[email protected]>
-
- * src/cid/cidtokens.h: Replaced with...
- * src/cid/cidtoken.h: This file for 8+3 consistency.
-
- * src/raster/ftraster.c: Use macros for header file names.
-
- * src/include/freetype/tttables.h (TT_HoriHeader_, TT_VertHeader_):
- Fix length of `Reserved' array. Note that this isn't the real fix
- since recent OpenType specs have introduced a `CaretOffset' field
- instead of the first reserved byte.
-
-2001-05-29 Werner Lemberg <[email protected]>
-
- * INSTALL: Minor fixes.
-
-
- * Version 2.0.3 released.
- =========================
-
-
-2001-05-29 David Turner <[email protected]>
-
- * INSTALL, docs/CHANGES: Updated.
-
-2001-05-25 David Turner <[email protected]>
-
- Moved several documents from the top-level to the `docs' directory.
-
- * src/base/ftcalc.c (FT_DivFix): Small fix to return value.
-
-2001-05-16 David Turner <[email protected]>
-
- * src/truetype/ttgload.c (load_truetype_glyph): Fixed a bug in the
- composite loader. Spotted by Keith Packard.
- * src/base/ftobjs.c (FT_GlyphLoader_Check_Points,
- FT_GlyphLoader_Check_Subglyphs): Ditto.
-
-2001-05-14 David Turner <[email protected]>
-
- Fixed the incorrect blue zone computations, and improved the
- composite support. Note that these changes result in improved
- rendering, while sometimes introducing their own artefacts. This is
- probably the last big change to the autohinter before the
- introduction of a complete replacement.
-
- * src/autohint/ahglobal.c (sort_values): Fix loop.
- * src/autohint/ahglyph.c: Removed some obsolete code.
- (ah_outline_compute_edges): Modify code to set the ah_edge_round
- flag.
- (ah_outline_compute_blue_edges): Add code to compute active blue
- zones.
- * src/autohint/ahhint.c (ah_hinter_glyph_load): Change load_flags
- value.
-
- * src/base/ftcalc.c (FT_DivFix): Fixed a bug in the 64-bit code that
- created incorrect scale factors!
- (FT_Round_Fix, FT_CeilFix, FT_FloorFix): Minor improvements.
-
-2001-05-12 Werner Lemberg <[email protected]>
-
- * include/freetype/ftbbox.h: FTBBOX_H -> __FTBBOX_H__.
- * include/freetype/fttrigon.h: __FT_TRIGONOMETRY_H__ ->
- __FTTRIGON_H__.
- Include FT_FREETYPE_H.
- Beautified; added copyright.
- * src/base/fttrigon.c: Beautified; added copyright.
-
-2001-05-11 David Turner <[email protected]>
-
- * src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c
- (parse_font_matrix), src/type1/t1load.c (parse_font_matrix): Fixed
- the incorrect EM size computation.
-
- * include/freetype/fttrigon.h, src/base/fttrigon.c: New files,
- adding trigonometric functions to the core API (using Cordic
- algorithms).
- * src/base/ftbase.c, src/base/Jamfile, src/base/rules.mk: Use them.
-
- * builds/newline: New file.
- * builds/top_level.mk, builds/detect.mk: Use it. This fixes
- problems with Make on Windows 2000, as well as problems when `make
- distclean' is invoked on a non-Unix platform when there is no
- `config.mk' in the current directory.
-
- * builds/freetype.mk: Fixed a problem with object deletions under
- Dos/Windows/OS/2 systems.
-
- Added new directory to hold tools and test programs.
-
- * docs/docmaker.py, docs/glnames.py: Moved to...
- * src/tools/docmaker.py, src/tools/glnames.py: This place.
- * src/tools/cordic.py: New file used to compute arctangent table
- needed by fttrigon.c.
- * src/tools/test_bbox.c, src/tools/test_trig.c: New test files.
-
- * src/tools/docmaker.py: Improved the script to add the current date
- at the footer of each web page (useful to distinguish between
- versions).
-
- * Jamfile: Fixed incorrect HDRMACRO argument.
-
- * TODO: Removed the cubic arc bbox computation note, since it has been
- fixed recently.
- * src/base/ftbbox.c (test_cubic_zero): Renamed to...
- (test_cubic_extrema): This function. Use `UL' for unsigned long
- constants.
-
- * include/freetype/t1tables.h, include/freetype/config/ftoption.h:
- Formatting.
-
-2001-05-10 David Turner <[email protected]>
-
- * src/base/ftobjs.c (FT_Open_Face): Fixed a small memory leak
- which happened when trying to open 0-size font files!
-
-2001-05-09 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/ftcalc.h: Move declaration of
- FT_SqrtFixed() out of `#ifdef FT_LONG64'.
-
-2001-05-08 Francesco Zappa Nardelli <[email protected]>
-
- * src/pcfdriver.c (PCF_Load_Glyph): Fixed incorrect bitmap width
- computation.
-
-2001-05-08 David Turner <[email protected]>
-
- * docs/docmaker.py: Updated the DocMaker script in order to add
- command line options (--output,--prefix,--title), fix the erroneous
- line numbers reported during errors and warnings, and other
- formatting issues.
-
- * src/base/ftcalc.c (FT_MulDiv, FT_MulFix, FT_DivFix): Various tiny
- fixes related to rounding in 64-bits routines and
- pseudo-`optimizations'.
-
-2001-04-27 David Turner <[email protected]>
-
- * src/base/ftbbox.c (BBox_Cubic_Check): Fixed the coefficient
- normalization algorithm (invalid final bit position, and invalid
- shift computation).
-
-2001-04-26 Werner Lemberg <[email protected]>
-
- * builds/unix/config.guess, builds/unix/config.sub: Updated to
- latest versions from gnu.org.
-
- * builds/compiler/gcc-dev.mk: Add `-Wno-long-long' flag.
-
- * include/freetype/internal/ftcalc.h: Define FT_SqrtFixed()
- unconditionally.
- * src/base/ftbbox.c: Include FT_INTERNAL_CALC_H.
- Fix compiler warnings.
- * src/base/ftcalc.c: Fix (potential) compiler warnings.
-
-2001-04-26 David Turner <[email protected]>
-
- * src/base/ftcalc.c (FT_SqrtFixed): Corrected/optimized the 32-bit
- fixed-point square root computation. It is now used even with
- 64-bits integers, as it is _much_ faster than calling FT_Sqrt64 :-)
-
- * src/base/ftbbox.c: Removed invalid `#include FT_BEZIER_H' line.
-
-2001-04-25 David Turner <[email protected]>
-
- * src/base/ftbbox.c (BBox_Cubic_Check): Rewrote function to use
- direct computations with 16.16 values instead of sub-divisions. It
- is now slower, but proves a point :-)
-
- * src/raster/ftraster.c, src/smooth/ftgrays.c, src/base/ftbbox.c:
- Fixed the Bézier stack depths.
-
- * src/base/ftcalc.c (FT_MulFix): Minor rounding fix.
-
- * builds/beos: Added BeOS-specific files to the old build system
- (no changes were necessary to support BeOS in the Jamfile though).
-
-2001-04-20 David Turner <[email protected]>
-
- * ftconfig.h, ftoption.h: Updated `ftconfig.h' to detect 64-bit int
- types on platforms where Autoconf is not available). Also removed
- FTCALC_USE_LONG_LONG and replaced it with
- FT_CONFIG_OPTION_FORCE_INT64.
-
- * builds/win32/freetype.dsp: Updated the Visual C++ project file.
- Doesn't create a DLL yet.
-
- * cffgload.c: Removed a compilation warning.
-
-2001-04-10 Tom Kacvinsky <[email protected]>
-
- * t1load.c (parse_charstrings): Changed code for placing .notdef
- glyph into slot 0 so that we no longer have a memory access
- violation.
-
- * t1load.h: In structure T1_Loader, added swap_table (of type
- PS_Table) to facilitate placing the .notdef glyph into slot 0.
-
-2001-04-10 Francesco Zappa Nardelli <[email protected]>
-
- * src/pcf/pcfdriver.c (PCF_Get_Char_Index): Fix return value.
-
-2001-04-09 Laurence Withers <[email protected]>
-
- * builds/dos/detect.mk: Add support for bash.
-
-2001-04-05 Werner Lemberg <[email protected]>
-
- * builds/os2/*.mk: These files have been forgotten to update to
- the structure of similar makefiles.
- * builds/dos/*.mk: Ditto.
- * builds/ansi/*.mk: Ditto.
-
- * builds/win32/win32-def.mk (BUILD): Fix typo.
-
- * builds/compiler/*.mk (CLEAN_LIBRARY): Don't use NO_OUTPUT.
- This is already used in the link_*.mk files.
-
-2001-04-03 Werner Lemberg <[email protected]>
-
- * src/*/Jamfile: Slight changes to make files more cryptic.
-
-2001-04-03 Werner Lemberg <[email protected]>
-
- * Jamfile, src/Jamfile, src/*/Jamfile: Formatted. Slight changes
- to give files identical structure.
-
-2001-04-02 Werner Lemberg <[email protected]>
-
- * CHANGES: Reformatted, minor fixes.
- * TODO: Updated.
- * README: Formatting.
- * include/freetype/freetype.h: Formatting.
-
- * Jamfile: Fix typo.
-
- * src/cff/cffparse.c: Move error code #defines to...
- * include/freetype/internal/cfferrs.h: This file.
- * src/cff/cffdrivr.c, src/cff/cffobjs.c, src/cff/cffload.c: Replaced
- `FT_Err_*' with `CFF_Err_*'.
- * src/cid/cidparse.c: Replaced `FT_Err_*' with `T1_Err_*'.
- * src/psaux/psobjs.c, src/psaux/t1decode.c: Ditto.
- * src/sfnt/sfobcs.c, src/sfnt/ttload.c: Replaced `FT_Err_*' with
- `TT_Err_*'.
- * src/truetype/ttgload.c, src/truetype/ttobjs.c: Ditto.
- * src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1objs.c,
- src/type1/t1parse.c: Replaced `FT_Err_*' with `T1_Err_*'.
-
- * include/freetype/internal/cfferrs.h: Add
- `CFF_Err_Unknown_File_Format'.
- * include/freetype/internal/t1errors.h: Add
- `T1_Err_Unknown_File_Format'.
- * include/freetype/internal/tterrors.h: Add
- `TT_Err_Unknown_File_Format'.
-
- * src/cff/cffload.h: Add `cff_*_encoding' and `cff_*_charset'
- references.
- * src/psaux/psobjs.c: Include `FT_INTERNAL_TYPE1_ERRORS_H'.
-
- * src/cff/cffobjs.c (CFF_Init_Face, CFF_Done_Face): Use
- FT_LOCAL_DEF.
- * src/cid/cidobjs.c (CID_Done_Driver): Ditto.
- * src/trutype/ttobjs.c (TT_Init_Face, TT_Done_Face, TT_Init_Size):
- Ditto.
- * src/type1/t1objs.c (T1_Done_Driver): Ditto.
- * src/pcf/pcfdriver.c (PCF_Done_Face): Ditto.
- * src/pcf/pcf.h: Use FT_LOCAL for `PCF_Done_Face'.
-
-2001-04-02 Tom Kacvinsky <[email protected]>
-
- * src/sfnt/ttload.c (TT_Load_Metrics): Fix an improper pointer
- dereference. Submitted by Herbert Duerr <[email protected]>.
-
-2001-03-26 Tom Kacvinsky <[email protected]>
-
- * include/freetype/config/ftconfig.h: Changed hexadecimal
- constants to use suffix U to avoid problems with HP-UX's c89
- compiler. Submitted by G.W. Lucas <[email protected]>.
-
-2001-03-24 David Turner <[email protected]>
-
- * Jamrules, Jamfile, src/Jamfile, src/*/Jamfile: Adding jamfiles to
- the source tree. See www.freetype.org/jam/index.html for details.
-
-
- * Version 2.0.2 released.
- =========================
-
-
-2001-03-20 Werner Lemberg <[email protected]>
-
- * builds/win32/detekt.mk: Fix .PHONY target for Intel compiler.
-
-2001-03-20 David Turner <[email protected]>
-
- * include/freetype/config/ftheader.h, include/freetype/ftsnames.h:
- Renamed `ftnames.h' to `ftsnames.h', and FT_NAMES_H to
- FT_SFNT_NAMES_H.
-
- * docs/docmaker.py: Added generation of INDEX link in table of
- contents.
-
- * INSTALL, docs/BUILD: Updated documentation to indicate that the
- compilation process has changed slightly (no more `src' required in
- the include path).
-
- * builds/*/*-def.mk: Changed the objects directory from `obj' to
- `objs'.
-
- * include/freetype/config/ftheader.h: Removed obsolete macros like
- FT_SOURCE_FILE, etc. and added cache-specific macro definitions that
- were previously defined in <freetype/ftcache.h>. Added comments to
- be included in a new API Reference section.
-
- * src/*/*: Removed the use of FT_SOURCE_FILE, etc. Now, each
- component needs to add its own directory to the include path at
- compile time. Modified all `rules.mk' and `descrip.mms'
- accordingly.
-
-2001-03-20 Werner Lemberg <[email protected]>
-
- * builds/unix/configure.in: Add $ft_version.
- * builds/unix/freetype-config.in: Use it.
- * builds/unix/configure: Updated.
-
-2001-03-19 Tom Kacvinsky <[email protected]>
-
- * src/type1/t1load.c (parse_font_matrix): Assign the units per em
- value an unsigned short value, first by shifting right 16 bits,
- then by casting the results to FT_UShort.
-
- * src/cff/cffparse.c (cff_parse_font_bbox): Assign the units per em
- value an unsigned short value, first by shifting right 16 bits,
- then by casting the results to FT_UShort.
-
-2001-03-17 David Turner <[email protected]>
-
- * src/cid/cidobjs.c, src/cid/cidload.c, src/pcf/pcfread.c,
- src/type1/t1load.c, src/type1/t1objs.c: Added a few casts to remove
- compiler warnings in pedantic modes.
-
- * include/config/ft2build.h, include/config/ftheader.h: The file
- `ft2build.h' was renamed to `ftheader.h' to avoid conflicts with the
- top-level <ft2build.h>.
-
- * include/config/ftheader.h: Added new section describing the #include
- macros.
-
-2001-03-17 Tom Kacvinsky <[email protected]>
-
- * src/cff/cffparse.c (cff_parse_font_bbox): Obtain rounded FT_Fixed
- values for the bounding box numbers.
-
- * src/cff/cffobjs.c (CFF_Init_Face): When processing a CFF/CEF font,
- set `root->ascender' (`root->descender') to the integer part of
- `root->bbox.yMax' (`root->bbox.yMin', respectively).
-
-2001-03-16 Tom Kacvinsky <[email protected]>
-
- * src/cff/cffdrivr.c (get_cff_glyph_name): New function. Used in
- cff_get_interface to facilitate getting a glyph name for glyph index
- via FT_Get_Glyph_Name().
-
- (cff_get_interface): Added support for getting a glyph name via the
- `glyph_name' module interface. Uses the new function
- get_cff_glyph_name().
- Submitted by Sander van der Wal <[email protected]>.
-
- * src/cff/cffobjs.c (CFF_Init_Face): Logical or the face flags with
- FT_FACE_FLAG_GLYPH_NAMES only if FT_CONFIG_OPTION_NO_GLYPH_NAMES is
- not defined. This is to add support for getting a glyph name from a
- glyph index via FT_Get_Glyph_Name().
- Submitted by Sander van der Wal <[email protected]>.
-
- * src/cff/cffgload.c (CFF_Parse_CharStrings): Added support for
- deprecated operator `dotsection'.
- Submitted by Sander van der Wal <[email protected]>.
-
-2001-03-12 Werner Lemberg <[email protected]>
-
- * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix error
- messages.
-
- * INSTALL, docs/BUILD: We need GNU make 3.78.1 or newer.
-
-2001-03-12 Tom Kacvinsky <[email protected]>
-
- * include/freetype/internal/psaux.h: Changed the lenIV member of
- the T1_Decoder_ struct to be an FT_Int instead of an FT_UInt.
-
- * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Adjust
- for lenIV seed bytes at the start of a decrypted subroutine.
-
- * src/cid/cidload.c (cid_read_subrs): Decrypt subroutines only
- if lenIV >= 0.
-
- * src/cid/cidgload.c (cid_load_glyph): Decrypt charstrings only
- if lenIV >= 0.
-
-2001-03-11 Werner Lemberg <[email protected]>
-
- * TODO: Updated.
-
- * src/pcf/pcfread.c: Put READ_Fields() always in a conditional to
- avoid compiler warnings.
-
-2001-03-10 Tom Kacvinsky <[email protected]>
-
- * TODO: New file.
-
- * include/freetype/freetype.h: Added prototypes and notes for
- three new functions: FT_RoundFix, FT_CeilFix, and FT_FloorFix.
- * src/base/ftcalc.c (FT_RoundFix, FT_CeilFix, FT_FloorFix): Added
- implementation code.
-
- * src/cid/cidobjs.c (CID_Init_Face): Use calculated units_per_EM,
- and if that is not available, default to 1000 units per EM. Changed
- assignment code for ascender and descender values.
- * src/cid/cidload.c (parse_font_matrix): Added units_per_EM
- processing.
- (parse_font_bbox): Changed to use FT_Fixed number handling.
-
- * src/type1/t1objs.c (T1_Init_Face): Changed the assignment code
- for ascender, descender, and max_advance_width.
- * src/type1/t1load.c (parse_font_bbox): Changed to use FT_Fixed
- number handling.
-
-2001-03-10 Henrik Grubbström <[email protected]>
-
- * src/*/*.c: Added many casts to make code more 64bit-safe.
-
-2001-03-07 Werner Lemberg <[email protected]>
-
- * INSTALL, docs/BUILD: We need GNU make 3.78 or newer.
-
-2001-03-07 Tom Kacvinsky <[email protected]>
-
- * src/type1/t1objs.c (T1_Init_Face): Minor correction: We must wait
- until parse_font_bbox is changed before we use logical shift rights
- in the assignments of `root->ascender', `root->descender', and
- `root->max_advance_width'.
-
- (T1_Done_Face): Free `char_name' table to avoid a memory leak.
- Submitted by Sander van der Wal <[email protected]>.
-
-2001-03-05 Tom Kacvinsky <[email protected]>
-
- * src/cff/cffgload.c (CFF_Load_Glyph): Set glyph control data to the
- the Type 2 glyph charstring (used by conversion programs).
- Submitted by Ha Shao <[email protected]>.
-
-2001-03-04 Antoine Leca <[email protected]>
-
- * include/freetype/ttnameid.h: Correct a stupid typo which prevented
- correct compilation (TT_MS_LANGID_TIGRIGNA_ETHIOPIA appeared twice).
-
-2001-03-04 Werner Lemberg <[email protected]>
-
- * src/autohint/ahtypes.h (AH_Hinter): Add elements
- `disable_horz_edges', `disable_vert_edges'.
- * src/autohint/ahhint.c (ah_hint_edges_3, ah_hinter_hint_edges): Use
- them (and remove static variables with the same names).
- * src/pcf/pcfutil.c (BitOrderInvert): Add `const'.
- * docs/glnames.py: Updated to latest pstables.h changes.
-
- * builds/unix/detect.mk: Add test for Hurd.
- * builds/hurd/detect.mk: Removed.
-
-2001-03-04 Sander van der Wal <[email protected]>
-
- * src/psnames/pstables.h: Add more `const'.
- * src/pcf/pcfutil.c: Ditto.
-
-2001-03-04 Werner Lemberg <[email protected]>
-
- * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixing typo
- (FT_Glyph_Done -> FT_Done_Glyph).
-
-2001-03-01 Antoine Leca <[email protected]>
-
- * include/freetype/ttnameid.h: Added some new Microsoft language
- codes and LCIDs as found in Office Xp.
-
-2001-02-28 David Turner <[email protected]>
-
- * builds/hurd/detect.mk: New file. Added support to detect the GNU
- Hurd operating system as Unix-like. Fix submitted by Anthony Fok
- <[email protected]>.
-
- * src/type1/t1gload.c (T1_Load_Glyph): Set glyph control data to the
- the Type 1 glyph charstring (used by conversion programs).
- Submitted by Ha Shao <[email protected]>.
-
-2001-02-22 David Turner <[email protected]>
-
- * src/base/ftgrays.c (grays_sweep): The function didn't exit
- immediately if `num_cells' was 0 as it should. Thanks to Boris for
- finding this out.
-
- * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixed memory leak when
- bitmap rendering fails (thanks to Graham Asher).
-
-2001-02-13 Werner Lemberg <[email protected]>
-
- * docs/docmaker.py (DocSection::add_element): Use
- `self.print_error()'.
-
- * builds/unix/config.{guess,sub}: Updated (from ftp.gnu.org).
-
-2001-02-13 David Turner <[email protected]>
-
- * docs/docmaker.py, include/freetype/*.h: Updated the DocMaker
- script to support chapters and section block ordering. Updated the
- public header files accordingly.
-
- * src/base/ftglyph.c (FT_Glyph_Copy): Advance width and glyph format
- were not correctly copied.
-
-2001-02-08 Tom Kacvinsky <[email protected]>
-
- * src/cff/cffparse.c (cff_parse_font_matrix): Removed an
- unnecessary fprintf( stderr, ... ).
-
-2001-02-07 Tom Kacvinsky <[email protected]>
-
- * src/type1/t1objs.c (T1_Init_Face): Added code to get the
- units_per_EM from the value assigned in parse_font_matrix, if
- available. Default to 1000 if not available.
-
- * src/cff/cffparse.c (cff_parse_font_matrix): Added logic to get
- the units_per_EM from the FontMatrix.
-
- (cff_parse_fixed_thousand): New function. Gets a real number from
- the CFF font, but multiplies by 1000 (this is to avoid rounding
- errors when placing this real number into a 16.16 fixed number).
-
- (cff_parse_real): Added code so that the integer part is moved
- into the high sixteen bits of the 16.16 fixed number.
-
- * src/cff/cffobjs.c (CFF_Init_Face): Added logic to get the units
- per EM from the CFF dictionary, if available.
-
- * include/freetype/internal/cfftypes.h: In struct CFF_Font_Dict_,
- added a units_per_em member to facilitate passing of units_per_em
- from function cff_parse_font_matrix.
-
- * src/type1/t1load.c (is_alpha): Make `-' a legal alphanumeric
- character. This is so that font names with `-' are fully parsed,
- etc...
-
-2001-02-02 Werner Lemberg <[email protected]>
-
- * src/psaux/psobjs.c (shift_elements): Remove if clause (which is
- obsolete now).
-
- (reallocate_t1_table, PS_Table_Done): Replace REALLOC() with ALLOC()
- + MEM_Copy() to avoid a memory bug.
-
-2001-02-01 David Turner <[email protected]>
-
- * docs/docmaker.py: Improved the index sorting routine to place
- capital letters before small ones. Added the `<order>' marker to
- section blocks in order to give the order of blocks.
-
-2001-01-30 Antoine Leca <[email protected]>
-
- * include/freetype/ttnameid.h: Latest updates to Microsoft language
- ID codes.
-
-2001-01-24 Tom Kacvinsky <[email protected]>
-
- * src/cff/t1load.c (parse_font_matrix): Added heuristic to get
- units_per_EM from the font matrix.
-
- (parse_dict): Deleted test to see whether the FontInfo keyword has
- been seen. Deletion of this test allows fonts without FontInfo
- dictionaries to be parsed by the Type 1 driver.
-
- (T1_Open_Face): Deleted empty subroutines array test to make sure
- fonts with no subroutines still are parsed.
-
-2001-01-17 Francesco Zappa Nardelli <[email protected]>
-
- * src/pcfread.c (pcf_get_properties, pcf_get_metrics,
- pcf_get_bitmaps): Fix compiler errors.
-
-2001-01-11 David Turner <[email protected]>
-
- * src/pcf/pcfread.c: Removed some compilation warnings related
- to comparison of signed vs. unsigned integers.
-
- * include/freetype/internal/ftdebug.h: Changed the debug trace
- constants from trace_t2xxxx to trace_cffxxxx to be able to compile
- the CFF driver in debug mode.
-
-2001-01-11 Matthew Crosby <[email protected]>
-
- * builds/unix/freetype-config.in: Fix problems with separate
- --prefix and --exec-prefix.
-
-2001-01-11 David Turner <[email protected]>
-
- * docs/docmaker.py: Added cross-references generation as well as
- more robust handling of pathname wildcard matching.
-
-2001-01-10 Werner Lemberg <[email protected]>
-
- * docs/docmaker.py: Minor improvements to reduce unwanted spaces
- and empty lines in output.
-
-2001-01-09 David Turner <[email protected]>
-
- * docs/docmaker.py: Improved script to generate table of contents
- and index pages. It also supports wildcards on non Unix systems.
-
- * include/freetype/*.h, include/freetype/cache/*.h: Updated comments
- to include section definitions/delimitations for the API Reference
- generator.
-
- * include/freetype/freetype.h: Moved declaration of
- `FT_Generic_Finalizer' and the `FT_Generic' structure to...
- * include/freetype/fttypes.h: here.
-
-2001-01-04 Werner Lemberg <[email protected]>
-
- * include/freetype/ttnameid.h: Updated Unicode code range comments.
-
-2001-01-03 Tom Kacvinsky <[email protected]>
-
- * src/cff/rules.mk: Use cffgload.{c,h} instead of t2gload.{c,h}.
-
- * include/freetype/internal/internal.h: Changed to use cfftypes.h
- (cfferrs.h) instead of t2types.h (t2errors.h, respectively).
-
- * include/freetype/internal/cfftypes.h: Merged in changes from
- t2types.h and made this the canonical `types' header for the CFF
- driver.
-
- * include/freetype/internal/t2types.h: This file was merged with
- cfftypes.h and is no longer necessary.
-
- * include/freetype/internal/t2errors.h: Renamed to cfferrs.h.
-
- * src/cff/cffobjs.c, src/cff/cffobjs.h, src/cff/cffparse.c,
- src/cff/cffdrivr.c, src/cff/cff.c, src/cff/cffload.c,
- src/cff/cffgload.c, src/cff/cffgload.h: Changed to use
- cffgload.{c,h} instead of t2gload.{c,h}. All occurrences of t2_
- (T2_) were replaced with cff_ (CFF_, respectively).
-
- * src/cff/t2gload.h: Renamed cffgload.h.
-
- * src/cff/t2gload.c: Renamed cffgload.c
-
-2000-01-02 Jouk Jansen <[email protected]>
-
- * builds/vms: Support files for VMS architecture added.
- * descrip.mms, src/*/descrip.mms: VMS makefiles added.
- * README.VMS: New file.
-
-2000-01-01 Werner Lemberg <[email protected]>
-
- * LICENSE.TXT: Added info about PCF driver license.
-
-2001-01-01 Francesco Zappa Nardelli <[email protected]>
-
- * src/pcf/*: New driver module for PCF font format (used in
- X Window System).
- * include/freetype/internal/ftdebug.h (FT_Trace): Added values for
- PCF driver.
- * include/freetype/internal/pcftypes.h: New file.
- * include/freetype/config/ftmodule.h: Added PCF driver module.
-
-2001-01-01 Werner Lemberg <[email protected]>
-
- * src/winfonts/winfnt.c (FNT_Get_Char_Index): Fix parameter type.
-
-2000-12-31 Werner Lemberg <[email protected]>
-
- * builds/modules.mk (clean_module_list): Fixed deletion of module
- file in case `make make_module_list' is called before `make setup'.
-
-2000-12-30 Werner Lemberg <[email protected]>
-
- * src/cff/cffload.c (CFF_Load_Charset): Improved error messages.
- (CFF_Load_Charset, CFF_Load_Encoding): Remove unnecessary variable
- definition.
-
-2000-12-30 Tom Kacvinsky <[email protected]>
-
- * include/freetype/internal/t2types.h,
- include/freetype/internal/cfftypes.h: Changed the structures for
- CFF_Encoding and CFF_Encoding for the new implementations of the
- charset and encoding parsers in the CFF driver.
-
- * src/cff/t2gload.c (t2_lookup_glyph_by_stdcharcode,
- t2_operator_seac): Added these functions for use in implementing the
- seac emulation provided by the Type 2 endchar operator.
- (T2_Parse_CharStrings): Added seac emulation for the endchar
- operator.
-
- * src/cff/cffload.c (CFF_Load_Encoding, CFF_Load_Charset,
- CFF_Done_Encoding, CFF_Done_Charset): Extended to load and parse the
- charset/encoding tables, and free the memory used by them when the
- CFF driver is finished with them. Added tables
-
- cff_isoadobe_charset
- cff_expert_charset
- cff_expertsubset_charset
- cff_standard_encoding
- cff_expert_encoding
-
- so that the encoding/charset parser can handle predefined encodings and
- charsets.
-
-2000-12-24 Tom Kacvinsky <[email protected]>
-
- * src/cff/t2gload.c (T2_Load_Glyph): Added code so that the font
- transform is applied.
-
- * src/cff/cffparse.c (cff_parse_font_matrix): Added code so that
- the font matrix numbers are scaled by 1/(matrix->yy). Also, the
- offset vector now contains integer values instead of 16.16 fixed
- numbers.
-
-2000-12-22 Tom Kacvinsky <[email protected]>
-
- * src/autohint/ahhint.c (ah_hinter_load_glyph):
- Removed unnecessary comments and commented-out code.
-
-2000-12-21 David Turner <[email protected]>
-
- * src/cid/cidafm.c, src/cid/cidafm.h: removed un-needed files,
- we'll work on supporting CID AFM files later I guess :-)
-
-2000-12-21 Tom Kacvinsky <[email protected]>
-
- * src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph):
- Changed so that fonts with a non-standard FontMatrix render
- correctly. Previously, the first glyph rendered from such a
- font did not have the transformation matrix applied.
-
-2000-12-17 Werner Lemberg <[email protected]>
-
- * *.mk: Added lots of `.PHONY' targets.
-
-2000-12-17 Karsten Fleischer <[email protected]>
-
- * *.mk: Implemented `platform' target to disable auto-detection.
-
-2000-12-14 Werner Lemberg <[email protected]>
-
- * docs/design/modules.html: Removed. Covered by design-*.html.
-
- * INSTALL: Added info about makepp.
-
-2000-12-14 David Turner <[email protected]>
-
- Added support for clipped direct rendering in the smooth renderer.
- This should not break binary compatibility of existing applications.
-
- * include/freetype/fttypes.h, include/freetype/ftimage.h: Move
- definition of the FT_BBox structure from the former to the latter.
- * include/freetype/ftimage.h: Add `ft_raster_flag_clip' value to
- FT_Raster_Flag enumeration.
- Add `clip_box' element to FT_Raster_Params structure.
- * src/smooth/ftgrays.c (grays_convert_glyph): Implement it.
-
- * INSTALL: Updated installation instructions on Win32, listing the
- new `make setup list' target used to list supported
- compilers/targets.
-
- * src/raster/ftraster.c (ft_black_render): Test for unsupported
- direct rendering before testing arguments.
-
-2000-12-13 David Turner <[email protected]>
-
- * include/freetype/config/ft2build.h,
- include/freetype/internal/internal.h: Fixed header inclusion macros
- to use direct definitions. This is the only way to do these things
- in a portable way :-( The rest of the code should follow shortly
- though everything compiles now.
-
- * builds/compiler/intelc.mk, builds/compiler/watcom.mk: New files.
-
- * builds/win32/detect.mk: Added support for the Intel C/C++
- compiler, as well as _preliminary_ (read: doesn't work!) support for
- Watcom. Also added a new setup target. Type `make setup list' for
- a list of supported command-line compilers on Win32.
-
- * src/base/ftdebug.c: Added dummy symbol to avoid empty file if
- conditionals are off.
-
-2000-12-13 Werner Lemberg <[email protected]>
-
- * builds/unix/ftsystem.c: Fixed typos. Fixed inclusion of wrong
- ftconfig.h file.
-
-2000-12-12 Werner Lemberg <[email protected]>
-
- * include/freetype/config/ft2build.h (FT2_ROOT, FT2_CONFIG_ROOT):
- Removed. ANSI C doesn't (explicitly) allow macro expansion in
- arguments using `##'.
- (FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE): Use directory
- names directly. Make them configurable. Use `##' to strip leading
- and trailing spaces from arguments.
-
- * builds/unix/ft2unix.h: Adapted.
-
- * src/base/ftsystem.c (ft_alloc, ft_realloc, ft_free, ft_io_stream,
- ft_close_stream): Use FT_CALLBACK_DEF.
-
- * builds/unix/ftsystem.c: Use new header scheme.
- (FT_Done_Memory): Use free() from FT_Memory structure.
-
- * src/base/ftinit.c, src/base/ftmac.c: Header scheme fixes.
-
-2000-12-11 Werner Lemberg <[email protected]>
-
- * include/freetype/config/ft2build.h (FT2_CONFIG_ROOT,
- FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE,
- FT_SOURCE_FILE): Use `##' operator to be really ANSI C compliant.
-
-2000-12-09 Werner Lemberg <[email protected]>
-
- * builds/unix/detect.mk: Remove unused USE_CFLAGS variable.
-
-2000-12-08 Werner Lemberg <[email protected]>
-
- * */*.h: Changed body inclusion macro names to start and end with
- `__' (those which haven't converted yet). Fixed minor conversion
- issues.
-
- * src/winfonts/winfnt.c: Updated to new header inclusion scheme.
-
- * src/truetype/ttinterp.c: Remove unused CALC_Length() macro.
-
-2000-12-07 David Turner <[email protected]>
-
- * */*.[ch]: Changed source files to adhere to the new
- header inclusion scheme. Not completely tested but works for now
- here.
-
- * src/cff/t2driver.c: Renamed and updated to...
- * src/cff/cffdrivr.c: New file.
- * src/cff/t2driver.h: Renamed and updated to...
- * src/cff/cffdrivr.h: New file.
- * src/cff/t2load.c: Renamed and updated to...
- * src/cff/cffload.c: New file.
- * src/cff/t2load.h: Renamed and updated to...
- * src/cff/cffload.h: New file.
- * src/cff/t2objs.c: Renamed and updated to...
- * src/cff/cffobjs.c: New file.
- * src/cff/t2objs.h: Renamed and updated to...
- * src/cff/cffobjs.h: New file.
- * src/cff/t2parse.c: Renamed and updated to...
- * src/cff/cffparse.c: New file.
- * src/cff/t2parse.h: Renamed and updated to...
- * src/cff/cffparse.h: New file.
- * src/cff/t2tokens.h: Renamed and updated to...
- * src/cff/cfftoken.h: New file.
-
- * src/cff/cff.c, src/cff/rules.mk: Updated.
-
-2000-12-06 David Turner <[email protected]>
-
- * src/cache/ftlru.c (FT_Lru_Done): Fixed memory leak.
-
-2000-12-06 Werner Lemberg <[email protected]>
-
- * builds/module.mk: Replaced `xxx #' with `xxx$(space).
- * builds/os2/detekt.mk, builds/win32/detekt.mk: Moved comment to
- avoid trailing spaces in variable.
- * builds/freetype.mk: Use $(D) instead of $D to make statement more
- readable.
-
- * docs/docmaker.py: Formatting.
-
-2000-12-05 David Turner <[email protected]>
-
- * src/psaux/psauxmod.c: Fixed a broken inclusion of component
- header files (an FT_FLAT_COMPILE test was missing).
-
- * src/cache/ftcmanag.c (FTC_Manager_Done): Fixed a bug that caused
- an occasional crash when the function was called (due to a dangling
- pointer).
-
- * src/base/ftsystem.c (FT_Done_Memory): Fixed an obvious bug:
- The ANSI `free()' function was called instead of `memory->free()'.
-
- * docs/docmaker.py: Added section filtering, multi-page generation
- (index page generation is still missing though).
-
-2000-12-04 David Turner <[email protected]>
-
- * builds/unix/install.mk, builds/unix/ft2unix.h: The file `ft2unix.h'
- is now installed as <ft2build.h> for Unix systems. Note that we
- still use the `freetype2/freetype' installation path for now.
-
- * */*.[ch]: Now using <ft2build.h> as the default build and setup
- configuration file in all public headers. Internal source files
- still need some changes though.
-
- * builds/devel/ft2build.h, builds/devel/ftoption.h: Created a new
- directory to hold all development options for both the Unix and
- Win32 developer builds.
-
- * builds/win32/detect.mk, builds/win32/w32-bccd.mk,
- builds/win32/w32-dev.mk: Changed the developer build targets to
- `devel-gcc' and `devel-bcc' in order to be able to develop with the
- Borland C++ compiler.
-
-2000-12-01 David Turner <[email protected]>
-
-
- * Version 2.0.1 released.
- =========================
-
-
- * builds/unix/configure.in, builds/unix/configure,
- builds/cygwin/configure.in, builds/cygwin/configure: Setting
- `version_info' to 6:1:0 for the 2.0.1 release.
-
- * CHANGES: Added a summary of changes between 2.0.1 and 2.0.
-
- * builds/unix/ftconfig.in, builds/cygwin/ftconfig.in: Changes
- to allow compilation under Unix with the Unix-specific config
- files.
-
-2000-12-01 Werner Lemberg <[email protected]>
-
- * INSTALL: Revised.
- * builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk,
- builds/compiler/bcc.mk, builds/win32/w32-bcc.mk,
- builds/win32/w32-bccd.mk: Revised.
- * include/freetype/config/ftbuild.h,
- include/freetype/internal/internal.h: Revised.
- * include/freetype/ftimage.h: Updated to new header inclusion scheme.
-
-2000-11-30 Werner Lemberg <[email protected]>
-
- * builds/toplevel.mk (.PHONY): Adding `distclean'.
- * builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
- `setup'.
-
-2000-11-30 David Turner <[email protected]>
-
- * INSTALL: Slightly updated the quick starter documentation to
- include IDE compilation, prevent against BSD Make, and specify `make
- setup' instead of a single `make' for build configuration.
-
- * include/config/ftbuild.h, include/internal/internal.h: Added new
- configuration files used to determine the location of all public,
- configuration, and internal header files for FreeType 2. Modified
- all headers under `include/freetype' to reflect this change. Note
- that we still need to change the library source files themselves
- though.
-
- * builds/compiler/bcc.mk, builds/compiler/bcc-dev.mk,
- builds/win32/w32-bcc.mk, builds/win32/w32-bccd.mk,
- builds/win32/detect.mk: Added new files to support compilation with
- the free Borland C++ command-line compiler. Modified the detection
- rules to recognize the new `bcc32' target in `make setup bcc32'.
-
- * src/sfnt/ttcmap.c, src/sfnt/ttpost.c, src/sfnt/ttsbit.c,
- src/truetype/ttobjs.c, src/truetype/ttgload.c,
- src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++
- didn't really like. Basically, this compiler complains when FT_UInt
- is compared to FT_UShort (apparently, it promotes `UShort' to `Int'
- in these cases).
-
-2000-11-30 Tom Kacvinsky <[email protected]>
-
- * t2objs.c (T2_Init_Face): Added calculation of `face->height' for
- pure CFF fonts.
-
- * t1objs.c (T1_Init_Face): Fixed computation of `face->height'.
-
-2000-11-29 David Turner <[email protected]>
-
- * src/base/ftbbox.c (BBox_Conic_Check): Fixed a really stupid
- bug in the formula used to compute the conic Bézier extrema
- of non-monotonous arcs.
-
-2000-11-29 Werner Lemberg <[email protected]>
-
- * src/base/ftcalc.c (FT_SqrtFixed), src/base/ftobjs.c
- (FT_Set_Renderer): Use FT_EXPORT_DEF.
- * src/cache/ftcimage.c (FTC_Image_Cache_Lookup),
- src/cache/ftcmanag.c (FTC_Manager_Done, FTC_Manager_Reset,
- FTC_Manager_Lookup_Face, FTC_Manager_Lookup_Size,
- FTC_Manager_Register_Cache), src/cache/ftcsbits.c
- (FTC_SBit_Cache_Lookup): Ditto.
-
- * src/include/freetype/cache/ftcglyph.h (FTC_GlyphNode_Init),
- src/include/freetype/ftmac.h (FT_New_Face_From_FOND): Use FT_EXPORT.
-
-2000-11-29 Werner Lemberg <[email protected]>
-
- * src/sfnt/sfdriver.c: Include ttsbit.h and ttpost.h only
- conditionally.
-
- * src/truetype/ttdriver.c (Set_Char_Sizes, Set_Pixel_Sizes): Set
- `size->strike_index' only conditionally.
-
- * src/type1/t1driver.c, src/type1/t1objs.c: Include t1afm.h only
- conditionally.
-
- * src/winfonts/winfnt.h: Move all type definitions to...
- * src/include/freetype/internal/fnttypes.h: New file.
- * src/winfonts/winfnt.c: Use it.
-
-2000-11-29 ??? ??? <[email protected]>
-
- * include/freetype/internal/ftdebug.h: Replaced FT_CAT and FT_XCAT
- with a direct solution (which also satisfies picky compilers).
-
-2000-11-28 YAMANO-UCHI Hidetoshi <[email protected]>
-
- * src/truetype/ttobjs.c (TT_Init_Size): Fix #ifdef's to work with
- disabled interpreter also.
-
- * src/base/ftnames.c (FT_Get_Sfnt_Name_Count): Fix incorrect
- parentheses.
-
-2000-11-26 Tom Kacvinsky <[email protected]>
-
- * src/cff/t2gload.c (T2_Parse_CharStrings): Added logic to glyph
- width setting code to take into account even/odd argument counts
- and glyph width operand before endchar/hmoveto/vmoveto.
-
-2000-11-26 Werner Lemberg <[email protected]>
-
- * builds/ansi/ansi.mk: Fix inclusion order of files.
-
-2000-11-26 Keith Packard <[email protected]>
-
- * src/type1/t1objs.c (T1_Init_Face): Compute style flags.
-
-2000-11-26 Werner Lemberg <[email protected]>
-
- * builds/compiler/ansi-cc.mk (CLEAN_LIBRARY): Fix rule and
- conditional.
-
-2000-11-23 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.c (parse_subrs, parse_charstrings): Use decrypt
- function from PSAux module.
-
- * src/type1/t1parse.c (T1_Done_Parse): Renamed to...
- (T1_Finalize_Parser): New function (to avoid name clash with a
- function in the PSAux module).
- (T1_Decrypt): Removed since it is duplicated in the PSAux module.
- (T1_Get_Private_Dict): Added `psaux' as new parameter; use decrypt
- function from PSAux module.
-
- * src/type1/t1parse.h: Adapted.
-
-2000-11-22 Tom Kacvinsky <[email protected]>
-
- * src/cff/t2objs.c (T2_Init_Face): For pure CFF fonts, set
- `root->num_faces' to `cff->num_faces' and set `units_per_EM'
- to 1000.
-
- * src/cff/t2parse.c (parse_t2_real): Fixed real number parsing
- loop.
-
- * src/cff/t2load.c (T2_Get_String): Called T2_Get_Name with a
- sid that was off by one.
-
-2000-11-16 David Turner <[email protected]>
-
- * src/autohint/ahtypes.h (AH_Hinter): Added new fields to control
- auto-hinting of synthetic Type 1 fonts.
-
- * src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph):
- Added auto-hinting support of synthetic Type 1 fonts.
-
-2000-11-12 Tom Kacvinsky <[email protected]>
-
- * src/sfnt/ttload.c (TT_LookUp_Table, TT_Load_Generic_Table): Change
- tracing output.
-
- * src/sfnt/sfobjs.c (SFNT_Load_Face): Set boolean variable
- `has-outline' to true only if the font has a `glyf' or `CFF ' table.
-
-2000-11-11 Werner Lemberg <[email protected]>
-
- * builds/win32/visualc/freetype.dsp: Fix raster1->raster and
- type1z->type1.
-
-2000-11-11 Tom Kacvinsky <[email protected]>
-
- * builds/unix/freetype-config.in, builds/cygwin/freetype-config.in:
- Added a --libtool option. When freetype-config --libtool is
- invoked, the absolute path to the libtool convenience library
- is returned.
-
-2000-11-11 Werner Lemberg <[email protected]>
-
- * builds/cygwin/cygwin-def.in: Same fix as previous.
-
-2000-11-10 Tom Kacvinsky <[email protected]>
-
- * builds/unix/unix-def.in: Add
-
- INSTALL_PROGRAM := @INSTALL_PROGRAM@
- INSTALL_SCRIPT := @INSTALL_SCRIPT@
-
- so that installation of freetype-config does not fail.
-
-2000-11-10 Werner Lemberg <[email protected]>
-
- * builds/cygwin/freetype-config.in, builds/unix/freetype-config.in:
- Move test down for empty --exec-prefix.
- Fix --version.
-
- * builds/cygwin/install.mk, builds/unix/install.mk: Use
- $(INSTALL_SCRIPT) for installation of freetype-config.
-
- * builds/cygwin/install.mk: Fix clean target names.
-
-2000-11-09 David Turner <[email protected]>
-
-
- * Version 2.0 released.
- =======================
-
-----------------------------------------------------------------------------
-
-Copyright 2000, 2001, 2002, 2007 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.
-
-
-Local Variables:
-version-control: never
-coding: utf-8
-End:
+2002-02-09 Werner Lemberg <[email protected]> + + * README: Fix typo. + * docs/CHANGES: Minor fixes. + + + * Version 2.0.8 released. + ========================= + + +2002-02-08 David Turner <[email protected]> + + * docs/CHANGES: Updating for 2.0.8. + + * include/freetype/freetype.h: Setting `PATCH_LEVEL' to 8 and + removing `FT_Get_Next_Char' from the API (temporarily). + + * include/freetype/freetype.h: Adding comments to FT_Get_Next_Char; + note that this function might temporarily be removed for the 2.0.8 + release. + +2002-02-07 David Turner <[email protected]> + + * src/pcf/pcfread.c (pcf_load_font): Removed immature support of + the AVERAGE_WIDTH property. + +2002-02-06 David Turner <[email protected]> + + * src/sfnt/sfobjs.c (SFNT_Load_Face): Since many fonts embedded in + PDF documents do not include 'cmap', 'post' and 'name' tables, the + SFNT face loader has been changed to not immediately report an + error if these are not present. + + Note that the specification _requires_ these tables, but Adobe + seems to ignore it completely. + + * src/sfnt/ttcmap.c: Removing compiler warnings. + + * src/pcf/pcfread.c (pcf_read_TOC): Use FT_UInt. + (pcf_parse_metric, pcf_parse_compressed_metric): Removed. Code + is now in ... + (pcf_get_metric): Here. + (pcfSeekToType): Renamed to ... + (pcf_seek_to_table_type): This. + Use FT_Int. + (pcfHasType): Renamed to ... + (pcf_has_table_type): This. + Use FT_Int. + (find_property): Renamed to ... + (pcf_find_property): This. + Use FT_Int. + (pcf_get_bitmaps, pcf_get_encodings): Handle invalid PCF fonts + better (delaying format checks out of FT_Access_Frame .. + FT_Forget_Frame blocks to avoid leaving the stream in an incorrect + state when encountering an invalid PCF font). + + * src/pcf/pcfdriver.c (PCF_Done_Face): Renamed to ... + (PCF_Face_Done): This. + (PCF_Init_Face): Renamed to ... + (PCF_Face_Init): This. + (PCF_Get_Char_Index): Renamed to ... + (PCF_Char_Get_Index): This. + (PCF_Get_Next_Char): Renamed to ... + (PCF_Char_Get_Next): This. + (pcf_driver_class): Updated. + + * src/pcf/pcf.h (PCF_Done_Face): Removed. + +2002-02-06 Detlef Würkner <[email protected]> + + * src/pcf/pcfdriver.c (FT_Done_Face): Fixed small memory leak. + + * src/pcf/pcfread.c (pcf_load_font): Now handles the `AVERAGE_WIDTH' + property to return correct character pixel (width/height) pairs for + embedded bitmaps. + +2002-02-04 Keith Packard <[email protected]> + + Adding the function `FT_Get_Next_Char', doing the obvious thing + w.r.t. the selected charmap. + + * include/freetype/freetype.h: Add prototype. + * include/freetype/internal/ftdriver.h: Add `FTDriver_getNextChar' + typedef. + (FT_Driver_Class): Use it. + * include/freetype/internal/psnames.h: Add `PS_Next_Unicode_Func' + typedef. + (PSNames_Interface): Use it. + * include/freetype/internal/tttypes.h: Add `TT_CharNext_Func' + typedef. + (TT_CMapTable): Use it. + + * src/base/ftobjs.c (FT_Get_Next_Char): New function, implementing + high-level API. + * src/cff/cffdrivr.c (cff_get_next_char): New function. + (cff_driver_class): Add it. + * src/cid/cidriver.c (Cid_Get_Next_Char): New function. + (t1cid_driver_class): Add it. + * src/pcf/pcfdriver.c (PCF_Get_Next_Char): New function. + (pcf_driver_class): Add it. + * src/psnames/psmodule.c (PS_Next_Unicode): New function. + (psnames_interface): Add it. + * src/sfnt/ttcmap.c (code_to_next0, code_to_next2, code_to_next4, + code_to_next6, code_to_next_8_12, code_to_next_10): New auxiliary + functions. + (TT_CharMap_Load): Use them. + * src/truetype/ttdriver.c (Get_Next_Char): New function. + (tt_driver_class): Add it. + * src/type1/t1driver.c (Get_Next_Char): New function. + (t1_driver_class): Add it. + * src/winfonts/winfnt.c (FNT_Get_Next_Char): New function. + (winfnt_driver_class): Add it. + + * src/pcf/pcfread.c (pcf_load_font): For now, report Unicode for + Unicode and Latin 1 encodings. + +2002-02-02 Keith Packard <[email protected]> + + * builds/unix/freetype-config.in: Add missing `fi'. + + + * Version 2.0.7 released. + ========================= + + +2002-02-01 David Turner <[email protected]> + + * include/freetype/freetype.h: Increasing FREETYPE_PATCH to 7 + for the new release. + +2002-01-31 David Turner <[email protected]> + + * README, README.UNX, docs/CHANGES: Updating documentation for the + 2.0.7 release. + +2002-01-30 David Turner <[email protected]> + + * INSTALL: Moved to ... + * docs/INSTALL: Here to avoid conflicts with the `install' script on + Windows, where the filesystem doesn't preserve case. + +2002-01-29 David Turner <[email protected]> + + * configure: Fixed the script. It previously didn't accept more + than one argument correctly. For example, when typing: + + ./configure --disable-shared --disable-nls + + the `--disable-nls' was incorrectly sent to the `make' program. + +2002-01-29 Werner Lemberg <[email protected]> + + * README.UNX: Fix typo. + * builds/unix/install.mk (uninstall): Fix library name for libtool. + +2002-01-28 Francesco Zappa Nardelli <[email protected]> + + * src/pcf/pcfdriver.c (PCF_Done_Face): Fix incorrect destruction of + the face object (face->toc.tables, face->root.family_name, + face->root.available_size, face->charset_encoding, + face->charset_registry are now freed). Thanks to Niels Moseley. + +2002-01-28 Roberto Alameda <[email protected]> + + * src/type1/t1load.c (parse_encoding): Set `loader->num_chars'. + +2002-01-28 Werner Lemberg <[email protected]> + + * src/type1/t1load.c (parse_subrs, parse_charstrings): Use copy + of `base' string for decrypting to not modify the original data. + Based on a patch by Jakub Bogusz <[email protected]>. + +2002-01-27 Giuliano Pochini <[email protected]> + + * src/smooth/ftgrays.c (gray_render_scanline): Fix bug which caused + bad rendering of thin lines (less than one pixel thick). + +2002-01-25 Werner Lemberg <[email protected]> + + * src/cff/cffdrivr.c (cff_get_name_index): Make last patch work + actually. + +2002-01-25 Martin Zinser <[email protected]> + + * src/cache/ftccache.c (ftc_node_done, ftc_node_destroy): Fix + compilation warnings. + * src/base/descrip.mms (OBJS): Add `ftmm.obj'. + * src/cache/descrip.mms (ftcache.obj): Dependencies added. + +2002-01-25 WANG Yi <[email protected]> + + * src/cff/cffdrivr.c (cff_get_name_index): Fix deallocation bug. + +2002-01-21 Antoine Leca <[email protected]> + + * docs/PATENTS: Typo fixed (thanks to Detlef `Hawkeye' Würkner) in + the URL for the online resource. + +2002-01-18 Ian Brown <[email protected]> + + * builds/win32/ftdebug.c: New file. + * builds/win32/visualc/freetype.dsp: Updated. + +2002-01-18 Detlef Würkner <[email protected]> + + * builds/amiga/src/base/ftsystem.c: Updated for AmigaOS 3.9. + * builds/amiga/README: Updated. + +2002-01-18 Ian Brown <[email protected]> + + * builds/win32/visualc/freetype.dsp: Updated. + +2002-01-13 Werner Lemberg <[email protected]> + + * builds/unix/freetype2.a4: The script was still buggy. + * builds/unix/freetype-config.in: Make it really work for any install + prefix. + +2002-01-10 Werner Lemberg <[email protected]> + + * builds/unix/freetype2.a4: Fix some serious bugs. + +2002-01-09 David Turner <[email protected]> + + * builds/unix/configure.ac: Build top-level Jamfile. + +2002-01-09 Maxim Shemanarev <[email protected]> + + * src/smooth/ftgrays.c (gray_render_line): Small optimization to + the smooth anti-aliased renderer that deals with vertical segments. + This results in a 5-7% speedup in rendering speed. + +2002-01-08 David Turner <[email protected]> + + Added some wrapper scripts to make the installation more + Unix-friendly. + + * configure, install: New files. + + * INSTALL, README.UNX: Updated installation documentation to use the + new 'configure' and 'install' scripts. + +2002-01-07 David Turner <[email protected]> + + + * Version 2.0.6 released. + ========================= + + + * docs/BUGS, docs/CHANGES: Updating documentation for 2.0.6 release. + + * src/tools/docmaker.py: Fixed HTML quoting in sources. + (html_format): Replaced with ... + (html_quote): New function. + (html_quote0): New function. + (DocCode::dump_html): Small improvement. + (DocParagraph::dump, DocBlock::html): Use html_quote0 and html_quote. + + * include/freetype/config/ftoption.h: Setting default options for + a release build (debugging off, bytecode interpreter off). + + * src/base/ftobjs.c, src/base/ftoutln.c, src/cache/ftccmap.c, + src/cff/cffload.c, src/cff/cffobjs.c, src/pshinter/pshalgo2.c, + src/sfnt/ttload.c, src/sfnt/ttsbit.c: Removing small compiler + warnings (in pedantic compilation modes). + +2002-01-05 David Turner <[email protected]> + + * src/autohint/ahhint.c (ah_align_linked_edge): Modified computation + of auto-hinted stem widths; this avoids color fringes in + `ClearType-like' rendering. + + * src/truetype/ttgload.c (TT_Load_Glyph_Header, + TT_Load_Simple_Glyph, TT_Load_Composite_Glyph, load_truetype_glyph): + Modified the TrueType loader to make it more paranoid; this avoids + nasty buffer overflows in the case of invalid glyph data (as + encountered in the output of some buggy font converters). + +2002-01-04 David Turner <[email protected]> + + * README.UNX: Added special README file for Unix users. + + * builds/unix/ftsystem.c (FT_New_Stream): Fixed typo. + + * src/base/ftobjs.c: Added #include FT_OUTLINE_H to get rid + of compiler warnings. + + * src/base/ftoutln.c (FT_Outline_Check): Remove compiler warning. + +2002-01-03 Werner Lemberg <[email protected]> + + * src/type1/t1objs.c (T1_Face_Init): Add cast to avoid compiler + warning. + +2002-01-03 Keith Packard <[email protected]> + + * builds/unix/ftsystem.c (FT_New_Stream): Added a fix to ensure that + all FreeType input streams are closed in child processes of a `fork' + on Unix systems. This is important to avoid (potential) access + control issues. + +2002-01-03 David Turner <[email protected]> + + * src/type1/t1objs.c (T1_Face_Init): Fixed a bug that crashed the + library when dealing with certain weird fonts like `Stalingrad', in + `sadn.pfb' (this font has no full font name entry). + + * src/base/ftoutln.c, include/freetype/ftoutln.h (FT_Outline_Check): + New function to check the consistency of outline data. + + * src/base/ftobjs.c (FT_Load_Glyph): Use `FT_Outline_Check' to + ensure that loaded glyphs are valid. This allows certain fonts like + `tt1095m_.ttf' to be loaded even though it appears they contain + really funky glyphs. + + There still is a bug there, though. + + * src/truetype/ttgload.c (load_truetype_glyph): Fix error condition. + +2001-12-30 David Turner <[email protected]> + + * src/autohint/ahhint.c (ah_hinter_load): Fix advance width + computation of auto-hinted glyphs. This noticeably improves the + spacing of letters in KDE and Gnome. + +2001-12-25 Antoine Leca <[email protected]> + + * builds/dos/detect.mk: Correcting the order for Borland compilers: + 16-bit bcc was never selected, always overridden by 32-bit bcc32. + +2001-12-22 Francesco Zappa Nardelli <[email protected]> + + * src/pfc/pcfread.c (pcf_load_font): Handle property `POINT_SIZE' + and fix incorrect computation of `available_sizes'. + +2001-12-22 David Turner <[email protected]> + + * src/autohint/ahhint.c (ah_hinter_load): Auto-hinted glyphs had an + incorrect glyph advance in the case of mono-width fonts (like + Courier, Andale Mono, and others). + +2001-12-22 Detlef Würkner <[email protected]> + + * builds/amiga/*: Adaptations to latest changes. + Support added for MorphOS. + +2001-12-22 Werner Lemberg <[email protected]> + + * src/pshinter/pshrec.c (FT_COMPONENT): Redefine to `trace_pshrec'. + (ps_mask_table_merge, ps_hints_open, ps_hints_stem, + ps_hints_t1stem3, ps_hints_t2mask, ps_hints_t2counter): Fix + FT_ERROR messages. + * src/pshinter/pshalgo1.c (FT_COMPONENT): Define as + `trace_pshalgo1'. + * src/pshinter/pshalgo2.c (FT_COMPONENT): Define as + `trace_pshalgo2'. + * include/freetype/internal/ftdebug.h (FT_Trace): Updated. + + * docs/modules.txt: New file. + +2001-12-21 David Turner <[email protected]> + + * src/pshinter/pshrec.c (ps_hints_t2mask, ps_hints_t2counter): + Ignore invalid `hintmask' and `cntrmask' operators (instead of + returning an error). Glyph 2028 of the CFF font `MSung-Light-Acro' + couldn't be rendered otherwise (it seems its charstring is buggy, + though this requires more analysis). + (FT_COMPONENT): Define. + + * src/cff/cffgload.c (CFF_Parse_CharStrings), src/psaux/t1decode.c + (T1_Decoder_Parse_Charstrings), src/pshinter/pshalgo2.c (*), Fixed a + bug where the X and Y axis where inverted in the postscript hinter. + This caused problem when displaying on non-square surfaces. + + * src/pshinter/pshalgo2.c: s/vertical/dimension/. + + * src/pshinter/pshglob.c (psh_globals_new): Replaced a floating + point constant with a fixed-float equivalent. For some reasons not + all compilers are capable of directly computing a floating pointer + constant casted to FT_Fixed, and will link a math library instead. + +2001-12-20 Werner Lemberg <[email protected]> + + * src/cache/ftccache.c (ftc_node_destroy, ftc_cache_lookup): Fix + tracing strings. + * src/cache/ftccmap.c (ftc_cmap_family_init): Ditto. + * src/cache/ftcmanag.c (ftc_family_table_alloc, + ftc_family_table_free, FTC_Manager_Check): Ditto. + * src/cache/ftcsbits.c (ftc_sbit_node_load): Ditto. + + * src/base/ftobjs.c (FT_Done_Library): Remove compiler warning. + +2001-12-20 David Turner <[email protected]> + + Added PostScript hinter support to the CFF and CID drivers. + + * include/freetype/internal/cfftypes.h (CFF_Font): New member + `pshinter'. + * src/cff/cffload.c (CFF_Get_Standard_Encoding): New function. + * src/cff/cffload.h: Updated. + * src/cff/cffgload.c (CFF_Init_Builder): Renamed to ... + (CFF_Builder_Init): This. + Added new argument `hinting'. + (CFF_Done_Builder): Renamed to ... + (CFF_Builder_Done): This. + (CFF_Init_Decoder): Added new argument `hinting'. + (CFF_Parse_CharStrings): Implement vstem support. + (CFF_Load_Glyph): Updated. + Add hinting support. + (cff_lookup_glyph_by_stdcharcode): Use CFF_Get_Standard_Encoding(). + (cff_argument_counts): Updated. + * src/cff/cffgload.h: Updated. + * src/cff/cffobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H. + (CFF_Size_Get_Globals_Funcs, CFF_Size_Done, CFF_Size_Init, + CFF_Size_Reset, CFF_GlyphSlot_Done, CFF_GLyphSlot_Init): New + functions. + (CFF_Init_Face): Renamed to ... + (CFF_Face_Init): This. + Add hinter support. + (CFF_Done_Face): Renamed to ... + (CFF_Face_Done): This. + (CFF_Init_Driver): Renamed to ... + (CFF_Driver_Init): This. + (CFF_Done_Driver): Renamed to ... + (CFF_Driver_Done): This. + * src/cff/cffobjs.h: Updated. + * src/cff/cffdrivr.c (cff_driver_class): Updated. + + * include/freetype/internal/t1types.h (CID_FaceRec): New member + `pshinter'. + * src/cid/cidgload.c (CID_Load_Glyph): Add hinter support. + * src/cid/cidobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H. + (CID_GlyphSlot_Done, CID_GlyphSlot_Init, CID_Size_Get_Globals_Funcs, + CID_Size_Done, CID_Size_Init, CID_Size_Reset): New functions. + (CID_Done_Face): Renamed to ... + (CID_Face_Done): This. + (CID_Init_Face): Renamed to ... + (CID_Face_Init): This. + Add hinting support. + (CID_Init_Driver): Renamed to ... + (CID_Driver_Init): This. + (CID_Done_Driver): Renamed to ... + (CID_Driver_Done): This. + * src/cid/cidobjs.h: Updated. + * src/cidriver.c: Updated. + + * src/pshinter/pshrec.c (t2_hint_stems): Fixed. + + * src/base/ftobjs.c (FT_Done_Library): Fixed a stupid bug that + crashed the library on exit. + + * src/type1/t1gload.c (T1_Load_Glyph): Enable font matrix + transformation of hinted glyphs. + + * src/cid/cidload.c (cid_read_subrs): Fix error condition. + + * src/cid/cidobjs.c (CID_Face_Done): Fixed a memory leak; the subrs + routines were never released when CID faces were destroyed. + + * src/cff/cffload.h, src/cff/cffload.c, src/cff/cffgload.c: Updated + to move the definition of encoding tables back within `cffload.c' + instead of making them part of a shared header (causing problems in + `multi' builds). This reverts change 2001-08-08. + + * docs/CHANGES: Updated for 2.0.6 release. + * docs/TODO: Added `stem3 and counter hints support' to the TODO + list for the Postscript hinter. + * docs/BUGS: Closed the AUTOHINT-NO-SBITS bug. + +2001-12-19 David Turner <[email protected]> + + * include/freetype/cache/ftcache.h: Added comments to indicate that + some of the exported functions should only be used by applications + that need to implement custom cache types. + + * src/truetype/ttgload.c (cur_to_org, org_to_cur): Fixed a nasty bug + that prevented composites from loading correctly, due to missing + parentheses around macro parameters. + + * src/sfnt/sfobjs.c (SFNT_Load_Face): Make the `post' and `name' + tables optional to load PCL fonts properly. + + * src/truetype/ttgload.c (TT_Load_Glyph), src/base/ftobjs.c + (FT_Load_Glyph), include/freetype/freetype.h (FT_LOAD_SBITS_ONLY): + `Fixed' the bug that prevented embedded bitmaps to be loaded when + the auto-hinter is used. This actually is a hack but will be enough + until the internal re-design scheduled for FreeType 2.1. + + * src/raster/ftrend1.c (ft_raster1_render): Fixed a nasty outline + shifting bug in the monochrome renderer. + + * README: Updated version numbers to 2.0.6. + +2001-12-17 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c (load_truetype_glyph): Fix test for invalid + glyph header. + +2001-12-15 Werner Lemberg <[email protected]> + + * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove compiler warning. + * include/freetype/ftcache.h (FTC_Node_Unref): Removed. It is + already in ftcmanag.h. + * src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused variable + `gfam'. + * src/cache/ftcmanag.c (ftc_family_table_alloc, + * ftc_family_table_free): Use FT_EXPORT_DEF. + * include/freetype/cache/ftcmanag.h: Updated. + * src/cache/ftccache.c (ftc_node_destroy): Use FT_EXPORT_DEF. + * src/cache/ftccmap.c (ftc_cmap_node_init): Remove unused variable + `cfam'. + Remove compiler warning. + (FTC_CMapCache_Lookup): Remove compiler warnings. + (ftc_cmap_family_init): Ditto. + (FTC_CMapCache_Lookup): Ditto. + + * builds/unix/configure.ac: Increase `version_info' to 8:0:2. + * builds/unix/configure: Regenerated. + +2001-12-14 Werner Lemberg <[email protected]> + + * builds/mac/README: Updated. + +2001-12-14 Scott Long <[email protected]> + + * src/truetype/ttgload.c (load_truetype_glyph): Fixing crash when + dealing with invalid fonts (i.e. glyph size < 10 bytes). + +2001-12-14 Sam Latinga <[email protected]> + + * builds/mac/freetype.make: A new Makefile to build with MPW on + MacOS classic. + +2001-12-14 David Turner <[email protected]> + + * src/truetype/ttgload.c (TT_Load_Glyph), src/type1/t1gload.c + (T1_Load_Glyph), src/cid/cidgload.c (CID_Load_Glyph), + src/cff/cffgload.c (CFF_Load_Glyph): Fixed a serious bug common to + all font drivers (the advance width was never hinted when it + should). + + * include/freetype/freetype.h (FREETYPE_PATCH): New macro. + * src/base/ftdbgmem.c (debug_mem_dummy) [!FT_DEBUG_MEMORY]: Don't + use `extern' keyword. + +2001-12-12 David Turner <[email protected]> + + * src/pshinter/pshglob.c (psh_blues_scale_zones, psh_blues_snap_stem + psh_globals_new): Adding correct BlueScale/BlueShift support, plus + family blues processing. + * src/pshinter/pshglob.h (PSH_BluesRec): Updated. + + Started adding support for the Postscript hinter in the CFF module. + + * src/cff/cffgload.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H. + (CFF_Parse_CharStrings): Implement it. + * src/cff/cffgload.h: Updated. + +2001-12-12 Werner Lemberg <[email protected]> + + * builds/unix/freetype2.m4: Some portability fixes. + +2001-12-11 Jouk Jansen <[email protected]> + + * src/base/descrip.mms (OBJS): Add ftdebug.obj. + +2001-12-11 Werner Lemberg <[email protected]> + + * src/sfnt/ttload.c (TT_Load_Generic_Header): Typos. + +2001-12-11 David Turner <[email protected]> + + * builds/unix/freetype-config.in: Modified the script to prevent + passing `-L/usr/lib' to gcc. + + * docs/FTL.TXT: Simple fix (change `LICENSE.TXT' to `FTL.TXT'). + + * builds/unix/freetype2.m4: New file for checking configure paths. + We need to install it in $(prefix)/share/aclocal/freetype2.m4 but I + didn't modify builds/unix/install.mk yet. + + * INSTALL: Updated the instructions to build shared libraries with + Jam. They were simply wrong. + + * src/base/fttrigon.c (FT_Cos): Fixed a small bug that caused + slightly improper results for `FT_Cos' and `FT_Sin' (example: + FT_Sin(0) == -1!). + +2001-12-11 Detlef Würkner <[email protected]> + + * include/freetype/internal/ftstream.h (GET_LongLE, GET_ULongLE): + Fixed incorrect argument types. + +2001-12-10 Francesco Zappa Nardelli <[email protected]> + + * src/pcf/pcfdriver.c (PCF_Init_Face): Allow Xft to use PCF fonts + by setting the `face->metrics.max_advance' correctly. + +2001-12-07 David Turner <[email protected]> + + * include/freetype/cache/ftccmap.h, src/cache/ftccmap.c: Added new + charmap cache. + * src/cache/ftcache.c: Updated. + + * src/autohint/ahhint.c (ah_hinter_hint_edges): s/UNUSED/FT_UNUSED/. + +2001-12-06 Leonard Rosenthol <[email protected]> + + Added support for reading .dfont files on Mac OS X. Also added a + new routine which looks up a given font by name in the Mac OS and + returns the disk file where it resides. + + * src/base/ftmac.c: Include <Files.h> and <TextUtils.h>. + (is_dfont): New auxiliary function. + (FT_New_Face_From_dfont): New function. + (FT_GetFile_From_Mac_Name): New exported function. + (FT_New_Face): Updated. + * include/freetype/ftmac.h: Updated. + +2001-12-06 David Turner <[email protected]> + + * src/cache/Jamfile, src/cache/rules.mk: Updated. + +2001-12-06 Werner Lemberg <[email protected]> + + * INSTALL: Small update. + +2001-12-05 David Turner <[email protected]> + + * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Re-ordered code for + debugging purposes. + Comment out use of `origin'. + + * src/smooth/ftsmooth.c (ft_smooth_render): Fixed a nasty hidden bug + where outline shifting wasn't correctly undone after bitmap + rasterization. This created problems with certain glyphs (like '"' + of certain fonts) and the cache system. + + * src/pshinter/pshalgo1.c (psh1_hint_table_init): Fix typo. + * src/pshinter/pshalgo2.c (psh2_hint_table_init): Fix typo. + (ps2_hints_apply): Small fix. + +2001-12-05 David Turner <[email protected]> + + * src/pshinter/pshalgo2.c (psh2_hint_table_init), + src/pshinter/pshalgo1.c (psh1_hint_table_init): Removed compiler + warnings. + + * include/freetype/ftcache.h, include/freetype/cache/*, src/cache/*: + Yet another massive rewrite of the caching sub-system in order to + both increase performance and allow simpler cache sub-classing. As + an example, the code for the image and sbit caches is now much + simpler. + + I still need to update the documentation in + www/freetype2/docs/cache.html to reflect the new design though. + + * include/freetype/config/ftheader.h (FT_CACHE_CHARMAP_H): New + macro. + (FT_CACHE_INTERNAL_CACHE_H): Updated. + +2001-12-05 David Krause <[email protected]> + + * docs/license.txt: s/X Windows/X Window System/. + +2001-12-04 Werner Lemberg <[email protected]> + + * src/raster/ftraster.c: Fix definition condition of MEM_Set(). + * src/smooth/ftgrays.c (M_Y): Change value to 192. + * src/base/ftdbgmem.c (ft_mem_table_destroy): Fix printf() parameter. + Remove unused variable. + * src/cache/ftcimage.c (ftc_image_node_init, + ftc_image_node_compare): Remove unused variables. + * src/cache/ftcsbits.c (ftc_sbit_node_weight): Remove unused + variable. + * src/raster/ftraster.c (MEM_Set): Move definition down to avoid + compiler warning. + * src/autohint/ahhint.c (ah_hinter_hint_edges): Use UNUSED() to + avoid compiler warnings. + * src/pcf/pcfread.c (tableNames): Use `const'. + (pcf_read_TOC): Change counter name to avoid compiler warning. + Use `const'. + * src/pshinter/pshrec.c (ps_hints_close): Remove redundant + declaration. + * src/pshinter/pshalgo1.c (psh1_hint_table_init): Rename variables + to avoid shadowing. + * src/pshinter/pshalgo2.c (psh2_hint_table_activate_mask): Ditto. + * src/type1/t1objs.h: Remove double declarations of `T1_Size_Init()' + and `T1_Size_Done()'. + +2001-11-20 Antoine Leca <[email protected]> + + * include/freetype/ttnameid.h: Added some new Microsoft language + codes and LCIDs as found in MSDN (Passport SDK). Also added + comments about the meaning of bit 57 of the `OS/2' table + (TT_UCR_SURROGATES) which (with OpenType v.1.3) now means `there is + a character beyond 0xFFFF in this font'. Thanks to Detlef Würkner + <[email protected]> for noticing this. + +2001-11-20 David Turner <[email protected]> + + * src/pshinter/{pshalgo2.c, pshalgo1.c}: Fixed stupid bug in sorting + routine that created nasty alignment artefacts. + + * src/pshinter/pshrec.c, tests/gview.c: Debugging updates. + + * src/smooth/ftgrays.c: De-activated experimental gamma support. + Apparently, `optimal' gamma tables depend on the monitor type, + resolution and general karma, so it's better to compute them outside + of the rasterizer itself. + (gray_convert_glyph): Use `volatile' keyword. + +2001-10-29 David Turner <[email protected]> + + Adding experimental `gamma' support. This produces smoother glyphs + at small sizes for very little cost. + + * src/smooth/ftgrays.c (grays_init_gamma): New function. + (gray_raster_new): Use it. + + Various fixes to the auto-hinter. They merely improve the output of + sans-serif fonts. Note that there are still problems with serifed + fonts and composites (accented characters). + + * src/autohint/ahglyph.c (ah_outline_load, + ah_outline_link_segments): Implement it. + Fix typos. + (ah_outline_save, ah_outline_compute_segments): Fix typos. + * src/autohint/ahhint.c (ah_align_serif_edge): New argument + `vertical'. Implement improvement. + (ah_hint_edges_3, ah_hinter_hint_edges): Implement it. + Fix typos. + (ah_hinter_align_strong_points, ah_hinter_align_weak_points): Fix + typos. + (ah_hinter_load): Set `ah_debug_hinter' if DEBUG_HINTER is defined. + * src/autohint/ahmodule.c: Implement support for DEBUG_HINTER macro. + * src/autohint/ahtypes.h: Ditto. + (AH_Hinter): Remove `disable_horz_edges' and `disable_vert_edges' + (making them global as `ah_debug_disable_horz' and + `ah_debug_disable_vert'). + Fix typos. + + * tests/gview.c: Updated the debugging glyph viewer to show the + hints generated by the `autohint' module. + +2001-10-27 David Turner <[email protected]> + + * src/cache/ftcchunk.c (ftc_chunk_cache_lookup): Fixed a bug that + considerably lowered the performance of the abstract chunk cache. + +2001-10-26 David Turner <[email protected]> + + * include/freetype/ftcache.h, include/freetype/cache/*.h, + src/cache/*.c: Major re-design of the cache sub-system to provide + better performance as well as an `Acquire'/`Release' API. Seems to + work well here, but probably needs a bit more testing. + +2001-10-26 Leonard Rosenthol <[email protected]> + + * builds/mac/README: Updated to reflect my taking over the project + and that is now being actively maintained. + + * src/base/ftmac.c (parse_fond): Applied patches from Paul Miller + <[email protected]> to support loading a face other than the + first from a FOND resource. + (FT_New_Face_From_FOND): Updated. + +2001-10-25 Leonard Rosenthol <[email protected]> + + * builds/mac/ftlib.prj: Update of CodeWarrior project file for Mac + OS for latest version (7) of CWPro and for recent changes to the FT + source tree. + +2001-10-25 David Turner <[email protected]> + + * include/freetype/config/ftoption.h: Updated comments to explain + precisely how to use project-specific macro definitions without + modifying this file manually. + + (FT_CONFIG_FORCE_INT64): Define. + + (FT_DEBUG_MEMORY): New macro. + +2001-10-24 Tom Kacvinsky <[email protected]> + + * builds/unix/ftsystem.c (FT_New_Memory): Added a missing `{'. + +2001-10-23 David Turner <[email protected]> + + * include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c: + Improvements to the memory debugger to report more information in + case of errors. Also, some allocations that occurred through REALLOC + couldn't be previously caught correctly. + + * src/autohint/ahglyph.c (ah_outline_compute_segments, + ah_outline_compute_edges), src/raster/ftraster.c (ft_black_new), + src/smooth/ftgrays.c (gray_render_span, gray_raster_new): Replaced + liberal uses of memset() by the MEM_Set() macro. + +2001-10-23 David Turner <[email protected]> + + * src/raster/ftraster.c (Update): Removed to be inlined in ... + (Sort): Updated. + +2001-10-22 David Turner <[email protected]> + + * builds/unix/ftsystem.c (FT_New_Memory, FT_Done_Memory), + builds/vms/ftsystem.c (FT_New_Memory, FT_Done_Memory), + builds/amiga/ftsystem.c (FT_New_Memory, FT_Done_Memory), + src/base/ftdbgmem.c: Updated the memory debugger and + platform-specific implementations of `ftsystem' in order to be able + to debug memory allocations on Unix, VMS and Amiga too! + + * src/pshinter/pshalgo2.c (psh2_hint_table_record_mask): Removed + some bogus warnings. + + * include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c: + Modified the debugging memory manager to report the location (source + file name + line number) where leaked memory blocks are allocated in + the source file. + + * src/base/ftdbgmem.c: New debugging memory manager. You must + define the FT_DEBUG_MEMORY macro in `ftoption.h' to enable it. It + will record every memory block allocated and report simple errors + like memory leaks and double deletes. + + * src/base/Jamfile: Include ftdbgmem. + * src/base/rules.mk: Ditto. + * src/base/ftbase.c: Include ftdbgmem.c. + + * include/freetype/config/ftoption.h: Added the FT_DEBUG_MEMORY + macro definition. + + * src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory): Modified the + base component to use the debugging memory manager when the macro + FT_DEBUG_MEMORY is defined. + +2001-10-21 Tom Kacvinsky <[email protected]> + + * src/cff/cffload.c (CFF_Done_Font): Free subfonts array only if + we are working with a CID keyed CFF font. Otherwise, a variable + that was never allocated memory might freed. This is a correction + to the previous patch for freeing subfonts. + +2001-10-21 Tom Kacvinsky <[email protected]> + + * src/cff/cffload.c (CFF_Done_Font): Free the subfonts array to + avoid a memory leak. + +2001-10-21 David Turner <[email protected]> + + * src/pshinter/pshalgo2.c, src/pshinter/pshalgo1.c, + src/pshinter/pshglob.c: Removing compiler warnings in pedantic modes + (in multi-object compilation mode, mainly). + +2001-10-20 Tom Kacvinsky <[email protected]> + + * src/type1/t1load.c (parse_encoding): Add a test to make sure + that custom encodings (i.e., neither StandardEncoding nor + ExpertEncoding) are not loaded twice when the Type 1 font is + synthetic. + + * src/type1/t1load.c (parse_font_name, parse_subrs): Added a test + for when loading synthetic fonts to make sure that the font name + and subroutines are not loaded twice. This is to remove a memory + leak that occurred because the original memory blocks for these + objects were not deallocated when the objects were parsed the + second time. + +2001-10-19 David Turner <[email protected]> + + * src/smooth/ftgrays.c, src/pshinter/pshglob.h, + src/pshinter/pshrec.c, src/pshinter/pshalgo2.c: Getting rid of + compiler warnings. + + * src/pshinter/module.mk, src/pshinter/rules.mk: Adding control + files to build the PostScript hinter with the `old' build system. + +2001-10-19 Jacob Jansen <[email protected]> + + * descrip.mms, src/pshinter/descrip.mms: Updates to the VMS build + files. + +2001-10-18 David Turner <[email protected]> + + * src/psnames/pstables.h, src/tools/glnames.py: Rewrote the + `glnames.py' script used to generate the `pstables.h' header file. + The old one contained a serious bug that made FreeType return + incorrect glyph names for certain glyphs. + + * src/truetype/ttdriver.c (Set_Char_Sizes): Changing computation of + pixel size from character size to use rounding. This is an + experiment to see whether this gives values similar to Windows for + scaled ascent/descent/etc. + + * src/base/ftcalc.c (FT_Div64by32): Changed the implementation + slightly since the original code was mis-compiled on Mac machines + using the MPW C compiler. + + * src/base/ftobjs.c (FT_Realloc): When a memory block was grown + through FT_Realloc(), the new bytes were not set to 0, which created + some strange bugs in the PostScript hinter. + (destroy_face): Don't deallocate unconditionally. + + * src/cid/cidgload.c (CID_Compute_Max_Advance, CID_Load_Glyph): + Adding support to new PostScript hinter. + + * include/freetype/internal/psglobal.h, + include/freetype/internal/pshints.h, + include/freetype/config/ftmodule.h, src/pshinter/Jamfile, + src/pshinter/pshalgo.h, src/pshinter/pshalgo1.h, + src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.h, + src/pshinter/pshalgo2.c, src/pshinter/pshglob.h, + src/pshinter/pshglob.c, src/pshinter/pshinter.c, + src/pshinter/pshmod.c, src/pshinter/pshmod.h, src/pshinter/pshrec.c, + src/pshinter/pshrec.h: Adding new PostScript hinter module. + + * include/freetype/internal/ftobjs.h, + include/freetype/internal/internal.h, + include/freetype/internal/psaux.h, + include/freetype/internal/t1types.h, src/psaux/psobjs.c, + src/psaux/psobjs.h, src/psaux/t1decode.h, src/psaux/t1decode.c, + src/type1/t1driver.c, src/type1/t1gload.c, src/type1/t1objs.c, + src/type1/t1objs.h: Updates to use the new PostScript hinter. + + * tests/Jamfile, tests/gview.c: Adding a new glyph hinting + viewer/debugger to the source tree. Note that you will _not_ be + able to compile it since it depends on an unavailable graphics + library named `Nirvana' to render vector images. + +2001-10-17 David Turner <[email protected]> + + + * Version 2.0.5 released. + ========================= + + + * include/freetype/freetype.h, include/internal/ftobjs.h, + src/base/ftobjs.c, src/type1/t1driver.c: Adding a new function named + 'FT_Get_Postscript_Name' to retrieve the PostScript name of a given + font. Should work with all formats except pure CFF/CEF fonts (this + will be added soon). + + * src/cid/cidriver (cid_get_postscript_name): New function. + (CID_Get_Interface): Handle `postscript_name' interface. + + * src/sfnt/sfdriver.c (get_sfnt_postscript_name): New function. + (SFNT_Get_Interface): Handle `postscript_name' interface. + + * src/type1/t1driver.c (t1_get_ps_name): New function. + (Get_Interface): Handle `postscript_name' interface. + + * README, docs/CHANGES: Updated for 2.0.5 release. + +2001-10-08 David Turner <[email protected]> + + Fixed a bug in `glnames.py' that prevented it from generating + correct glyph names tables. This resulted in the unavailability of + certain glyphs like `Cacute', `cacute' and `lslash' in Unicode + charmaps, even if these were present in the font (causing problems + for Polish users). + + * src/tools/glnames.py (mac_standard_names): Fixed. + (t1_standard_strings): Some fixes and renamed to ... + (sid_standard_names): This. + (t1_expert_encoding): Fixed. + (the_adobe_glyph_list): Renamed to ... + (adobe_glyph_names): This. + (the_adobe_glyphs): Renamed to ... + (adobe_glyph_values): This. + (dump_mac_indices, dump_glyph_list, dump_unicode_values, main): + Updated. + * src/psnames/pstables.h: Regenerated. + * src/psnames/psmodule.c (PS_Unicode_Value): Fix offset. + Fix return value. + Use `sid_standard_table' and `ps_names_to_unicode' instead of + `t1_standard_glyphs' and `names_to_unicode'. + (PS_Macintosh_Name): Use `ps_glyph_names' instead of + `standard_glyph_names'. + (PS_Standard_Strings): Use `sid_standard_names' instead of + `t1_standard_glyphs'. + + * doc/BUGS, doc/TODO: New documents. + +2001-10-07 Richard Barber <[email protected]> + + * src/cache/ftlru.c (FT_Lru_Lookup_Node): Fixed a bug that prevented + correct LRU behaviour. + +2001-10-07 David Turner <[email protected]> + + setjmp() and longjmp() are now used for rollback (i.e. when memory + pool overflow occurs). + + Function names are now all uniformly prefixed with `gray_'. + + * src/smooth/ftgrays.c: Include <setjmp.h>. + (ErrRaster_MemoryOverflow): New macro. + (TArea): New type to store area values in each cell (using `int' was + too small on 16-bit systems). <limits.h> is included to properly + get the needed data type. + (TCell, TRaster): Use it. + (TRaster): New element `jump_buffer'. + (gray_compute_cbox): Use `RAS_ARG' as the only parameter and get + `outline' from it. + (gray_record_cell): Use longjmp(). + (gray_set_cell): Use gray_record_cell() for error handling. + (gray_render_line, gray_render_conic, gray_render_cubic): Simplify. + (gray_convert_glyph_inner): New function, using setjmp(). + (gray_convert_glyph): Use it. + +2001-10-07 David Turner <[email protected]> + + Provide a public API to manage multiple size objects for a given + FT_Face in the new header file `ftsizes.h'. + + * include/freetype/ftsizes.h: New header file, + * include/freetype/internal/ftobjs.h: Use it. + Remove declarations of FT_New_Size and FT_Done_Size (moved to + ftsizes.h). + * include/freetype/config/ftheader.h (FT_SIZES_H): New macro. + * src/base/ftobjs.c (FT_Activate_Size): New function. + * src/cache/ftcmanag.c: Include ftsizes.h. + (ftc_manager_init_size, ftc_manager_flush_size): Use + FT_Activate_Size. + +2001-09-20 Detlef Würkner <[email protected]> + + * builds/amiga/*: Added port to Amiga with the SAS/C compiler. + +2001-09-15 Detlef Würkner <[email protected]> + + * src/type1/t1afm.c (T1_Done_AFM): Free `afm'. + +2001-09-10 Yao Zhang <[email protected]> + + * src/sfnt/ttcmap.c (code_to_index2): Handle code values with + hi-byte == 0 correctly. + +2001-09-10 Werner Lemberg <[email protected]> + + * builds/link-std.mk ($(PROJECT_LIBRARY)): Fix typo. + +2001-08-30 Martin Muskens <[email protected]> + + * src/type1/t1load.c (parse_font_matrix): A new way to compute the + units per EM with greater accuracy (important for embedded T1 fonts + in PDF documents that were automatically generated from TrueType + ones). + + * src/type1/t1load.c (is_alpha): Now supports `+' in font names; + this is used in embedded fonts. + + * src/psaux/psobjs.c (PS_Table_Add): Fixed a reallocation bug that + generated a dangling pointer reference. + +2001-08-30 Anthony Feik <[email protected]> + + * src/type1/t1afm.c (T1_Read_Afm): Now correctly sets the flag + FT_FACE_FLAG_KERNING when appropriate for Type1 + AFM files. + +2001-08-25 Werner Lemberg <[email protected]> + + * src/sfnt/ttload.c (TT_Load_CMap): Fix frame length of + `cmap_rec_fields'. + + * include/freetype/fterrors.h [!FT_CONFIG_OPTION_USE_MODULE_ERRORS]: + Undefine FT_ERR_BASE before defining again. + +2001-08-22 Werner Lemberg <[email protected]> + + * src/truetype/ttinterp.h: Fix prototype of TT_Move_Func. + +2001-08-21 Werner Lemberg <[email protected]> + + * builds/dos/dos-def.mk (NO_OUTPUT): Don't use `&>' but `>'. + +2001-08-21 David Turner <[email protected]> + + * include/freetype/config/ftoption.h: Changed the default setting + for FT_CONFIG_OPTION_USE_MODULE_ERRORS to undefined, since it breaks + source compatibility in a few cases. Updated the comment to explain + that too. + +2001-08-17 Martin Muskens <[email protected]> + + * src/base/ftcalc.c (FT_MulDiv): Fixed serious typo. + +2001-08-12 Werner Lemberg <[email protected]> + + Updating to OpenType 1.3. + + * include/freetype/internal/tttypes.h (TT_CMap0, TT_CMap2, TT_CMap4, + TT_CMap6): Adding field `language'. + (TT_CMapTable): Removing field `language'. + Type of `length' field changed to FT_ULong. + Adding fields for cmaps format 8, 10, and 12. + (TT_CMapGroup): New auxiliary structure. + (TT_CMap8_12, TT_CMap10): New structures. + * include/freetype/tttables.h (TT_HoriHeader, TT_VertHeader): + Removed last element of `Reserved' array. + * include/freetype/ttnameid.h (TT_PLATFORM_CUSTOM, TT_MS_ID_UCS_4, + TT_NAME_ID_CID_FINDFONT_NAME): New macros. + + * src/sfnt/ttcmap.c (TT_CharMap_Load): Updated loading of `language' + field to the new structures. + Fixed freeing of arrays in case of unsuccessful loads. + Added support for loading format 8, 10, and 12 cmaps. + (TT_CharMap_Free): Added support for freeing format 8, 10, and 12 + cmaps. + (code_to_index4): Small improvement. + (code_to_index6): Ditto. + (code_to_index8_12, code_to_index10): New functions. + * src/sfnt/ttload.c (TT_Load_Metrics_Header): Updated to new + structure. + (TT_Load_CMap): Ditto. + + * src/sfnt/sfobjs.c (tt_encodings): Add MS UCS4 table (before MS + Unicode). + +2001-08-11 Werner Lemberg <[email protected]> + + * src/type1/t1driver.c (t1_get_name_index): Fix compiler warning. + +2001-08-09 Tom Kacvinsky <[email protected]> + + * src/cff/cffdrivr.c (get_cff_glyph_name): Renamed to + cff_get_glyph_name for consistency. + + (cff_get_glyph_index): Minor documentation change. + + * src/type1/t1driver.c (t1_get_name_index): New function used in + Get_Interface as the function returned when the `name_index' + function is requested. + + (get_t1_glyph_name): Renamed to t1_get_glyph_name for consistency. + +2001-08-08 Tom Kacvinsky <[email protected]> + + * src/cff/cffload.c: Removed definitions of cff_isoadobe_charset, + cff_expert_charset, cff_expertsubset_charset, cff_standard_encoding, + and cff_expert_encoding arrays to cffload.h. + + * src/cff/cffload.h: Added definitions of cff_isoadobe_charset, + cff_expert_charset, cff_expertsubset_charset, cff_standard_encoding, + and cff_expert_encoding arrays. + + * src/cff/cffdrivr.c (cff_get_name_index): New function, returned + when `cff_get_interface' is called with a request for the + `name_index' function. + + (cff_get_interface): Modified so that it returns the function + `cff_get_name_index' when the `name_index' function is requested. + + * src/base/ftobjs.c (FT_Get_Name_Index): New function, used to + return a glyph index for a given glyph name only if the driver + supports glyph names. + + * include/freetype/internal/ftobjs.h (FT_Name_Index_Requester): + New function pointer type definition used in the function + FT_Get_Name_Index. + + * include/freetype/freetype.h (FT_Get_Name_Index): Added + documentation and prototype. + +2001-07-26 Werner Lemberg <[email protected]> + + * builds/cygwin/*: Removed. Use the unix stuff instead. + +2001-07-26 Jouk Jansen <[email protected]> + + * builds/vms/ftconfig.h (FT_CALLBACK_DEF): Updated to change dated + 2001-06-27. + +2001-07-17 Werner Lemberg <[email protected]> + + * include/freetype/internal/psaux.h (PS_Table): Use FT_Offset for + `cursor' and `capacity'. + * src/psaux/psobjc.c (reallocate_t1_table): Use FT_Long for second + parameter. + (PS_Table_Add): Use FT_Offset for `new_size'. + + Add support for version 0.5 maxp tables. + + * src/sfnt/ttload.c (TT_Load_MaxProfile): Implement it. + (TT_Load_OS2): Initialize some values. + +2001-07-13 Werner Lemberg <[email protected]> + + * src/base/ftsynth.c: Include ftcalc.h unconditionally. + +2001-07-07 David Turner <[email protected]> + + * src/truetype/ttgload.c, src/truetype/ttinterp.c, src/pcf/pcfread: + Removed pedantic compiler warnings when the bytecode interpreter is + compiled in. + +2001-07-03 Werner Lemberg <[email protected]> + + * src/autohint/ahhint.c (ah_hinter_align_weak_points): Remove + unused variable `edges'. + (ah_hinter_load): Remove unused variables `old_width' and + `new_width'. + * src/cid/cidload.c (cid_decrypt): Use `U' for constant (again). + * src/psaux/psobjs.c (T1_Decrypt): Ditto. + * src/type1/t1parse.c (T1_Get_Private_Dict): Ditto. + +2001-06-28 David Turner <[email protected]> + + * include/internal/ftstream.h: Modified the definitions + of the FT_GET_XXXX and NEXT_XXXX macros for 16-bit correctness. + +2001-06-26 Werner Lemberg <[email protected]> + + * src/cid/cidload.c, src/cid/cidload.h (cid_decrypt): Use FT_Offset + instead of FT_Int as type for `length' parameter. + * include/freetype/internal/psaux.h (PSAux_Interface): Updated. + +2001-06-27 Wolfgang Domröse <[email protected]> + + * src/psaux/psobjs.c, src/psaux/psobjs.h (T1_Decrypt): Use FT_Offset + instead of FT_Int as type for `length' parameter. + + + * Version 2.0.4 released. + ========================= + + +2001-06-27 David Turner <[email protected]> + + * builds/unix/ftconfig.in: Changed the definition of the + FT_CALLBACK_DEF macro. + + * include/freetype/ftconfig.h, src/*/*.c: Changed the definition and + use of the FT_CALLBACK_DEF macro in order to support 16-bit + compilers. + + * builds/unix/ftconfig.in: Changed the definition of the + FT_CALLBACK_DEF macro. + + * src/sfnt/ttload.c (TT_Load_Kern): The kern table loader now ensures + that the kerning table is correctly sorted (some problem fonts don't + have a correct kern table). + +2001-06-26 Wolfgang Domröse <[email protected]> + + * include/freetype/internal/ftstream.h (FT_GET_OFF3_LE): Fix typo. + +2001-06-24 David Turner <[email protected]> + + * src/base/ftcalc.c (ft_div64by32): Fixed the source to work + correctly on 16-bit systems. + +2001-06-23 Anthony Fok <[email protected]> + + * debian/*: Added Debian package build directory for 2.0.4. + +2001-06-22 David Turner <[email protected]> + + * docs/PATENTS: Added patents disclaimer. This one was missing! + + * docs/CHANGES, docs/todo: Updated for the upcoming 2.0.4 release. + +2001-06-20 Werner Lemberg <[email protected]> + + * include/freetype/config/ftconfig.h: Add two more `L's to + constants. + Add missing semicolons. + + * builds/toplevel.mk: Do similar change as for + builds/unix/detect.mk. + + * include/freetype/freetype.h (FT_ENC_TAG): New version to make it + easier to redefine. + * include/freetype/ftimage.h (FT_IMAGE_TAG): Ditto. + + * src/pcf/pcfread.c (pcf_get_encodings): Add cast. + +2001-06-19 David Turner <[email protected]> + + * builds/win32/visualc/freetype.dsp, builds/win32/visualc/index.html: + Updated the Visual C++ project (for the 2.0.4 release). + + * builds/unix/detect.mk: Added rule for AIX detection (which uses + /usr/sbin/init instead of /sbin/init). + + * include/freetype/fterrors.h, src/*/*err*.h: Updated some of the + error macros to simplify handling of new error scheme. + +2001-06-19 Werner Lemberg <[email protected]> + + * include/freetype/fttypes.h (FT_ERROR_MODULE): New macro. + +2001-06-19 David Turner <[email protected]> + + Removing _lots_ of compiler warnings when the most pedantic warning + levels of Visual C++ and Borland C++ are used. Too many files to be + listed here, but FT2 now compiles without warnings with VC++ and the + `/W4' warning level (lint-style). + + * include/freetype/freetype.h (FT_New_Memory_Face): Updated + documentation. + * include/freetype/fttypes.h (FT_BOOL): New macro. + * include/freetype/internal/ftdebug.h: Add #pragma for Visual C++ + to suppress warning. + * include/freetype/internal/ftstream.h (FT_GET_SHORT_{BE,LE}, + FT_GET_OFF3_{BE,LE}, FT_GET_LONG_{BE,LE}): New macros. + (NEXT_*): Use them. + * src/autohint/ahglobal.c: Include FT_INTERNAL_DEBUG_H. + (FT_New_Memory_Face): Add `const' to function declaration. + +2001-06-18 Werner Lemberg <[email protected]> + + Minor cleanups to remove compiler warnings. + + * include/freetype/cache/ftcmanag.h (FTC_MAX_BYTES_DEFAULT): Use + `L' for constant. + * include/freetype/config/ftoption.h (FT_RENDER_POOL_SIZE): Ditto. + * src/base/ftcalc.c (FT_MulDiv): Use `L' for constant. + * src/base/ftglyph.c (FT_Glyph_Get_CBox): Remove `error' variable. + * src/base/fttrigon.c (ft_trig_arctan_table): Use `L' for constants. + * src/base/ftobjs.c (FT_Done_Size): Fix return value. + (FT_Set_Char_Size, FT_Set_Pixel_Sizes, FT_Get_Kerning): Remove + unused `memory' variable. + * src/autohint/ahglyph.c (ah_get_orientation): Use `L' for constant. + * src/autohint/ahhint.c (ah_hint_edges_3, + ah_hinter_align_edge_points): Remove unused `before' and `after' + variables. + (ah_hinter_align_weak_points): Remove unused `edge_limit' variable. + (ah_hinter_load): Remove unused `new_advance', `start_contour', + and `metrics' variables. + * src/cff/cffload.c (CFF_Load_Encoding): Remove dead code to avoid + compiler warning. + * src/cff/cffobjs.c (CFF_Init_Face): Remove unused `base_offset' + variable. + * src/cff/cffgload.c (CFF_Parse_CharStrings): Remove unused + `outline' variable. + (cff_compute_bias): Use `U' for constant. + * src/cid/cidload.c (cid_decrypt): Ditto. + * src/psaux/psobjs.c (T1_Decrypt): Ditto. + * src/psaux/t1decode.c (T1_Decoder_Parse_CharStrings): Ditto. + * src/sfnt/ttload.c (TT_Load_Kern): Remove unused `version' + variable. + * src/sfnt/ttsbit.c (TT_Load_SBit_Image): Remove unused `top' + variable. + * src/truetype/ttgload.c (load_truetype_glyph): Remove unused + `num_contours' and `ins_offset' variables. + (compute_glyph_metrics): Remove unused `Top' and `x_scale' + variables. + (TT_Load_Glyph): Remove unused `memory' variable. + * src/smooth/ftgrays.c (grays_raster_render): Use `L' for constants. + +2001-06-18 Werner Lemberg <[email protected]> + + Make the new error scheme source compatible with older FT versions + by introducing another layer. + + * include/freetype/fterrors.h (FT_ERRORDEF_, FT_NOERRORDEF_): New + macros. + (FT_NOERRORDEF): Removed. + * include/*/*err*.h: Use FT_ERRORDEF_ and FT_NOERRORDEF_. + +2001-06-16 Werner Lemberg <[email protected]> + + * include/freetype/freetype.h (FT_ENC_TAG): New macro. + (FT_Encoding_): Use it. + * include/freetype/ftimage.h (FT_IMAGE_TAG): Define it + conditionally. + +2001-06-14 David Turner <[email protected]> + + Modified the TrueType interpreter to let it use the new + trigonometric functions provided in `fttrigon.h'. This gets rid of + some old 64-bit computation routines, as well as many warnings when + compiling the library with the `long long' 64-bit integer type. + + * include/freetype/config/ftoption.h: Undefine + FT_CONFIG_OPTION_OLD_CALCS. + * include/freetype/internal/ftcalc.h: Rearrange use of + FT_CONFIG_OPTION_OLD_CALCS. + * src/base/ftcalc.c: Add declaration of FT_Int64 if + FT_CONFIG_OPTION_OLD_CALCS isn't defined. + * src/truetype/ttinterp.c: Use FT_TRIGONOMETRY_H. + (Norm): Add a special version if FT_CONFIG_OPTION_OLD_CALCS isn't + defined. + (Current_Ratio, Normalize): Simplify code. + +2001-06-11 Mike Owens <[email protected]> + + * src/base/ftcalc.c (FT_MulDiv, FT_DivFix, FT_Sqrt64): Remove + compiler warnings. + +2001-06-08 Werner Lemberg <[email protected]> + + * builds/unix/configure.in: Renamed to ... + * builds/unix/configure.ac: This to make sure that autoconf 2.50 is + needed. + Run `autoupdate' on it. + Increase `version_info' to 7:0:1. + * builds/unix/configure: Regenerated. + +2001-06-08 David Turner <[email protected]> + + * src/autohint/ahhint.c (ah_hinter_load_glyph): Fixed a bug that + corrupted transformed glyphs that were auto-hinted (the transform + was applied twice). + + Fixed a bug that returned an invalid linear width for composite + TrueType glyphs. + + * include/internal/tttypes.h (TT_Loader_): Two new elements `linear' + and `linear_def'. + * src/truetype/ttgload.c (load_truetype_glyph, + compute_glyph_metrics): Use it. + + * include/fttypes.h (FT_ERROR_BASE): New macro. + * src/base/ftobjs.c (FT_Open_Face, FT_Render_Glyph_Internal): Use it + to make source code work with the new error scheme implemented by + Werner. + * src/base/ftoutln.c (FT_Outline_Render): Ditto. + +2001-06-07 Werner Lemberg <[email protected]> + + Updating to libtool 1.4.0 and autoconf 2.50. + + * builds/unix/ltconfig: Removed. + * builds/unix/ltmain.sh, builds/unix/configure.in, + builds/unix/aclocal.m4: Updated. + * builds/unix/configure: Regenerated. + +2001-06-06 Werner Lemberg <[email protected]> + + Complete redesign of error codes. Please check ftmoderr.h for more + details. + + * include/freetype/internal/cfferrs.h, + include/freetype/internal/tterrors.h, + include/freetype/internal/t1errors.h: Removed. Replaced with files + local to the module. All extra error codes have been moved to + `fterrors.h'. + + * src/sfnt/ttpost.h: Move error codes to `fterrors.h'. + + * src/autohint/aherrors.h, src/cache/ftcerror.h, src/cff/cfferrs.h, + src/cid/ciderrs.h, src/pcf/pcferror.h, src/psaux/psauxerr.h, + src/psnames/psnamerr.h, src/raster/rasterrs.h, src/sfnt/sferrors.h, + src/smooth/ftsmerrs.h, src/truetype/tterrors.h, + src/type1/t1errors.h, src/winfonts/fnterrs.h: New files defining the + error names for the module it belongs to. + + * include/freetype/ftmoderr.h: New file, defining the module error + offsets. Its structure is similar to `fterrors.h'. + + * include/freetype/fterrors.h (FT_NOERRORDEF): New macro. + (FT_ERRORDEF): Redefined to use module error offsets. + All internal error codes are now public; unused error codes have + been removed, some are new. + + * include/freetype/config/ftheader.h (FT_MODULE_ERRORS_H): New + macro. + * include/freetype/config/ftoption.h + (FT_CONFIG_OPTION_USE_MODULE_ERRORS): New macro. + + All other source files have been updated to use the new error codes; + some already existing (internal) error codes local to a module have + been renamed to give them the same name as in the base module. + + All make files have been updated to include the local error files. + +2001-06-06 Werner Lemberg <[email protected]> + + * src/cid/cidtokens.h: Replaced with... + * src/cid/cidtoken.h: This file for 8+3 consistency. + + * src/raster/ftraster.c: Use macros for header file names. + + * src/include/freetype/tttables.h (TT_HoriHeader_, TT_VertHeader_): + Fix length of `Reserved' array. Note that this isn't the real fix + since recent OpenType specs have introduced a `CaretOffset' field + instead of the first reserved byte. + +2001-05-29 Werner Lemberg <[email protected]> + + * INSTALL: Minor fixes. + + + * Version 2.0.3 released. + ========================= + + +2001-05-29 David Turner <[email protected]> + + * INSTALL, docs/CHANGES: Updated. + +2001-05-25 David Turner <[email protected]> + + Moved several documents from the top-level to the `docs' directory. + + * src/base/ftcalc.c (FT_DivFix): Small fix to return value. + +2001-05-16 David Turner <[email protected]> + + * src/truetype/ttgload.c (load_truetype_glyph): Fixed a bug in the + composite loader. Spotted by Keith Packard. + * src/base/ftobjs.c (FT_GlyphLoader_Check_Points, + FT_GlyphLoader_Check_Subglyphs): Ditto. + +2001-05-14 David Turner <[email protected]> + + Fixed the incorrect blue zone computations, and improved the + composite support. Note that these changes result in improved + rendering, while sometimes introducing their own artefacts. This is + probably the last big change to the autohinter before the + introduction of a complete replacement. + + * src/autohint/ahglobal.c (sort_values): Fix loop. + * src/autohint/ahglyph.c: Removed some obsolete code. + (ah_outline_compute_edges): Modify code to set the ah_edge_round + flag. + (ah_outline_compute_blue_edges): Add code to compute active blue + zones. + * src/autohint/ahhint.c (ah_hinter_glyph_load): Change load_flags + value. + + * src/base/ftcalc.c (FT_DivFix): Fixed a bug in the 64-bit code that + created incorrect scale factors! + (FT_Round_Fix, FT_CeilFix, FT_FloorFix): Minor improvements. + +2001-05-12 Werner Lemberg <[email protected]> + + * include/freetype/ftbbox.h: FTBBOX_H -> __FTBBOX_H__. + * include/freetype/fttrigon.h: __FT_TRIGONOMETRY_H__ -> + __FTTRIGON_H__. + Include FT_FREETYPE_H. + Beautified; added copyright. + * src/base/fttrigon.c: Beautified; added copyright. + +2001-05-11 David Turner <[email protected]> + + * src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c + (parse_font_matrix), src/type1/t1load.c (parse_font_matrix): Fixed + the incorrect EM size computation. + + * include/freetype/fttrigon.h, src/base/fttrigon.c: New files, + adding trigonometric functions to the core API (using Cordic + algorithms). + * src/base/ftbase.c, src/base/Jamfile, src/base/rules.mk: Use them. + + * builds/newline: New file. + * builds/top_level.mk, builds/detect.mk: Use it. This fixes + problems with Make on Windows 2000, as well as problems when `make + distclean' is invoked on a non-Unix platform when there is no + `config.mk' in the current directory. + + * builds/freetype.mk: Fixed a problem with object deletions under + Dos/Windows/OS/2 systems. + + Added new directory to hold tools and test programs. + + * docs/docmaker.py, docs/glnames.py: Moved to... + * src/tools/docmaker.py, src/tools/glnames.py: This place. + * src/tools/cordic.py: New file used to compute arctangent table + needed by fttrigon.c. + * src/tools/test_bbox.c, src/tools/test_trig.c: New test files. + + * src/tools/docmaker.py: Improved the script to add the current date + at the footer of each web page (useful to distinguish between + versions). + + * Jamfile: Fixed incorrect HDRMACRO argument. + + * TODO: Removed the cubic arc bbox computation note, since it has been + fixed recently. + * src/base/ftbbox.c (test_cubic_zero): Renamed to... + (test_cubic_extrema): This function. Use `UL' for unsigned long + constants. + + * include/freetype/t1tables.h, include/freetype/config/ftoption.h: + Formatting. + +2001-05-10 David Turner <[email protected]> + + * src/base/ftobjs.c (FT_Open_Face): Fixed a small memory leak + which happened when trying to open 0-size font files! + +2001-05-09 Werner Lemberg <[email protected]> + + * include/freetype/internal/ftcalc.h: Move declaration of + FT_SqrtFixed() out of `#ifdef FT_LONG64'. + +2001-05-08 Francesco Zappa Nardelli <[email protected]> + + * src/pcfdriver.c (PCF_Load_Glyph): Fixed incorrect bitmap width + computation. + +2001-05-08 David Turner <[email protected]> + + * docs/docmaker.py: Updated the DocMaker script in order to add + command line options (--output,--prefix,--title), fix the erroneous + line numbers reported during errors and warnings, and other + formatting issues. + + * src/base/ftcalc.c (FT_MulDiv, FT_MulFix, FT_DivFix): Various tiny + fixes related to rounding in 64-bits routines and + pseudo-`optimizations'. + +2001-04-27 David Turner <[email protected]> + + * src/base/ftbbox.c (BBox_Cubic_Check): Fixed the coefficient + normalization algorithm (invalid final bit position, and invalid + shift computation). + +2001-04-26 Werner Lemberg <[email protected]> + + * builds/unix/config.guess, builds/unix/config.sub: Updated to + latest versions from gnu.org. + + * builds/compiler/gcc-dev.mk: Add `-Wno-long-long' flag. + + * include/freetype/internal/ftcalc.h: Define FT_SqrtFixed() + unconditionally. + * src/base/ftbbox.c: Include FT_INTERNAL_CALC_H. + Fix compiler warnings. + * src/base/ftcalc.c: Fix (potential) compiler warnings. + +2001-04-26 David Turner <[email protected]> + + * src/base/ftcalc.c (FT_SqrtFixed): Corrected/optimized the 32-bit + fixed-point square root computation. It is now used even with + 64-bits integers, as it is _much_ faster than calling FT_Sqrt64 :-) + + * src/base/ftbbox.c: Removed invalid `#include FT_BEZIER_H' line. + +2001-04-25 David Turner <[email protected]> + + * src/base/ftbbox.c (BBox_Cubic_Check): Rewrote function to use + direct computations with 16.16 values instead of sub-divisions. It + is now slower, but proves a point :-) + + * src/raster/ftraster.c, src/smooth/ftgrays.c, src/base/ftbbox.c: + Fixed the Bézier stack depths. + + * src/base/ftcalc.c (FT_MulFix): Minor rounding fix. + + * builds/beos: Added BeOS-specific files to the old build system + (no changes were necessary to support BeOS in the Jamfile though). + +2001-04-20 David Turner <[email protected]> + + * ftconfig.h, ftoption.h: Updated `ftconfig.h' to detect 64-bit int + types on platforms where Autoconf is not available). Also removed + FTCALC_USE_LONG_LONG and replaced it with + FT_CONFIG_OPTION_FORCE_INT64. + + * builds/win32/freetype.dsp: Updated the Visual C++ project file. + Doesn't create a DLL yet. + + * cffgload.c: Removed a compilation warning. + +2001-04-10 Tom Kacvinsky <[email protected]> + + * t1load.c (parse_charstrings): Changed code for placing .notdef + glyph into slot 0 so that we no longer have a memory access + violation. + + * t1load.h: In structure T1_Loader, added swap_table (of type + PS_Table) to facilitate placing the .notdef glyph into slot 0. + +2001-04-10 Francesco Zappa Nardelli <[email protected]> + + * src/pcf/pcfdriver.c (PCF_Get_Char_Index): Fix return value. + +2001-04-09 Laurence Withers <[email protected]> + + * builds/dos/detect.mk: Add support for bash. + +2001-04-05 Werner Lemberg <[email protected]> + + * builds/os2/*.mk: These files have been forgotten to update to + the structure of similar makefiles. + * builds/dos/*.mk: Ditto. + * builds/ansi/*.mk: Ditto. + + * builds/win32/win32-def.mk (BUILD): Fix typo. + + * builds/compiler/*.mk (CLEAN_LIBRARY): Don't use NO_OUTPUT. + This is already used in the link_*.mk files. + +2001-04-03 Werner Lemberg <[email protected]> + + * src/*/Jamfile: Slight changes to make files more cryptic. + +2001-04-03 Werner Lemberg <[email protected]> + + * Jamfile, src/Jamfile, src/*/Jamfile: Formatted. Slight changes + to give files identical structure. + +2001-04-02 Werner Lemberg <[email protected]> + + * CHANGES: Reformatted, minor fixes. + * TODO: Updated. + * README: Formatting. + * include/freetype/freetype.h: Formatting. + + * Jamfile: Fix typo. + + * src/cff/cffparse.c: Move error code #defines to... + * include/freetype/internal/cfferrs.h: This file. + * src/cff/cffdrivr.c, src/cff/cffobjs.c, src/cff/cffload.c: Replaced + `FT_Err_*' with `CFF_Err_*'. + * src/cid/cidparse.c: Replaced `FT_Err_*' with `T1_Err_*'. + * src/psaux/psobjs.c, src/psaux/t1decode.c: Ditto. + * src/sfnt/sfobcs.c, src/sfnt/ttload.c: Replaced `FT_Err_*' with + `TT_Err_*'. + * src/truetype/ttgload.c, src/truetype/ttobjs.c: Ditto. + * src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1objs.c, + src/type1/t1parse.c: Replaced `FT_Err_*' with `T1_Err_*'. + + * include/freetype/internal/cfferrs.h: Add + `CFF_Err_Unknown_File_Format'. + * include/freetype/internal/t1errors.h: Add + `T1_Err_Unknown_File_Format'. + * include/freetype/internal/tterrors.h: Add + `TT_Err_Unknown_File_Format'. + + * src/cff/cffload.h: Add `cff_*_encoding' and `cff_*_charset' + references. + * src/psaux/psobjs.c: Include `FT_INTERNAL_TYPE1_ERRORS_H'. + + * src/cff/cffobjs.c (CFF_Init_Face, CFF_Done_Face): Use + FT_LOCAL_DEF. + * src/cid/cidobjs.c (CID_Done_Driver): Ditto. + * src/trutype/ttobjs.c (TT_Init_Face, TT_Done_Face, TT_Init_Size): + Ditto. + * src/type1/t1objs.c (T1_Done_Driver): Ditto. + * src/pcf/pcfdriver.c (PCF_Done_Face): Ditto. + * src/pcf/pcf.h: Use FT_LOCAL for `PCF_Done_Face'. + +2001-04-02 Tom Kacvinsky <[email protected]> + + * src/sfnt/ttload.c (TT_Load_Metrics): Fix an improper pointer + dereference. Submitted by Herbert Duerr <[email protected]>. + +2001-03-26 Tom Kacvinsky <[email protected]> + + * include/freetype/config/ftconfig.h: Changed hexadecimal + constants to use suffix U to avoid problems with HP-UX's c89 + compiler. Submitted by G.W. Lucas <[email protected]>. + +2001-03-24 David Turner <[email protected]> + + * Jamrules, Jamfile, src/Jamfile, src/*/Jamfile: Adding jamfiles to + the source tree. See www.freetype.org/jam/index.html for details. + + + * Version 2.0.2 released. + ========================= + + +2001-03-20 Werner Lemberg <[email protected]> + + * builds/win32/detekt.mk: Fix .PHONY target for Intel compiler. + +2001-03-20 David Turner <[email protected]> + + * include/freetype/config/ftheader.h, include/freetype/ftsnames.h: + Renamed `ftnames.h' to `ftsnames.h', and FT_NAMES_H to + FT_SFNT_NAMES_H. + + * docs/docmaker.py: Added generation of INDEX link in table of + contents. + + * INSTALL, docs/BUILD: Updated documentation to indicate that the + compilation process has changed slightly (no more `src' required in + the include path). + + * builds/*/*-def.mk: Changed the objects directory from `obj' to + `objs'. + + * include/freetype/config/ftheader.h: Removed obsolete macros like + FT_SOURCE_FILE, etc. and added cache-specific macro definitions that + were previously defined in <freetype/ftcache.h>. Added comments to + be included in a new API Reference section. + + * src/*/*: Removed the use of FT_SOURCE_FILE, etc. Now, each + component needs to add its own directory to the include path at + compile time. Modified all `rules.mk' and `descrip.mms' + accordingly. + +2001-03-20 Werner Lemberg <[email protected]> + + * builds/unix/configure.in: Add $ft_version. + * builds/unix/freetype-config.in: Use it. + * builds/unix/configure: Updated. + +2001-03-19 Tom Kacvinsky <[email protected]> + + * src/type1/t1load.c (parse_font_matrix): Assign the units per em + value an unsigned short value, first by shifting right 16 bits, + then by casting the results to FT_UShort. + + * src/cff/cffparse.c (cff_parse_font_bbox): Assign the units per em + value an unsigned short value, first by shifting right 16 bits, + then by casting the results to FT_UShort. + +2001-03-17 David Turner <[email protected]> + + * src/cid/cidobjs.c, src/cid/cidload.c, src/pcf/pcfread.c, + src/type1/t1load.c, src/type1/t1objs.c: Added a few casts to remove + compiler warnings in pedantic modes. + + * include/config/ft2build.h, include/config/ftheader.h: The file + `ft2build.h' was renamed to `ftheader.h' to avoid conflicts with the + top-level <ft2build.h>. + + * include/config/ftheader.h: Added new section describing the #include + macros. + +2001-03-17 Tom Kacvinsky <[email protected]> + + * src/cff/cffparse.c (cff_parse_font_bbox): Obtain rounded FT_Fixed + values for the bounding box numbers. + + * src/cff/cffobjs.c (CFF_Init_Face): When processing a CFF/CEF font, + set `root->ascender' (`root->descender') to the integer part of + `root->bbox.yMax' (`root->bbox.yMin', respectively). + +2001-03-16 Tom Kacvinsky <[email protected]> + + * src/cff/cffdrivr.c (get_cff_glyph_name): New function. Used in + cff_get_interface to facilitate getting a glyph name for glyph index + via FT_Get_Glyph_Name(). + + (cff_get_interface): Added support for getting a glyph name via the + `glyph_name' module interface. Uses the new function + get_cff_glyph_name(). + Submitted by Sander van der Wal <[email protected]>. + + * src/cff/cffobjs.c (CFF_Init_Face): Logical or the face flags with + FT_FACE_FLAG_GLYPH_NAMES only if FT_CONFIG_OPTION_NO_GLYPH_NAMES is + not defined. This is to add support for getting a glyph name from a + glyph index via FT_Get_Glyph_Name(). + Submitted by Sander van der Wal <[email protected]>. + + * src/cff/cffgload.c (CFF_Parse_CharStrings): Added support for + deprecated operator `dotsection'. + Submitted by Sander van der Wal <[email protected]>. + +2001-03-12 Werner Lemberg <[email protected]> + + * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix error + messages. + + * INSTALL, docs/BUILD: We need GNU make 3.78.1 or newer. + +2001-03-12 Tom Kacvinsky <[email protected]> + + * include/freetype/internal/psaux.h: Changed the lenIV member of + the T1_Decoder_ struct to be an FT_Int instead of an FT_UInt. + + * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Adjust + for lenIV seed bytes at the start of a decrypted subroutine. + + * src/cid/cidload.c (cid_read_subrs): Decrypt subroutines only + if lenIV >= 0. + + * src/cid/cidgload.c (cid_load_glyph): Decrypt charstrings only + if lenIV >= 0. + +2001-03-11 Werner Lemberg <[email protected]> + + * TODO: Updated. + + * src/pcf/pcfread.c: Put READ_Fields() always in a conditional to + avoid compiler warnings. + +2001-03-10 Tom Kacvinsky <[email protected]> + + * TODO: New file. + + * include/freetype/freetype.h: Added prototypes and notes for + three new functions: FT_RoundFix, FT_CeilFix, and FT_FloorFix. + * src/base/ftcalc.c (FT_RoundFix, FT_CeilFix, FT_FloorFix): Added + implementation code. + + * src/cid/cidobjs.c (CID_Init_Face): Use calculated units_per_EM, + and if that is not available, default to 1000 units per EM. Changed + assignment code for ascender and descender values. + * src/cid/cidload.c (parse_font_matrix): Added units_per_EM + processing. + (parse_font_bbox): Changed to use FT_Fixed number handling. + + * src/type1/t1objs.c (T1_Init_Face): Changed the assignment code + for ascender, descender, and max_advance_width. + * src/type1/t1load.c (parse_font_bbox): Changed to use FT_Fixed + number handling. + +2001-03-10 Henrik Grubbström <[email protected]> + + * src/*/*.c: Added many casts to make code more 64bit-safe. + +2001-03-07 Werner Lemberg <[email protected]> + + * INSTALL, docs/BUILD: We need GNU make 3.78 or newer. + +2001-03-07 Tom Kacvinsky <[email protected]> + + * src/type1/t1objs.c (T1_Init_Face): Minor correction: We must wait + until parse_font_bbox is changed before we use logical shift rights + in the assignments of `root->ascender', `root->descender', and + `root->max_advance_width'. + + (T1_Done_Face): Free `char_name' table to avoid a memory leak. + Submitted by Sander van der Wal <[email protected]>. + +2001-03-05 Tom Kacvinsky <[email protected]> + + * src/cff/cffgload.c (CFF_Load_Glyph): Set glyph control data to the + the Type 2 glyph charstring (used by conversion programs). + Submitted by Ha Shao <[email protected]>. + +2001-03-04 Antoine Leca <[email protected]> + + * include/freetype/ttnameid.h: Correct a stupid typo which prevented + correct compilation (TT_MS_LANGID_TIGRIGNA_ETHIOPIA appeared twice). + +2001-03-04 Werner Lemberg <[email protected]> + + * src/autohint/ahtypes.h (AH_Hinter): Add elements + `disable_horz_edges', `disable_vert_edges'. + * src/autohint/ahhint.c (ah_hint_edges_3, ah_hinter_hint_edges): Use + them (and remove static variables with the same names). + * src/pcf/pcfutil.c (BitOrderInvert): Add `const'. + * docs/glnames.py: Updated to latest pstables.h changes. + + * builds/unix/detect.mk: Add test for Hurd. + * builds/hurd/detect.mk: Removed. + +2001-03-04 Sander van der Wal <[email protected]> + + * src/psnames/pstables.h: Add more `const'. + * src/pcf/pcfutil.c: Ditto. + +2001-03-04 Werner Lemberg <[email protected]> + + * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixing typo + (FT_Glyph_Done -> FT_Done_Glyph). + +2001-03-01 Antoine Leca <[email protected]> + + * include/freetype/ttnameid.h: Added some new Microsoft language + codes and LCIDs as found in Office Xp. + +2001-02-28 David Turner <[email protected]> + + * builds/hurd/detect.mk: New file. Added support to detect the GNU + Hurd operating system as Unix-like. Fix submitted by Anthony Fok + <[email protected]>. + + * src/type1/t1gload.c (T1_Load_Glyph): Set glyph control data to the + the Type 1 glyph charstring (used by conversion programs). + Submitted by Ha Shao <[email protected]>. + +2001-02-22 David Turner <[email protected]> + + * src/base/ftgrays.c (grays_sweep): The function didn't exit + immediately if `num_cells' was 0 as it should. Thanks to Boris for + finding this out. + + * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixed memory leak when + bitmap rendering fails (thanks to Graham Asher). + +2001-02-13 Werner Lemberg <[email protected]> + + * docs/docmaker.py (DocSection::add_element): Use + `self.print_error()'. + + * builds/unix/config.{guess,sub}: Updated (from ftp.gnu.org). + +2001-02-13 David Turner <[email protected]> + + * docs/docmaker.py, include/freetype/*.h: Updated the DocMaker + script to support chapters and section block ordering. Updated the + public header files accordingly. + + * src/base/ftglyph.c (FT_Glyph_Copy): Advance width and glyph format + were not correctly copied. + +2001-02-08 Tom Kacvinsky <[email protected]> + + * src/cff/cffparse.c (cff_parse_font_matrix): Removed an + unnecessary fprintf( stderr, ... ). + +2001-02-07 Tom Kacvinsky <[email protected]> + + * src/type1/t1objs.c (T1_Init_Face): Added code to get the + units_per_EM from the value assigned in parse_font_matrix, if + available. Default to 1000 if not available. + + * src/cff/cffparse.c (cff_parse_font_matrix): Added logic to get + the units_per_EM from the FontMatrix. + + (cff_parse_fixed_thousand): New function. Gets a real number from + the CFF font, but multiplies by 1000 (this is to avoid rounding + errors when placing this real number into a 16.16 fixed number). + + (cff_parse_real): Added code so that the integer part is moved + into the high sixteen bits of the 16.16 fixed number. + + * src/cff/cffobjs.c (CFF_Init_Face): Added logic to get the units + per EM from the CFF dictionary, if available. + + * include/freetype/internal/cfftypes.h: In struct CFF_Font_Dict_, + added a units_per_em member to facilitate passing of units_per_em + from function cff_parse_font_matrix. + + * src/type1/t1load.c (is_alpha): Make `-' a legal alphanumeric + character. This is so that font names with `-' are fully parsed, + etc... + +2001-02-02 Werner Lemberg <[email protected]> + + * src/psaux/psobjs.c (shift_elements): Remove if clause (which is + obsolete now). + + (reallocate_t1_table, PS_Table_Done): Replace REALLOC() with ALLOC() + + MEM_Copy() to avoid a memory bug. + +2001-02-01 David Turner <[email protected]> + + * docs/docmaker.py: Improved the index sorting routine to place + capital letters before small ones. Added the `<order>' marker to + section blocks in order to give the order of blocks. + +2001-01-30 Antoine Leca <[email protected]> + + * include/freetype/ttnameid.h: Latest updates to Microsoft language + ID codes. + +2001-01-24 Tom Kacvinsky <[email protected]> + + * src/cff/t1load.c (parse_font_matrix): Added heuristic to get + units_per_EM from the font matrix. + + (parse_dict): Deleted test to see whether the FontInfo keyword has + been seen. Deletion of this test allows fonts without FontInfo + dictionaries to be parsed by the Type 1 driver. + + (T1_Open_Face): Deleted empty subroutines array test to make sure + fonts with no subroutines still are parsed. + +2001-01-17 Francesco Zappa Nardelli <[email protected]> + + * src/pcfread.c (pcf_get_properties, pcf_get_metrics, + pcf_get_bitmaps): Fix compiler errors. + +2001-01-11 David Turner <[email protected]> + + * src/pcf/pcfread.c: Removed some compilation warnings related + to comparison of signed vs. unsigned integers. + + * include/freetype/internal/ftdebug.h: Changed the debug trace + constants from trace_t2xxxx to trace_cffxxxx to be able to compile + the CFF driver in debug mode. + +2001-01-11 Matthew Crosby <[email protected]> + + * builds/unix/freetype-config.in: Fix problems with separate + --prefix and --exec-prefix. + +2001-01-11 David Turner <[email protected]> + + * docs/docmaker.py: Added cross-references generation as well as + more robust handling of pathname wildcard matching. + +2001-01-10 Werner Lemberg <[email protected]> + + * docs/docmaker.py: Minor improvements to reduce unwanted spaces + and empty lines in output. + +2001-01-09 David Turner <[email protected]> + + * docs/docmaker.py: Improved script to generate table of contents + and index pages. It also supports wildcards on non Unix systems. + + * include/freetype/*.h, include/freetype/cache/*.h: Updated comments + to include section definitions/delimitations for the API Reference + generator. + + * include/freetype/freetype.h: Moved declaration of + `FT_Generic_Finalizer' and the `FT_Generic' structure to... + * include/freetype/fttypes.h: here. + +2001-01-04 Werner Lemberg <[email protected]> + + * include/freetype/ttnameid.h: Updated Unicode code range comments. + +2001-01-03 Tom Kacvinsky <[email protected]> + + * src/cff/rules.mk: Use cffgload.{c,h} instead of t2gload.{c,h}. + + * include/freetype/internal/internal.h: Changed to use cfftypes.h + (cfferrs.h) instead of t2types.h (t2errors.h, respectively). + + * include/freetype/internal/cfftypes.h: Merged in changes from + t2types.h and made this the canonical `types' header for the CFF + driver. + + * include/freetype/internal/t2types.h: This file was merged with + cfftypes.h and is no longer necessary. + + * include/freetype/internal/t2errors.h: Renamed to cfferrs.h. + + * src/cff/cffobjs.c, src/cff/cffobjs.h, src/cff/cffparse.c, + src/cff/cffdrivr.c, src/cff/cff.c, src/cff/cffload.c, + src/cff/cffgload.c, src/cff/cffgload.h: Changed to use + cffgload.{c,h} instead of t2gload.{c,h}. All occurrences of t2_ + (T2_) were replaced with cff_ (CFF_, respectively). + + * src/cff/t2gload.h: Renamed cffgload.h. + + * src/cff/t2gload.c: Renamed cffgload.c + +2000-01-02 Jouk Jansen <[email protected]> + + * builds/vms: Support files for VMS architecture added. + * descrip.mms, src/*/descrip.mms: VMS makefiles added. + * README.VMS: New file. + +2000-01-01 Werner Lemberg <[email protected]> + + * LICENSE.TXT: Added info about PCF driver license. + +2001-01-01 Francesco Zappa Nardelli <[email protected]> + + * src/pcf/*: New driver module for PCF font format (used in + X Window System). + * include/freetype/internal/ftdebug.h (FT_Trace): Added values for + PCF driver. + * include/freetype/internal/pcftypes.h: New file. + * include/freetype/config/ftmodule.h: Added PCF driver module. + +2001-01-01 Werner Lemberg <[email protected]> + + * src/winfonts/winfnt.c (FNT_Get_Char_Index): Fix parameter type. + +2000-12-31 Werner Lemberg <[email protected]> + + * builds/modules.mk (clean_module_list): Fixed deletion of module + file in case `make make_module_list' is called before `make setup'. + +2000-12-30 Werner Lemberg <[email protected]> + + * src/cff/cffload.c (CFF_Load_Charset): Improved error messages. + (CFF_Load_Charset, CFF_Load_Encoding): Remove unnecessary variable + definition. + +2000-12-30 Tom Kacvinsky <[email protected]> + + * include/freetype/internal/t2types.h, + include/freetype/internal/cfftypes.h: Changed the structures for + CFF_Encoding and CFF_Encoding for the new implementations of the + charset and encoding parsers in the CFF driver. + + * src/cff/t2gload.c (t2_lookup_glyph_by_stdcharcode, + t2_operator_seac): Added these functions for use in implementing the + seac emulation provided by the Type 2 endchar operator. + (T2_Parse_CharStrings): Added seac emulation for the endchar + operator. + + * src/cff/cffload.c (CFF_Load_Encoding, CFF_Load_Charset, + CFF_Done_Encoding, CFF_Done_Charset): Extended to load and parse the + charset/encoding tables, and free the memory used by them when the + CFF driver is finished with them. Added tables + + cff_isoadobe_charset + cff_expert_charset + cff_expertsubset_charset + cff_standard_encoding + cff_expert_encoding + + so that the encoding/charset parser can handle predefined encodings and + charsets. + +2000-12-24 Tom Kacvinsky <[email protected]> + + * src/cff/t2gload.c (T2_Load_Glyph): Added code so that the font + transform is applied. + + * src/cff/cffparse.c (cff_parse_font_matrix): Added code so that + the font matrix numbers are scaled by 1/(matrix->yy). Also, the + offset vector now contains integer values instead of 16.16 fixed + numbers. + +2000-12-22 Tom Kacvinsky <[email protected]> + + * src/autohint/ahhint.c (ah_hinter_load_glyph): + Removed unnecessary comments and commented-out code. + +2000-12-21 David Turner <[email protected]> + + * src/cid/cidafm.c, src/cid/cidafm.h: removed un-needed files, + we'll work on supporting CID AFM files later I guess :-) + +2000-12-21 Tom Kacvinsky <[email protected]> + + * src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph): + Changed so that fonts with a non-standard FontMatrix render + correctly. Previously, the first glyph rendered from such a + font did not have the transformation matrix applied. + +2000-12-17 Werner Lemberg <[email protected]> + + * *.mk: Added lots of `.PHONY' targets. + +2000-12-17 Karsten Fleischer <[email protected]> + + * *.mk: Implemented `platform' target to disable auto-detection. + +2000-12-14 Werner Lemberg <[email protected]> + + * docs/design/modules.html: Removed. Covered by design-*.html. + + * INSTALL: Added info about makepp. + +2000-12-14 David Turner <[email protected]> + + Added support for clipped direct rendering in the smooth renderer. + This should not break binary compatibility of existing applications. + + * include/freetype/fttypes.h, include/freetype/ftimage.h: Move + definition of the FT_BBox structure from the former to the latter. + * include/freetype/ftimage.h: Add `ft_raster_flag_clip' value to + FT_Raster_Flag enumeration. + Add `clip_box' element to FT_Raster_Params structure. + * src/smooth/ftgrays.c (grays_convert_glyph): Implement it. + + * INSTALL: Updated installation instructions on Win32, listing the + new `make setup list' target used to list supported + compilers/targets. + + * src/raster/ftraster.c (ft_black_render): Test for unsupported + direct rendering before testing arguments. + +2000-12-13 David Turner <[email protected]> + + * include/freetype/config/ft2build.h, + include/freetype/internal/internal.h: Fixed header inclusion macros + to use direct definitions. This is the only way to do these things + in a portable way :-( The rest of the code should follow shortly + though everything compiles now. + + * builds/compiler/intelc.mk, builds/compiler/watcom.mk: New files. + + * builds/win32/detect.mk: Added support for the Intel C/C++ + compiler, as well as _preliminary_ (read: doesn't work!) support for + Watcom. Also added a new setup target. Type `make setup list' for + a list of supported command-line compilers on Win32. + + * src/base/ftdebug.c: Added dummy symbol to avoid empty file if + conditionals are off. + +2000-12-13 Werner Lemberg <[email protected]> + + * builds/unix/ftsystem.c: Fixed typos. Fixed inclusion of wrong + ftconfig.h file. + +2000-12-12 Werner Lemberg <[email protected]> + + * include/freetype/config/ft2build.h (FT2_ROOT, FT2_CONFIG_ROOT): + Removed. ANSI C doesn't (explicitly) allow macro expansion in + arguments using `##'. + (FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE): Use directory + names directly. Make them configurable. Use `##' to strip leading + and trailing spaces from arguments. + + * builds/unix/ft2unix.h: Adapted. + + * src/base/ftsystem.c (ft_alloc, ft_realloc, ft_free, ft_io_stream, + ft_close_stream): Use FT_CALLBACK_DEF. + + * builds/unix/ftsystem.c: Use new header scheme. + (FT_Done_Memory): Use free() from FT_Memory structure. + + * src/base/ftinit.c, src/base/ftmac.c: Header scheme fixes. + +2000-12-11 Werner Lemberg <[email protected]> + + * include/freetype/config/ft2build.h (FT2_CONFIG_ROOT, + FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE, + FT_SOURCE_FILE): Use `##' operator to be really ANSI C compliant. + +2000-12-09 Werner Lemberg <[email protected]> + + * builds/unix/detect.mk: Remove unused USE_CFLAGS variable. + +2000-12-08 Werner Lemberg <[email protected]> + + * */*.h: Changed body inclusion macro names to start and end with + `__' (those which haven't converted yet). Fixed minor conversion + issues. + + * src/winfonts/winfnt.c: Updated to new header inclusion scheme. + + * src/truetype/ttinterp.c: Remove unused CALC_Length() macro. + +2000-12-07 David Turner <[email protected]> + + * */*.[ch]: Changed source files to adhere to the new + header inclusion scheme. Not completely tested but works for now + here. + + * src/cff/t2driver.c: Renamed and updated to... + * src/cff/cffdrivr.c: New file. + * src/cff/t2driver.h: Renamed and updated to... + * src/cff/cffdrivr.h: New file. + * src/cff/t2load.c: Renamed and updated to... + * src/cff/cffload.c: New file. + * src/cff/t2load.h: Renamed and updated to... + * src/cff/cffload.h: New file. + * src/cff/t2objs.c: Renamed and updated to... + * src/cff/cffobjs.c: New file. + * src/cff/t2objs.h: Renamed and updated to... + * src/cff/cffobjs.h: New file. + * src/cff/t2parse.c: Renamed and updated to... + * src/cff/cffparse.c: New file. + * src/cff/t2parse.h: Renamed and updated to... + * src/cff/cffparse.h: New file. + * src/cff/t2tokens.h: Renamed and updated to... + * src/cff/cfftoken.h: New file. + + * src/cff/cff.c, src/cff/rules.mk: Updated. + +2000-12-06 David Turner <[email protected]> + + * src/cache/ftlru.c (FT_Lru_Done): Fixed memory leak. + +2000-12-06 Werner Lemberg <[email protected]> + + * builds/module.mk: Replaced `xxx #' with `xxx$(space). + * builds/os2/detekt.mk, builds/win32/detekt.mk: Moved comment to + avoid trailing spaces in variable. + * builds/freetype.mk: Use $(D) instead of $D to make statement more + readable. + + * docs/docmaker.py: Formatting. + +2000-12-05 David Turner <[email protected]> + + * src/psaux/psauxmod.c: Fixed a broken inclusion of component + header files (an FT_FLAT_COMPILE test was missing). + + * src/cache/ftcmanag.c (FTC_Manager_Done): Fixed a bug that caused + an occasional crash when the function was called (due to a dangling + pointer). + + * src/base/ftsystem.c (FT_Done_Memory): Fixed an obvious bug: + The ANSI `free()' function was called instead of `memory->free()'. + + * docs/docmaker.py: Added section filtering, multi-page generation + (index page generation is still missing though). + +2000-12-04 David Turner <[email protected]> + + * builds/unix/install.mk, builds/unix/ft2unix.h: The file `ft2unix.h' + is now installed as <ft2build.h> for Unix systems. Note that we + still use the `freetype2/freetype' installation path for now. + + * */*.[ch]: Now using <ft2build.h> as the default build and setup + configuration file in all public headers. Internal source files + still need some changes though. + + * builds/devel/ft2build.h, builds/devel/ftoption.h: Created a new + directory to hold all development options for both the Unix and + Win32 developer builds. + + * builds/win32/detect.mk, builds/win32/w32-bccd.mk, + builds/win32/w32-dev.mk: Changed the developer build targets to + `devel-gcc' and `devel-bcc' in order to be able to develop with the + Borland C++ compiler. + +2000-12-01 David Turner <[email protected]> + + + * Version 2.0.1 released. + ========================= + + + * builds/unix/configure.in, builds/unix/configure, + builds/cygwin/configure.in, builds/cygwin/configure: Setting + `version_info' to 6:1:0 for the 2.0.1 release. + + * CHANGES: Added a summary of changes between 2.0.1 and 2.0. + + * builds/unix/ftconfig.in, builds/cygwin/ftconfig.in: Changes + to allow compilation under Unix with the Unix-specific config + files. + +2000-12-01 Werner Lemberg <[email protected]> + + * INSTALL: Revised. + * builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk, + builds/compiler/bcc.mk, builds/win32/w32-bcc.mk, + builds/win32/w32-bccd.mk: Revised. + * include/freetype/config/ftbuild.h, + include/freetype/internal/internal.h: Revised. + * include/freetype/ftimage.h: Updated to new header inclusion scheme. + +2000-11-30 Werner Lemberg <[email protected]> + + * builds/toplevel.mk (.PHONY): Adding `distclean'. + * builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc', + `setup'. + +2000-11-30 David Turner <[email protected]> + + * INSTALL: Slightly updated the quick starter documentation to + include IDE compilation, prevent against BSD Make, and specify `make + setup' instead of a single `make' for build configuration. + + * include/config/ftbuild.h, include/internal/internal.h: Added new + configuration files used to determine the location of all public, + configuration, and internal header files for FreeType 2. Modified + all headers under `include/freetype' to reflect this change. Note + that we still need to change the library source files themselves + though. + + * builds/compiler/bcc.mk, builds/compiler/bcc-dev.mk, + builds/win32/w32-bcc.mk, builds/win32/w32-bccd.mk, + builds/win32/detect.mk: Added new files to support compilation with + the free Borland C++ command-line compiler. Modified the detection + rules to recognize the new `bcc32' target in `make setup bcc32'. + + * src/sfnt/ttcmap.c, src/sfnt/ttpost.c, src/sfnt/ttsbit.c, + src/truetype/ttobjs.c, src/truetype/ttgload.c, + src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++ + didn't really like. Basically, this compiler complains when FT_UInt + is compared to FT_UShort (apparently, it promotes `UShort' to `Int' + in these cases). + +2000-11-30 Tom Kacvinsky <[email protected]> + + * t2objs.c (T2_Init_Face): Added calculation of `face->height' for + pure CFF fonts. + + * t1objs.c (T1_Init_Face): Fixed computation of `face->height'. + +2000-11-29 David Turner <[email protected]> + + * src/base/ftbbox.c (BBox_Conic_Check): Fixed a really stupid + bug in the formula used to compute the conic Bézier extrema + of non-monotonous arcs. + +2000-11-29 Werner Lemberg <[email protected]> + + * src/base/ftcalc.c (FT_SqrtFixed), src/base/ftobjs.c + (FT_Set_Renderer): Use FT_EXPORT_DEF. + * src/cache/ftcimage.c (FTC_Image_Cache_Lookup), + src/cache/ftcmanag.c (FTC_Manager_Done, FTC_Manager_Reset, + FTC_Manager_Lookup_Face, FTC_Manager_Lookup_Size, + FTC_Manager_Register_Cache), src/cache/ftcsbits.c + (FTC_SBit_Cache_Lookup): Ditto. + + * src/include/freetype/cache/ftcglyph.h (FTC_GlyphNode_Init), + src/include/freetype/ftmac.h (FT_New_Face_From_FOND): Use FT_EXPORT. + +2000-11-29 Werner Lemberg <[email protected]> + + * src/sfnt/sfdriver.c: Include ttsbit.h and ttpost.h only + conditionally. + + * src/truetype/ttdriver.c (Set_Char_Sizes, Set_Pixel_Sizes): Set + `size->strike_index' only conditionally. + + * src/type1/t1driver.c, src/type1/t1objs.c: Include t1afm.h only + conditionally. + + * src/winfonts/winfnt.h: Move all type definitions to... + * src/include/freetype/internal/fnttypes.h: New file. + * src/winfonts/winfnt.c: Use it. + +2000-11-29 ??? ??? <[email protected]> + + * include/freetype/internal/ftdebug.h: Replaced FT_CAT and FT_XCAT + with a direct solution (which also satisfies picky compilers). + +2000-11-28 YAMANO-UCHI Hidetoshi <[email protected]> + + * src/truetype/ttobjs.c (TT_Init_Size): Fix #ifdef's to work with + disabled interpreter also. + + * src/base/ftnames.c (FT_Get_Sfnt_Name_Count): Fix incorrect + parentheses. + +2000-11-26 Tom Kacvinsky <[email protected]> + + * src/cff/t2gload.c (T2_Parse_CharStrings): Added logic to glyph + width setting code to take into account even/odd argument counts + and glyph width operand before endchar/hmoveto/vmoveto. + +2000-11-26 Werner Lemberg <[email protected]> + + * builds/ansi/ansi.mk: Fix inclusion order of files. + +2000-11-26 Keith Packard <[email protected]> + + * src/type1/t1objs.c (T1_Init_Face): Compute style flags. + +2000-11-26 Werner Lemberg <[email protected]> + + * builds/compiler/ansi-cc.mk (CLEAN_LIBRARY): Fix rule and + conditional. + +2000-11-23 Werner Lemberg <[email protected]> + + * src/type1/t1load.c (parse_subrs, parse_charstrings): Use decrypt + function from PSAux module. + + * src/type1/t1parse.c (T1_Done_Parse): Renamed to... + (T1_Finalize_Parser): New function (to avoid name clash with a + function in the PSAux module). + (T1_Decrypt): Removed since it is duplicated in the PSAux module. + (T1_Get_Private_Dict): Added `psaux' as new parameter; use decrypt + function from PSAux module. + + * src/type1/t1parse.h: Adapted. + +2000-11-22 Tom Kacvinsky <[email protected]> + + * src/cff/t2objs.c (T2_Init_Face): For pure CFF fonts, set + `root->num_faces' to `cff->num_faces' and set `units_per_EM' + to 1000. + + * src/cff/t2parse.c (parse_t2_real): Fixed real number parsing + loop. + + * src/cff/t2load.c (T2_Get_String): Called T2_Get_Name with a + sid that was off by one. + +2000-11-16 David Turner <[email protected]> + + * src/autohint/ahtypes.h (AH_Hinter): Added new fields to control + auto-hinting of synthetic Type 1 fonts. + + * src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph): + Added auto-hinting support of synthetic Type 1 fonts. + +2000-11-12 Tom Kacvinsky <[email protected]> + + * src/sfnt/ttload.c (TT_LookUp_Table, TT_Load_Generic_Table): Change + tracing output. + + * src/sfnt/sfobjs.c (SFNT_Load_Face): Set boolean variable + `has-outline' to true only if the font has a `glyf' or `CFF ' table. + +2000-11-11 Werner Lemberg <[email protected]> + + * builds/win32/visualc/freetype.dsp: Fix raster1->raster and + type1z->type1. + +2000-11-11 Tom Kacvinsky <[email protected]> + + * builds/unix/freetype-config.in, builds/cygwin/freetype-config.in: + Added a --libtool option. When freetype-config --libtool is + invoked, the absolute path to the libtool convenience library + is returned. + +2000-11-11 Werner Lemberg <[email protected]> + + * builds/cygwin/cygwin-def.in: Same fix as previous. + +2000-11-10 Tom Kacvinsky <[email protected]> + + * builds/unix/unix-def.in: Add + + INSTALL_PROGRAM := @INSTALL_PROGRAM@ + INSTALL_SCRIPT := @INSTALL_SCRIPT@ + + so that installation of freetype-config does not fail. + +2000-11-10 Werner Lemberg <[email protected]> + + * builds/cygwin/freetype-config.in, builds/unix/freetype-config.in: + Move test down for empty --exec-prefix. + Fix --version. + + * builds/cygwin/install.mk, builds/unix/install.mk: Use + $(INSTALL_SCRIPT) for installation of freetype-config. + + * builds/cygwin/install.mk: Fix clean target names. + +2000-11-09 David Turner <[email protected]> + + + * Version 2.0 released. + ======================= + +---------------------------------------------------------------------------- + +Copyright 2000, 2001, 2002, 2007 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. + + +Local Variables: +version-control: never +coding: utf-8 +End: diff --git a/components/external/freetype/ChangeLog.21 b/components/external/freetype/ChangeLog.21 index ef25bfce1f..d6371d1758 100644 --- a/components/external/freetype/ChangeLog.21 +++ b/components/external/freetype/ChangeLog.21 @@ -1,9439 +1,9439 @@ -2005-06-08 Werner Lemberg <[email protected]>
-
-
- * Version 2.1.10 released.
- ==========================
-
-
- * src/pcf/readme: Renamed to...
- * src/pcf/README: This.
-
-2005-06-07 Detlef Würkner <[email protected]>
-
- * builds/amiga/*: Added copyright notes, reworked some comments.
-
-2005-06-05 Werner Lemberg <[email protected]>
-
- * Add copyright notices to all files which don't have one.
-
- * docs/license.txt: Renamed to...
- * docs/LICENSE.TXT: This.
- * docs/FTL.txt: Renamed to...
- * docs/FTL.TXT: This.
- * docs/GPL.txt: Renamed to...
- * docs/GPL.TXT: This.
-
- * docs/PATENTS: Slightly reworded. Suggested by Sylvain Beucler
- <[email protected]>.
-
-2005-06-04 Werner Lemberg <[email protected]>
-
- * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
- FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
- FT_Outline_CubicToFunc, FT_Raster_RenderFunc),
- include/freetype/ftrender.h (FT_Glyph_TransformFunc,
- FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Don't use
- `const' to stay compatible with FreeType 2.1.9.
-
-2005-06-01 Adam D. Moss <[email protected]>
-
- * src/base/ftstroke.c (ft_stroker_inside): Revert `sigma' patch from
- 2004-07-11; this gives much better results under normal
- circumstances.
-
-2005-05-30 Chia I Wu <[email protected]>
-
- * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Minor
- documentation improvements.
-
- * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix typos.
-
- * src/base/ftbitmap.c (FT_Bitmap_Embolden): Add support for bitmap
- of pixel_mode FT_PIXEL_MODE_GRAY2 or FT_PIXEL_MODE_GRAY4.
- If xstr is larger than 8 and bitmap is of pixel_mode
- FT_PIXEL_MODE_MONO, set xstr to 8 instead of returning error.
-
-2005-05-29 Chia I Wu <[email protected]>
-
- * src/base/ftbitmap.c (FT_Bitmap_Embolden): Fix emboldening bitmap
- of mode FT_PIXEL_MODE_GRAY. Also add support for mode
- FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V.
- (ft_bitmap_assure_buffer): FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V
- should have ppb (pixel per byte) 1.
- Zero the padding when there's no need to allocate memory.
-
- * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle slot->advance
- too.
- More suited emboldening strength.
-
-2005-05-28 Chia I Wu <[email protected]>
-
- * src/base/ftbitmap.c (FT_Bitmap_Embolden): Handle negative pitch.
- Handle FT_PIXEL_MODE_GRAY with num_gray != 256.
- Improve speed for FT_PIXEL_MODE_GRAY.
- (ft_bitmap_assure_buffer): Accept FT_PIXEL_MODE_LCD and
- FT_PIXEL_MODE_LCD_V.
-
-2005-05-27 Chia I Wu <[email protected]>
-
- * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Initialize `error'.
-
- * src/base/ftobjs.c (ft_cmap_done_internal): New function.
- (FT_CMap_Done): Remove cmap from cmap list.
- (destroy_charmaps, FT_CMap_New): Don't call FT_CMap_Done but
- ft_cmap_done_internal.
-
-2005-05-26 Werner Lemberg <[email protected]>
-
- * docs/GPL.txt: Update postal address of FSF.
-
-2005-05-26 Chia I Wu <[email protected]>
-
- * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Improve
- documentation.
-
- * src/base/ftsynth.c (FT_BOLD_THRESHOLD): Removed.
- (FT_GlyphSlot_Embolden): Check whether slot is bitmap owner.
- Always modify the metrics.
-
-2005-05-24 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2005-05-24 Chia I Wu <[email protected]>
-
- * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): New declaration.
-
- * include/freetype/ftoutln.h (FT_Outline_Embolden): New declaration.
-
- * src/base/ftbitmap.c (ft_bitmap_assure_buffer): New auxiliary
- function.
- (FT_Bitmap_Embolden): New function.
-
- * src/base/ftoutln.c (FT_Outline_Embolden): New function.
-
- * src/base/ftsynth.c: Don't include FT_INTERNAL_CALC_H and
- FT_TRIGONOMETRY_H but FT_BITMAP_H.
- (FT_GlyphSlot_Embolden): Use FT_Outline_Embolden or
- FT_Bitmap_Embolden.
-
-2005-05-24 Werner Lemberg <[email protected]>
-
- * configure: Always remove config.mk, builds/unix/unix-def.mk, and
- builds/unix/unix-cc.mk. This fixes repeated calls of the script.
- Reported by Nelson Beebe and Behdad Esfahbod.
-
- * README.CVS: Mention file permissions.
-
-2005-05-23 Werner Lemberg <[email protected]>
-
- * builds/amiga/makefile.os4 (WARNINGS), builds/compiler/gcc-dev.mk
- (CFLAGS), builds/compiler/gcc.mk (CFLAGS): Remove
- -fno-strict-aliasing.
-
- * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c --
- it is currently loaded from ttsbit.c.
-
-2005-05-23 Behdad Esfahbod <[email protected]>
-
- Say you have `(Foo*)x' and want to assign, pass, or return it as
- `(Bar*)'. If you simply say `x' or `(Bar*)x', then the C compiler
- would warn you that type casting incompatible pointer types breaks
- strict-aliasing. The solution is to cast to `(void*)' instead which
- is the generic pointer type, so the compiler knows that it should
- make no strict-aliasing assumption on `x'. But the problem with
- `(void*)x' is that seems like in C++, unlike C, `void*' is not a
- generic pointer type and assigning `void*' to `Bar*' without a cast
- causes an error. The solution is to cast to `Bar*' too, with
- `(Bar*)(void*)x' as the result -- this is what the patch does.
-
- * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP),
- include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Remove
- cast on lvalue, use a temporary pointer instead.
- Cast temporarily to (void*) to not break strict aliasing.
-
- * include/freetype/internal/ftmemory.h (FT_MEM_ALLOC,
- FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC, FT_MEM_FREE),
- src/base/ftglyph.c (FT_Glyph_To_Bitmap): Cast temporarily to (void*)
- to not break strict aliasing.
-
- * src/base/ftinit.c (FT_USE_MODULE): Fix wrong type information.
-
- * builds/unix/configure.ac (XX_CFLAGS): Remove -fno-strict-aliasing.
-
-2005-05-23 David Turner <[email protected]>
-
- Fix Savannah bug #12213 (incorrect behaviour of the cache sub-system
- in low-memory conditions).
-
- * include/freetype/cache/ftccache.h (FTC_CACHE_TRYLOOP,
- FTC_CACHE_TRYLOOP_END): New macros.
-
- * src/cache/ftccache.c (FTC_Cache_NewNode), src/cache/ftcsbits.c
- (ftc_snode_compare): Use FT_CACHE_TRYLOOP and FTC_CACE_TRYLOOP_END.
-
-2005-05-23 Werner Lemberg <[email protected]>
-
- * src/base/rules.mk (BASE_SRC): Don't add ftsynth.c here but...
- (BASE_EXT_SRC): Here.
-
-2005-05-22 Werner Lemberg <[email protected]>
-
- * src/base/ftrfork.c (raccess_guess_apple_generic): Mark
- `version_number' and `entry_length' as unused.
- (raccess_guess_linux_double_from_file_name): Remove `memory'.
- (raccess_make_file_name): Mark `error' as unused.
-
- * src/bdf/bdflib.c (_bdf_parse_properties): Remove `memory'.
-
- * src/cid/cidobjs.c (cid_face_init): Remove `psnames'.
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Remove `memory'.
-
- * src/truetype/ttgxvar.c (ft_var_readpackedpoints,
- ft_var_readpackeddeltas, ft_var_load_avar): Mark `error' as unused.
-
- * src/base/rules.mk (BASE_SRC): Add ftsynth.c.
-
-2005-05-21 David Turner <[email protected]>
-
- * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Fix a bug that
- produced unpleasant artefacts when trying to embolden very sharp
- corners.
-
-2005-05-20 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2005-05-20 Chia I Wu <[email protected]>
-
- * src/base/ftbitmap.c: Don't include FT_FREETYPE_H and FT_IMAGE_H
- but FT_BITMAP_H.
- (FT_Bitmap_Copy): New function (from ftglyph.c).
-
- * include/freetype/ftbitmap.h (FT_Bitmap_Copy): New public
- definition.
-
- * src/base/ftglyph.c: Include FT_BITMAP_H.
- (ft_bitmap_copy): Move to ftbitmap.c.
- (ft_bitmap_glyph_init): Remove `memory' variable.
- Create new bitmap object if FT_GLYPH_OWN_BITMAP isn't set.
- (ft_bitmap_glyph_copy): Use FT_Bitmap_Copy.
- (ft_bitmap_glyph_done): Use FT_Bitmap_Done.
- (ft_outline_glyph_init): Use FT_Outline_Copy.
-
- * src/base/ftoutln.c (FT_Outline_Copy): Handle source == target.
- (FT_Outline_Done_Internal): Check for valid `memory' pointer.
- (FT_Outline_Translate, FT_Outline_Reverse, FT_Outline_Render,
- FT_Outline_Transform): Check for valid `outline' pointer.
-
- * src/base/ftobjs.c (FT_New_GlyphSlot): Prepend glyph slot to
- face->glyph, otherwise a new second glyph slot cannot be created.
- (FT_Done_GlyphSlot): Fix memory leak.
- (FT_Open_Face): Updated -- face->glyph is already managed by
- FT_New_GlyphSlot.
-
- * src/type42/t42objs.c (T42_GlyphSlot_Done): Updated.
-
-2005-05-20 Kirill Smelkov <[email protected]>
-
- * include/freetype/ftimage.h (FT_Raster_Params),
- include/freetype/ftoutln.h (FT_Outline_Translate,
- FT_Outline_Transform), src/base/ftoutln.c (FT_Outline_Translate,
- FT_Outline_Transform): Decorate parameters with `const' where
- appropriate.
- Update all callers.
-
- * src/raster/ftraster.c (ft_black_reset), src/smooth/ftgrays.c
- (gray_raster_reset): Remove `const' from `pool_base' argument.
-
-2005-05-18 Kirill Smelkov <[email protected]>
-
- * src/raster/ftmisc.h: New file. Only needed if ftraster.c is
- compiled as stand-alone.
-
- * src/raster/ftraster.c: Add comment how to compile as stand-alone.
- s/FT_CONFIG_OPTION_STATIC_RASTER/FT_STATIC_RASTER/.
- s/TT_STATIC_RASTER/FT_STATIC_RASTER/.
- [_STANDALONE_]: Include ftimage.h and ftmisc.h.
- (FT_TRACE1, FT_TRACE6, ft_memset, FT_MEM_ZERO): Define
- conditionally.
- (Render_Glyph, Render_Gray_Glyph): Return Raster_Err_None (or
- Raster_Err_Unsupported).
- (ft_black_new) [_STANDALONE_]: Fix type of `the_raster'.
- (ft_black_init, ft_black_reset, ft_black_set_mode, ft_black_render):
- Use `ras', not `raster'.
- (ft_black_done): Use FT_UNUSED_RASTER.
- (Horizontal_Sweep_Init, Horizontal_Sweep_Step,
- Horizontal_Gray_Sweep_Span): Use FT_UNUSED_RASTER.
-
-2005-05-18 Werner Lemberg <[email protected]>
-
- * docs/announce: Start updating.
-
- * docs/CHANGES: Updated.
-
-2005-05-16 Vitaliy Pasternak <[email protected]>
-
- * builds/win32/visualc/freetype.vcproj: Updated.
- Exclude debug info for `Release' versions to reduce library size.
-
-2005-05-16 Werner Lemberg <[email protected]>
-
- * src/base/ftobjs.c (FT_Open_Face): Make it work as documented, this
- is, ignore `aface' completely if face_index < 0. Reported by David
- Osborn <[email protected]>.
-
-2005-05-16 Kirill Smelkov <[email protected]>
-
- * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
- FT_Outline_LineTo_Func, FT_Outline_ConicToFunc,
- FT_Outline_CubicToFunc), src/smooth/ftgrays.c (gray_render_conic,
- gray_render_cubic, gray_move_to, gray_line_to, gray_conic_to,
- gray_cubic_to, gray_render_span, gray_sweep): Decorate parameters
- with `const' where appropriate.
-
-2005-05-11 Kirill Smelkov <[email protected]>
-
- * include/freetype/ftimage.h (FT_Raster_RenderFunc),
- include/freetype/ftrender.h (FT_Glyph_TransformFunc,
- FT_Renderer_Render_Func, FT_Renderer_TransformFunc),
- src/base/ftglyph.c (ft_outline_glyph_transform),
- src/raster/ftrend1.c (ft_raster1_transform, ft_raster1_render),
- src/smooth/ftgrays.c (FT_Outline_Decompose, gray_raster_render),
- src/smooth/ftsmooth.c (ft_smooth_transform,
- ft_smooth_render_generic, ft_smooth_render, ft_smooth_render_lcd,
- ft_smooth_render_lcd_v): Decorate parameters with `const' where
- appropriate.
-
- * src/raster/ftraster.c (RASTER_RENDER_POOL): Removed. Obsolete.
- (ft_black_render): Decorate parameters with `const' where
- appropriate.
-
-2005-05-11 Werner Lemberg <[email protected]>
-
- * src/sfnt/ttcmap.c (tt_cmap4_set_range): Fix typo (FT_PEEK_SHORT ->
- FT_PEEK_USHORT) which caused crashes. Reported by Ismail Donmez
- <[email protected]>.
-
-2005-05-08 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/ftserv.h (FT_FACE_FIND_GLOBAL_SERVICE)
- [__cplusplus]: Fix typo.
-
-2005-05-07 Werner Lemberg <[email protected]>
-
- Handle unsorted SFNT type 4 cmaps correctly (reported by Dirck
- Blaskey <[email protected]>).
-
- * src/sfnt/ttcmap.h (TT_CMap): Add member `unsorted'.
- * src/sfnt/ttcmac.c: Use SFNT_Err_Ok where appropriate.
-
- (tt_cmap0_validate, tt_cmap2_validate, tt_cmap6_validate,
- tt_cmap8_validate, tt_cmap10_validate, tt_cmap12_validate): Use
- `FT_Error' as return type.
- (tt_cmap4_validate): Use `FT_Error' as return type.
- Return error code for unsorted cmap.
- (tt_cmap4_char_index, tt_cmap4_char_next): Use old code for unsorted
- cmaps.
- (tt_face_build_cmaps): Set `unsorted' variable in cmap.
-
-2005-05-07 Werner Lemberg <[email protected]>
-
- * src/truetype/ttpload.c (tt_face_get_location): Fix typo.
-
-2005-05-06 Werner Lemberg <[email protected]>
-
- * src/cff/cffobjs.c (cff_face_init): Set ppem value in top
- dictionary for SFNT-based CFF.
-
-2005-05-05 Werner Lemberg <[email protected]>
-
- Handle malformed `loca' table entries.
-
- * docs/TODO: Add some bugs which should be fixed.
-
- * include/freetype/internal/tttypes.h (TT_FaceRec): Add `glyf_len'
- element.
-
- * src/truetype/ttpload.c (tt_face_load_loca): Get length of `glyf'
- table.
- (tt_face_get_location): Fix computation of `asize' for malformed
- `loca' entries.
-
-2005-05-01 David Turner <[email protected]>
-
- * Jamfile: Remove `otvalid' from the list of compiled modules.
-
- * include/freetype/internal/ftserv.h: Add compiler pragmas to get
- rid of annoying warnings with Visual C++ compiler in maximum warning
- mode.
-
- * src/autofit/afhints.c, src/autofit/aflatin.c, src/base/ftstroke.c,
- src/bdf/bdfdrivr.c, src/cache/ftcbasic.c, src/cache/ftccmap.c,
- src/cache/ftcmanag.c, src/cff/cffload.c, src/cid/cidload.c,
- src/lzw/zopen.c, src/otvalid/otvgdef.c, src/pcf/pcfread.c,
- src/sfnt/sfobjs.c, src/truetype/ttgxvar.c: Remove compiler warnings.
-
-2005-04-28 Werner Lemberg <[email protected]>
-
- * docs/TODO: Updated.
-
-2005-04-24 Werner Lemberg <[email protected]>
-
- * src/otvalid/otvcommn.c
- (otv_GSUBGPOS_have_MarkAttachmentType_flag): Handle table == 0.
-
-2005-04-16 Werner Lemberg <[email protected]>
-
- * src/cff/cffobjs.c (cff_face_init): Set default upem value in top
- font dict also.
- Handle font matrix settings in subfonts.
-
- * src/cff/cffgload.c (cff_slot_load): Use the correct font matrix
- for CID-keyed fonts with subfonts.
-
- * docs/formats.txt: Updated.
-
-2005-04-14 Kirill Smelkov <[email protected]>
-
- * include/freetype/freetype.h (FT_Vector_Transform),
- include/freetype/ftimage.h (FT_Raster_Params),
- include/freetype/ftoutln.h, src/base/ftoutln.c (FT_Outline_Get_CBox,
- FT_Outline_Copy, FT_Outline_Transform, FT_Vector_Transform,
- FT_Outline_Get_Bitmap), src/raster/ftraster.c (ft_black_render),
- src/smooth/ftgrays.c (gray_raster_render): Decorate parameters with
- `const' where appropriate.
-
-2005-04-14 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.c (parse_charstrings): Catch this non-standard
- beginning of the /CharStrings dictionary:
-
- /CharStrings 118 dict def
- Private begin
- CharStrings begin
-
- * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix arguments
- to call of tt_sbit_decoder_load_bitmap.
-
-2005-04-13 Werner Lemberg <[email protected]>
-
- * docs/TODO: Updated.
-
- * autogen.sh: Use `--force' for all commands.
-
-2005-04-09 Werner Lemberg <[email protected]>
-
- * src/pshinter/pshalgo.c (ps_hints_apply): Change scaling values
- only if `fitted' is not zero.
-
-2005-04-06 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c (tt_face_get_metrics) [FT_OPTIMIZE_MEMORY]:
- Fix typo which sometimes causes wrong metrics for the last glyph.
-
-2005-04-04 David Turner <[email protected]>
-
- * devel/ftoption.h, include/freetype/config/ftoption.h
- (FT_OPTIMIZE_MEMORY): Comment out this macro for the upcoming 2.1.10
- release.
- (*_CHESTER_*): Removed. No longer used.
-
- * src/autofit/afhints.c (af_axis_hints_new_segment,
- af_axis_hints_new_edge): Small tweak to use less heap memory.
-
-2005-04-03 Werner Lemberg <[email protected]>
-
- * src/type1/t1parse.c (T1_New_Parser): Relax the check for a valid
- first line in the font.
-
-2005-04-03 Werner Lemberg <[email protected]>
-
- * docs/CHANGES, include/freetype/freetype.h: Improve documentation
- of FT_Set_Pixel_Sizes and FT_Set_Char_Size.
-
-2005-03-26 Detlef Würkner <[email protected]>
-
- * builds/amiga/src/base/ftsystem.c (ft_amiga_stream_io): Fix buffer
- offsets after a large read.
-
-2005-03-26 Werner Lemberg <[email protected]>
-
- * src/autofit/afglobal.c (af_face_globals_get_metrics):
- s/index/gidx/.
-
- * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix compiler
- warnings.
-
- * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
-
- * src/sfnt/ttsbit0.h: Dummy file for build with `make'.
-
-2005-03-26 Detlef Würkner <[email protected]>
-
- Update of the Amiga port.
-
- * builds/amiga/makefile, builds/amiga/makefile.os4,
- builds/amiga/smakefile: Included the base extension files
- (ftbitmap.c, ftotval.c, ftpfr.c, ftstroke.c, ftxf86.c).
-
-2005-03-25 Detlef Würkner <[email protected]>
-
- Update of the Amiga port.
-
- * builds/amiga/makefile, builds/amiga/smakefile: Handle new modules.
-
- * builds/amiga/makefile.os4: Makefile for AmigaOS4 SDK.
-
- * builds/amiga/README: Updated.
-
- * builds/amiga/include/freetype/config/ftconfig.h: Handle gcc for
- AmigaOS4.
-
- * builds/amiga/include/freetype/config/ftmodule.h: Handle new
- modules.
-
- * builds/amiga/src/base/ftdebug.c: Updated to current version of
- default ftdebug.c.
- Add various include files and macros to have proper support for
- both AmigaOS4 and older AmigaOS versions.
- Don't declare KVPrintF explicitly.
- Replace getenv with GetVar.
- Actually enable debugging code.
-
- * builds/amiga/src/base/ftsystem.c: Major rewrite.
-
-2005-03-23 Werner Lemberg <[email protected]>
-
- * tests/*: Removed.
-
-2005-03-23 Werner Lemberg <[email protected]>
-
- * docs/CHANGES, docs/INSTALL.ANY: Updated.
-
- * include/freetype/ftmoderr.h: Replace `Autohint' with `Autofit'.
- Add `OTvalid'.
-
- * src/autofit/aferrors.h: New file.
-
- * src/autofit/afglobal.c, src/autofit/afhints.c,
- src/autofit/aflatin.c, src/autofit/afloader.c: s/FT_Err_/AF_Err_/.
- Include aferrors.h.
-
- * src/autofit/rules.mk (AUTOF_DRV_H): Include aferrors.h.
-
- * src/otvalid/otverror.h: s/FT_Mod_Err_OTV/FT_Mod_Err_OTvalid/.
-
-2005-03-22 David Turner <[email protected]>
-
- * src/autohint/*: Removed.
- * Jamfile: Updated.
-
-2005-03-15 David Turner <[email protected]>
-
- * src/bdf/bdflib.c: Remove compiler warnings.
- (hash_rehash, hash_init): Don't call FT_MEM_ZERO.
- (_bdf_list_t): Add `memory' field.
- (_bdf_list_init, _bdf_list_done, _bdf_list_ensure): New functions.
- (_bdf_shift, _bdf_join): Rename to...
- (_bdf_list_shift, _bdf_list_join): This.
- (_bdf_split): Renamed to...
- (_bdf_list_split): This. Use new functions.
- (bdf_internal_readstream): Removed.
- (NO_SKIP): New macro.
- (_bdf_readstream): Rewritten.
- (bdf_create_property, _bdf_add_comment): Improve allocation.
- (_bdf_set_default_spacing, _bdf_parse_glyphs): Updated. Improve
- allocation.
- (_bdf_parse_properties, _bdf_parse_start): Updated.
- (bdf_load_font): Updated to use new functions.
-
- * src/type1/t1parse.c (check_type1_format): New function.
- (T1_New_Parser): Use it to check font header before allocating
- anything on the heap.
-
- * src/type42/t42parse.c (t42_parser_init): Modify functions to check
- the font header before allocating anything on the heap.
-
- * include/freetype/internal/ftmemory.h (FT_ARRAY_MAX,
- FT_ARRAY_CHECK): New macros.
-
- * src/base/ftstream.c (FT_Stream_TryRead): New function.
- * include/freetype/internal/ftstream.h: Updated.
-
- * src/pcf/pcfread.c (pcf_read_TOC), src/pcf/pcfutil.c
- (BitOrderInvert, TwoByteSwap, FourByteSwap): Minor fixes and
- simplifications. Try to protect the PCF driver from doing stupid
- things with broken fonts.
-
- * src/lzw/ftlzw.c (FT_Stream_OpenLZW): Check the LZW header before
- doing anything else. This avoids unnecessary heap allocations
- (400KByte of heap memory for the LZW decoder).
-
- * src/gzip/ftgzip.c (FT_Stream_OpenGZip): Ditto for the gzip
- decoder, although the code savings are smaller.
-
- * docs/CHANGES: Updated.
-
-2005-03-10 David Turner <[email protected]>
-
- * src/tools/glnames.py: Add comment to explain the compression
- being used for the Adobe Glyph List.
-
-2005-03-10 Werner Lemberg <[email protected]>
-
- * src/truetype/ttpload.c (tt_face_load_cvt, tt_face_load_fpgm):
- Fix serious typo which prevented correct TT rendering.
-
- * include/freetype/internal/ftmemory.h: Undo change from 2005-03-03.
- To suppress warnings it is sufficient to use `-fno-strict-aliasing'.
-
-2005-03-10 Werner Lemberg <[email protected]>
-
- * src/tools/glnames.py: Formatted.
- Format output to be in sync with other FreeType code.
- Import `re' and `os.path'.
- (StringTable) <__init__>: Add parameter to initialize master table
- name.
- (StringTable) <dump>: Don't pass master table name.
- (StringTable) <dump_sublist>: Emit explanatory comment.
- Simplify and make output more human readable.
- (t1_bias, glyph_list, adobe_glyph_names): Removed. Unused.
- (main): Use `basename' for file name in header.
-
- * src/psnames/pstables.h: Regenerated.
-
-2005-03-09 David Turner <[email protected]>
-
- * src/tools/glnames.py: Rewrite the generator for the `pstables.h'
- header file which contains various constant tables related to glyph
- names. It now uses a different, more compact storage scheme that
- saves about 20KB. This also closes Savannah bug #12262.
-
- * src/psnames/pstables.h: Regenerated.
-
- * src/psnames/psmodule.c (ps_unicode_value): Use
- `ft_get_adobe_glyph_index', a new function defined in `pstables.h'.
- (ps_get_macintosh_name, ps_get_standard_strings): Updated.
-
- * src/base/ftobjs.c (FT_Set_Char_Sizes): Handle fractional sizes
- more carefully. This fixes Savannah bug #12263.
-
-2005-03-06 David Turner <[email protected]>
-
- * src/otvalid/otvgsub.c, src/otvalid/otvgpos.c: Make static tables
- constant.
-
- * src/autofit/aflatin.c (af_latin_metrics_init): Fix Savannah bug
- #12212 (auto-hinter refuses to work if no Unicode charmap in font).
-
-2005-03-05 Werner Lemberg <[email protected]>
-
- * autogen.sh: New script for bootstrapping.
-
- * README.CVS: New file which documents bootstrapping.
-
- * builds/unix/aclocal.m4, builds/unix/config.guess,
- builds/unix/config.sub, builds/unix/configure,
- builds/unix/ltmain.sh: Removed.
-
-2005-03-04 Werner Lemberg <[email protected]>
-
- * src/base/ftutil.c: Include FT_INTERNAL_OBJECTS_H.
-
-2005-03-03 Werner Lemberg <[email protected]>
-
- Various fixes for C and C++ compiling.
-
- * src/autofit/*: Add copyright messages.
-
- * src/autofit/afhints.c (af_glyph_hints_done): Don't use
- `AF_Dimension' but `int' for loop counter.
-
- * src/autofit/aflatin.c (af_latin_metrics_init_widths): Don't use
- `AF_Dimension' but `int' for loop counter.
- Use proper enumeration value for `render_mode'.
- (af_latin_metrics_scale_dim): Don't shadow variables.
- (af_latin_hints_compute_segments): Use proper cast for `major_dir'
- and `segment_dir'.
- (af_latin_align_linked_edge, af_latin_hint_edges): Fix arguments of call to
- `af_latin_compute_stem_width'.
- (af_latin_hints_apply): Don't use `AF_Dimension' but `int' for loop
- counter.
-
- * src/base/ftdbgmem.c (ft_mem_table_get_source, FT_DumpMemory): Use
- proper cast for memory allocation.
-
- * src/cff/cffdrivr.c (cff_get_kerning): Use proper cast for
- initialization of `sfnt'.
-
- * src/sfnt/sfdriver.c: Include `ttkern.h'.
-
- * src/sfnt/ttkern.c (tt_face_get_kerning): Don't shadow variables.
-
- * src/truetype/ttgload.c: Include `ttpload.h'.
-
-2005-03-03 David Turner <[email protected]>
-
- * include/freetype/internal/ftmemory.h (FT_ALLOC, FT_REALLOC,
- FT_QALLOC, FT_QREALLOC) [gcc >= 3.3]: Provide macro versions which
- avoid compiler warnings.
- (FT_NEW, FT_NEW_ARRAY, FT_RENEW_ARRAY, FT_QNEW, FT_QNEW_ARRAY,
- FT_QRENEW_ARRAY, FT_ALLOC_ARRAY, FT_REALLOC_ARRAY): Updated.
-
- * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
- FT_FACE_FIND_GLOBAL_SERVICE, FT_FACE_LOOKUP_SERVICE) [__cplusplus]:
- Provide macro versions which avoid compiler warnings.
-
- * src/base/ftutil.c (ft_highpow2): New utility function.
-
- * include/freetype/internal/ftobjs.h: Updated.
-
- * src/pfr/pfrload.c (pfr_get_gindex, pfr_compare_kern_pairs,
- pfr_sort_kerning_pairs): Don't define if FT_OPTIMIZE_MEMORY is set.
- (pfr_phy_font_done): Don't handle `kern_pairs' if FT_OPTIMIZE_MEMORY
- is set.
- (pfr_phy_font_load): Don't call `pfr_sort_kerning_pairs' if
- FT_OPTIMIZE_MEMORY is set.
-
- * src/pfr/pfrobjs.c (pfr_slot_load): Comment out some code which
- doesn't work with broken fonts.
- (pfr_face_get_kerning) [FT_OPTIMIZE_MEMORY]: Implement.
-
- * src/pfr/pfrtypes.h (PFR_KernItemRec): Optimize member types.
- (PFR_NEXT_KPAIR): New macro.
- (PFR_PhyFontRec): Don't define `kern_pairs' if FT_OPTIMIZE_MEMORY is
- set.
-
- * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Introduce
- temporary variable to avoid gcc warning.
- (tt_face_load_sbit_image): Mark unused variables with FT_UNUSED.
-
- * src/truetype/ttpload.c (tt_face_load_loca) [FT_OPTIMIZE_MEMORY]:
- Remove redundant variable.
-
- * include/freetype/config/ftmodule.h: Moving the order of drivers to
- speed up font loading. The PCF and BDF loaders are still slow and
- consume far too much memory.
-
-2005-03-03 Werner Lemberg <[email protected]>
-
- * devel/ftoption.h: Updated to recent changes.
-
-2005-03-02 Werner Lemberg <[email protected]>
-
- * src/autofit/afdummy.c, src/autofit/afdummy.h
- (af_dummy_script_class): Fix type.
-
- * src/autofit/aflatin.c, src/autofit/aflatin.h
- (af_latin_script_class): Fix type.
-
- * src/autofit/rules.mk (AUTOF_DRV_SRC): Fix typo.
-
-2005-03-01 David Turner <[email protected]>
-
- * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning),
- src/sfnt/ttsbit0.c (tt_face_load_sbit_strikes,
- tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_compound,
- tt_sbit_decoder_load_image), src/sfnt/ttload.c
- (tt_face_load_metrics): Remove compiler warnings
- -- redundant variables, missing initializations, etc.
-
- * src/sfnt/ttsbit.h: Handle FT_OPTIMIZE_MEMORY.
-
- * src/autofit/rules.mk, src/autofit/module.mk,
- src/autofit/afangles.h: New files.
-
- * src/autofit/afhints.c (af_axis_hints_new_segment,
- af_axis_hints_new_edge): New functions.
- (af_glyph_hints_done): Do proper deallocation.
- (af_glyph_hints_reload): Only reallocate points array. This
- drastically reduces heap usage.
-
- * src/autofit/afhints.h (AF_PointRec, AF_SegmentRec): Optimize
- member types and positions.
- (AF_AxisHintsRec): Add `max_segments' and `max_edges'.
- (af_axis_hints_new_segment, af_axis_hints_new_edge): New prototypes.
-
- * src/autofit/aflatin.c (af_latin_metricsc_scale): Don't call
- AF_SCALER_EQUAL_SCALES.
- (af_latin_hints_compute_segments): Change return type to FT_Error.
- Update all callers.
- Improve segment allocation.
- (af_latin_hints_compute_edges): Change return type to FT_Error.
- Update all callers.
- Improve edge allocation and link handling.
- (af_latin_hints_detect_features): Change return type to FT_Error.
- Update all callers.
-
- * src/autofit/aflatin.h: Updated.
-
- * src/autofit/afloader.c (af_loader_load_g)
- <FT_GLYPH_FORMAT_OUTLINE>: Assure axis->num_edges > 1. This fixes
- a bug with certain fonts.
-
- * include/freetype/config/ftmodule.h: The auto-fitter is now the
- only supported auto-hinting module.
-
- * include/freetype/config/ftstdlib.h (FT_INT_MAX): New macro.
-
-2005-02-28 Werner Lemberg <[email protected]>
-
- * src/truetype/ttpload.c (tt_face_load_loca): Fix typo.
-
- * src/sfnt/ttkern.c: Include `ttkern.h'.
- (FT_COMPONENT): Updated.
-
- * include/freetype/internal/fttrace.h: Add entry for `ttkern'.
-
- * src/sfnt/ttsbit0.c: s/FT_Err_/SFNT_Err_/.
- Decorate constants with `U' and `L' where necessary.
-
- * src/sfnt/ttcmap.c (tt_cmap4_next): Remove unused variable.
-
-2005-02-28 David Turner <[email protected]>
-
- * src/base/ftdbgmem.c (FT_DumpMemory): Added sorting of memory
- sources according to decreasing maximum cumulative allocations.
- (ft_mem_source_compare): New auxiliary function.
-
- * src/sfnt/ttsbit0.c: New file, implementing a heap-optimized
- embedded bitmap loader.
-
- * src/sfnt/ttsbit.c: Include `ft2build.h', FT_INTERNAL_DEBUG_H,
- FT_INTERNAL_STREAM_H, FT_TRUETYPE_TAGS_H.
- Load `ttsbit0.c' if FT_OPTIMIZE_MEMORY is set, otherwise use
- file contents.
- (tt_face_load_sbit_strikes): Set up root fields to indicate the
- strikes. This fixes Savannah bug #12107.
- Use `static' keyword for `sbit_line_metrics_field',
- `strike_start_fields', `strike_end_fields'.
-
- * include/freetype/internal/tttypes.h (TT_FaceRec): Define
- `sbit_table', `sbit_table_size', `sbit_num_strikes' if
- FT_OPTIMIZE_MEMORY is set.
- Don't define `num_sbit_strikes' and `sbit_strikes' if
- FT_OPTIMIZE_MEMORY is set.
-
- * src/cff/cffobjs.c (sbit_size_reset): Handle FT_OPTIMIZE_MEMORY.
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Fixed bug that prevented
- loading SFNT fonts without a `kern' table.
- Properly pass root->face_flags.
- Remove code for TT_CONFIG_OPTION_EMBEDDED_BITMAPS.
-
- * src/sfnt/sfdriver.c (sfnt_interface)
- [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Don't use `tt_find_sbit_image'
- and `tt_load_sbit_metrics'.
-
- * src/sfnt/ttcmap.c: Optimize linear charmap scanning for Format 4.
- (OPT_CMAP4): New macro.
- (TT_CMap4Rec) [OPT_CMAP4]: New structure.
- (tt_cmap4_init, tt_cmap4_set_range, tt_cmap4_next, tt_cmap4_reset)
- [OPT_CMAP4]: New functions.
- (tt_cmap4_char_next) [OPT_CMAP4]: Use `tt_cmap4_next' and
- `tt_cmap4_reset'.
- (tt_cmap4_class_rec) [OPT_CMAP4]: Use `TT_CMap4Rec' and
- `tt_cmap4_init'.
-
- * src/truetype/ttobjs.c (Reset_SBit_Size): Handle
- FT_OPTIMIZE_MEMORY.
-
- * src/autofit/afhints.h (AF_PointRec, AF_SegmentRec, AF_EdgeRec):
- Optimize member types.
-
- * src/autofit/afloader.c (af_loader_done): Call
- `af_glyph_hints_done'.
-
-2005-02-27 David Turner <[email protected]>
-
- * src/sfnt/ttkern.c (tt_face_load_kern): Fix a small bug which
- caused invalid (random) return values for the horizontal kerning.
-
-2005-02-25 David Turner <[email protected]>
-
- Implement several memory optimizations to drastically reduce the
- heap usage of FreeType, especially in the case of memory-mapped
- files. The idea is to avoid loading and decoding tables in the
- heap, and instead access the raw data whenever possible (i.e., when
- it doesn't compromise performance).
-
- This has several benefits: For example, opening vera.ttf now uses
- just a small amount of memory (even when the FT_Library footprint is
- accounted for), until you start loading glyphs. Even then, you save
- at least 20KB compared to the non-optimized case. Performance of
- various operations, including open and close, has also been
- dramatically improved.
-
- More optimizations to come, especially for the auto-hinter.
-
- * include/freetype/internal/sfnt.h (TT_Face_GetKerningFunc): New
- function type.
- (SFNT_Interface): Add it.
-
- * include/freetype/internal/tttypes.h (TT_HdmxEntryRec, TT_HdmxRec,
- TT_Kern0_PairRec): Don't define if FT_OPTIMIZE_MEMORY is set.
- (TT_FaceRec): Define `horz_metrics', `horz_metrics_size',
- `vert_metrics', `vert_metrics_size', `hdmx_table',
- `hdmx_table_size', `hdmx_record_count', `hdmx_record_size',
- `hdmx_record_sizes', `kern_table', `kern_table_size,
- `num_kern_tables', `kern_avail_bits', `kern_order_bits' if
- FT_OPTIMIZE_MEMORY is set.
- Don't define `hdmx', `num_kern_pairs', `kern_table_index',
- `kern_pairs' if FT_OPTIMIZE_MEMORY is set.
-
- * src/base/ftdbgmem.c (ft_mem_table_set): Don't shadow variable.
- Fix compiler warning.
-
- * src/cff/cffdrivr.c (Get_Kerning): Renamed to...
- (cff_get_kerning): This. Simplify.
- (cff_driver_class): Updated.
-
- * src/sfnt/Jamfile (_sources): Add `ttkern'.
- * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `ttkern.c'.
-
- * src/sfnt/sfdriver.c (sfnt_interface): Add `tt_face_get_kerning'.
-
- * src/sfnt/sfnt.c: Include `ttkern.c'.
-
- * src/sfnt/sfobjs.c: Include `ttkern.h'.
- (sfnt_load_face): Consider the `kern' and `gasp' table as optional.
- (sfnt_done_face): Call `tt_face_done_kern'.
- Handle horizontal metrics for FT_OPTIMIZE_MEMORY.
-
- * src/sfnt/ttkern.c, src/sfnt/ttkern.h: New files. Code has been
- taken from `ttload.c' and `ttload.h'.
- Provide special versions of `tt_face_load_kern',
- `tt_face_get_kerning', and `tt_face_done_kern' for
- FT_OPTIMIZE_MEMORY.
-
- * src/sfnt/ttload.c (tt_face_load_metrics, tt_face_load_hdmx,
- tt_face_free_hdmx): Provide version for FT_OPTIMIZE_MEMORY.
- (tt_face_load_kern, tt_kern_pair_compare, TT_KERN_INDEX): Moved to
- `ttkern.c'.
-
- * src/sfnt/ttload.h: Updated.
-
- * src/sfnt/ttsbit.c (sbit_metrics_field): Add `static' keyword.
-
- * src/truetype/ttdriver.c (Get_Kerning): Renamed to...
- (tt_get_kerning): This. Simplify.
- (tt_driver_class): Updated.
-
- * src/truetype/ttgload.c (TT_Get_Metrics): Renamed to...
- (tt_face_get_metrics): This. Provide version for FT_OPTIMIZE_MEMORY.
- Update all callers.
- (Get_Advance_Widths): Replaced with...
- (Get_Advance_WidthPtr): This. Provide version for
- FT_OPTIMIZE_MEMORY.
- Update all callers.
-
- * src/truetype/ttgload.h: Updated.
-
-2005-02-22 David Turner <[email protected]>
-
- * src/base/ftdbgmem.c: Partly rewritten. Added the ability to list
- all allocation sites in the memory debugger. Also a new function
- FT_DumpMemory() was added. It is only available in builds with
- FT_DEBUG_MEMORY defined, and you must declare it in your own code to
- use it, i.e., with something like:
-
- extern void FT_DumpMemory( FT_Memory );
-
- ...
-
- FT_DumpMemory( memory );
-
- * include/freetype/config/ftoption.h
- (TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Comment out definition --
- again.
- (FT_OPTIMIZE_MEMORY): New configuration macro to control various
- optimizations for reducing the heap footprint of memory-mapped
- TrueType files.
-
- * include/freetype/internal/ftmemory.h (FT_ARRAY_ZERO): New
- convenience macro.
-
- * include/freetype/internal/tttypes.h (TT_FaceRec)
- [FT_OPTIMIZE_MEMORY]: Use optimized types for `num_locations' and
- `glyph_locations'.
-
- * src/truetype/ttgload.c (load_truetype_glyph): Call
- `tt_face_get_location'.
-
- * src/truetype/ttobjs.c (tt_face_init)
- [FT_CONFIG_OPTION_INCREMENTAL]: Improve error handling.
- (tt_face_done): Call `tt_face_done_loca'.
-
- * src/truetype/ttpload.c (tt_face_get_location, tt_face_done_loca):
- New functions. If FT_OPTIMIZE_MEMORY is set, the locations table is
- read directly from memory-mapped streams, instead of being decoded
- into the heap.
- (tt_face_load_loca) [FT_OPTIMIZE_MEMORY]: New implementation.
- (tt_face_load_cvt, tt_face_load_fpgm): Only load table if the
- bytecode interpreter is compiled in.
-
- * src/truetype/ttpload.h: Updated.
-
- * src/autohint/ahglyph.c (ah_outline_load): Improve allocation
- logic.
-
-2005-02-20 Werner Lemberg <[email protected]>
-
- * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
- --copy' from libtool 1.5.14.
- * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
- automake 1.9.4.
-
- * builds/unix/config.guess, builds/unix/config.sub: Updated from
- `config' CVS module at subversions.gnu.org.
-
- * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
- `texinfo' CVS module at subversions.gnu.org.
-
-2005-02-14 Werner Lemberg <[email protected]>
-
- * src/cff/cffcmap.c (cff_cmap_unicode_init): Don't try to build
- a cmap for a CID-keyed font which doesn't have SIDs.
-
-2005-02-13 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.c (read_binary_data): Return more meaningful
- value.
- (parse_encoding, parse_subrs, parse_charstrings, parse_dict): Check
- parser error value after call to T1_Skip_PS_Token (where necessary).
-
- * src/type1/t1parse.c (T1_Get_Private_Dict): Check parser error
- value after call to T1_Skip_PS_Token.
-
- * src/cid/cidparse.c (cid_parser_new): Check parser error value
- after call to cid_parser_skip_PS_token.
-
- * src/type42/t42parse.c (t42_parse_encoding, t42_parse_sfnts,
- t42_parse_charstrings, t42_parse_dict): Check parser error value
- after call to T1_Skip_PS_Token (where necessary).
-
- * src/psaux/psobjc.c (skip_string, ps_parser_skip_PS_token,
- ps_tobytes): Add error messages.
-
-2005-02-12 Werner Lemberg <[email protected]>
-
- * configure: Output more variables to the created Makefile so that
- it can be used for ft2demos also (if the FT2DEMOS variable is
- defined).
-
-2005-02-10 David Turner <[email protected]>
-
- * src/pfr/pfrgload.c (pfr_glyph_load): Fix an unbounded growing
- dynamic array when loading a glyph from a PFR font (Savannah bug
- #11921).
-
- * src/base/ftbitmap.c (FT_Bitmap_Convert): Small improvements to the
- conversion function (mainly stupid optimization).
-
- * src/base/Jamfile: Adding ftbitmap.c to the list of compiled files.
-
-2005-02-10 Werner Lemberg <[email protected]>
-
- * builds/unix/freetype-config.in: Add new flag `--ftversion' to
- return the FreeType version. Suggested by George Williams
- <[email protected]>.
-
- * docs/CHANGES: Updated.
-
-2005-02-09 Werner Lemberg <[email protected]>
-
- * src/otvalid/otvmod.c (otv_validate): Deallocate arrays in case
- of error. Reported by YAMANO-UCHI Hidetoshi <[email protected]>.
-
-2005-02-08 Werner Lemberg <[email protected]>
-
- * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
- <op_closepath>: Accept `T1_Parse_Have_Moveto' state also which can
- happen in empty glyphs. Reported by Ian Brown
- <[email protected]> (Savannah bug #11856).
-
-2005-02-04 Werner Lemberg <[email protected]>
-
- * src/otlayout/*: Removed. Obsolete.
-
-2004-12-28 Werner Lemberg <[email protected]>
-
- * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
- --copy' from libtool 1.5.10.
- * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
- automake 1.9.4.
- * builds/unix/configure: Regenerated with autoconf 2.59b.
-
- * builds/unix/config.guess, builds/unix/config.sub: Updated from
- `config' CVS module at subversions.gnu.org.
-
- * builds/unix/install-sh: Updated from
- `texinfo' CVS module at subversions.gnu.org.
-
- * builds/unix/ftsystem.c (FT_Stream_Open): Add proper cast for
- ft_alloc.
- Fix compiler warning.
-
-2004-12-27 Dirck Blaskey <[email protected]>
-
- * src/cff/cffobjs.c (cff_face_init): Improve computation of
- FT_STYLE_BOLD_FLAG.
-
-2004-12-27 Werner Lemberg <[email protected]>
-
- * src/cff/cffobjs.c (cff_face_init): A CFF within an SFNT can have
- only a single font. This is undocumented but has been verified on
- the opentype list.
-
-2004-12-26 Werner Lemberg <[email protected]>
-
- * Jamfile (FT2_COMPONENTS): Add `otvalid'.
-
-2004-12-25 Werner Lemberg <[email protected]>
-
- * src/base/ftbitmap.c (FT_Bitmap_Convert): Fix compiler warning.
-
-2004-12-15 Werner Lemberg <[email protected]>
-
- * vms_make.com: Add ftbitmap.obj.
-
-2004-12-14 Werner Lemberg <[email protected]>
-
- * src/base/ftbitmap.c, include/freetype/ftbitmap.h: New files for
- handling various bitmap formats.
-
- * include/freetype/config/ftheader.h (FT_BITMAP_H): New macro.
-
- * src/base/rules.mk (BASE_EXT_SRC): Add ftbitmap.c.
-
- * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Don't convert bitmaps to 8bpp
- but return them as-is.
-
- * docs/CHANGES: Mention new bitmap API.
- * include/freetype/ftchapter.s: Updated.
-
-2004-12-11 Robert Clark <[email protected]>
-
- * src/base/ftobjs.c (FT_Get_Kerning): Make kerning amount
- dependent on ppem by scaling down for ppem < 25, then do normal
- rounding. This gives slightly better results than rounding towards
- zero.
-
-2004-12-09 Werner Lemberg <[email protected]>
-
- * src/base/ftobjs.c (FT_Get_Kerning): Always round towards zero
- for FT_KERNING_DEFAULT. This greatly enhances the kerning for
- small ppem values.
-
-2004-12-08 Werner Lemberg <[email protected]>
-
- * src/base/ftobjs.c (ft_glyphslot_clear): Reset `lsb_delta' and
- `rsb_delta'.
-
-2004-12-05 Werner Lemberg <[email protected]>
-
- * builds/unix/install.mk (install): Use $(OBJ_BUILD) for ftconfig.h.
-
-2004-12-03 Antoine Leca <[email protected]>
-
- * include/freetype/ttnameid.h: Updated to latest
- specifications from Microsoft.
-
-2004-11-26 Jouk Jansen <[email protected]>
-
- * vms_make.com: Include ftbbox.c.
- Fix `ccopt'.
- Handle `otvalid' module.
- Update `vmslib.dat' default values.
- Fixes to `libs.opt'.
-
-2004-11-23 Anders Kaseorg <[email protected]>
-
- * src/base/ftoutln.c (FT_OrientationExtremumRec,
- ft_orientation_extremum_compute): Removed.
- (FT_Outline_Get_Orientation): Rewritten, simplified.
-
- * src/autohint/ahglyph.c: Include FT_OUTLINE_H.
- (ah_test_extremum, ah_get_orientation): Removed.
- (ah_outline_load): Use FT_Outline_Get_Orientation.
-
- * src/base/ftsynth.c (ft_test_extrama, ft_get_orientation): Removed.
- (FT_GlyphSlot_Embolden): Use FT_Outline_Get_Orientation.
-
-2004-11-23 Fernando Papa <[email protected]>
-
- * src/truetype/ttinterp.h: Fix typo.
-
-2004-11-22 Antoine Leca <[email protected]>
-
- * builds/win32/detect.mk: Corrected logic that detects Windows NT to
- use the previous change even if win32 is forced. Corrected
- detection of win32 on Win9X.
-
- * builds/dos/detect.mk: Added same correction as for win32 about
- COPY on Windows NT. Detection of plain DOS 7.x.
-
-2004-11-22 Werner Lemberg <[email protected]>
-
- * builds/detect.mk: Undo change from 2004-11-20.
- * builds/win32/detect.mk: If the `OS' environment variable contains
- `Windows_NT', use `cmd.exe /c copy' for copying files.
-
-2004-11-20 Werner Lemberg <[email protected]>
-
- * builds/detect.mk (dos_setup): Use `cmd.exe' for copying
- $(CONFIG_MK) to force lowercase file name under Windows.
-
-2004-11-19 Werner Lemberg <[email protected]>
-
- Fix a serious bug in the TT hinter.
-
- * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Don't shift
- points vertically before hinting.
-
- * docs/CHANGES: Updated.
-
- * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily,
- FTC_GCache_Lookup): A new try to fix comparison with zero.
-
-2004-11-16 Werner Lemberg <[email protected]>
-
- * builds/unix/configure.ac: Add `-fno-strict-aliasing' if gcc is
- used.
- * builds/unix/configure: Regenerated.
- * builds/unix/config.guess, builds/unix/config.sub: Updated from
- `config' CVS module at subversions.gnu.org.
-
-2004-11-16 Dr. Martin P.J. Zinser <[email protected]>
-
- * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily,
- FTC_GCache_Lookup): Fix comparison with zero.
-
- * docs/INSTALL.VMS: Updated.
-
- * vms_make.com: Updated. All `descrip.mms' files are now created
- automatically.
-
- * src/*/descrip.mms: Removed.
-
-2004-11-16 Owen Taylor <[email protected]>
-
- * builds/unix/freetype-config.in: Suppress -L$libdir for
- /usr/lib64 as well as /usr/lib. (Reported by Dan Winship -
- https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=139199)
-
-2004-11-11 Werner Lemberg <[email protected]>
-
- * src/cff/cffdrivr.c (cff_service_ps_info): Updated.
- * src/cid/cidriver.c (cid_service_ps_info): Updated.
- * src/type42/t42drivr.c (t42_ps_get_font_private): New function.
- (t42_service_ps_info): Updated.
-
- * src/type42/t42parse.c (t42_parse_dict): Remove compiler warning.
-
-2004-11-11 David Bevan <[email protected]>
-
- Add new function FT_Get_PS_Font_Private().
-
- * include/freetype/internal/services/svpsinfo.h
- (PS_GetFontPrivateFunc): New service function.
-
- * include/freetype/t1tables.h, src/base/fttype1.c
- (FT_Get_PS_Font_Private): New function.
-
- * src/type1/t1driver.c (t1_ps_get_font_private): New function.
- (t1_service_ps_info): Updated.
-
-2004-10-13 Werner Lemberg <[email protected]>
-
- * include/freetype/config/ftstdlib.h: Include `stddef.h'.
- (ft_ptrdiff_t): Define.
-
- * include/freetype/fttypes.h (FT_PtrDist): Use `ft_ptrdiff_t'.
-
- * src/cid/cidload.c (cid_parse_dict), src/type1/t1load.c
- (parse_dict): Fix compiler warning.
-
-2004-10-11 Joshua Neal <[email protected]>
-
- * src/sfnt/ttcmap.c (tt_face_build_cmaps): Check for pointer
- overflow.
-
- * src/sfnt/ttload.c (tt_face_load_hdmx): Protect against bad input.
- Don't use FT_QNEW_ARRAY but FT_NEW_ARRAY to make deallocation work
- in case of failure.
-
- * src/sfnt/ttsbit.c (Load_SBit_Range): Check range intervals.
- (tt_face_load_sbit_strikes): Allocate `strike_sbit_ranges' after
- frame test.
-
- * src/truetype/ttgload.c (TTLoad_Simple_Glyph): Add assertion for
- `flag'.
-
-2004-10-09 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2004-10-09 Boris Letocha <[email protected]>
-
- Fix handling of NPUSHW if skipped in data stream.
-
- * src/truetype/ttinterp.c (opcode_length): Set value for NPUSHW
- to -2.
- (SkipCode, TT_RunIns): Use opcode_length value for computation of
- bytes to be skipped.
-
-2004-09-10 Jouk Jansen <[email protected]>
-
- * vms_make.com: Updated.
-
-2004-09-09 Werner Lemberg <[email protected]>
-
- Adding OpenType validation module. The code is based on the
- (unfinished) `otlayout' module but has been heavily modified to make
- it much more compact.
-
- * src/otvalid/*: New module.
-
- * include/freetype/ftotval.h, src/base/ftotval.c,
- include/freetype/internal/services/svotval.h: New files.
-
- * include/freetype/config/ftmodule.h: Add otv_module_class.
- * include/freetype/config/ftheader.h (FT_OPENTYPE_VALIDATE_H): New
- macro.
- * include/freetype/internal/ftserv.h
- (FT_SERVICE_OPENTYPE_VALIDATE_H): New macro.
- * include/freetype/internal/fttrace.h (otvmodule, otvcommon,
- otvbase, otvgdef, otvgpos, otvgsub, otvjstf): New trace components.
-
- * include/freetype/ftchapters.h: Updated.
-
- * src/base/Jamfile (Library), src/base/descrip.mms (OBJS),
- src/base/rules.mk (BASE_EXT_SRC): Updated.
-
- * docs/CHANGES: Updated.
-
-2004-09-08 Werner Lemberg <[email protected]>
-
- * src/tools/docmaker/sources.py (re_source_block_format2) <column>:
- Use lookahead assertion to not match `*/'. This removes spurious
- insertions of `/' in the HTML output.
-
-2004-09-07 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgxvar.c (TT_Vary_Get_Glyph_Deltas): Fix call to
- FT_NEW_ARRAY.
-
-2004-09-04 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/ftobjs.h: Don't include
- FT_CONFIG_STANDARD_LIBRARY_H.
- (FT_Validator, FT_ValidationLevel, FT_ValidatorRec, FT_VALIDATOR,
- ft_validator_init, ft_validator_run, ft_validator_error, FT_INVALID,
- FT_INVALID_TOO_SHORT, FT_INVALID_OFFSET, FT_INVALID_FORMAT,
- FT_INVALID_GLYPH_ID, FT_INVALID_DATA): Move to...
-
- * include/freetype/internal/ftvalid.h: New file.
- Make FT_INVALID return module-specific error codes.
-
- * include/freetype/internal/internal.h (FT_INTERNAL_VALIDATE_H): New
- macro.
-
- * include/freetype/fterrors.h: Undefine FT_ERR_PREFIX only if
- FT_KEEP_ERR_PREFIX isn't defined.
-
- * src/base/ftobjs.c: Include FT_INTERNAL_VALIDATE_H.
-
- * src/sfnt/ttcmap.h: Don't include FT_INTERNAL_OBJECTS_H but
- FT_INTERNAL_VALIDATE_H.
-
- * src/sfnt/ttcmap.c: Don't include FT_INTERNAL_OBJECTS_H but
- FT_INTERNAL_VALIDATE_H.
- Include sferrors.h before FT_INTERNAL_VALIDATE_H.
- s/FT_Err_Ok/SFNT_Err_Ok/.
-
- * src/sfnt/sferrors.h: Define FT_KEEP_ERR_PREFIX.
-
- * src/type1/t1afm.c: Include t1errors.h.
-
-2004-09-03 Werner Lemberg <[email protected]>
-
- * src/base/ftdebug.c (ft_debug_init): Highest debug level is 7,
- not 6.
- * docs/DEBUG: Updated.
-
-2004-08-30 Werner Lemberg <[email protected]>
-
- * include/freetype/tttags.h (TTAG_BASE, TTAG_GDEF, TTAG_GPOS,
- TTAG_JSTF): New tags.
-
- * include/freetype/fttypes.h (FT_Bytes, FT_Tag): New typedefs.
- (FT_Int): Add `signed'.
-
-2004-08-29 Werner Lemberg <[email protected]>
-
- * src/otlayout/otlgpos.c (otl_gpos_subtable_validate): Add argument
- to pass number of lookups.
- Update all callers.
- Don't call otl_lookup_list_validate but otl_lookup_validate.
- (otl_gpos_validate): Call otl_lookup_list_validate instead of
- otl_gpos_subtable_validate.
-
- * src/otlayout/otlgpos.h: Updated.
-
- * src/otlayout/otljstf.c (otl_jstf_max_validate): Add argument to
- pass number of lookups.
- Update all callers.
-
-
- * src/cff/cffparse.c (cff_parse_real): s/exp/exponent/ to avoid
- compiler warning.
-
-
- * src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h: Renamed to...
- * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: This.
- * src/sfnt/Jamfile, src/sfnt/rules.mk, src/sfnt/sfdriver.c,
- src/sfnt/sfnt.c, src/sfnt/sfobjs.c: Updated.
-
-
- * builds/compiler/gcc-dev.mk (CFLAGS): Don't add `-Wnested-externs'
- if compiler is g++ (v3.3.3 emits a warning otherwise).
-
-2004-08-28 Werner Lemberg <[email protected]>
-
- * src/otlayout/otlgpos.c (otl_value_length): Return number of bytes,
- not number of 16bit entities.
- (otl_gpos_lookup2_validate): Check class definition tables for
- format 2.
- Fix loop for format 2.
- (otl_liga_mark2_validate): Fix offset for otl_anchor_validate.
-
-2004-08-27 Werner Lemberg <[email protected]>
-
- * src/base/ftmac.c: Don't include truetype/ttobjs.h.
- Don't include type1/t1objs.h.
- (FT_New_Face_From_FSSpec) [!__MWERKS__]: Remove compiler warnings.
-
-2004-08-27 Mathieu Malaterre <[email protected]>
-
- * src/base/ftmac.c: Handle OS_INLINE for xlc compiler also.
-
-2004-08-27 Werner Lemberg <[email protected]>
-
- * src/otlayout/otlayout.h: Add copyright.
- (OTL_INVALID_OFFSET): Removed.
-
- * src/otlayout/otlgdef.h: Include otlayout.h.
- Comment out inclusion of otltable.h.
-
- * src/otlayout/otlgpos.c (otl_gpos_lookup4_validate): Fix call
- to otl_base_array_validate.
- (otl_liga_mark2_validate): Fix `for' loop.
-
- * src/otlayout/otlgsub.c (otl_ligature_validate): Check `glyph_id',
- not components array.
-
- * src/otlcommn.c (otl_lookup_get_count, otl_feature_get_count):
- Comment out.
- (otl_lookup_list_get_count, otl_feature_list_get_count): Activate.
- (otl_feature_list_validate, otl_gsubgpos_get_lookup_count):
- s/otl_lookup_get_count/otl_lookup_list_get_count/.
- (otl_script_list_validate):
- s/otl_feature_get_count/otl_feature_list_get_count/.
- (otl_script_validate): Call otl_lang_validate for default language.
-
- * src/otlayout/otlcommn.h: Updated.
-
-2004-08-16 Werner Lemberg <[email protected]>
-
- * src/otlayout/otlgpos.c (otl_gpos_lookup1_validate,
- otl_gpos_lookup2_validate, otl_gpos_lookup3_validate,
- otl_gpos_lookup4_validate, otl_gpos_lookup5_validate,
- otl_gpos_lookup6_validate, otl_gpos_lookup9_validate,
- otl_gpos_validate): Update
- function arguments.
- (otl_gpos_lookup7_validate, otl_gpos_lookup8_validate): Update
- function arguments.
- Handle NULL offsets correctly.
- Check sequence and lookup indices for format 3.
- (otl_pos_rule_validate, otl_chain_pos_rule_validate): Add argument
- to pass lookup count.
- Check sequence and glyph indices.
- (otl_gpos_subtable_validate): Update function arguments.
- Update callers.
-
- * src/otlayout/otlgpos.h: Updated.
-
- * src/otlayout/otlgsub.c (otl_gsub_lookup1_validate,
- otl_gsub_lookup3_validate, otl_gsub_lookup8_validate): Update
- function arguments.
- Add glyph index checks.
- (otl_sequence_validate, otl_alternate_set_validate,
- otl_ligature_validate): Add argument to pass glyph count.
- Update callers.
- Add glyph index check.
- (otl_gsub_lookup2_validate, otl_gsub_lookup4_validate): Update
- function arguments.
- (otl_ligature_set_validate): Add argument to pass glyph count.
- Update caller.
- (otl_sub_class_rule_validate,
- otl_sub_class_rule_set_validate): Removed.
- (otl_sub_rule_validate, otl_chain_sub_rule_validate): Add argument
- to pass lookup count.
- Update callers.
- Add lookup index check.
- (otl_sub_rule_set_validate, otl_chain_sub_rule_set_validate): Add
- argument to pass lookup count.
- Update callers.
- (otl_gsub_lookup5_validate): Update function arguments.
- Handle NULL offsets correctly.
- Don't call otl_sub_class_rule_set_validate but
- otl_sub_rule_set_validate.
- Check sequence and lookup indices for format 3.
- (otl_gsub_lookup6_validate): Update function arguments.
- Handle NULL offsets correctly.
- Check sequence and lookup indices for format 3.
- (otl_gsub_lookup7_validate, otl_gsub_validate): Update function
- arguments.
-
- * src/otlayout/otlgsub.h: Updated.
-
- * src/otlayout/otlbase.c (otl_base_validate): Handle NULL offsets
- correctly.
-
- * src/otlayout/otlcommn.c (otl_class_definition_validate): Fix
- compiler warning.
- (otl_coverage_get_first, otl_coverage_get_last): New functions.
- (otl_lookup_validate): Add arguments to pass lookup and glyph
- counts.
- Update callers.
- (otl_lookup_list_validate): Add argument to pass glyph count.
- Update callers.
-
- * src/otlayout/otlcommn.h: Updated.
-
- * src/otlayout/otljstf.c (otl_jstf_extender_validate,
- otl_jstf_max_validate, otl_jstf_script_validate,
- otl_jstf_priority_validate, otl_jstf_lang_validate): Add parameter
- to validate glyph indices.
- Update callers.
- (otl_jstf_validate): Add parameter which specifies number of glyphs
- in font.
-
- * src/otlayout/otljstf.h: Updated.
-
-2004-08-15 Werner Lemberg <[email protected]>
-
- * src/otlayout/otlgpos.c (otl_liga_mark2_validate): Add parameter
- to handle possible NULL values properly.
- Update all callers.
-
-2004-08-15 Werner Lemberg <[email protected]>
-
- * src/otlayout/gpos.c: Rename counting variables to be more
- meaningful.
- Add copyright.
- (otl_liga_attach_validate): Renamed to...
- (otl_liga_mark2_validate): This.
- Update all callers.
- (otl_mark2_array_validate): Removed.
- (otl_gpos_lookup6_validate): Call otl_liga_mark2_validate, not
- otl_mark2_array_validate.
- (otl_pos_class_set_validate, otl_pos_class_rule_validate): Removed.
- (otl_gpos_lookup7_validate): Complete code for format 2.
- (otl_chain_pos_class_rule_validate,
- otl_chain_pos_class_set_validate): Removed.
- (otl_gpos_lookup8_validate): Don't call
- otl_chain_pos_class_set_validate but
- otl_chain_pos_rule_set_validate.
- Simplify some code.
-
- * src/otlayout/otlgpos.h: Add copyright.
-
-2004-08-14 Werner Lemberg <[email protected]>
-
- * src/otlayout/otljstf.c (otl_jstf_gsub_mods_validate): Removed.
- (otl_jstf_gpos_mods_validate): Renamed to...
- (otl_jstf_gsubgpos_mods_validate): This.
- Test whether lookup_count is zero.
- (otl_jstf_priority_validate): Use otl_jstf_gsubgpos_mods_validate.
- (otl_jstf_validate): Initialize gsub_lookup_count and
- gpos_lookup_count if gsub or gpos is zero.
-
- * src/otlayout/otlgsub.c: Rename counting variables to be more
- meaningful.
- Add copyright.
- (otl_gsub_lookup1_validate): Simplify code.
- (otl_gsub_lookup2_validate, otl_gsub_lookup3_validate,
- otl_gsub_lookup4_validate, otl_gsub_lookup7_validate): Remove unused
- variables.
- (otl_gsub_lookup5_validate): Remove unused variable.
- Fix call to otl_sub_rule_set_validate and
- otl_sub_class_rule_set_validate.
- (otl_chain_sub_class_rule_validate,
- otl_chain_sub_class_set_validate): Removed.
- (otl_gsub_lookup6_validate): Remove unused variable.
- Fix call to otl_chain_sub_rule_set_validate.
- (otl_gsub_lookup7_validate): Handle lookup type 8 also.
- (otl_gsub_lookup8_validate: New function.
- (otl_gsub_lookup1_apply, otl_gsub_lookup2_apply,
- otl_gsub_lookup3_apply): Commented out.
- (otl_gsub_validate_funcs): Add otl_gsub_lookup7_validate and
- otl_gsub_lookup8_validate.
- (otl_gsub_validate): Updated.
-
- * src/otlayout/otlgsub.h: Add copyright.
-
- * src/otlayout/otlcommn.c, src/otlayout/otlcommn.h
- (otl_coverage_get_index): Comment out.
-
-2004-08-13 Werner Lemberg <[email protected]>
-
- * src/otlayout/otlcommn.c (otl_gsubgpos_get_lookup_count): New
- function.
- * src/otlayout/otlcommn.h: Updated.
-
- * src/otlayout/otlbase.c: Rename counting variables to be more
- meaningful.
- Add copyright message.
- * src/otlayout/otlbase.h: Add copyright message.
-
- * src/otlayout/otlgdef.c: Rename counting variables to be more
- meaningful.
- Add copyright message.
- Use OTL_CHECK everywhere.
- (otl_caret_value_validate): Remove unused variable.
- (otl_gdef_validate): All tables are optional.
- * src/otlayout/otlgdef.h: Add copyright message.
-
- * src/otlayout/otljstf.c: Rename counting variables to be more
- meaningful.
- Add copyright message.
- (otl_jstf_gsub_mods_validate, otl_jstf_gpos_mods_validate): Add
- parameter to pass lookup count.
- Update all callers.
- Check lookup array.
- (otl_jstf_max_validate):
- s/otl_gpos_subtable_check/otl_gpos_subtable_validate/.
- (otl_jstf_priority_validate, otl_jstf_lang_validate,
- otl_jstf_script_validate): Add two parameters to pass lookup counts.
- Update all callers.
- (otl_jstf_validate): Add two parameters to pass GPOS and GSUB
- table offsets; use otl_gsubgpos_get_lookup_count to convert extract
- lookup counts.
- Fix typo.
- * src/otlayout/otljstf.h: Updated.
- Add copyright message.
-
- * src/otlayout/otlgpos.c (otl_gpos_subtable_validate): New function.
- (otl_gpos_validate): Use it.
- * src/otlayout/otlgpos.h: Updated.
-
-2004-08-13 Werner Lemberg <[email protected]>
-
- * src/otlayout/otcommn.c: Use OTL_CHECK everywhere.
- (otl_coverage_validate): Initialize `p',
- s/count/num_glyphs/.
- s/start_cover/start_coverage/.
- (otl_coverage_get_index): Return OTL_Long, not OTL_Int.
- Remove unused variables.
- (otl_class_definition_validate): s/count/num_glyphs/.
- Remove unused variables.
- (otl_class_definition_get_value, otl_device_table_get_start,
- otl_device_table_get_end, otl_device_table_get_delta,
- otl_lookup_get_table, otl_lookup_list_get_count,
- otl_lookup_list_get_lookup, otl_lookup_list_get_table,
- otl_feature_get_lookups, otl_feature_list_get_count,
- otl_feature_list_get_feature, otl_lang_get_count,
- otl_lang_get_req_feature, otl_lang_get_features): Commented out
- temporarily until we really need it.
- (otl_lookup_validate): Removed.
- (otl_lookup_table_validate): Renamed to ...
- (otl_lookup_validate): This. Update callers.
- (otl_lookup_list_validate): Remove already commented out definition
- and move the other definition up.
- (otl_feature_validate): Add parameter to pass number of lookups.
- Update callers.
- Check lookup indices.
- (otl_feature_list_validate): Add parameter to pass lookup table.
- Update callers.
- (otl_lang_validate): Add parameter to pass number of features.
- Update callers.
- Handle req_feature and check feature indices.
- (otl_script_validate): Add parameter to pass number of features.
- Update callers.
- (otl_script_list_validate): Add parameter to pass feature table.
- Update callers.
-
- * src/otlayout/otcommn.h: s/LOCALDEF/LOCAL/.
- Comment out the same functions as in otcommn.c.
- (otl_script_list_get_script): Removed.
-
- * src/otlayout/otlgsub.c (otl_gsub_lookup1_apply): Change `index' to
- type OTL_Long.
- (otl_gsub_lookup2_apply, otl_gsub_lookup3_apply): Change `index' to
- type OTL_Long.
- Fix test.
- (otl_gsub_validate): Fix order of validation.
-
- * src/otlayout/otlgpos.c (otl_gpos_validate): Fix order of
- validation.
-
-2004-08-12 Werner Lemberg <[email protected]>
-
- Make otlayout module compile (without actually working).
-
- * src/otlayout/*: s/OTL_Valid/OTL_Validator/.
- s/NULL/0/.
-
- * src/otlayout/otlayout.h: Fix various typos.
- (OTL_Bool): New typedef.
- (OTL_Int, OTL_Long, OTL_Int16, OTL_Int32): Use `signed' keyword.
- (OTL_Err_InvalidArgument): Removed.
- (OTL_Err_InvalidData, OTL_Err_InvalidSize): New enum values.
- (OTL_MAKE_TAG): Add missing parenthesis.
- (OTL_INVALID_DATA): Use OTL_Err_InvalidData.
- (OTL_INVALID_TOO_SHORT): Use OTL_Err_InvalidSize.
- (OTL_INVALID_FORMAT, OTL_INVALID_OFFSET): New macros.
-
- * src/otlayout/otlgpos.c: s/FT_/OTL_/.
- s/OTL_Short/OTL_Int16/.
- (otl_gpos_pairset_validate): Add return type.
- (otl_base_array_validate): Fix call to otl_anchor_validate.
- (otl_liga_array_validate): Fix call to otl_liga_attach_validate.
- (otl_gpos_lookup5_validate): Fix typos.
- (otl_gpos_lookup6_validate): Fix call to otl_mark2_array_validate.
- (otl_gpos_lookup7_validate): Comment out unfinished code.
- Fix typos.
-
- * src/otlayout/otlgsub.c: Add forward declaration for
- otl_gsub_validate_funcs.
- (otl_gsub_lookup1_apply, otl_gsub_lookup2_apply,
- otl_gsub_lookup3_apply): Fix call to otl_parser_check_property.
- s/otl_coverage_lookup/otl_coverage_get_index/.
- (otl_ligature_validate): Add missing variable declaration.
- (otl_sub_rule_validate): Fix typo.
- (otl_sub_class_rule_validate): Add missing variable declaration.
- Fix typo.
- (otl_gsub_lookup5_validate): Fix typo.
- (otl_gsub_lookup6_validate): Fix call to
- otl_chain_sub_class_set_validate.
- (otl_gsub_validate_funcs): Don't use `const'.
-
- * src/otlayout/otlcommn.c (otl_class_definition_get_value,
- otl_device_table_validate, otl_device_table_get_delta,
- otl_lookup_validate, otl_script_validate): Add missing
- variable declarations.
- (otl_lookup_list_validate): Comment out first definition.
- (otl_lookup_list_foreach, otl_feature_list_foreach): Comment out.
- (otl_feature_list_validate):
- s/otl_feature_table_validate/otl_feature_validate/.
- (otl_script_list_validate):
- s/otl_script_table_validate/otl_script_validate/.
-
- * src/otlayout/otlcommn.h: Comment out first declaration.
- (otl_lookup_list_foreach, otl_feature_list_foreach): Comment out.
-
- * src/otlayout/otlbase.c (otl_base_coord_validate): Fix call to
- otl_device_table_validate.
- (otl_base_script_validate): Add missing variable declarations.
- (otl_base_script_list_validate): Fix call to
- otl_base_script_validate.
- (otl_axis_table_validate): Fix calls to otl_base_tag_list_validate
- and otl_base_script_list_validate.
- (otl_base_validate): Fix calls to otl_axis_table_validate.
-
- * src/otlayout/otlgdef.c (otl_attach_list_validate): Fix call to
- otl_attach_point_validate.
- (otl_caret_value_validate): Add missing variable declaration.
- Fix call to otl_device_table_validate.
- (otl_ligature_glyph_validate): Fix call to otl_caret_value_validate.
- (otl_ligature_caret_list_validate): Fix call to
- otl_ligature_glyph_validate.
- (otl_gdef_validate): Fix calls to otl_class_definition_validate,
- otl_attach_list_validate, otl_ligature_caret_list_validate, and
- otl_class_definition_validate.
-
- * src/otlayout/otltable.h (otl_table_validate, otl_table_init,
- otl_table_set_script): Comment out.
-
- * src/otlayout/otlparse.h (OTL_ParserRec):
- s/OTL_Alternate/OTL_GSUB_Alternate/.
- (OTL_ParseError): Add OTL_Err_Parser_Memory and
- OTL_Err_Parser_Internal.
- (otl_parser_error): Fix typo.
- (otl_parser_check_property): Remove third argument.
-
- * src/otlayout/otlparse.c (otl_string_ensure):
- s/OTL_Parse_Err_Memory/OTL_Err_Parser_Memory/.
- (OTL_STRING_ENSURE, otl_parser_error, otl_parser_get_index,
- otl_parser_replace_1, otl_parser_replace_n): Fix typos.
- (OTL_PARSER_UNCOVERED): Removed.
- (otl_parser_check_property): Remove third argument.
-
- * src/otlayout/otljstf.c (otl_jstf_priority_validate): Add missing
- variable declaration.
-
- * src/otlayout/otlutils.h (OTL_MEM_REALLOC): Fix typo.
-
-2004-08-11 Danny <[email protected]>
-
- * src/base/ftstream.c (FT_Stream_Close): Don't reset stream->close
- to NULL. This allows custom close functions to delete the FT_STREAM
- object.
-
-2004-08-11 Werner Lemberg <[email protected]>
-
- Add API to get information about SFNT tables.
-
- * include/freetype/internal/services/svsfnt.h
- (FT_SFNT_Table_Info_Func): New typedef.
- (SFNT_Table): Add it.
-
- * src/base/ftobjs (FT_Sfnt_Table_Info): New function.
-
- * include/freetype/tttables.h: Updated.
-
- * src/sfnt/sfdriver.c (sfnt_table_info): New function.
- (sfnt_service_sfnt_table): Add it.
-
- * docs/CHANGES: Updated.
-
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.
-
- * builds/unix/configure.ac (version_info): Set to 9:8:3.
- * builds/unix/configure: Updated.
-
- * builds/win32/visualc/index.html,
- builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
-
- * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
- s/2.1.9/2.1.10/.
-
- * docs/CHANGES, docs/VERSION.DLL: Updated.
-
-2004-08-11 Detlef Würkner <[email protected]>
-
- * src/base/ftrfork.c (FT_Raccess_Guess)
- [!FT_CONFIG_OPTION_GUESSING_EMBEDDED_FORK]: Remove compiler
- warnings.
-
-2004-08-06 Adam Piotrowski <[email protected]>
-
- * src/pfr/pfrload.c (pfr_sort_kerning_pairs): Single-byte
- adjustments are unsigned, not signed.
-
-2004-08-05 David Turner <[email protected]>
-
- `Activate' gray-scale specifing hinting within the TrueType
- bytecode interpreter. This is an experimental feature which
- should probably be made optional.
-
- * src/truetype/ttgload.c (TT_Process_Simple_Glyph,
- load_truetype_glyph): Move the code to set the pedantic_hinting flag
- to...
- (TT_Load_Glyph): Here.
- Set `grayscale' flag except for `FT_LOAD_TARGET_MONO'.
-
- * src/truetyep/ttinterp.c (Ins_GETINFO): Return MS rasterizer
- version 1.7.
- Return rotation and stretching info only if glyph is rotated or
- stretched, respectively.
- Handle grayscale info.
-
- * src/truetype/ttinterp.h (TT_ExecContextRec): Add `grayscale'
- member.
-
-2004-08-02 George Williams <[email protected]>
-
- * src/base/ftobjs.c (FT_Attach_File): Initialize `open.stream'.
-
-2004-08-01 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2004-08-01 George Williams <[email protected]>
-
- FreeType now can read kerning values from PFM files.
-
- * src/type1/t1afm.c (T1_Done_AFM): Renamed to...
- (T1_Done_Metrics): This.
- Update all callers.
- (T1_Read_AFM): Make it static.
- Don't enter and leave a frame.
- (LITTLE_ENDIAN_USHORT, LITTLE_ENDIAN_UINT): New macros.
- (T1_Read_PFM): New function.
- (T1_Read_Metrics): New higher-level function to be used instead of
- T1Read_AFM.
- Update all callers.
-
-2004-07-31 Werner Lemberg <[email protected]>
-
- * src/pcf/pcfread (pcf_load_font), src/bdf/bdfdrivr.c
- (BDF_Face_Init), src/truetype/ttgxvar (TT_Get_MM_Var,
- tt_face_vary_cvt): Fix compiler warnings.
-
-2004-07-26 Søren Sandmann <[email protected]>
-
- * src/pcf/pcfread.c (pcf_interpret_style): Always allocate memory for
- face->style_name.
- * src/pcf/pcfdrivr.c (PCF_Face_Done): Free `style_name'.
-
-2004-07-26 Darren J Longhorn <[email protected]>
-
- * include/freetype/config/ftconfig.h (FT_SIZEOF_LONG): Recognize
- five-byte `long' (which is avoided then).
-
-2004-07-25 Detlef Würkner <[email protected]>
-
- * src/pcf/pcfdrivr.c (PCF_Set_Pixel_Size): Compare heights, not
- ppem values.
- (PCF_Set_Point_Size): Don't call PCF_Set_Pixel_Size but provide own
- code to compare ppem values.
- * src/bdf/bdfdrivr.c (BDF_Set_Pixel_Size): Compare heights, not
- ppem values.
- (BDF_Set_Point_Size): Don't call BDF_Set_Pixel_Size but provide own
- code to compare ppem values.
-
-2004-07-25 Kornfeld Eliyahu Peter <[email protected]>
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Handle
- TT_NAME_ID_PREFERRED_FAMILY and TT_NAME_ID_PREFERRED_SUBFAMILY.
-
-2004-07-24 Derek B. Noonburg <[email protected]>
-
- * src/cff/cffload.c (cff_font_load): Always create inverse mapping.
- Even if the charstring count is the same as the CID count, it is
- still possible that the font uses a different CID -> GID mapping.
-
-2004-07-23 Werner Lemberg <[email protected]>
-
- * src/truetype/ttobjs.c (tt_face_init): Accept 0x00020000 format tag
- found in some Arphic fonts made for Chinese version of Windows 3.1.
-
-2004-07-17 David Turner <[email protected]>
-
- Fixed a dangling pointer bug in the cache code that happened in very
- rare cases, i.e., when a new family object was destroyed by an
- out-of-memory condition during a glyph node initialization. The
- function FTC_Cache_Lookup would flush the cache and restart the
- lookup with a bad pointer.
-
- * include/freetype/cache/ftcglyph.h (FTC_FAMILY_TREE): New macro.
- (FTC_GCACHE_LOOKUP_CMP): Use it.
- Handle reference count in `num_nodes' correctly.
-
- * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily): Use
- FTC_FAMILY_FREE.
- (FTC_GCache_Lookup): Handle reference count in `num_nodes' correctly.
-
- * src/cache/ftcmanag.c (FTC_Manager_FlushN): Fixed a cache flushing
- bug.
-
- * src/truetype/ttinterp.c (Normalize): Fixed a bug that caused
- long and unnecessary delays while normalizing huge vectors.
-
-2004-07-15 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
- * src/base/ftstroke.c (FT_Stroker_ParseOutline): Fix compiler
- warning.
-
-2004-07-15 David Turner <[email protected]>
-
- * src/base/ftstroke.c (FT_Stroker_ParseOutline): Single points
- are not stroked, preventing a bug with pala.ttf and other
- fonts.
-
- * include/freetype/ftstroke.h: Updating documentation comments.
-
-2004-07-13 Werner Lemberg <[email protected]>
-
- * src/base/ftstroke.c (ft_stroke_border_reverse): Removed. Unused.
-
-2004-07-12 David Turner <[email protected]>
-
- * src/base/ftstroke.c (ft_stroke_border_close): Add second parameter
- to indicate reversion of points.
- Update all callers.
- (ft_stroke_border_reverse): Fix initialization of `point1' and
- `tag1'.
-
- * src/cache/ftcsbits.c (ftc_snode_load): Fixing advance computation
- for transformed glyphs.
-
-2004-07-11 David Turner <[email protected]>
-
- Fix bugs that prevented the stroker to correctly generate stroked
- paths from closed paths, i.e., nearly all glyphs in vectorial fonts.
-
- The code is still _very_ buggy though; treat with special care.
-
- * src/base/ftstroke.c (FT_STROKE_TAG_BEGIN_END): New macro.
- (ft_stroke_border_reverse): New function.
- (ft_stroker_inside): Remove local variable `sigma'; use different
- threshold.
- (ft_stroker_add_reverse_left): Switch begin/end tags if necessary.
- (FT_Stroker_EndSubPath): Call ft_stroker_inside and
- ft_stroke_border_reverse.
-
-2004-06-26 Peter Kovar <[email protected]>
-
- * src/truetype/ttgload.c (load_truetype_glyph): Fix typo.
-
-2004-06-25 Werner Lemberg <[email protected]>
-
- * src/type1/t1afm.c (afm_atoindex): Fix boundary test. Reported
- by Dirck Blaskey.
-
-2004-06-24 David Turner <[email protected]>
-
-
- * Version 2.1.9 released.
- =========================
-
-
- * src/truetype/ttgload.c, src/truetype/ttxgvar.c: Removing
- compiler warnings.
-
-2004-06-23 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/ftmemory.h [FT_DEBUG_MEMORY]: Declare
- FT_QAlloc_Debug and FT_QRealloc_Debug.
-
- * src/base/ftutil.c (FT_QAlloc): Fix error and debug messages.
- (FT_QRealloc): Call FT_QAlloc if original pointer is NULL.
- Fix error message.
-
-2004-06-23 David Turner <[email protected]>
-
- * include/freetype/internal/ftmemory.h, src/base/ftutil.c
- (FT_QAlloc, FT_QRealloc), src/base/ftdbgmem.c (FT_QAlloc_Debug,
- FT_QRealloc_Debug): New functions that perform allocation without
- zero-ing out the corresponding blocks.
-
- * include/freetype/internal/ftmemory.h (FT_MEM_QALLOC,
- FT_MEM_QREALLOC, FT_MEM_QNEW, FT_MEM_QNEW_ARRAY,
- FT_MEM_QRENEW_ARRAY, FT_QALLOC, FT_QREALLOC, FT_QNEW, FT_QNEW_ARRAY,
- FT_QRENEW_ARRAY): New macros.
-
- * src/base/ftstream.c (FT_Stream_EnterFrame): Use FT_QALLOC.
- * src/gzip/ftgzip.c (FT_Stream_OpenGzip): Use FT_QNEW_ARRAY.
- * src/sfnt/sfobjs.c (tt_face_get_name): Use FT_QNEW_ARRAY.
-
- * src/sfnt/ttload.c (tt_face_load_directory, tt_face_load_metrics,
- tt_face_load_gasp): Use FT_QNEW_ARRAY.
- (tt_face_load_kern): Use FT_QNEW_ARRAY.
- Small optimization in the kerning table verifier; this speeds up
- TrueType face opening by about 7%.
- (tt_face_load_hdmx): Use FT_QNEW_ARRAY and FT_QALLOC.
-
- * include/freetype/config/ftmodule.h: Changed the order of modules,
- putting TrueType and Type 1 first. This dramatically improves the
- performance of face open/close operations. For example, putting the
- TrueType driver first in the list results in a 5x speedup when
- opening `Vera.ttf'.
-
- The very problem is that both the PCF and BDF drivers do a lot more
- than necessary to detect that they cannot handle a font file.
-
-2004-06-22 Werner Lemberg <[email protected]>
-
- * src/pcf/pcfread.c (pcf_read_TOC, pcf_get_properties,
- pcf_get_metrics, pcf_get_bitmaps, pcf_get_encodings): Improve
- debugging messages.
-
- * src/pcf/pcfdrivr.c (FT_COMPOMENT): Move up.
- (PCF_Face_Init): Simplify code.
-
- * src/bdf/bdfdrivr.h (BDF_FaceRec): New element `default_glyph'.
-
- * src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_start),
- src/bdf/bdf.h (bdf_font_t): s/default_glyph/default_char/.
-
- * src/bdf/bdfdrivr.c (BDF_Face_Init): Fix number of glyphs.
- Set `default_glyph'.
- (BDF_Glyph_Load): Use `default_glyph' for undefined glyph.
-
- * docs/CHANGES: Updated.
-
-2004-06-21 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2004-06-21 David Turner <[email protected]>
-
- * src/truetype/ttgload.c (TT_Process_Simple_Glyph,
- load_truetype_glyph): Don't access (unrounded)
- `TT_Size.root.metrics' but (rounded) `TT_Size.metrics'. This fixes
- a scaling bug that caused incorrect rendering when the bytecode
- interpreter was enabled.
-
-2004-06-14 Huw D M Davies <[email protected]>
-
- * src/winfonts/winfnt.c (FNT_Face_Init): Set x_ppem and y_ppem
- based on pixel_width and pixel_height.
- (FNT_Size_Set_Pixels): Updated.
-
-2004-06-14 Werner Lemberg <[email protected]>
-
- * src/lzw/zopen.c: Comment out inclusion of signal.h and unistd.h.
- Reported by Hyvärinen Jyrki Juhani.
-
-2004-06-11 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2004-06-10 David Turner <[email protected]>
-
- * src/base/ftobject.c, src/base/fthash.c, src/base/ftexcept.c,
- src/base/ftsysio.c, src/base/ftsysmem.c, src/base/ftlist.c: Removed.
- Obsolete.
-
- * src/raster/ftraster.c (Alignment, PAlignment): New union to fix
- problems with 64bit systems.
- (AlignProfileSize): Use it.
-
-2004-06-08 David Turner <[email protected]>
-
- * include/freetype/freetype.h (FT_GlyphMetrics): Move `lsb_delta'
- and `rsb_delta' elements to...
- (FT_GlyphSlotRec): Here to retain binary compatibility with older
- FreeType versions.
- Update all users.
-
- * src/sfnt/sfobjs.c (tt_face_get_name): Remove compiler warning.
-
- * src/winfonts/winfnt.c (FNT_Load_Glyph): Add missing initialization
- of slot->metrics.width and slot->metrics.height when loading a
- Windows FNT glyph. Thanks to Huw Davies.
-
- * include/freetype/cache/ftcmru.h (FTC_MruNode_CompareFunc): Change
- return type to FT_Bool.
-
- * src/cache/ftbasic.c (ftc_basic_family_compare): Change return
- type to FT_Bool.
-
- * src/cache/ftccache.c (FTC_Cache_Init, ftc_cache_init): Make
- the former call the latter, not vice versa.
- (FTC_Cache_Done, ftc_cache_done): Ditto.
-
- * src/cache/ftcglyph.c (FTC_GNode_Compare, ftc_gnode_compare): Make
- the former call the latter, not vice versa.
- (FTC_GCache_Init, ftc_gcache_init): Ditto.
- (FTC_GCache_Done, ftc_gcache_done): Ditto.
-
- * src/cache/ftcimage.c (FTC_INode_Free, ftc_inode_free): Make the
- former call the latter, not vice versa.
- (FTC_INode_Weight, ftc_inode_weight): Ditto.
-
- * src/cache/ftcmanag.c (ftc_size_node_compare,
- ftc_size_node_compare_faceid, ftc_face_node_compare): Change return
- type to FT_Bool.
-
- * src/cache/ftcsbits.c (FTC_SNode_Free, ftc_snode_free): Make the
- former call the latter, not vice versa.
- (FTC_SNode_Weight, ftc_snode_weight): Ditto.
- (FTC_SNode_Compare, ftc_snode_compare): Ditto.
-
- * src/cache/ftcsbits.c: Fix some bugs and inefficiencies in the cache
- sub-system.
-
-2004-06-05 Werner Lemberg <[email protected]>
-
- * src/autofit/afloader.c (af_loader_load_g): Set `lsb_delta' and
- `rsb_delta' in slot->metrics and tune side bearings slightly.
-
-2004-06-04 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2004-06-04 David Chester <[email protected]>
-
- Improve inter-letter spacing for autohinted glyphs.
-
- * include/freetype/freetype.h (FT_Glyph_Metrics): Add elements
- `lsb_delta' and `rsb_delta'.
-
- * src/autohint/ahhint.c (ah_hinter_load): Set `lsb_delta' and
- `rsb_delta' in slot->metrics and tune side bearings slightly.
-
-2004-06-04 David Turner <[email protected]>
-
- * src/autofit/*: Important fixes to the auto-fitter. The output
- now seems to be 100% equivalent to the auto-hinter, while being
- about 2% faster (which proves that script-specific algorithm
- selection isn't a performance problem).
-
- To test it, change `autohint' to `autofit' in
- <freetype/config/ftmodule.h> and recompile.
-
- A few more testing is needed before making this the official
- auto-hinting module.
-
-2004-06-02 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c (compute_glyph_metrics): Fix compiler
- warnings.
-
-2004-06-01 Werner Lemberg <[email protected]>
-
- * src/sfnt/sfobjs.c (tt_face_get_name): Make sure that an English
- name record for the Apple platform is preferred to a non-English
- entry for the Microsoft platform. Problem reported by HANDA
- Ken'ichi.
-
-2004-05-19 George Williams <[email protected]>
-
- * src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): New
- auxiliary functions.
- (T1_Get_MM_Var): Provide axis tags.
- Use mm_axis_unmap and mm_weights_unmap to provide default values
- for design and normalized axis coordinates.
-
- * include/freetype/t1tables.h (PS_DesignMapRec): Change type of
- `design_points' to FT_Long.
- Update all users.
-
-2004-05-17 Werner Lemberg <[email protected]>
-
- * src/base/ftbbox.c (BBox_Conic_Check): Fix boundary cases.
- Reported by Mikey Anbary <[email protected]>.
-
-2004-05-15 Werner Lemberg <[email protected]>
-
- * src/sfnt/sfobjs.c (sfnt_done_face): Free face->postscript_name.
-
-2004-05-15 George Williams <[email protected]>
-
- * src/sfnt/ttload.c (tt_face_load_max_profile): Always set
- face->root.num_glyphs.
-
-2004-05-14 Masatake YAMATO <[email protected]>
- George Williams <[email protected]>
-
- * src/sfnt/ttload.c (sfnt_dir_check): Handle `bhed' properly.
-
-2004-05-14 Werner Lemberg <[email protected]>
-
- * src/cache/ftcbasic.c (ftc_basic_family_compare,
- ftc_basic_family_init, ftc_basic_family_get_count,
- ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph,
- ftc_basic_gnode_compare_faceid): Adjust parameters and return types
- to prototypes given in header files from include/freetype/cache.
- Use casts to proper types locally.
- (ftc_basic_image_family_class, ftc_basic_image_cache_class,
- ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class): Remove
- casts.
-
- * src/cache/ftccback.h: Adjust parameters and return types to
- prototypes given in header files from include/freetype/cache.
-
- * src/cache/ftcimage.c (ftc_inode_free, ftc_inode_new,
- ftc_inode_weight): Adjust parameters and return types to prototypes
- given in header files from include/freetype/cache. Use casts to
- proper types locally.
-
- * src/cache/ftcsbits.c (ftc_snode_free, ftc_snode_new,
- ftc_snode_weight, ftc_snode_compare): Adjust parameters and return
- types to prototypes given in header files from
- include/freetype/cache. Use casts to proper types locally.
-
- * src/cache/ftccmap.c (ftc_cmap_node_free, ftc_cmap_node_new,
- ftc_cmap_node_weight, ftc_cmap_node_compare,
- ftc_cmap_node_remove_faceid): Adjust parameters and return types to
- prototypes given in header files from include/freetype/cache. Use
- casts to proper types locally.
- (ftc_cmap_cache_class): Remove casts.
-
- * src/cache/ftcglyph.c (ftc_gnode_compare, ftc_gcache_init,
- ftc_gcache_done): Adjust parameters and return types to prototypes
- given in header files from include/freetype/cache. Use casts to
- proper types locally.
-
- * src/cache/ftcmanag.c (ftc_size_node_done, ftc_size_node_compare,
- ftc_size_node_init, ftc_size_node_reset,
- ftc_size_node_compare_faceid, ftc_face_node_init,
- ftc_face_node_done, ftc_face_node_compare: Adjust parameters and
- return types to prototypes given in header files from
- include/freetype/cache. Use casts to proper types locally.
-
- (ftc_size_list_class, ftc_face_list_class): Remove casts.
-
-2004-05-13 Werner Lemberg <[email protected]>
-
- * src/autohint/ahmodule.c (ft_autohinter_init, ft_autohinter_done):
- Use FT_Module as parameter and do a cast to FT_AutoHinter locally.
- (autohint_module_class): Remove casts.
-
- * src/base/ftglyph.c (ft_bitmap_glyph_init, ft_bitmap_glyph_copy,
- ft_bitmap_glyph_done, ft_bitmap_glyph_bbox, ft_outline_glyph_init,
- ft_outline_glyph_done, ft_outline_glyph_copy,
- ft_outline_glyph_transform, ft_outline_glyph_bbox,
- ft_outline_glyph_prepare): Use FT_Glyph as parameter and do a cast
- to FT_XXXGlyph locally.
- Use FT_CALLBACK_DEF throughout.
- (ft_bitmap_glyph_class, ft_outline_glyph_class): Remove casts.
-
- * src/bdf/bdfdrivr.c (bdf_cmap_init, bdf_cmap_done,
- bdf_cmap_char_index, bdf_cmap_char_next): Use FT_CMap as parameter
- and do a cast to BDF_CMap locally.
- (bdf_cmap_class): Remove casts.
-
-2004-05-12 Werner Lemberg <[email protected]>
-
- * src/cff/cffgload.h (CFF_Builder): Remove `error'.
- * src/cff/cffgload.c (cff_decoder_parse_charstrings): Replace
- `Memory_Error' with `Fail' und update all users.
-
-2004-05-11 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/psaux.h (T1_ParseState): New
- enumeration.
- (T1_BuilderRec): Replace `path_begun' with `parse_state'.
- Remove `error'.
- * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Replace
- `Memory_Error' with `Fail' and update all users.
- Don't use `builder->error'.
- Replace `path_begun' with `parse_state' and check parsing states.
-
- * src/psaux/psobjs.c (t1_builder_init, t1_builder_start_point):
- Replace `path_begun' with `parse_state' and check parsing states.
-
-2004-05-10 George Williams <[email protected]>
-
- * src/truetype/ttxgvar.c (ft_var_load_avar): Do free arrays in case
- of error -- `avar' is optional so we can't rely on tt_done_blend
- being called automatically.
-
-2004-05-09 George Williams <[email protected]>
-
- * src/truetype/ttxgvar.c (ft_var_load_avar, ft_var_load_gvar): Fix
- error handling.
-
-2004-05-07 Werner Lemberg <[email protected]>
-
- * src/pfr/pfrobjs.c, src/pfr/pfrobjs.h (pfr_face_init,
- pfr_face_done, pfr_face_get_kerning, pfr_slot_init, pfr_slot_done,
- pfr_slot_load): Don't use PFR_XXX but FT_XXX arguments which are
- typecast to the proper PFR_XXX types within the function.
- Update code accordingly.
-
- * src/pfr/pfrdrivr.c (pfr_get_kerning, pfr_get_advance,
- pfr_get_metrics, pfr_get_service): Don't use PFR_XXX but FT_XXX
- arguments which are typecast to the proper PFR_XXX types within the
- function.
- Update code accordingly.
- Use FT_CALLBACK_DEF throughout.
- (pfr_metrics_service_rec, pfr_driver_class): Remove casts.
-
-2004-05-06 Masatake YAMATO <[email protected]>
-
- * src/truetype/ttgxvar.c (ft_var_load_gvar): Use FT_FACE_STREAM.
- (*): Rename local variable OffsetToData to offsetToData.
-
-2004-05-06 Werner Lemberg <[email protected]>
-
- * src/cff/cffobjs.c (cff_size_done, cff_size_init, cff_size_reset,
- cff_slot_done, cff_slot_init, cff_face_init, cff_face_done): Access
- root fields directly.
- * src/cff/cffdrivr.c (Load_Glyph): Access root fields directly.
-
- * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Save current
- frame before calling TT_Vary_Get_Glyph_Deltas.
-
- * src/pcf/pcfdrivr.c (PCF_CMapRec): Rename `cmap' to `root' for
- consistency.
- (pcf_cmap_init, pcf_cmap_done, pcf_cmap_char_index,
- pcf_cmap_char_next): Don't use PCF_XXX but FT_XXX arguments which
- are typecast to the proper PCF_XXX types within the function.
- Update code accordingly.
- (pcf_cmap_class): Remove casts.
- (PCF_Face_Done, PCF_Face_Init, PCF_Set_Pixel_Size): Don't use
- PCF_XXX but FT_XXX arguments which are typecast to the proper
- PCF_XXX types within the function.
- Update code accordingly.
- Use FT_CALLBACK_DEF throughout.
- (PCF_Set_Point_Size): New wrapper function.
- (PCF_Glyph_Load, pcf_driver_requester): Use FT_CALLBACK_DEF.
- (pcf_driver_class): Remove casts.
-
-2004-05-04 Steve Hartwell <[email protected]>
-
- * src/truetype/ttobjs.c (tt_driver_done): Fix typo.
-
-2004-05-04 Werner Lemberg <[email protected]>
-
- * src/bdf/bdfdrivr.c (BDF_Face_Done, BDF_Face_Init,
- BDF_Set_Pixel_Size): Don't use BDF_XXX but FT_XXX arguments which
- are typecast to the proper BDF_XXX types within the function.
- Update code accordingly.
- Use FT_CALLBACK_DEF throughout.
- (BDF_Set_Point_Size): New wrapper function.
- (bdf_driver_class): Remove casts.
-
- * src/cff/cffdrivr.c (Get_Kerning, Load_Glyph, cff_get_interface):
- Don't use CFF_XXX but FT_XXX arguments which are typecast to the
- proper CFF_XXX types within the function.
- Update code accordingly.
- Use FT_CALLBACK_DEF throughout.
- (cff_driver_class): Remove casts.
-
- * src/cff/cffobjs.h, src/cff/cffobjs.c (cff_size_done,
- cff_size_init, cff_size_reset, cff_slot_done, cff_slot_init,
- cff_face_init, cff_face_done, cff_driver_init, cff_driver_done):
- Don't use CFF_XXX but FT_XXX arguments which are typecast to the
- proper CFF_XXX types within the function.
- Update code accordingly.
- (cff_point_size_reset): New wrapper function.
-
- * src/cid/cidobjs.h, src/cid/cidobjs.c (cid_slot_done,
- cid_slot_init, cid_size_done, cid_size_init, cid_size_reset,
- cid_face_done, cid_face_init, cid_driver_init, cid_driver_done):
- Don't use CID_XXX but FT_XXX arguments which are typecast to the
- proper CID_XXX types within the function.
- Update code accordingly.
- (cid_point_size_reset): New wrapper function.
-
- * src/cid/cidgload.c, src/cid/cidgload.h (cid_slot_load_glyph):
- Don't use CID_XXX but FT_XXX arguments which are typecast to the
- proper CID_XXX types within the function.
- Update code accordingly.
-
- * src/cid/cidriver.c (cid_get_interface):
- Don't use CID_XXX but FT_XXX arguments which are typecast to the
- proper CID_XXX types within the function.
- Update code accordingly.
- Use FT_CALLBACK_DEF.
- (t1cid_driver_class): Remove casts.
-
- * src/truetype/ttdriver.c (tt_get_interface): Use FT_CALLBACK_DEF.
- * src/truetype/ttgxvar.c (ft_var_load_avar): Don't free non-local
- variables (this is done later).
- (ft_var_load_avar): Fix call to FT_FRAME_ENTER.
- (TT_Get_MM_Var): Fix size for `fvar_fields'.
- (TT_Vary_Get_Glyph_Deltas): Handle deallocation of local variables
- correctly.
-
- * src/base/ftdbgmem.c (ft_mem_debug_realloc): Don't abort if
- current size is zero.
-
-2004-05-03 Steve Hartwell <[email protected]>
-
- * src/truetype/ttobjs.h, src/truetype/ttobjs.c (tt_face_init,
- tt_face_done, tt_size_init, tt_size_done, tt_driver_init,
- tt_driver_done): Don't use TT_XXX but FT_XXX arguments which are
- typecast to the proper TT_XXX types within the function.
- Update code accordingly.
-
- * src/truetype/ttdriver.c (Get_Kerning, Set_Char_Sizes,
- Set_Pixel_Sizes, Load_Glyph, tt_get_interface): Don't use TT_XXX but
- FT_XXX arguments which are typecast to the proper TT_XXX types
- within the function.
- Update code accordingly.
- (tt_driver_class): Remove casts.
-
-2004-05-02 Werner Lemberg <[email protected]>
-
- * src/sfnt/ttload.c (tt_face_free_names): Check that `table->names'
- is not NULL. Reported by Gordon Childs <[email protected]>.
-
-2004-04-29 Werner Lemberg <[email protected]>
-
- * docs/formats.txt: Add more information on PFR format.
-
-2004-04-28 Werner Lemberg <[email protected]>
-
- * docs/formats.txt: New file.
- * docs/CHANGES: Updated.
-
-2004-04-28 Masatake YAMATO <[email protected]>
-
- * include/freetype/internal/tttypes.h (GX_BlendRec_)
- [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Fix a typo.
-
- * src/truetype/ttgxvar.h (GX_BlendRec_): Fix a typo.
-
-2004-04-27 Masatake YAMATO <[email protected]>
-
- * src/truetype/ttgxvar.h: Use FT_LOCAL instead of FT_LOCAL_DEF
- for function declarations.
-
-2004-04-25 George Williams <[email protected]>
-
- * src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix typo.
-
-2004-04-25 Werner Lemberg <[email protected]>
-
- * src/truetype/Jamfile, docs/CHANGES: Updated.
-
-2004-04-24 Werner Lemberg <[email protected]>
-
- * src/pcf/pcfdrivr.c: Revert change from 2004-04-17.
- * src/pcf/pcfutil.c: Use FT_LOCAL_DEF.
- * src/pcf/pcfutil.h: Include FT_CONFIG_CONFIG_H.
- Use FT_BEGIN_HEADER and FT_END_HEADER.
- Use FT_LOCAL.
-
-2004-04-24 George Williams <[email protected]>
-
- Add support for Apple's distortable font technology (in GX fonts).
-
- * devel/ftoption.h, include/freetype/config/ftoption.h
- (TT_CONFIG_OPTION_GX_VAR_SUPPORT): New macro.
-
- * include/freetype/ftmm.h (FT_Var_Axis, FT_Var_Named_Style,
- FT_MM_Var): New structures.
- (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates,
- FT_Set_Var_Blend_Coordinates): New function declarations.
-
- * include/freetype/internal/services/svmm.h (FT_Get_MM_Var_Func,
- FT_Set_Var_Design_Func): New typedefs.
- Update MultiMasters service.
-
- * include/freetype/internal/tttypes.h
- [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include FT_MULTIPLE_MASTERS_H.
- (GX_Blend) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New typedef.
- (TT_Face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New members `doblend'
- and `blend'.
-
- * include/freetype/tttags.h (TTAG_avar, TTAG_cvar, TTAG_gvar): New
- macros.
-
- * include/freetype/internal/fttrace.h: Add `ttgxvar'.
-
- * src/base/ftmm.c (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates,
- FT_Set_Var_Blend_Coordinates): New functions.
-
- * src/sfnt/sfobjs.c (sfnt_load_face)
- [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Set FT_FACE_FLAG_MULTIPLE_MASTERS
- flag for GX var fonts.
-
- * src/truetype/ttgxvar.c, src/truetype/ttgxvar.h: New files.
-
- * src/truetype/truetype.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
- ttgxvar.c.
-
- * src/truetype/ttdriver.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
- FT_MULTIPLE_MASTERS_H, FT_SERVICE_MULTIPLE_MASTERS_H, and ttgxvar.h.
- (tt_service_gx_multi_masters) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]:
- New service.
- (tt_services) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Updated.
-
- * src/truetype/ttgload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
- ttgxvar.h.
- (TT_Process_Simple_Glyph, load_truetype_glyph)
- [TT_CONFIG_OPTION_GX_VAR_SUPPORT] :Support GX var fonts.
-
- * src/truetype/ttobjs.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
- ttgxvar.h.
- (tt_done_face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call
- tt_done_blend.
-
- * src/truetype/ttpload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
- ttgxvar.h.
- (tt_face_load_cvt) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call
- tt_face_vary_cvt.
-
- * src/truetype/rules.mk (TT_DRV_SRC): Add ttgxvar.c.
-
- * src/type1/t1driver.c (t1_service_multi_masters): Add T1_Get_MM_Var
- and T1_Set_Var_Design.
-
- * src/type1/t1load.c (FT_INT_TO_FIXED, FT_FIXED_TO_INT): New macros.
- (T1_Get_MM_Var, T1_Set_Var_Design): New functions.
-
- * src/type1/t1load.h (T1_Get_MM_Var, T1_Set_Var_Design): New
- function declarations.
-
-2004-04-23 Werner Lemberg <[email protected]>
-
- * include/freetype/ftcache.h (FT_Get_CharMap_Index): Rename
- declaration and move to...
- * include/freetype/freetype.h (FT_Get_Charmap_Index): Here.
- (FREETYPE_PATCH): Set to 9.
-
- * src/base/ftobjs.c (FT_Get_Charmap_Index): New function.
-
- * builds/unix/configure.ac (version_info): Set to 9:7:3.
- * builds/unix/configure: Updated.
-
- * builds/win32/visualc/index.html,
- builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj: s/218/219/.
-
- * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
- s/2.1.8/2.1.9/.
-
- * docs/CHANGES, docs/VERSION.DLL: Updated.
-
-2004-04-21 Werner Lemberg <[email protected]>
-
- * src/cff/cffparse.c (cff_parser_run), src/psaux/psobjs.c
- (ps_parser_load_field): Use FT_CHAR_BIT.
-
-2004-04-21 David Turner <[email protected]>
-
-
- * Version 2.1.8 released.
- =========================
-
-
- * src/cff/cffobjs.c (cff_face_init): Fix a small memory leak.
-
- * src/autofit/afloader.c (af_loader_load_g), src/autofit/afmodule.c
- (af_autofitter_load_glyph), src/base/ftdebug.c (FT_Trace_Get_Name):
- Remove compiler warnings.
-
- * src/autofit/aftypes.h: Undefine AF_DEBUG.
-
- * src/lzw/zopen.c (rmask), src/pcf/pcfdrivr.c (pcf_service_bdf,
- pcf_services), src/pcf/pcfread.c (tableNames), src/psaux/psobjs.c
- (ft_char_table), src/type42/t42drivr.c (t42_service_glyph_dict,
- t42_service_ps_font_name): Decorate data arrays with `const' to
- avoid populating the `.data' segment.
-
- * src/lzw/Jamfile: New file.
-
-2004-04-20 Werner Lemberg <[email protected]>
-
- * src/psaux/psobjs.c (T1Radix): Renamed to...
- (ps_radix): This.
- Update current cursor position.
-
- * docs/CHANGES: Updated.
-
-2004-04-18 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph),
- src/ttdriver.c (Load_Glyph): Change type of `glyph_index' to
- FT_UInt. From Lex Warners.
-
-2004-04-17 Chisato Yamauchi <[email protected]>
-
- * src/sfnt/ttload.c (tt_face_load_sfnt_header): Really fix change
- from 2004-03-19.
-
- * src/bdf/bdfdrivr.c (BDF_Face_Init): Use `ft_strlen'.
-
- * src/pcf/pcfutil.c, src/pcf/pcfutil.h: Decorate functions with
- `static'.
- Remove unused function `RepadBitmap'.
- * src/pcf/pcfdrivr.c: Don't include pcfutil.h.
-
-2004-04-16 Werner Lemberg <[email protected]>
-
- * builds/unix/freetype-config.in (usage): Fix and improve usage
- information.
-
-2004-04-15 Werner Lemberg <[email protected]>
-
- * builds/unix/ftconfig.in, builds/vms/ftconfig.h: Define
- FT_CHAR_BIT.
-
- * src/base/ftobjs.c (FT_Load_Glyph): Don't apply autohinting if
- glyph is vertically distorted or mirrored.
-
- * src/cff/cffgload.c (cff_slot_load): Handle zero `size' properly
- for embedded bitmaps.
-
- * docs/CHANGES: Updated.
-
-2004-04-15 bytesoftware <[email protected]>
-
- * include/freetype/config/ftconfig.h, src/base/ftstream.c
- (FT_Stream_ReadFields): More fixes using FT_CHAR_BIT.
-
-2004-04-14 Werner Lemberg <[email protected]>
-
- * include/freetype/config/ftconfig.h (FT_CHAR_BIT): New macro.
-
-2004-04-14 Alex Strelnikov <[email protected]>
-
- * src/cache/ftcsbits.c (ftc_snode_load): Initialize `*asize' in case
- of error.
-
-2004-04-14 Werner Lemberg <[email protected]>
-
- * src/base/ftmac.c [__GNUC__]: Define OS_INLINE.
- * builds/unix/configure.ac: Don't try to remove `-ansi' compilation
- switch on the Mac.
-
- * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
- --copy' from libtool 1.5.6.
- * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
- automake 1.8a.
- * builds/unix/configure: Regenerated with autoconf 2.59a.
-
-2004-04-13 Werner Lemberg <[email protected]>
-
- * include/freetype/config/ftconfig.h: Use CHAR_BIT to define
- size of FT_SIZEOF_xxx.
-
-2004-04-12 Chisato Yamauchi <[email protected]>
-
- * include/freetype/internal/sfnt.h (TT_Find_SBit_Image_Func,
- TT_Load_SBit_Metrics_Func): New typedefs.
- (SFNT_Interface): Add find_sbit_image and load_sbit_metrics.
-
- * src/sfnt/sfdriver.c (sfnt_interface): Updated.
- * src/sfnt/ttsbit.h (tt_find_sbit_image, tt_load_sbit_metrics): New
- declarations.
- * src/sfnt/ttsbit.c (find_sbit_image): Renamed to...
- (tt_find_sbit_image): This.
- Updated all callers.
- (load_sbit_metrics): Renamed to...
- (tt_load_sbit_metrics): This.
- Updated all callers.
-
-2004-04-12 Werner Lemberg <[email protected]>
-
- * configure: Accept makepp also.
-
- * builds/unix/detect.mk: Use proper path to unix-def.mk.
- * builds/unix/unix-def.in (BUILD_DIR, PLATFORM): Remove.
- * builds/unix/unix.mk (BUILD_DIR, PLATFORM): Define.
- Use BUILD_DIR.
-
- * docs/INSTALL, docs/INSTALL.GNU, docs/INSTALL.UNX: Update
- documentation on makepp.
-
-2004-04-11 Werner Lemberg <[email protected]>
-
- * src/lzw/zopen.c: Don't include sys/param.h and sys/stat.h.
-
-2004-04-10 Werner Lemberg <[email protected]>
-
- * src/lzw/ftlzw.c: Include zopen.h dependent on
- FT_CONFIG_OPTION_USE_LZW.
-
- * src/base/ftdebug.c: s/index/idx/ to avoid compiler warnings.
-
-2004-04-02 Werner Lemberg <[email protected]>
-
- * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
- --copy' from libtool 1.5.2.
- * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
- automake 1.8a.
- * builds/unix/configure: Regenerated with autoconf 2.59a.
-
-2004-04-01 Werner Lemberg <[email protected]>
-
- * builds/unix/ft-munmap.m4 (FT_MUNMAP_PARAM): Fix arguments of
- AC_COMPILE_IFELSE.
- * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
- automake 1.8a.
- * builds/unix/configure: Regenerated with autoconf 2.59a.
- * builds/unix/config.guess, builds/unix/config.sub: Updated from
- `config' CVS module at subversions.gnu.org.
- * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
- `texinfo' CVS module at subversions.gnu.org.
- * builds/freetype.mk (refdoc): Updated.
-
-2004-03-31 Werner Lemberg <[email protected]>
-
- Handle broken FNT files which don't have a trailing NULL byte
- in the face name string.
-
- * src/winfonts/winfnt.h (FNT_FontRec): New member `family_name'.
- * src/winfonts/winfnt.c (fnt_font_done): Free font->family_name.
- (FNT_Face_Init): Append a final zero byte to the font face name.
-
-2004-03-30 Werner Lemberg <[email protected]>
-
- * src/sfnt/ttload.c (tt_face_load_sfnt_header): Fix change from
- 2004-03-19.
-
-2004-03-27 Werner Lemberg <[email protected]>
-
- * src/base/descrip.mms (OBJS): Add ftbbox.obj.
-
-2004-03-26 George Williams <[email protected]>
-
- Add vertical phantom points.
-
- * include/freetype/internal/tttypes.h (TT_LoaderRec): Add
- `top_bearing', `vadvance', `pp3', and `pp4'.
-
- * src/autofit/afloader.c (af_loader_load_g): Handle two more points.
-
- * src/autohint/ahhint.c (ah_hinter_load): Handle two more points.
- * src/truetype/ttgload.c (Get_VMetrics): New function.
- (TT_Load_Simple_Glyph, TT_Process_Simple_Glyph): Handle two more
- points.
- (load_truetype_glyph): Use Get_VMetrics.
- Handle two more points.
- (compute_glyph_metrics): Thanks to vertical phantom points we now
- can always compute `advance_height' and `top_bearing'.
- * src/truetype/ttobjs.h (TT_SubglyphRec): Add vertical phantom
- points.
-
-
- * src/autohint/ahglyph.c (ah_outline_load): Fix allocation of
- `news'.
-
-2004-03-21 Werner Lemberg <[email protected]>
-
- * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Fix left side bearing.
-
-2004-03-20 Steve Hartwell <[email protected]>
-
- * src/cache/ftcmru.c (FTC_MruList_RemoveSelection): Handle a NULL
- value for `selection' as `select all'.
-
-2004-03-19 Steve Hartwell <[email protected]>
-
- * src/sfnt/ttload.c (tt_face_load_sfnt_header): Reject face_index
- values > 0 if loading non-TTC fonts.
-
- * src/base/ftmac.c (open_face_from_buffer): Set positive face_index
- to zero before calling FT_Open_Face.
-
- * docs/CHANGES: Updated.
-
-2004-03-04 Werner Lemberg <[email protected]>
-
- * Jamfile, vms_make.com, builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype/vcproj, include/freetype/ftmoderr.h:
- Add LZW module.
-
- * Jamfile.in: Removed.
-
- * docs/CHANGES: Updated.
-
- * include/freetype/internal/ftobjs.h: s/MIN/FT_MIN/, s/MAX/FT_MAX/,
- s/ABS/FT_ABS/. Updated all callers.
-
- * src/type1/t1load.c (parse_dict), src/pcf/pcfdrivr.c
- (PCF_Face_Init): Use FT_ERROR_BASE.
-
-2004-03-04 Albert Chin <[email protected]>
-
- Add support for PCF fonts compressed with LZW (extension .pcf.Z,
- created with `compress').
-
- * include/freetype/config/ftoption.h, devel/ftoption.h
- (FT_CONFIG_OPTION_USE_LZW): New macro.
-
- * include/freetype/ftlzw.h: New file.
- * include/freetype/config/ftheader.h (FT_LZW_H): New macro for
- ftlzw.h.
-
- * src/lzw/*: New files.
-
- * src/pcf/pcfdrivr.c: Include FT_LZW_H.
- (PCF_Face_Init): Try LZW also.
-
- * src/gzip/ftgzip.c: s/0/Gzip_Err_Ok/ where appropriate.
- Beautify.
-
-2004-03-03 Werner Lemberg <[email protected]>
-
- * src/pshinter/pshalgo.c (psh_hint_table_init): Simplify code.
-
-2004-03-02 Werner Lemberg <[email protected]>
-
- Add embedded bitmap support to CFF driver.
-
- * src/cff/cffobjs.h (CFF_SizeRec): New structure.
-
- * src/cff/cffgload.c (cff_builder_init): Updated.
- (cff_slot_load): Updated.
- [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Load sbit.
-
- * src/cff/cffobjs.c (sbit_size_reset)
- [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: New function.
- (cff_size_get_globals_funcs, cff_size_done, cff_size_init): Updated.
- (cff_size_reset): Updated.
- [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Call sbit_size_reset.
-
- * src/cff/cffdrivr.c (Load_Glyph): Updated.
- (cff_driver_class): Use CFF_SizeRec.
-
- * docs/CHANGES: Updated.
-
-2004-03-01 Werner Lemberg <[email protected]>
-
- * src/pshinter/pshglob.c (psh_globals_scale_widths): Don't use
- FT_RoundFix but FT_PIX_ROUND.
- (psh_blues_snap_stem): Don't use blue_shift but blue_threshold.
-
- * src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD_MAXIMUM): New macro.
- (psh_glyph_find_string_points): Use PSH_STRONG_THRESHOLD_MAXIMUM.
- (psh_glyph_find_blue_points): New function. Needed for fonts like
- p052003l.pfb (URW Palladio L Roman) which have flex curves at the
- base line within blue zones, but the flex curves aren't covered by
- hints.
- (ps_hints_apply): Use psh_glyph_find_blue_points.
-
-2004-02-27 Garrick Meeker <[email protected]>
-
- * builds/unix/configure.ac: Fix compiler flags for
- `--with-old-mac-fonts'.
- * builds/unix/configure: Regenerated.
-
- * src/base/ftmac.c: s/TARGET_API_MAC_CARBON/!TARGET_API_MAC_OS8/.
- (FT_New_Face_From_Resource): New function.
- (FT_New_Face): Use FT_New_Face_From_Resource.
- (FT_New_Face_From_FSSpec): Use FT_New_Face_From_Resource.
- [__MWERKS__]: Don't include FSp_fopen.h.
-
-2004-02-26 Werner Lemberg <[email protected]>
-
- * src/pshinter/pshglob.c (psh_globals_new): Fix value of
- `dim->stdw.count'.
- Don't assign default values to blue scale and blue shift.
-
-2004-02-25 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2004-02-25 Garrick Meeker <[email protected]>
- Steve Hartwell <[email protected]>
-
- Improve MacOS fond support. Provide a new API
- `FT_New_Face_From_FSSpec' similar to `FT_New_Face'.
-
- * src/base/ftmac.c [__MWERKS__]: Include FSp_fpopen.h.
- STREAM_FILE [__MWERKS__]: New macro.
- (ft_FSp_stream_close, ft_FSp_stream_io) [__MWERKS__]: New functions.
- (file_spec_from_path) [__MWERKS__]: Updated #if statement.
- (get_file_type, make_lwfn_spec): Use `const' for argument.
- (is_dfont) [TARGET_API_MAC_CARBON]: Removed.
- (count_face_sfnt, count_faces): New functions.
- (parse_fond): Do some range checking.
- (read_lwfn): Change type of second argument.
- No longer call FSpOpenResFile.
- (OpenFileAsResource): New function.
- (FT_New_Face_From_LWFN): Use `const' for second argument.
- Use OpenFileAsResource.
- (FT_New_Face_From_Suitcase): Change type of second argument.
- No longer call FSpOpenResFile.
- Loop over all resource indices.
- (FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Removed.
- (FT_GetFile_From_Mac_Name): Use `const' for first argument.
- (ResourceForkSize): Removed.
- (FT_New_Face): Updated to use new functions.
- (FT_New_Face_From_FSSpec): New function.
-
- * include/freetype/ftmac.h: Updated.
-
-2004-02-24 Malcolm Taylor <[email protected]>
-
- * src/autohint/ahhint.c (ah_hinter_load) <FT_GLYPH_FORMAT_OUTLINE>:
- Handle case where outline->num_vedges is zero while computing hinted
- metrics.
-
-2004-02-24 Gordon Childs <[email protected]>
-
- * src/cff/cffcmap.c (cff_cmap_unicode_init): Provide correct value
- for `count'.
-
-2004-02-24 Werner Lemberg <[email protected]>
-
- * include/freetype/t1tables.h (PS_PrivateRec): Add
- `expansion_factor'.
-
- * src/pshinter/pshglob (psh_blues_scale_zones): Fix computation
- of blues->no_overshoots -- `blues_scale' is stored with a
- magnification of 1000, and `scale' returns fractional pixels.
-
- * src/type1/t1load.c (T1_Open_Face): Initialize `blue_shift',
- `blue_fuzz', `expansion_factor', and `blue_scale' according to the
- Type 1 specification.
-
- * src/type1/t1tokens.h: Handle `ExpansionFactor'.
-
- * docs/CHANGES: Updated.
-
-2004-02-24 Masatake YAMATO <[email protected]>
-
- Provide generic access to MacOS resource forks.
-
- * src/base/ftrfork.c, include/freetype/internal/ftrfork.h: New
- files.
-
- * src/base/ftobjs.c: Include FT_INTERNAL_RFORK_H.
- (Mac_Read_POST_Resource, Mac_Read_sfnt_Resource): Remove arguments
- `resource_listoffset' and `resource_data' and adapt code
- accordingly. These values are calculated outside of the function
- now.
- Add new argument `offsets'.
- (IsMacResource): Use `FT_Raccess_Get_HeaderInfo' and
- `FT_Raccess_Get_DataOffsets'.
- (load_face_in_embedded_rfork): New function.
- (load_mac_face): Use load_face_in_embedded_rfork.
- (ft_input_stream_new): Renamed to...
- (FT_Stream_New): This. Use FT_BASE_DEF. Updated all callers.
- (ft_input_stream_free): Renamed to...
- (FT_Stream_Free): This. Use FT_BASE_DEF. Updated all callers.
-
- * src/base/ftbase.c: Include ftrfork.c.
-
- * src/base/rules.mk (BASE_SRC), src/base/Jamfile: Updated.
-
- * include/freetype/internal/internal.h (FT_INTERNAL_RFORK_H):
- New macro.
-
- * include/freetype/internal/fttrace.h: Added `rfork' as a new
- trace definition.
-
- * include/freetype/internal/ftstream.h: Declare FT_Stream_New and
- FT_Stream_Free.
-
- * include/freetype/config/ftoption.h, devel/ftoption.h
- (FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK): New option.
-
- * include/freetype/config/ftstdlib.h (ft_strrchr): New macro.
-
-2004-02-23 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
- * include/freetype/internal/ftdebug.h: Include FT_FREETYPE_H.
-
-2004-02-23 Masatake YAMATO <[email protected]>
-
- Provide a simple API to control FreeType's tracing levels.
-
- * include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
- FT_Trace_Get_Name): New declarations.
-
- * src/base/ftdebug.c (FT_Trace_Get_Count, FT_Trace_Get_Name): New
- functions.
-
-2004-02-23 David Turner <[email protected]>
-
- * src/autofit/afhints.c, src/autofit/afhints.h,
- src/autofit/aflatin.c, src/autofit/afloader.c, src/types.h: Grave
- bugs have been fixed. The auto-fitter works, doesn't crash, but
- still produces unexpected results...
-
-2004-02-21 Werner Lemberg <[email protected]>
-
- * src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD): Changed to hold
- the accepted shift for strong points in fractional pixels (which
- is a heuristic value).
- (psh_glyph_find_strong_points): Compute threshold for
- psh_hint_table_find_strong_points.
- (psh_hint_table_find_strong_point): Add parameter to pass threshold.
-
-2004-02-20 Werner Lemberg <[email protected]>
-
- * src/pshinter/pshrec.c (ps_mask_table_set_bits): Don't call
- ps_mask_table_alloc but ps_mask_table_last.
- (ps_hints_t2mask): Use correct position and number for vertical
- and horizontal hinter mask bits.
-
- * docs/CHANGES: Updated.
-
-2004-02-19 Werner Lemberg <[email protected]>
-
- * src/base/ftstroke.c (FT_Glyph_StrokeBorder): Fix enum handling.
- * src/cff/cffdrivr.c (cff_get_cmap_info): Remove compiler warning.
-
-2004-02-18 Werner Lemberg <[email protected]>
-
- * include/freetype/freetype.h: Document FT_LOAD_TARGET_XXX properly.
-
- * src/base/ftglyph.c (ft_bitmap_glyph_class,
- ft_outline_glyph_class): Tag with FT_CALLBACK_TABLE_DEF.
-
- * src/smooth/ftsmooth.c (ft_smooth_render): Handle
- FT_RENDER_MODE_LIGHT.
-
-2004-02-17 Werner Lemberg <[email protected]>
-
- Fix callback functions in cache module.
-
- * src/cache/ftccback.h: New file for callback declarations.
-
- * src/cache/ftcbasic.c (ftc_basic_family_compare,
- ftc_basic_family_init, ftc_basic_family_get_count,
- ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph,
- ftc_basic_gnode_compare_faceid): Use FT_CALLBACK_DEF.
- (ftc_basic_image_family_class, ftc_basic_image_cache_class,
- ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class):
- Use FT_CALLBACK_TABLE_DEF and local wrapper functions.
-
- * src/cache/ftccache.c: Include ftccback.h.
- (ftc_cache_init, ftc_cache_done): New wrapper functions which use
- FT_LOCAL_DEF.
-
- * src/cache/ftccmap.c: Include ftccback.h.
- (ftc_cmap_cache_class): Use local wrapper functions.
-
- * src/cache/ftcglyph.c: Include ftccback.h.
- (ftc_gnode_compare, ftc_gcache_init, ftc_gcache_done): New wrapper
- functions which use FT_LOCAL_DEF.
-
- * src/cache/ftcimage.c: Include ftccback.h.
- (ftc_inode_free, ftc_inode_new, ftc_inode_weight): New wrapper
- functions which use FT_LOCAL_DEF.
-
- * src/cache/ftcmanag.c (ftc_size_list_class, ftc_face_list_class):
- Use FT_CALLBACK_TABLE_DEF.
-
- * src/cache;/ftcsbits.c: Include ftccback.h.
- (ftc_snode_free, ftc_snode_new, ftc_snode_weight,
- ftc_snode_compare): New wrapper functions which use FT_LOCAL_DEF.
-
- * src/cache/rules.mk (CACHE_DRV_H): Add ftccback.h.
-
-2004-02-17 Masatake YAMATO <[email protected]>
-
- * include/freetype/ftmac.h (FT_GetFile_From_Mac_Name): Fix a typo
- (FT_EXPORT_DEF -> FT_EXPORT).
-
- * include/freetype/ftxf86.h (FT_Get_X11_Font_Format): Ditto.
-
-2004-02-15 Werner Lemberg <[email protected]>
-
- * src/base/ftobjs.c (FT_Set_Char_Size): Fix typo.
-
-2004-02-14 Masatake YAMATO <[email protected]>
-
- * builds/unix/ftsystem.c: Include errno.h.
- (ft_close_stream): Renamed to...
- (ft_close_stream_by_munmap): This.
- (ft_close_stream_by_free): New function.
- (FT_Stream_Open): Use fallback method if mmap fails.
- Use proper function for closing the stream.
-
-2004-02-14 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.c (parse_dict): Initialize `start_binary'.
-
-2004-02-13 Robert Etheridge <[email protected]>
-
- * src/type42/t42objs.c (T42_Face_Init), src/type1/t1objs.c
- (T1_Face_Init), src/cid/cidobjs.c (cid_face_init): Fix computation
- of underline_position and underline_thickness.
-
-2004-02-12 Werner Lemberg <[email protected]>
-
- * src/base/ftobjs.c (FT_Set_Char_Size): Return immediately if
- ppem values don't change. Suggested by Graham Asher.
-
-2004-02-11 Werner Lemberg <[email protected]>
-
- * src/cid/cidload.c (cid_face_open): Always allocate
- face->cid_stream so that we can deallocate it safely.
-
-2004-02-10 Werner Lemberg <[email protected]>
-
- Make the PS parser more tolerant w.r.t. non-standard font data. In
- general, an error is only reported in case of a syntax error; a
- wrong type is now simply ignored (if possible). To be independent
- of the order of various MM-specific keywords, the parse_shared_dict
- routine has been removed -- the PS parser is now capable to skip
- this data. It no longer fails on parsing e.g.
-
- dup /WeightVector exch def
-
- Since the token following /WeightVector isn't `[' (starting an
- array) it is simply ignored.
-
- * include/freetype/fterrdef.h: Define `FT_Err_Ignore' (0xA2) as a
- new internal error value.
-
- * src/type1/t1load.c (parse_blend_axis_types,
- parse_blend_design_positions, parse_blend_design_map): Return
- T1_Err_Ignore if no proper array is following the keyword.
- (parse_weight_vector): Use T1_ToTokenArray, initializing `blend'
- structure, if necessary.
- Return T1_Err_Ignore if no proper array is following the keyword.
- (parse_shared_dict): Removed.
- (parse_encoding): Set parser->root.error to return T1_Err_Ignore
- if no result can be obtained.
- Check for errors before accessing `elements' array.
- (t1_keywords): Remove /shareddict.
- (parse_dict): Reset error if t1_load_keyword returns T1_Err_Ignore.
- Set keyword_flag only in case of success.
- Check error code if skipping an unrecognized token.
- (T1_Open_Face) [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: Call T1_Done_Blend
- if blend commands haven't set up a proper MM font.
-
- * src/psaux/psobjs.c (ps_parser_load_field_table): Remove special
- code for synthetic fonts.
- Return PSaux_Err_Ignore if no proper value has been found.
-
-2004-02-09 Werner Lemberg <[email protected]>
-
- * src/cff/cffgload.c (cff_decoder_parse_charstrings)
- <cff_op_endchar>: Preserve glyph width before calling
- cff_operator_seac.
-
-2004-02-09 Martin Muskens <[email protected]>
-
- * src/cff/cffgload.c (cff_decoder_parse_charstrings): Handle special
- first argument for `hintmask' and `cntrmask' operators also.
-
-2004-02-08 Werner Lemberg <[email protected]>
-
- * builds/unix/configure.in: Call AC_SUBST for `enable_shared',
- `hardcode_libdir_flag_spec', and `wl'.
- * builds/unix/configure: Regenerated.
-
- * builds/unix/freetype-config.in: Make --prefix and --exec-prefix
- actually work.
- Report a proper --rpath (or -R) value for --libs argument if a
- shared library has been built.
-
- * docs/CHANGES: Updated.
-
-2004-02-07 Keith Packard <[email protected]>
-
- * src/bdf/bdfdrivr.c (BDF_Face_Init, BDF_Set_Pixel_Size): Fix
- computation of various vertical and horizontal metric values.
-
- * src/pcfdrivr.c (PCF_Set_Pixel_Size), src/pcfread (pcf_load_font):
- Ditto.
-
-2004-02-07 Werner Lemberg <[email protected]>
-
- * builds/win32/visualc/index.html,
- builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.dsw, docs/CHANGES: Updated.
-
-2004-02-07 Vitaliy Pasternak <[email protected]>
-
- * builds/win32/visualc/freetype.sln,
- builds/win32/visualc/freetype.vcproj: New files for VS.NET 2003.
-
-2004-02-03 Werner Lemberg <[email protected]>
-
- * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP):
- Initialize `node'.
- * src/type1/t1load.c (parse_dict): Initialize `have_integer'.
-
-2004-02-02 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.c (parse_dict): Handle `RD' and `-|' commands
- outside of /Subrs or /CharStrings. This can happen if there is
- additional code manipulating those two arrays so that FreeType
- doesn't recognize them properly.
- (T1_Open_Face): Improve an error message.
-
-2004-02-01 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.c (parse_charstrings): Exit immediately if
- there are no elements in /CharStrings. This is needed for fonts
- like Optima-Oblique which not only define /CharStrings but access it
- also.
-
-2004-02-01 David Turner <[email protected]>
-
- * src/sfnt/Jamfile: Removing `ttcmap' from the list of sources.
-
- * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP)
- <FTC_INLINE>: Provide macro version which doesn't use inline code.
- * include/freetype/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP)
- <FTC_INLINE>: Ditto.
- Use FTC_MRULIST_LOOKUP_CMP.
- * include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): New
- macro.
- (FTC_MRULIST_LOOKUP): Use it.
-
- * src/cache/Jamfile (_sources), src/cache/descrip.mms: Updated.
- * src/cache/ftcbasic.c: Fix compiler warnings.
- * src/cache/ftcmanag.c (FTC_Manager_LookupSize,
- FTC_Manager_LookupFace) <FTC_INLINE>: Use FTC_MRULIST_LOOKUP_CMP.
- * src/cache/ftcmru.c (FTC_MruList_Find): Fix a bug (found after
- heavy testing).
-
- * Jamfile: Updating `refdoc' target, and adding `autohint' to the
- list of modules to build. Both the autohinter and autofitter will
- be built by default. But which one will be used is determined by
- the content of `ftmodule.h'.
-
- * src/autofit/*: Many updates, but the code is still buggy...
-
-2004-01-31 Werner Lemberg <[email protected]>
-
- * src/cff/cffgload.c (cff_operator_seac): Fix magnitude of
- accent offset.
- Update code similarly to the seac support for Type 1 fonts.
- (cff_decoder_parse_charstrings) <cff_op_endchar>: Fix magnitude
- of accent offset.
- Don't hint glyphs twice if seac is emulated.
- <cff_op_flex>: Assign correct point tags.
- * docs/CHANGES: Updated.
-
-2004-01-30 Werner Lemberg <[email protected]>
-
- * src/type1/t1parse.c (T1_Get_Private_Dict): Use FT_MEM_MOVE, not
- FT_MEM_COPY, for copying the private dict.
-
- * src/type1/t1load.c (parse_subrs): Assign number of subrs only
- in first run.
- (parse_charstrings): Parse /CharStrings in second run without
- assigning values.
- (parse_dict): Skip all /CharStrings arrays but the first. We need
- this for non-standard fonts like `Optima' which have different
- outlines depending on the resolution. Note that there is no
- guarantee that we get fitting /Subrs and /CharStrings arrays; this
- can only be done by a real PS interpreter.
-
-2004-01-29 Antoine Leca <[email protected]>
-
- * builds/win32/visualc/index.html: New file, giving detailed
- explanations about forcing CR+LF line endings for the VC++ project
- files.
-
-2004-01-22 Garrick Meeker <[email protected]>
-
- * src/cff/cffload.c (cff_subfont_load): Initialize `dict'.
-
-2004-01-22 Werner Lemberg <[email protected]>
-
- Add support for the hexadecimal representation of binary data
- started with `StartData' in CID-keyed Type 1 fonts.
-
- * include/freetype/internal/t1types.h (CID_FaceRec): Add new
- members `binary_data' and `cid_stream'.
-
- * src/cid/cidload.c (cid_read_subrs): Use `face->cid_stream'.
- (cid_hex_to_binary): New auxiliary function.
- (cid_face_open): Add new argument `face_index' to return quickly
- if less than zero. Updated all callers.
- Call `cid_hex_to_binary', then open and assign memory stream to
- `face->cid_stream' if `parser->binary_length' is non-zero.
- * src/cid/cidload.h: Updated.
-
- * src/cid/cidobjs.c (cid_face_done): Free `binary_data' and
- `cid_stream'.
-
- * src/cid/cidparse.c (cid_parser_new): Check arguments to
- `StartData' and set parser->binary_length accordingly.
- * src/cid/cidparse.h (CID_Parser): New member `binary_length'.
-
- * src/cid/cidgload.c (cid_load_glyph): Use `face->cid_stream'.
-
- * docs/CHANGES: Updated.
-
-2004-01-21 Werner Lemberg <[email protected]>
-
- include/freetype/config/ftstdlib.h (ft_atoi): Replaced with...
- (ft_atol): This.
- * src/base/ftdbgmem.c: s/atol/ft_atol/.
- * src/type42/t42drivr.c: s/ft_atoi/ft_atol/.
-
-2004-01-20 Masatake YAMATO <[email protected]>
-
- * include/freetype/ftcache.h: Delete duplicated definition of
- FTC_FaceID.
-
- * src/cff/cffdrivr.c (cff_get_cmap_info): Call sfnt module's TT CMap
- Info service function if the cmap comes from sfnt. Return 0 if the
- cmap is sythesized in cff module.
-
-2004-01-20 David Turner <[email protected]>
-
- * src/cache/ftcmanag.c (ftc_size_node_compare): Call
- FT_Activate_Size.
-
-2004-01-20 Werner Lemberg <[email protected]>
-
- * src/type1/t1parse.c (T1_Get_Private_Dict): Skip exactly one
- CR, LF, or CR/LF after `eexec'.
-
-2004-01-18 David Turner <[email protected]>
-
- * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Remove compiler
- warning.
-
- * src/tools/docmaker/*: Updating beautifier tool.
-
-2004-01-15 David Turner <[email protected]>
-
- * src/base/ftoutln.c (ft_orientation_extremum_compute): Fix
- infinite loop bug.
-
- * include/freetype/ftstroke.h: Include FT_GLYPH_H.
- (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_Glyph_StrokeBorder): New
- declarations.
-
- * src/base/ftstroke.c: Include FT_INTERNAL_OBJECTS_H.
- (FT_Outline_GetOutsideBorder): Inverse result.
- (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_GlyphStrokeBorder): New
- functions.
- (FT_Stroker_EndSubPath): Close path if needed.
- (FT_Stroker_Set, FT_Stroker_ParseOutline): Use FT_Stroker_Rewind.
-
- * include/freetype/cache/ftcmanag.h (FTC_ScalerRec,
- FTC_Manager_LookupSize): Moved to...
- * include/freetype/ftcache.h (FTC_ScalerRec,
- FTC_Manager_LookupSize): Here.
-
- * src/tools/docmaker/docbeauty.py: New file to beautify the
- documentation comments (e.g., to convert them to single block border
- mode).
- * src/tools/docmaker/docmaker.py (file_exists, make_file_list):
- Moved to...
- * src/tools/docmaker/utils.py (file_exists, make_file_list): Here.
-
-2004-01-14 David Turner <[email protected]>
-
- * include/freetype/internal/ftmemory.h (FT_ARRAY_COPY,
- FT_ARRAY_MOVE): New macros to make copying arrays easier.
- Updated all relevant code to use them.
-
-2004-01-14 Werner Lemberg <[email protected]>
-
- * src/cff/cffload.c (cff_font_load): Load charstrings_index earlier.
- Use number of charstrings as argument to CFF_Load_FD_Select (as
- documented in the CFF specs).
-
-2004-01-13 Graham Asher <[email protected]>
-
- * src/pshinter/pshalgo.c (psh_glyph_init): Move assignment of
- `glyph->memory' up to free arrays properly in case of failure.
-
-2004-01-10 Masatake YAMATO <[email protected]>
-
- Make `FT_Get_CMap_Language_ID' work with CFF. Bug reported by
- Steve Hartwell <[email protected]>.
-
- * src/cff/cffdrivr.c: Include FT_SERVICE_TT_CMAP_H.
- (cff_services): Added an entry for FT_SERVICE_ID_TT_CMAP.
- (cff_get_cmap_info): New function.
- (cff_service_get_cmap_info) New entry for cff_services.
-
- * src/sfnt/ttcmap0.c: Exit loop after a format match has been found.
- Suggested by Steve Hartwell <[email protected]>.
-
-2004-01-03 Masatake YAMATO <[email protected]>
-
- * src/base/ftobjs.c (destroy_charmaps): New function.
- (destroy_face, open_face): Use `destroy_charmaps'.
-
-2004-01-01 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2004-01-01 Michael Jansson <[email protected]>
-
- * src/winfonts/winfnt.c (FNT_Size_Set_Pixels): Fix sign of
- size->metrics.descender.
-
-2003-12-31 Wolfgang Domröse <[email protected]>
-
- * src/cff/cffgload.c (cff_decoder_parse_charstrings)
- [FT_DEBUG_LEVEL_TRACE]: Use `%ld' in FT_TRACE4.
- <cff_op_flex1>: Change type of dx and dy to FT_Pos and remove
- cast for accessing arguments.
-
-2003-12-31 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Revert previous
- change. It's not necessary.
-
-2003-12-29 Smith Charles <[email protected]>
-
- * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle `repeated
- flags set' correctly.
-
-2003-12-29 Werner Lemberg <[email protected]>
-
- * src/cff/cffobjs.c (cff_face_init): Fix memory leak by deallocating
- `full' and `weight' properly.
- * src/cff/cffgload.c (cff_decoder_parse_charstrings)
- <cff_op_hintmask> [FT_DEBUG_LEVEL_TRACE]: Use `0x' as prefix for
- tracing output.
-
-2003-12-26 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/sfnt.h (TT_Set_SBit_Strike_Func):
- Use FT_UInt for ppem values.
- * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Use FT_UInt for
- ppem values.
- * src/sfnt/ttsbit.h: Updated.
-
- * src/base/ftobjs.c (FT_Set_Pixel_Sizes): Don't allow ppem values
- larger than -0FFFF.
-
-2003-12-25 Werner Lemberg <[email protected]>
-
- * src/base/fttrigon.c, src/base/ftgloadr.c: Inlude
- FT_INTERNAL_OBJECTS_H.
-
- * src/base/ftstroke.c (FT_Outline_GetInsideBorder,
- FT_Outline_GetOutsideBorder): s/or/o/ to make it compile with
- C++ compilers.
-
- * src/cache/ftcmru.c, include/freetype/cache/ftcmru.h:
- s/select/selection/ to avoid compiler warning.
- * src/cff/cffload.h: s/select/ftselect/ to avoid potential
- compiler warning.
-
-2003-12-24 Werner Lemberg <[email protected]>
-
- * src/cache/ftcsbits.c (FTC_SNode_Weight):
- s/FTC_SBIT_ITEM_PER_NODE/FTC_SBIT_ITEMS_PER_NODE/.
-
-2003-12-24 David Turner <[email protected]>
-
- * Fixed compilation problems in the cache sub-system.
-
- * Partial updates to src/autofit.
-
- * Jamfile (FT2_COMPONENTS): Add autofit module.
-
-2003-12-23 Werner Lemberg <[email protected]>
-
- * src/cff/cffgload.c (cff_lookup_glyph_by_stdcharcode): Handle
- CID-keyed fonts.
-
-2003-12-23 David Turner <[email protected]>
-
- * include/freetype/internal/ftobjs.h (FT_PAD_FLOOR, FT_PAD_ROUND,
- FT_PAD_CEIL, FT_PIX_FLOOR, FT_PIX_ROUND, FT_CEIL): New macros. They
- are used to avoid compiler warnings with very pedantic compilers.
- Note that `(x) & -64' causes a warning if (x) is not signed. Use
- `(x) & ~63' instead!
- Updated all related code.
-
- Add support for extraction of `inside' and `outside' borders.
-
- * src/base/ftstroke.c (FT_StrokerBorder): New enumeration.
- (FT_Outline_GetInsideBorder, FT_Outline_GetOutsideBorder,
- FT_Stroker_GetBorderCounts, FT_Stroker_ExportBorder): New functions.
- (FT_StrokeBorderRec): New boolean member `valid'.
- (ft_stroke_border_get_counts): Updated.
- * include/freetype/ftstroke.h: Updated.
-
-2003-12-22 Werner Lemberg <[email protected]>
-
- * include/freetype/ftwinfnt.h (FT_WinFNT_ID_*): New definitions
- to describe the `charset' field in FT_WinFNT_HeaderRec.
- * src/winfonts/winfnt.c (FNT_Face_Init): Set encoding to
- FT_ENCODING_NONE except for FT_WinFNT_ID_MAC.
-
- * include/freetype/freetype.h (FT_Encoding): Improve comment,
- based on work by Detlef Würkner <[email protected]>.
-
- * docs/CHANGES: Updated.
-
-2003-12-22 David Turner <[email protected]>
-
- * include/freetype/ftcache.h,
- include/freetype/cache/ftcmanag.h,
- include/freetype/cache/ftccache.h,
- include/freetype/cache/ftcmanag.h,
- include/freetype/cache/ftcmru.h (added),
- include/freetype/cache/ftlru.h (removed),
- include/freetype/cache/ftcsbits.h,
- include/freetype/cache/ftcimage.h,
- include/freetype/cache/ftcglyph.h,
- src/cache/ftcmru.c,
- src/cache/ftcmanag.c,
- src/cache/ftccache.c,
- src/cache/ftcglyph.c,
- src/cache/ftcimage.c,
- src/cache/ftcsbits.c,
- src/cache/ftccmap.c,
- src/cache/ftcbasic.c (added),
- src/cache/ftclru.c (removed):
-
- *Complete* rewrite of the cache sub-system to `solve' the
- following points:
-
- - all public APIs have been moved to FT_CACHE_H, everything
- under `include/freetype/cache' is only needed by client
- applications that want to implement their own caches
-
- - a new function named FTC_Manager_RemoveFaceID to deal
- with the uninstallation of FaceIDs
-
- - the image and sbit cache are now abstract classes, that
- can be extended much more easily by client applications
-
- - better performance in certain areas. Further optimizations
- to come shortly anyway...
-
- - the FTC_CMapCache_Lookup function has changed its signature,
- charmaps can now only be retrieved by index
-
- - FTC_Manager_Lookup_Face => FTC_Manager_LookupFace
- FTC_Manager_Lookup_Size => FTC_Manager_LookupSize (still in
- private header for the moment)
-
-2003-12-21 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.c (parse_dict): Stop parsing if `eexec' keyword
- is encountered.
-
-2003-12-19 Werner Lemberg <[email protected]>
-
- * src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 32. For
- example, the Japanese Hiragino font already contains 15 subfonts.
-
- * src/cff/cffload.c (cff_font_load): Deallocate `sids' array for
- CID-keyed fonts.
-
- * devel/ftoption.h: Define FT_DEBUG_MEMORY.
-
-2003-12-18 Werner Lemberg <[email protected]>
-
- * include/freetype/ttnameid.h (TT_ADOBE_ID_LATIN_1): New macro.
- * src/type1/t1objs.c (T1_Face_Init): Use TT_ADOBE_ID* values.
-
-2003-12-18 Werner Lemberg <[email protected]>
-
- * src/cff/cfftypes.h (CFF_FontRecDictRec): Change type of
- `cid_count' to `FT_ULong'.
-
- * src/cff/cffgload.c (cff_slot_load): Take care of empty `cids'
- array.
-
- * src/cff/cffload.c (cff_charset_done): Free `cids' array.
- (cff_font_load): Create cids array only for CID-keyed fonts which
- are subsetted.
-
- * src/cff/cffobjs.c (cff_face_init): Check the availability of
- the PSNames modules for non-pure CFFs also.
- Set FT_FACE_FLAG_GLYPH_NAMES for a non-pure CFF also if it isn't
- CID-keyed.
-
- * src/cff/rules.mk (CFF_DRV_H): Add cfftypes.h.
-
-2003-12-17 Werner Lemberg <[email protected]>
-
- * src/sfnt/sfobjs.c (sfnt_init_face): Don't set
- FT_FACE_FLAG_GLYPH_NAMES if the font contains a version 3.0 `post'
- table.
-
- * docs/CHANGES: Updated.
-
-2003-12-17 Masatake YAMATO <[email protected]>
-
- Add new function FT_Get_CMap_Language_ID to extract the language ID
- for TrueType/sfnt fonts.
-
- * include/freetype/internal/services/svttcmap.h: New file.
- * include/freetype/internal/ftserv.h (FT_SERVICE_TT_CMAP_H): Add
- svttcmap.h.
-
- * src/sfnt/sfdriver.c: Include ttcmap0.h.
- (tt_service_get_cmap_info): New service.
- (sfnt_services): Updated.
-
- * src/sfnt/ttcmap0.c (tt_cmap*_get_info): New functions.
- (tt_cmap*_class_rec): Add tt_cmap*_get_info members.
- (tt_get_cmap_info): New function.
- * src/sfnt/ttcmap0.h: Include FT_SERVICE_TT_CMAP_H.
- (TT_CMap_ClassRec): New field `get_cmap_info'.
- (tt_get_cmap_info): New declaration.
-
- * src/base/ftobjs.c: Include FT_SERVICE_TT_CMAP_H.
- (FT_Get_CMap_Language_ID): New function implementation.
- * include/freetype/tttables.h (FT_Get_CMap_Language_ID): New
- function declaration.
-
-2003-12-16 Werner Lemberg <[email protected]>
-
- * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: Removed. Obsolete.
-
- * include/freetype/internal/sfnt.h (SFNT_Interface): Remove
- obsolete fields `load_charmap' and `free_charmap'.
- (TT_CharMap_Load_Func, TT_CharMap_Free_Func): Removed.
- * src/sfnt/sfnt.c: Don't include ttcmap.c.
- * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttcmap.c.
- * src/sfnt/ttload.c: Don't include ttcmap.h.
- * src/sfnt/sfdriver.c: Don't include ttcmap.h.
- (sfnt_interface): Updated.
-
- * include/freetype/internal/tttypes.h (TT_TableDirRec,
- TT_CMapDirRec, TT_CMapDirEntryRec, TT_CMap0, TT_CMap2SubHeaderRec,
- TT_CMap2Rec, TT_CMap4Segment, TT_CMap4Rec, TT_CMap6,
- TT_CMapGroupRec, TT_CMap8_12Rec, TT_CMap10Rec, TT_CharMap_Func,
- TT_CharNext_Func, TT_CMapTableRec, TT_CharMapRec): Removed.
- Obsolete.
- * src/cff/cffobjs.h (CFF_CharMapRec): Removed. Obsolete.
-
-2003-12-15 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2003-12-15 Wolfgang Domröse <[email protected]>
-
- * builds/atari/*: New directory for building FreeType 2 on Atari
- with the PureC compiler.
-
-2003-12-12 Wolfgang Domröse <[email protected]>
-
- * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add
- cast.
- * src/cff/cffdrivr.c (cff_ps_has_glyph_names): Assure that return
- value is either 0 or 1.
-
-2003-12-12 Werner Lemberg <[email protected]>
-
- * src/cff/cffdrivr.c (cff_get_glyph_name): Improve error message.
- (cff_get_name_index): Return if no PSNames service is available.
- (cff_ps_has_glyph_names): Handle CID-keyed fonts correctly.
- * src/cff/cfftypes.h (CFF_CharsetRec): New field `cids', used for
- CID-keyed fonts. This is the inverse mapping of `sids'.
- * src/cff/cffload.c (cff_charset_load): New argument `invert'.
- Initialize charset->cids if `invert' is set.
- (cff_font_load): In call to cff_charset_load, set `invert' to true
- for CID-keyed fonts.
- * src/cff/cffgload.c (cff_slot_load): Handle glyph index as CID
- and map it to the real glyph index.
-
- * docs/CHANGES: Updated.
-
-2003-12-11 Werner Lemberg <[email protected]>
-
- * src/cff/cffobjs.c (cff_face_init): Don't set
- FT_FACE_FLAG_GLYPH_NAMES for CID-keyed fonts.
- Don't construct a cmap for CID-keyed fonts.
-
-2003-12-10 Werner Lemberg <[email protected]>
-
- Use implementation specific SID value 0xFFFF to indicate that
- a dictionary element is missing.
-
- * src/cff/cffload.c (cff_subfont_load): Initialize all fields
- which hold SIDs to 0xFFFF.
- (cff_index_get_sid_string): Handle SID value 0xFFFF.
- Handle case where `psnames' is zero.
- (cff_font_load): Updated.
- Don't load encoding for CID-keyed CFFs.
-
- * src/cff/cffobjs.c (cff_face_init): Updated.
- Don't check for PSNames module if font is CID-keyed.
- Compute style name properly (using the same algorithm as in the
- CID driver).
- Fix computation of style flags.
-
- * src/cff/cfftoken.h: Comment out handling of base_font_name.
- Rename `postscript' field to `embedded_postscript'
- * src/cff/cfftypes.h (CFF_FontRecDictRec): Remove `base_font_name'
- and `postscript'.
-
-2003-12-10 Detlef Würkner <[email protected]>
-
- * src/pcf/pcfdrivr.c (pcf_get_charset_id): New function (a clone
- of the similar BDF function).
- (pcf_service_bdf): Use it.
-
-2003-12-09 Werner Lemberg <[email protected]>
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Set FT_FACE_FLAG_GLYPH_NAMES
- only if a `post' table is present.
-
-2003-12-09 George Williams <[email protected]>
-
- * src/base/ftobjs.c (load_mac_face): Recent versions of Linux
- support Mac's HFS+ file system, thus enable code to read /rsrc on
- non-Macintosh platforms also.
-
-2003-12-08 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/psaux.h (PS_TableRec): Change type
- of `lengths' to FT_PtrDist.
- (T1_DecoderRec): Change type of `subrs_len' to FT_PtrDist.
- * include/freetype/internal/t1types.h (T1_FontRec): Change type
- of `subrs_len' and `charstrings_len' to FT_PtrDist.
-
- * src/base/ftobjs.c (Mac_Read_POST_Resource): Replace `junk'
- variable with better solution.
- (IsMacResource): Remove unused variable `map_len'.
- Replace `junk' variable with better solution.
- (FT_Open_Face) [!FT_MACINTOSH]: Add conditional
- FT_CONFIG_OPTION_MAC_FONTS.
-
-2003-12-08 Wolfgang Domröse <[email protected]>
-
- * src/autohint/ahhint.c (ah_hinter_hint_edges,
- ah_hinter_align_strong_points): Add some casts.
-
- * src/base/ftoutln.c (FT_OrientationExtremumRec): Change type
- of `pos' to FT_Long.
-
- * src/base/ftobjs.c (Mac_Read_POST_Resource,
- Mac_Read_sfnt_Resource): Change type of `len' to FT_Long.
-
- * src/type42/t42parse.c (t42_parse_dict): Add cast for `n_keywords'.
-
-2003-12-07 Werner Lemberg <[email protected]>
-
- * docs/raster.txt: New file, taken from FreeType 1 and completely
- revised.
-
-2003-12-04 Masatake YAMATO <[email protected]>
-
- * src/type1/t1driver.c (Get_Interface): Remove FT_UNUSED for
- t1_interface. t1_interface is used.
-
-2003-11-27 David Turner <[email protected]>
-
- * src/pfr/pfrdrivr.c (pfr_get_metrics): Revert incorrect change of
- 2003-11-23: For PFR fonts, metrics->x_scale and metrics->y_scale are
- the scaling values for outline units, not for metric units.
-
-2003-11-25 Werner Lemberg <[email protected]>
-
- * src/base/ftcalc.c, include/freetype/internal/ftcalc.h
- (FT_MulDiv_No_Round): Surround code with `#ifdef
- TT_CONFIG_OPTION_BYTECODE_INTERPRETER ... #endif'.
-
-2003-11-23 Werner Lemberg <[email protected]>
-
- * src/base/ftcalc.c (FT_MulDiv_No_Round): New function (32 and
- 64 bit version).
- * include/freetype/internal/ftcalc.h: Updated.
-
- * src/truetype/ttinterp.c (TT_MULDIV_NO_ROUND): New macro.
- (TT_INT64): Removed.
- (DO_DIV): Use TT_MULDIV_NO_ROUND.
-
- * src/pfr/pfrdrivr.c (pfr_get_metrics): Directly use
- metrics->x_scale and metrics->y_scale.
-
-2003-11-22 Rogier van Dalen <[email protected]>
-
- * src/truetype/ttinterp.c (CUR_Func_move_orig): New macro.
- (Direct_Move_Orig, Direct_Move_Orig_X, Direct_Move_Orig_Y): New
- functions. Similar to Direct_Move, Direct_Move_X, and
- Direct_Move_Y but without touching.
- (Compute_Funcs): Use new functions.
-
- (Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid,
- Round_Up_To_Grid, Round_To_Double_Grid, Round_Super,
- Round_Super_45): Fix rounding of value zero.
-
- (DO_DIV): Don't use TT_MULDIV.
-
- (Ins_SHC): This instruction actually touches the points.
- (Ins_MSIRP): Fix undocumented behaviour.
-
- * src/truetype/ttinterp.h (TT_ExecContextRec): Updated.
-
-2003-11-22 Werner Lemberg <[email protected]>
-
- * docs/VERSION.DLL, docs/CHANGES: Updated.
-
- * src/base/ftobjs.c (FT_Set_Char_Size): Make metrics->x_scale and
- metrics->y_scale really precise.
-
- (FT_Load_Glyph): Update computation of linearHoriAdvance and
- linearVertAdvance.
-
- * src/truetype/ttinterp.c (Update_Max): Use FT_REALLOC.
-
-2003-11-22 David Turner <[email protected]>
-
- * src/autofit/*: More updates.
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
- * builds/unix/configure.ac (version_info): Set to 9:6:3.
- * README: Updated.
-
-2003-11-13 John A. Boyd Jr. <[email protected]>
-
- * src/bdf/bdfdrivr.c (bdf_interpret_style), src/pcf/pcfread.c
- (pcf_interpret_style): Replace spaces with dashes in properties
- SETWIDTH_NAME and ADD_STYLE_NAME to simplify parsing.
-
-2003-11-11 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2003-11-11 John A. Boyd Jr. <[email protected]>
-
- Handle SETWIDTH_NAME and ADD_STYLE_NAME properties for BDF and PCF
- fonts.
-
- * src/bdf/bdfdrivr.c (bdf_interpret_style): New auxiliary function.
- (BDF_Face_Init): Don't handle style properties but call
- bdf_interpret_style.
-
- * src/pcf/pcfread.c (pcf_interpret_style): New auxiliary function.
- (pcf_load_font): Don't handle style properties but call
- pcf_interpret_style.
-
-2003-11-07 Werner Lemberg <[email protected]>
-
-
- * Version 2.1.7 released.
- =========================
-
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
-
- * builds/unix/ft2unix.h: Fix comments.
-
- * builds/unix/ftconfig.in: Synchronized with ANSI version.
- Use `#undef' in templates as recommended in the autoconf
- documentation.
- Since real `#undef' lines don't survive during configuration, use
- `/undef' instead; the postprocessing facility of the
- AC_CONFIG_HEADERS autoconf macro converts them to `#undef'.
-
- * builds/unix/install.mk (install): Install Unix version of
- `ftconfig.h'.
-
- * builds/unix/unix-cc.in (CFLAGS): Set FT_CONFIG_CONFIG_H macro
- to include the correct `ftconfig.h' file.
-
- * builds/unix/ft-munmap.m4 (FT_MUNMAP_DECL): Removed.
- (FT_MUNMAP_PARAM): Updated syntax to autoconf 2.59.
-
- * builds/unix/freetype2.m4: Updated syntax to autoconf 2.59.
-
- * builds/unix/configure.ac: Use AC_CONFIG_HEADERS instead of
- AC_CONFIG_HEADER to create ftconfig.h, and use second argument
- to replace `/undef' with `#undef'.
- Don't use FT_MUNMAP_DECL but AC_CHECK_DECLS to check for munmap.
- Use AS_HELP_STRING in AC_ARG_WITH.
- Update syntax to autoconf 2.59.
-
- * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
- --copy' from libtool 1.5.
- * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
- automake 1.7.8.
- * builds/unix/configure: Regenerated with autoconf 2.59.
- * builds/unix/config.guess, builds/unix/config.sub: Updated from
- `config' CVS module at subversions.gnu.org
- * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
- `texinfo' CVS module at subversions.gnu.org.
-
- * builds/vms/ftconfig.h: Synchronized with ANSI version.
-
- * docs/CUSTOMIZE: Fix documentation error.
- * docs/CHANGES, docs/VERSION.DLL, docs/release: Updated.
-
- * builds/freetype.mk (refdoc): Updated --title.
-
-2003-11-07 David Turner <[email protected]>
-
-
- * Version 2.1.6 released.
- =========================
-
-
- * install: Removed. Obsolete.
-
-2003-11-04 Werner Lemberg <[email protected]>
-
- * src/sfnt/sfdriver.c: Include FT_SERVICE_SFNT_H.
- (sfnt_service_sfnt_table): New service.
- (sfnt_services): Updated.
-
- * docs/license.txt: Reworded.
-
-2003-11-03 Werner Lemberg <[email protected]>
-
- * include/freetype/*: Add a guard to all public header files which
- load FT_FREETYPE_H to reject freetype.h from FreeType 1.
-
-2003-11-02 Patrick Welche <[email protected]>
-
- * builds/unix/freetype2.m4, builds/unix/ft-munmap.m4: Protect
- first argument of AC_DEFUN with brackets to avoid possible
- expansion.
-
-2003-11-02 Werner Lemberg <[email protected]>
-
- * include/freetype/cache/ftcglyph.h: Don't include stddef.h.
-
- * include/freetype/freetype.h: Fix check for ft2build.h.
-
-2003-11-01 Werner Lemberg <[email protected]>
-
- * include/freetype/freetype.h: Check that ft2build.h has been
- loaded first.
-
- * src/base/fttype1.c (FT_Get_PS_Font_Info): Fix incorrectly applied
- patch.
-
-2003-10-31 Detlef Würkner <[email protected]>
-
- * src/base/fttype1.c (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names):
- Fix parameter order in calls to FT_FACE_FIND_SERVICE.
-
-2003-10-31 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/ftserv.h
- (FT_SERVICE_POSTSCRIPT_NAMES_H): Removed. Unused.
-
- * src/type42/t42drivr.c (t42_services): Updated.
-
-2003-10-29 David Turner <[email protected]>
-
- * include/freetype/internal/bdftypes.h: Removed. Obsolete.
- * src/base/ftbdf.c: Updated.
-
- * include/freetype/internal/cfftypes.h: Moved to...
- * src/cff/cfftypes.h: This place since no other module needs to
- know about those types.
-
- * include/freetype/internal/t42types.h: Moved to...
- * src/type42/t42types.h: This place since no other module needs to
- know about those types.
-
- * include/freetype/internal/services/svbdf.h: Include FT_BDF_H.
-
- * include/freetype/internal/services/svpsname.h: Renamed to...
- * include/freetype/internal/services/svpscmap.h: This.
- Updated `FT_Service_PsNames' -> `FT_Service_PsCMaps' and
- `POSTSCRIPT_NAMES' -> `POSTSCRIPT_CMAPS' everywhere.
-
- * include/freetype/internal/services/svpsinfo.h: New file, providing
- PostScript info service.
-
- * include/freetype/internal/ftserv.h (FT_SERVICE_POSTSCRIPT_CMAPS_H,
- FT_SERVICE_POSTSCRIPT_INFO_H): New macros for svpscmap.h and
- svpsinfo.h.
- * include/freetype/internal/internal.h (FT_INTERNAL_TYPE42_TYPES_H,
- FT_INTERNAL_CFF_TYPES_H, FT_INTERNAL_BDF_TYPES_H): Removed.
-
- * src/base/fttype1.c: Don't include FT_INTERNAL_TYPE1_TYPES_H and
- FT_INTERNAL_TYPE42_TYPES_H but FT_INTERNAL_SERVICE_H and
- FT_SERVICE_POSTSCRIPT_INFO_H.
- (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names): Use new
- POSTSCRIPT_INFO service.
-
- * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
- (cff_ps_has_glyph_names): New function.
- (cff_service_ps_info): New service.
- (cff_services): Updated.
-
- * src/cff/cffload.h, src/cff/cffobjs.h, src/cff/cffparse.h: Don't
- include FT_INTERNAL_CFF_TYPES_H but cfftypes.h directly.
-
- * src/cif/cidriver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
- (cid_ps_get_font_info): New function.
- (cid_service_ps_info): New service.
- (cid_services): Updated.
-
- * src/type1/t1driver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
- (t1_ps_get_font_info, t1_ps_has_glyph_names): New functions.
- (t1_service_ps_info): New service.
- (t1_services): Updated.
-
- * src/type42/t42drivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
- (t42_ps_get_font_info, t42_ps_has_glyph_names): New functions.
- (t42_service_ps_info): New service.
-
- * src/type42/t42objs.h: Don't include FT_INTERNAL_TYPE42_TYPES_H
- but t42types.h directly.
-
- * src/psnames/psmodule.c (psnames_interface, psnames_services):
- Renamed to...
- (pscmaps_interface, pscmaps_services): This.
- Updated all users.
-
-
- * src/gzip/infblock.c (inflate_blocks): Remove compiler warning.
-
-2003-10-22 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.c (parse_encoding): Handle `/Encoding [ ... ]'.
-
- * src/type1/t1parse.c (T1_Get_Private_Dict): Test whether `eexec'
- is real.
-
- * src/type42/t42parse.c (t42_parse_encoding): Improve boundary
- checking while parsing.
-
- * docs/CHANGES: Updated.
-
-2003-10-21 Josselin Mouette <[email protected]>
-
- * include/freetype/internal/t1types.h (T1_FontRec): `paint_type'
- and `stroke_width' aren't pointers.
-
- * src/type42/t42objs.c (T42_Face_Done), src/type1/t1objs.c
- (T1_Face_Done): Don't free `paint_type' and `stroke_width'.
-
-2003-10-20 Graham Asher <[email protected]>
-
- * src/winfonts/winfnt.c (fnt_cmap_class): Fix position of `const'.
-
-2003-10-19 Werner Lemberg <[email protected]>
-
- * src/autohint/ahhint.c (ah_hinter_load_glyph): Patch from
- 2003-08-18 introduced a severe bug (FT_Render_Glyph was called
- twice under some circumstances, causing strange results). This
- is fixed now by clearing the FT_LOAD_RENDER bit of `load_flags'.
-
- * src/base/ftpfr.c (FT_Get_PFR_Metrics): Initialize `error'.
- * src/psaux/psobjs.c (ps_tobytes): Initialize `n'.
- * src/type42/t42parse.c (t42_parse_sfnts): Initialize `string_size'.
-
-2003-10-16 Werner Lemberg <[email protected]>
-
- Completely revised Type 42 parser. It now handles both fonts
- produced with ttftot42 (tested version 0.3.1) and
- TrueTypeToType42.ps (tested version May 2001; it is necessary to
- fix the broken header comment to be `%!PS-TrueTypeFont...').
-
- * src/type42/t42objs.c (T42_GlyphSlot_Load): Change fourth
- parameter to `FT_UInt'.
- * src/type42/t42objs.h: Updated.
-
- * src/type42/t42parse.h (T42_ParserRec): Change type of `in_memory'
- to FT_Bool.
- (T42_Loader): Change type of `num_chars' and `num_glyphs' to
- FT_UInt.
- Add `swap_table' element.
- * src/type42/t42parse.c (T42_KEYWORD_COUNT, T1_ToFixed,
- T1_ToCoordArray, T1_ToTokenArray): Removed.
- (T1_ToBytes): New macro.
- (t42_is_alpha, t42_hexval): Removed.
- (t42_is_space): Handle `\0'.
- (t42_parse_encoding): Updated to use new PostScript parser routines
- from psaux.
- Handle `/Encoding [ ... ]' also.
- (T42_Load_Status): New enumeration.
- (t42_parse_sfnts): Updated to use new PostScript parser routines
- from psaux.
- (t42_parse_charstrings): Updated to use new PostScript parser
- routines from psaux.
- Handle `/CharStrings << ... >>' also.
- Don't expect that /.notdef is the first element in dictionary. Copy
- code from type1 module to handle this.
- (t42_parse_dict): Updated to use new PostScript parser routines
- from psaux.
- Remove code for synthetic fonts (which can't occur in Type 42
- fonts).
- (t42_loader_done): Release `swap_table'.
-
- * src/psaux/psobjs.c (skip_string): Increase `cur' properly.
-
- * src/type1/t1load.c (parse_charstrings): Make test for `.notdef'
- faster.
-
-2003-10-15 Graham Asher <[email protected]>
-
- * src/autohint/ahglobal.c (blue_chars), src/winfonts/winfnt.c
- (fnt_cmap_class_rec, fnt_cmap_class), src/bdf/bdflib.c (empty,
- _num_bdf_properties), src/gzip/infutil.c (inflate_mask),
- src/gzip/inffixed.h (fixed_bl, fixed_bd, fixed_tl, fixed_td),
- src/gzip/inftrees.h (inflate_trees_fixed), srf/gzip/inftrees.c
- (inflate_trees_fixed): Decorate with more `const' to avoid
- writable global variables which are disallowed on ARM.
-
-2003-10-08 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.c (parse_font_matrix, parse_charstrings): Remove
- code specially for synthetic fonts; this is handled elsewhere.
- (parse_encoding): Remove code specially for synthetic fonts; this is
- handled elsewhere.
- Improve boundary checking while parsing.
- (parse_dict): Improve boundary checking while parsing.
- Use ft_memcmp to simplify code.
-
-2003-10-07 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.c (parse_subrs, parse_dict): Handle synthetic
- fonts properly.
- (parse_charstrings): Copy correct number of characters into
- `name_table'.
-
-2003-10-06 Werner Lemberg <[email protected]>
-
- Heavy modification of the PS parser to handle comments and strings
- correctly. This doesn't slow down the loading of PS fonts
- significantly since charstrings aren't affected.
-
- * include/freetype/config/ftstdlib.h (ft_xdigit): Renamed to...
- (ft_isxdigit): This. Updated all callers.
- (ft_isdigit): New alias to `isdigit'.
-
- * include/freetype/internal/psaux.h (PS_Parser_FuncsRec): Renamed
- `skip_alpha' to `skip_PS_token'.
- Add parameter to `to_bytes' and change some argument types.
-
- * src/psaux/psauxmod.c (ps_parser_funcs): Updated.
- * src/psaux/psobjs.c (ft_char_table): New array to map character
- codes (ASCII and EBCDIC) of digits to numbers.
- (OP): New auxiliary macro holding either `>=' or `<' depending on
- the character encoding.
- (skip_comment): New function.
- (skip_spaces): Use it.
- (skip_alpha): Removed.
- (skip_literal_string, skip_string): New functions.
- (ps_parser_skip_PS_token): New function. This is a better
- replacement of...
- (ps_parser_skip_alpha): Removed.
- (ps_parser_to_token, ps_parser_to_token_array): Updated.
- (T1Radix): Rewritten, using `ft_char_table'.
- (t1_toint): Renamed to...
- (ps_toint): This. Update all callers.
- Use `ft_char_table'.
- (ps_tobytes): Add parameter to handle delimiters and change some
- argument types.
- Use `ft_char_table'.
- (t1_tofixed): Renamed to...
- (ps_tofixed): This. Update all callers.
- Use `ft_char_table'.
- (t1_tocoordarray): Renamed and updated to...
- (ps_tocoordarray): This. Update all callers.
- (t1_tofixedarray): Renamed and updated to...
- (ps_tofixedarray): This. Update all callers.
- (t1_tobool): Renamed to...
- (ps_tobool): This. Update all callers.
- (ps_parser_load_field): Updated.
- (ps_parser_load_field_table): Use `T1_MAX_TABLE_ELEMENTS'
- everywhere.
- (ps_parser_to_int, ps_parser_to_fixed, ps_parser_to_coord_array,
- ps_parser_to_fixed_array): Skip spaces. Updated.
- (ps_parser_to_bytes): Add parameter to handle delimiters and change
- some argument types. Updated.
- * src/psaux/psobjs.h: Updated.
-
- * src/cid/cidload.c (cid_parse_dict): Updated.
- * src/cid/cidparse.c (cid_parser_new): Check whether the `StartData'
- token was really found.
- * src/cid/cidparse.h (cid_parser_skip_alpha): Updated and renamed
- to...
- (cid_parser_skip_PS_token): This.
-
- * src/type1/t1parse.h (T1_ParserRec): Use `FT_Bool' for boolean
- fields.
- (T1_Skip_Alpha): Replaced with...
- (T1_Skip_PS_Token): This new macro.
- * src/type1/t1parse.c (hexa_value): Removed.
- (T1_Get_Private_Dict): Use `ft_isxdigit' and
- `psaux->ps_parser_funcs_to_bytes' for handling ASCII hexadecimal
- encoding.
- After decrypting, replace the four random bytes at the beginning
- with whitespace.
- * src/type1/t1load.c (t1_allocate_blend): Use proper error values.
- (parser_blend_design_positions, parse_blend_design_map,
- parse_weight_vector): Updated.
- (is_space): Handle `\f' also.
- (is_name_char): Removed.
- (read_binary_data): Updated.
- (parse_encoding): Use `ft_isdigit'.
- Updated.
- (parse_subrs): Updated.
- (TABLE_EXTEND): New macro.
- (parse_charstrings): Updated.
- Provide a workaround for buggy fonts which have more entries in the
- /CharStrings dictionary then expected; the function now adds some
- slots and skips entries which still exceed the new limit.
- (parse_dict): Updated.
- Terminate on the token `closefile'.
-
- * src/type42/t42parse.c (T1_Skip_Alpha): Replaced with...
- (T1_Skip_PS_Token): This new macro. Updated all callers.
- (t42_parse_encoding): Use `ft_isdigit'.
-
-
- * src/base/ftmm.c (ft_face_get_mm_service): Return FT_Err_OK if
- success.
-
-2003-10-05 Werner Lemberg <[email protected]>
-
- * include/freetype/ftmodule.h: Renamed to...
- * include/freetype/ftmodapi.h: This to avoid duplicate file names.
- * include/freetype/config/ftheader.h (FT_MODULE_H): Updated.
-
-2003-10-04 Werner Lemberg <[email protected]>
-
- * src/base/ftoutln.c (FT_OrientationExtremumRec,
- FT_Outline_Get_Orientation): Trivial typo fixes to make it compile.
-
-2003-10-02 Markus F.X.J. Oberhumer <[email protected]>
-
- * src/winfonts/winfnt.c (FT_WinFNT_HeaderRec): `color_table_offset'
- has four bytes, not two.
- Fix all users.
- (fnt_font_load, FNT_Load_Glyph): Add more font validity tests.
-
-2003-10-01 David Turner <[email protected]>
-
- * src/autofit/*: Adding first source files of the new multi-script
- `auto-fitter'.
-
- * include/freetype/ftoutln.h (FT_Orientation): New enumeration.
- (FT_Outline_Get_Orientation): New declaration.
-
- * src/base/ftoutln.c (FT_OrientationExtremumRec): New structure.
- (ft_orientation_extremum_compute): New auxiliary function.
- (FT_Outline_Get_Orientation): New function to compute the fill
- orientation of a given glyph outline.
-
- * include/freetype/internal/ftserv.h (FT_FACE_LOOKUP_SERVICE): Fixed
- trivial bug which could crash the font engine when a cached service
- pointer was retrieved.
-
-2003-09-30 Werner Lemberg <[email protected]>
-
- * src/cid/cidload.c (cid_parse_dict): Skip token if no keyword is
- found.
-
- * src/type1/t1parse.c (IS_T1_WHITESPACE, IS_T1_LINESPACE,
- IS_T1_SPACE): Removed.
- (PFB_Tag): Removed.
- (read_pfb_tag): Don't use PFB_Tag.
-
- * src/type42/t42parse.c (t42_is_space): Handle `\f' also.
- (t42_parse_encoding): Handle synthetic fonts.
-
-2003-09-29 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/t1types.h: Don't include
- FT_INTERNAL_OBJECTS_H but FT_INTERNAL_SERVICE_H.
- * src/truetype/ttobjs.c: Don't include
- FT_SERVICE_POSTSCRIPT_NAMES_H.
-
-2003-09-29 David Turner <[email protected]>
-
- Added new service to handle glyph name dictionaries, replacing the
- old internal header named `psnames.h' by `services/svpsname.h'.
- Note that this is different from `services/svpostnm.h' which only
- handles the retrieval of PostScript font names for a given face.
- (Should we merge these two services into a single header?)
-
- * include/freetype/internal/psnames.h: Removed. Most of its
- contents is moved to...
- * include/freetype/internal/services/svpsname.h: New file.
-
- * include/freetype/internal/services/svpostnm.h
- (FT_SERVICE_ID_POSTSCRIPT_NAME): Replaced with...
- (FT_SERVICE_ID_POSTSCRIPT_FONT_NAME): New macro.
- (PsName): Service named changed to...
- (PsFontName): This.
- Updated `FT_Service_PsName' -> `FT_Service_PsFontName' and
- `POSTSCRIPT_NAME' -> `POSTSCRIPT_FONT_NAME' everywhere.
-
- * include/freetype/internal/internal.h
- (FT_INTERNAL_POSTSCRIPT_NAMES_H): Removed.
- * include/freetype/internal/psaux.h: Include
- FT_SERVICE_POSTSCRIPT_NAMES_H.
- (T1_DecoderRec): Updated type of `psnames'.
- * include/freetype/internal/t1types.h: Don't include
- FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
- Include FT_INTERNAL_OBJECTS_H.
- * include/freetype/internal/t42types.h: Don't include
- FT_INTERNAL_POSTSCRIPT_NAMES_H.
- * include/freetype/internal/tttypes.h (TT_FaceRec): Updated.
-
- * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE): Changed
- order of parameters. All callers updated.
- (FT_FACE_FIND_GLOBAL_SERVICE): New macro to look up a service
- globally, checking all modules.
- (FT_ServiceCacheRec): Updated.
- (FT_SERVICE_POSTSCRIPT_NAMES_H): New macro for accessing
- `svpsname.h'.
-
- * include/freetype/internal/ftobjs.h, src/base/ftobjs.c
- (ft_module_get_service): New function.
-
- * src/cff/cffdrivr.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
- but FT_SERVICE_POSTSCRIPT_NAMES_H.
- (cff_get_glyph_name, cff_get_name_index): Use new POSTSCRIPT_NAMES
- service.
- * src/cff/cffcmap.c (cff_cmap_unicode_init): Updated.
- * src/cff/cffload.c, src/cff/cffload.h: Don't include
- FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
- (cff_index_get_sid_string): Updated.
- * src/cff/cffobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
- but FT_SERVICE_POSTSCRIPT_NAMES_H.
- (cff_face_init): Use new POSTSCRIPT_NAMES service.
- * src/cff/cffobjs.h: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
- but FT_SERVICE_POSTSCRIPT_NAMES_H.
-
- * src/cid/cidobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
- but FT_SERVICE_POSTSCRIPT_NAMES_H.
- (cid_face_init): Use new POSTSCRIPT_NAMES service.
- * src/cid/cidriver.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H.
-
- * src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Use
- new POSTSCRIPT_NAMES service.
- * src/psaux/t1decode.h (t1_lookup_glyph_by_stdcharcode,
- t1_decode_init): Use new POSTSCRIPT_NAMES service.
- * src/psaux/t1cmap.h, src/psaux/t1decode.h: Dont' include
- FT_INTERNAL_POSTSCRIPT_NAMES_H.
-
- * src/psnames/psmodule.c: Don't include
- FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
- (ps_build_unicode_table): Renamed to...
- (ps_unicodes_init): This.
- (ps_lookup_unicode): Renamed to...
- (ps_unicodes_char_index): This.
- (ps_next_unicode): Renamed to...
- (ps_unicodes_char_next): This.
- (psnames_interface): Updated.
- (psnames_services): New services list.
- (psnames_get_service): New function.
- (psnames_module_class): Updated.
-
- * src/sfnt/sfobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
- but FT_SERVICE_POSTSCRIPT_NAMES_H.
- (sfnt_init_face): Use new POSTSCRIPT_NAMES service.
- * src/sfnt/ttpost.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
- but FT_SERVICE_POSTSCRIPT_NAMES_H.
- (tt_face_get_ps_name): Updated.
-
- * src/truetype/ttobjs.c: Don't include
- FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
-
- * src/type1/t1driver.c: Don't include
- FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
- * src/type1/t1objs.c: Don't include
- FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
- (T1_Face_Init): Use new POSTSCRIPT_NAMES service.
-
- * src/type42/t42drivr.c (t42_get_ps_name): Renamed to...
- (t42_get_ps_font_name): This.
- (t42_service_ps_name): Renamed to...
- (t42_service_ps_font_name): This.
- (t42_services): Updated.
- * src/type42/t42objs.c (T42_Face_Init): Use new POSTSCRIPT_NAMES
- service.
- * src/type42/t42objs.h: Don't include
- FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
-
-
- * src/base/ftglyph.c (FT_Get_Glyph): Don't access `slot' before
- testing its validity. Reported by Henry Maddocks
- <[email protected]>.
-
-2003-09-21 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE):
- Fix compilation warning (s/pptr/Pptr/).
-
- * include/freetype/internal/internal.h (FT_INTERNAL_PFR_H,
- FT_INTERNAL_FNT_TYPES_H): Removed.
-
-2003-09-21 David Turner <[email protected]>
-
- Migrating the PFR and WINFNT drivers to the new service-based
- internal API.
-
- * include/freetype/internal/fnttypes.h: Removed. Most of its data
- are moved to winfnt.h and...
- * include/freetype/internal/services/svwinfnt.h: New file.
-
- * include/freetype/internal/pfr.h: Removed. Most of its data are
- moved to...
- * include/freetype/internal/services/svpfr.h: New file.
-
- * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
- FT_FACE_LOOKUP_SERVICE): Simplify fix of 2003-09-16 by removing
- pointer type argument.
- Updated all callers.
- Update macro names of services header files.
-
- * src/base/ftobjs.c (FT_Get_Name_Index): Simplified code.
-
- * src/base/ftpfr.c: Include FT_SERVICE_PFR_H instead of
- FT_INTERNAL_PFR_H.
- (ft_pfr_check, FT_Get_PFR_Metrics, FT_Get_PFR_Kerning,
- FT_Get_PFR_Advance): Use services provided in `PFR_METRICS'.
-
- * src/base/ftwinfnt.c: Include FT_SERVICE_WINFNT_H instead of
- FT_INTERNAL_FNT_TYPES_H.
- (FT_Get_WinFNT_Header): Use service provided in `WINFNT'.
-
- * src/pfr/pfrdrivr.c: Include FT_SERVICE_PFR_H and
- FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_PFR_H.
- (pfr_service_bdf): Updated.
- (pfr_services): New services list.
- (pfr_get_service): New function.
- (pfr_driver_class): Updated.
-
- * src/winfonts/winfnt.c: Include FT_SERVICE_WINFNT_H and
- FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_FNT_TYPES_H.
- (winfnt_get_header, winfnt_get_service): New functions.
- (winfnt_service_rec): New structure providing WINFNT services.
- (winfnt_services): New services list.
- (winfnt_driver_class): Updated.
- * src/winfonts/winfnt.h: Add most of the removed fnttypes.h data.
-
- * src/sfnt/sfdriver.c (sfnt_service_ps_name): Fix typo.
-
- * src/type1/t1driver.c (t1_service_ps_name): Fix typo.
-
- * src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrsbit.c,
- src/psaux/psobjs.c, src/sfnt/sfobjs.c, src/truetype/ttobjs.c,
- src/type1/t1objs.c, src/type42/t42objs.c: Removing various compiler
- warnings.
-
-2003-09-19 David Bevan <[email protected]>
-
- * src/type1/t1parse.c (pfb_tag_fields): Removed.
- (read_pfb_tag): Fix code so that it doesn't fail on end-of-file
- indicator (0x8003).
- * docs/CHANGES: Updated.
-
-2003-09-16 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
- FT_FACE_LOOKUP_SERVICE): Add parameter to pass pointer type.
- Ugly, I know, but this is needed for compilation with C++ --
- maybe someone knows a better solution?
- Updated all callers.
-
- * src/base/ftobjs.c (FT_Get_Name_Index, FT_Get_Glyph_Name): Remove
- C++ compiler warnings.
-
- * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property):
- Fix order of arguments passed to FT_FACE_FIND_SERVICE.
-
-2003-09-15 Werner Lemberg <[email protected]>
-
- Avoid header files with identical names.
-
- * include/freetype/internal/services/bdf.h: Renamed to...
- * include/freetype/internal/services/svbdf.h: This.
- Add copyright notice.
- * include/freetype/internal/services/glyfdict.h: Renamed to...
- * include/freetype/internal/services/svgldict.h: This.
- Add copyright notice.
- * include/freetype/internal/services/multmast.h: Renamed to...
- * include/freetype/internal/services/svmm.h: This.
- Add copyright notice.
- Add FT_BEGIN_HEADER and FT_END_HEADER.
- * include/freetype/internal/services/sfnt.h: Renamed to...
- * include/freetype/internal/services/svsfnt.h: This.
- Add copyright notice.
- * include/freetype/internal/services/postname.h: Renamed to...
- * include/freetype/internal/services/svpostnm.h: This.
- Add copyright notice.
- * include/freetype/internal/services/xf86name.h: Renamed to...
- * include/freetype/internal/services/svxf86nm.h: This.
- Add copyright notice.
-
- * include/freetype/internal/ftserv.h: Add FT_BEGIN_HEADER and
- FT_END_HEADER.
- Add copyright notice.
- Update macro names of services header files.
-
- * builds/freetype.mk (SERVICES_DIR): New variable.
- (BASE_H): Add services header files.
-
-2003-09-11 Werner Lemberg <[email protected]>
-
- * builds/toplevel.mk (distclean): Remove `builds/unix/freetype2.pc'.
-
- * src/cff/cffdrivr.c: Don't load headers twice.
-
- * include/freetype/internal/ftserv.h (FT_SERVICE_SFNT_H): New macro.
- * src/base/ftobjs.c: Include FT_SERVICE_SFNT_H.
-
- * src/cff/cffcmap.c: Include `cfferrs.h'.
- * src/pfr/pfrdrivr.c: Include `pfrerror.h'.
- * src/sfnt/sfdriver.c: Include `sferrors.h'.
- * src/psaux/psobjs.h: Add declaration for `ps_parser_to_bytes'.
-
-2003-09-11 David Turner <[email protected]>
-
- Introducing the concept of `module services'. This is the first
- step towards a massive simplification of the engine's internals, in
- order to get rid of various numbers of hacks.
-
- Note that these changes will break source & binary compatibility for
- authors of external font drivers.
-
- * include/freetype/config/ftconfig.h (FT_BEGIN_STMNT, FT_END_STMNT,
- FT_DUMMY_STMNT): New macros.
-
- * include/freetype/internal/ftserv.h: New file, containing the new
- structures and macros to provide `services'.
-
- * include/freetype/internal/internal.h (FT_INTERNAL_EXTENSION_H,
- FT_INTERNAL_EXTEND_H, FT_INTERNAL_HASH_H, FT_INTERNAL_OBJECT_H):
- Removed, obsolete.
- (FT_INTERNAL_SERVICE_H): New macro for `ftserv.h'.
-
- * include/freetype/internal/services/bdf.h,
- include/freetype/internal/services/glyfdict.h,
- include/freetype/internal/services/postname.h,
- include/freetype/internal/services/xf86name.h: New files.
-
- * include/freetype/ftmm.h (FT_Get_MM_Func, FT_Set_MM_Design_Func,
- FT_Set_MM_Blend_Func): Function pointers moved (in modified form)
- to...
- * include/freetype/internal/services/multmast.h: New file.
-
- * include/freetype/internal/sfnt.h (SFNT_Interface): `get_interface'
- is now of type `FT_Module_Requester'.
- (SFNT_Get_Interface_Func, SFNT_Load_Table_Func): Function pointers
- moved (in modified form) to...
- * include/freetype/internal/services/sfnt.h: New file.
-
- * include/freetype/tttables.h (FT_Get_Sfnt_Table_Func): Function
- pointer moved (in modified form) to `services/sfnt.h'.
-
- * include/freetype/ftmodule.h (FT_Module_Interface): Make it a
- a typedef to `FT_Pointer'.
-
- * include/freetype/internal/tttypes.h (TT_FaceRec): Add
- `postscript_name'.
- * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
- `postscript_name'.
- Add `services' element.
- (FT_LibraryRec): Remove `meta_class'.
-
- * src/base/ftbdf.c: Include FT_SERVICE_BDF_H.
- (test_font_type): Removed.
- (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Use services
- provided in `FT_SERVICE_ID_BDF'.
-
- * src/base/ftmm.c: Include FT_SERVICE_MULTIPLE_MASTERS_H.
- (ft_face_get_mm_service): New auxiliary function to get services
- from `FT_SERVICE_ID_MULTI_MASTERS'.
- (FT_Get_Multi_Master, FT_Set_MM_Design_Coordinates,
- FT_Set_MM_Blend_Coordinates): Use `ft_face_get_mm_service'.
-
- * src/base/ftobjs.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and
- FT_SERVICE_GLYPH_DICT_H.
- (ft_service_list_lookup): New function to get a specific service.
- (destroy_face): Updated.
- (Mac_Read_POST_Resource): Simplify some code.
- (IsMacResource): Fix warnings.
- (FT_Get_Name_Index, FT_Get_Glyph_Name): Use services provided in
- `FT_SERVICE_ID_GLYPH_DICT'.
- (FT_Get_Postscript_Name): Use service provided in
- `FT_SERVICE_ID_POSTSCRIPT_NAME'.
- (FT_Get_Sfnt_Table, FT_Load_Sfnt_Table): Use services provided in
- `FT_SERVICE_ID_SFNT_TABLE'.
-
- * src/base/ftxf86.c: Include FT_SERVICE_XFREE86_NAME_H.
- (FT_Get_X11_Font_Format): Use service provided in
- `FT_SERVICE_ID_XF86_NAME'.
-
- * src/bdf/bdfdrivr.c: Include FT_SERVICE_BDF_H and
- FT_SERVICE_XFREE86_NAME_H.
- (bdf_get_charset_id): New function.
- (bdf_service_bdf): New structure providing BDF services.
- (bdf_services): New services list.
- (bdf_driver_requester): Use `ft_service_list_lookup'.
-
- * src/cff/cffdrivr.c: Include FT_SERVICE_XFREE86_NAME_H and
- FT_SERVICE_GLYPH_DICT_H.
- (cff_service_glyph_dict): New structure providing CFF services.
- (cff_services): New services list.
- (cff_get_interface): Use `ft_service_list_lookup'.
-
- * src/cid/cidriver.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and
- FT_SERVICE_XFREE86_NAME_H.
- (cid_service_ps_name): New structure providing CID services.
- (cid_services): New services list.
- (cid_get_interface): Use `ft_service_list_lookup'.
-
- * src/pcf/pcfdrivr.c: Include FT_SERVICE_BDF_H and
- FT_SERVICE_XFREE86_NAME_H.
- (pcf_service_bdf): New structure providing PCF services.
- (pcf_services): New services list.
- (pcf_driver_requester): Use `ft_service_list_lookup'.
-
- * src/sfnt/sfdriver.c: Include FT_SERVICE_GLYPH_DICT_H and
- FT_SERVICE_POSTSCRIPT_NAME_H.
- (get_sfnt_glyph_name): Renamed to...
- (sfnt_get_glyph_name): This.
- (get_sfnt_postscript_name): Renamed to...
- (sfnt_get_ps_name): This.
- Updated.
- (sfnt_service_glyph_dict, sfnt_service_ps_name): New structures
- providing services.
- (sfnt_services): New services list.
- (sfnt_get_interface): Use `ft_service_list_lookup'.
-
- * src/truetype/ttdriver.c: Include FT_SERVICE_XFREE86_NAME_H.
- (tt_services): New services list.
- (tt_get_interface): Use `ft_service_list_lookup'.
-
- * src/type1/t1driver.c: Include FT_SERVICE_MULTIPLE_MASTERS_H,
- FT_SERVICE_GLYPH_DICT_H, FT_SERVICE_XFREE86_NAME_H, and
- FT_SERVICE_POSTSCRIPT_NAME_H.
- (t1_service_glyph_dict, t1_service_ps_name,
- t1_service_multi_masters): New structures providing Type 1 services.
- (t1_services): New services list.
- (Get_Interface): Use `ft_service_list_lookup'.
-
- * src/type42/t42drivr.c: Include FT_SERVICE_XFREE86_NAME_H,
- FT_SERVICE_GLYPH_DICT_H, and FT_SERVICE_POSTSCRIPT_NAME_H.
- (t42_service_glyph_dict, t42_service_ps_name): New strucures
- providing Type 42 services.
- (t42_services): New services list.
- (T42_Get_Interface): Use `ft_service_list_lookup'.
-
-
- * README, docs/CHANGES: Updating version numbers for 2.1.6, and
- removing obsolete warnings in the documentation.
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
- * builds/unix/configure.ac (version_info): Set to 9:5:3.
- * builds/unix/configure: Regenerated.
-
- * include/freetype/internal/ftcore.h,
- include/freetype/internal/ftexcept.h,
- include/freetype/internal/fthash.h,
- include/freetype/internal/ftobject.h: Removed. Obsolete.
-
-2003-09-09 David Turner <[email protected]>
-
- Fixing PFR kerning support. The tables within the font file contain
- (charcode,charcode) kerning pairs, we need to convert them to
- (gindex,gindex).
-
- * src/base/ftpfr.c (ft_pfr_check): Fix serious typo.
- * src/pfr/prfload.c: Remove dead code.
- (pfr_get_gindex, pfr_compare_kern_pairs, pfr_sort_kerning_pairs):
- New functions.
- (pfr_phy_font_done): Free `kern_pairs'.
- (pfr_phy_font_load): Call `pfr_sort_kerning_pairs'.
- * src/pfr/pfrobjs.c (pfr_face_get_kerning): Fix kerning extraction.
- * src/pfr/pfrtypes.h (PFR_KERN_PAIR_INDEX): New macro.
- (PFR_KernPairRec): Make `kerning' an FT_Int.
- (PFR_PhyFontRec): New element `kern_pairs'.
- (PFR_KernFlags): Values of PFR_KERN_2BYTE_CHAR and
- PFR_KERN_2BYTE_ADJ were erroneously reversed.
-
- * include/freetype/ftoption.h: Commenting out the macro
- TT_CONFIG_OPTION_BYTECODE_INTERPRETER.
-
-2003-09-02 David Turner <[email protected]>
-
-
- * Version 2.1.5 released.
- =========================
-
-
-2003-08-31 Manish Singh <[email protected]>
-
- * src/bdf/bdflib.c (_bdf_readstream): Don't use FT_MEM_COPY but
- FT_MEM_MOVE.
-
-2003-08-30 Werner Lemberg <[email protected]>
-
- * include/freetype/freetype.h (FT_ENCODING_SJIS, FT_ENCODING_GB2312,
- FT_ENCODING_BIG5, FT_ENCODING_WANSUNG, FT_ENCODING_JOHAB): New
- enumerations of FT_Encoding. The FT_ENCODING_MS_* variants except
- FT_ENCODING_MS_SYMBOL are now deprecated.
- Updated all users.
- * docs/CHANGES: Document it.
-
-2003-08-27 Werner Lemberg <[email protected]>
-
- * src/bdf/bdfdrivr.c (BDF_Face_Init): Accept lowercase characters
- for spacing.
-
-2003-08-27 Mike FABIAN <[email protected]>
-
- * src/pcf/pcfread.c (pcf_load_font), src/bdf/bdfdrivr.c
- (BDF_Face_Init): Accept lowercase characters for slant and weight.
-
-2003-08-18 David Turner <[email protected]>
-
- * include/freetype/config/ftoption.h: Disabling TrueType bytecode
- interpreter until the UNPATENTED_HINTING works as advertised.
-
- * src/autohint/ahhint.c (ah_hinter_load_glyph): Use `|' for
- setting `load_flags'.
-
- * Jamfile: Adding the `refdoc' target to the Jamfile in order to
- build the API Reference in `docs/reference' automatically.
-
- * include/freetype/t1tables.h (PS_FontInfoRec), src/cid/cidtoken.h,
- src/type1/t1tokens.h, src/type42/t42parse.c: Resetting the types of
- `italic_angle', `underline_position', and `underline_thickness' to
- their previous values (i.e., long, short, and ushort) in order to
- avoid breaking binary compatibility.
-
- * include/freetype/ttunpat.h: Fixing documentation comment.
-
- * include/freetype/config/ftoption.h, devel/ftoption.h
- (TT_CONFIG_OPTION_OPTION_COMPILE_UNPATENTED_HINTING): Replaced
- with...
- (TT_CONFIG_OPTION_UNPATENTED_HINTING): This. Updated all users.
- (TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): Removed.
-
- * include/freetype/internal/ftobjs.h (FT_DEBUG_HOOK_TYPE1): Removed.
- (FT_DEBUG_HOOK_UNPATENTED_HINTING): New macro. Use this with
- `FT_Set_Debug_Hook' to get the same effect as the removed
- TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING.
-
- * src/truetype/ttobjs.c (tt_face_init): Use
- `FT_DEBUG_HOOK_UNPATENTED_HINTING'.
-
-2003-08-06 Werner Lemberg <[email protected]>
-
- * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c
- (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Fix
- previous change.
-
-2003-08-05 Werner Lemberg <[email protected]>
-
- * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c
- (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Apply
- font matrix to advance width also.
- * docs/CHANGES: Updated.
-
-2003-07-26 Werner Lemberg <[email protected]>
-
- * builds/unix/configure.ac (version_info): Set to 9:4:3.
- * builds/unix/configure: Updated.
- * docs/CHANGES, docs/VERSION.DLL: Updated.
-
- * include/freetype/freetype.h (FT_GlyphSlot): Change 2003-06-16
- also breaks binary compatibility. Reintroduce an unsigned integer
- at the old position of `flags' called `reserved'.
-
-2003-07-25 Werner Lemberg <[email protected]>
-
- Make API reference valid HTML 4.01 transitional.
-
- * src/tools/docmaker/tohtml.py (html_header_1): Add doctype
- and charset.
- (html_header_2): Fix style elements and add some more.
- Fix syntax.
- (block_header, block_footer, description_header, description_footer,
- marker_header, marker_footer, source_header, source_footer,
- chapter_header): Don't use <center>...</center> but `align=center'
- table attribute.
- (chapter_inter, chapter_footer): Add <li> and use special <ul>
- class.
- Use double quotes around table widths given in percent.
- (keyword_prefix, keyword_suffix): Don't change font colour directly
- but use a new <span> class.
- (section_synopsis_header, section_synopsis_footer): Don't change
- colour.
- (code_header, code_footer): Don't change font colour directly but
- use a special <pre> class.
- (print_html_field): <tr> gets the `valign' attribute, not <table>.
- (print_html_field_list): Ditto.
- (index_exit): Don't use <center>...</center> but `align=center'
- table attribute.
- (section_enter): Ditto.
- (toc_exit): Don't emit </table>.
- (block_enter): Use <h4><a>, not <a><h4>.
- (__init__): Fix tag order in self.html_footer.
-
-2003-07-25 David Turner <[email protected]>
-
- This change reimplements fix from 2003-05-30 without breaking
- binary compatibility.
-
- * include/freetype/t1tables.h (PS_FontInfoRec): `italic_angle',
- `is_fixed_pitch', `underline_position', `underline_thickness' are
- reverted to be normal values.
-
- * include/freetype/internal/psaux.h (T1_FieldType): Remove
- `T1_FIELD_TYPE_BOOL_P', `T1_FIELD_TYPE_INTEGER_P',
- `T1_FIELD_TYPE_FIXED_P', `T1_FIELD_TYPE_FIXED_1000_P'.
- (T1_FIELD_TYPE_BOOL_P, T1_FIELD_NUM_P, T1_FIELD_FIXED_P,
- T1_FIELD_FIXED_1000_P): Removed.
- (T1_FIELD_TYPE_BOOL): Renamed to...
- (T1_FIELD_BOOL): New macro. Updated all callers.
-
- * src/type42/t42parse.c: `italic_angle', `is_fixed_pitch',
- `underline_position', `underline_thickness', `paint_type',
- `stroke_width' are reverted to be normal values.
- (T42_KEYWORD_COUNT): New macro.
- (t42_parse_dict): New array `keyword_flags' to mark that a value has
- already been assigned to a dictionary entry.
- * src/type42/t42objs.c (T42_Face_Init, T42_Face_Done): Updated.
-
- * src/cid/cidtoken.h: `italic_angle', `is_fixed_pitch',
- `underline_position', `underline_thickness' are reverted to be
- normal values.
- * src/cid/cidobjs.c (cid_face_done, cid_face_init): Updated.
-
- * src/psaux/psobjs.c (ps_parser_load_field): Updated.
-
- * src/type1/t1tokens.h: `italic_angle', `is_fixed_pitch',
- `underline_position', `underline_thickness', `paint_type',
- `stroke_width' are reverted to be normal values.
- * src/type1/t1objs.c (T1_Face_Done, T1_Face_Init): Updated.
- * src/type1/t1load.c (T1_FIELD_COUNT): New macro.
- (parse_dict): Add parameter for keyword flags.
- Record only first instance of a field.
- (T1_Open_Face): New array `keyword_flags'.
-
-2003-07-24 Werner Lemberg <[email protected]>
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
- * builds/unix/configure.ac (version_info): Set to 10:0:3.
- * builds/unix/configure: Updated.
- * builds/freetype.mk (refdoc): Fix --title.
-
- * docs/CHANGES, docs/VERSION.DLL, README: Updated.
-
- * src/tools/docmaker/sources.py (re_crossref): Fix regular
- expression to handle trailing punctuation characters.
- * src/tools/docmaker/tohtml.py (make_html_word): Updated.
-
- * docs/release: New file.
-
-2003-07-23 YAMANO-UCHI Hidetoshi <[email protected]>
-
- * include/freetype/internal/psaux.h (PS_Parser_FuncsRec): New
- member function `to_bytes'.
-
- * src/psaux/psauxmod.c (ps_parser_funcs): New member
- `ps_parser_to_bytes'.
- (psaux_module_class): Increase version to 0x20000L.
-
- * src/psaux/psobjs.c (IS_T1_LINESPACE): Add \f.
- (IS_T1_NULLSPACE): New macro.
- (IS_T1_SPACE): Add it.
- (skip_spaces, skip_alpha): New functions.
- (ps_parser_skip_spaces, ps_parser_skip_alpha): Use them.
- (ps_tobytes, ps_parser_to_bytes): New functions.
-
-2003-07-07 Werner Lemberg <[email protected]>
-
- * builds/freetype.mk (DOC_DIR): New variable.
- (refdoc): Use *_DIR variables.
- (distclean): Remove documentation files.
-
- * builds/detect.mk (std_setup, dos_setup): Mention `make refdoc'.
-
- * configure: Set DOC_DIR variable.
-
-2003-07-07 Patrik Hägglund <[email protected]>
-
- * builds/freetype.mk (refdoc): New target to build the
- documentation.
- (.PHONY): Updated.
-
- * include/freetype/freetype.h: Improve documentation of FT_CharMap.
- * include/freetype/ftimage,h: Fix documentation of FT_OUTLINE_FLAGS.
- * include/freetype/tttables.h: Document FT_Sfnt_Tag.
-
-2003-07-06 Werner Lemberg <[email protected]>
-
- * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfread.c
- (pcf_load_font): Fix computation of height if PIXEL_SIZE property is
- missing.
-
-2003-07-01 Werner Lemberg <[email protected]>
-
- * src/cache/ftcsbits.c (ftc_sbit_node_compare): Only add `size' if
- there is no error. Reported by Knut St. Osmundsen
- <[email protected]>.
-
-2003-06-30 Werner Lemberg <[email protected]>
-
- A new try to synchronize bitmap font access.
-
- * include/freetype/freetype.h (FT_Bitmap_Size): `height' is now
- defined to return the baseline-to-baseline distance. This was
- already the value returned by the BDF and PCF drivers.
-
- The `width' field now gives the average width. I wasn't able to
- find something better. It should be taken as informative only.
-
- New fields `size', `x_ppem', and `y_ppem'.
-
- * src/pcf/pcfread.c (pcf_load_font): Updated to properly fill
- FT_Bitmap_Size.
- Do proper rounding and conversion from 72.27 to 72 points.
-
- * src/bdf/bdfdrivr.c (BDF_Face_Init): Updated to properly fill
- FT_Bitmap_Size.
- Do proper rounding and conversion from 72.27 to 72 points.
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Updated to properly fill
- FT_Bitmap_Size.
-
- * src/winfonts/winfnt.c (FNT_Face_Init): Updated to properly fill
- FT_Bitmap_Size.
-
-2003-06-29 Werner Lemberg <[email protected]>
-
- Redesigning the FNT driver to return multiple faces, not multiple
- strikes. At least one font (app850.fon from WinME) contains
- different FNT charmaps for its subfonts. Consequently, the previous
- design of having multiple bitmap strikes in a single font face fails
- since we have only one charmap per face.
-
- * include/freetype/internal/fnttypes.h (FNT_Size_Rec): Removed.
- (FNT_FaceRec): Remove `num_fonts' field and replace `fonts' with
- `font'.
-
- * src/base/ftwinfnt.c (FT_Get_WinFNT_Header): Updated.
-
- * src/winfonts/winfnt.c (fnt_font_load): Don't set pixel_width equal
- to pixel_height.
- (fnt_face_done_fonts): Removed.
- (fnt_face_get_dll_fonts): Renamed to...
- (fnt_face_get_dll_font): This. Add second function argument to
- select face index.
- Updated to load just one subfont.
- (fnt_font_done, FNT_Face_Done): Updated.
- (FNT_Face_Init): Handle `face_index'.
- Updated.
- (FNT_Size_Set_Pixels): Simplified; similar to BDF and PCF, the
- bitmap width is now ignored.
- (FNT_Load_Glyph): Updated.
- Fix glyph index computation.
- (winfnt_driver_class): Updated.
-
-2003-06-25 Owen Taylor <[email protected]>
-
- * src/sfnt/ttload.c (tt_face_load_hdmx): Don't assign
- num_records until we actually decide to load the table,
- otherwise, we'll segfault in tt_face_free_hdmx.
-
-2003-06-24 Werner Lemberg <[email protected]>
-
- * src/cff/cffdrivr.c (cff_get_glyph_name): Protect against zero
- glyph name pointer. Reported by Mikey Anbary <[email protected]>.
-
-2003-06-23 Werner Lemberg <[email protected]>
-
- * src/tools/glnames.py: Updated to AGL 2.0.
- * src/psnames/pstables.h: Regenerated.
-
-2003-06-22 Werner Lemberg <[email protected]>
-
- * include/freetype/cache/ftcglyph.h, include/freetype/ttnameid.h,
- src/base/ftcalc.c, src/base/fttrigon.c, src/cff/cffgload.c,
- src/otlayout/otlgsub.c, src/pshinter/pshrec.c,
- src/psnames/psmodule.c, src/sfnt/sfobjs.c, src/truetype/ttdriver.c:
- Decorate constants with `U' and `L' if appropriate.
-
- * include/freetype/ftmoderr.h: Updated to include recent module
- additions.
-
- * src/pshinter/pshnterr.h (FT_ERR_BASE): Define as
- `FT_Mod_Err_PShinter'.
- * src/type42/t42error.h (FT_ERR_BASE): Define as
- `FT_Mod_Err_Type42'.
-
- * src/pshinter/pshrec.h (PS_HINTS_MAGIC): Removed. Not used.
-
- * include/freetype/config/ftconfig.h [__MWERKS__]: Define FT_LONG64
- and FT_INT64.
-
-2003-06-21 Werner Lemberg <[email protected]>
-
- * src/winfonts/winfnt.c (FNT_Load_Glyph): Use first_char in
- computation of glyph_index.
- (FNT_Size_Set_Pixels): To find a strike, first check pixel_height
- only, then try to find a better hit by comparing pixel_width also.
- Without this fix it isn't possible to access all strikes.
- Also compute metrics.max_advance to be in sync with other bitmap
- drivers.
-
- * src/base/ftobjs.c (FT_Set_Char_Size): Remove redundant code.
- (FT_Set_Pixel_Size): Assign value to `metrics' after validation of
- arguments.
-
-2003-06-20 Werner Lemberg <[email protected]>
-
- Synchronize computation of height and width for bitmap strikes. The
- `width' field in the FT_Bitmap_Size structure is now only useful to
- enumerate different strikes. The `max_advance' field of the
- FT_Size_Metrics structure should be used to get the (maximum) width
- of a strike.
-
- * src/bdf/bdfdrivr.c (BDF_Face_Init): Don't use AVERAGE_WIDTH for
- computing `available_sizes->width' but make it always equal to
- `available_sizes->height'.
-
- * src/pcf/pcfread.c (pcf_load_font): Don't use RESOLUTION_X for
- computing `available_sizes->width' but make it always equal to
- `available_sizes->height'.
-
- * src/truetype/ttdriver.c (Set_Pixel_Sizes): Pass only single
- argument to function.
-
- * src/psnames/psmodule.c (ps_unicode_value): Handle `.' after
- `uniXXXX' and `uXXXX[X[X]]'.
-
-2003-06-19 Werner Lemberg <[email protected]>
-
- * src/bdf/bdfdrivr.c: s/FT_Err_/BDF_Err/.
- * src/cache/ftccache.c, src/cache/ftcsbits.c, src/cache/ftlru.c:
- s/FT_Err_/FTC_Err_/.
- * src/cff/cffcmap.c: s/FT_Err_/CFF_Err_/.
- * src/pcf/pcfdrivr.c: s/FT_Err_/PCF_Err_/.
- * src/psaux/t1cmap.c: Include psauxerr.h.
- s/FT_Err_/PSaux_Err_/.
- * src/pshinter/pshnterr.h: New file.
- * src/pshinter/rules.mk: Updated.
- * src/pshinter/pshalgo.c, src/pshinter/pshrec.c: Include pshnterr.h.
- s/FT_Err_/PSH_Err_/.
- * src/pfr/pfrdrivr.c, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c:
- s/FT_Err_/PFR_Err_/.
- * src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c,
- src/sfnt/ttload.c: s/FT_Err_/SFNT_Err_/.
- * src/truetype/ttgload.c: s/FT_Err_/TT_Err_/.
- * src/gzip/ftgzip.c: Load FT_MODULE_ERRORS_H and define
- FT_ERR_PREFIX and FT_ERR_BASE.
- s/FT_Err_/Gzip_Err_/.
-
-2003-06-19 Dirck Blaskey <[email protected]>
-
- * src/cff/cffload (cff_encoding_load): `nleft' must be FT_UInt,
- otherwise adding 1 might wrap the result.
-
-2003-06-18 Werner Lemberg <[email protected]>
-
- * src/psnames/psmodule.c (ps_unicode_value): Add support to
- recognize `uXXXX[X[X]]' glyph names.
- Don't handle glyph names starting with `uni' which have more than
- four digits.
-
-2003-06-16 Werner Lemberg <[email protected]>
-
- * include/freetype/freetype.h (FT_Open_Flags): Replaced with
- #defines for the constants.
- (FT_Open_Args): Change type of `flags' to FT_UInt.
- (FT_GlyphSlot): Move `flags' to FT_Slot_Internal.
-
- * include/freetype/ftimage.h (FT_Outline_Flags, FT_Raster_Flag):
- Replaced with #defines for the constants.
-
- * include/freetype/internal/ftobjs.h (FT_Slot_Internal): New
- field `flags' (from FT_GlyphSlot).
- Updated all affected source files.
- (FT_GLYPH_OWN_BITMAP): New macro (from ftgloadr.h).
-
- * include/freetype/internal/ftgloadr.h (FT_GLYPH_OWN_BITMAP): Moved
- to ftobjs.h.
-
- * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Use dummy
- FT_GlyphSlot_Internal object.
-
-2003-06-15 Werner Lemberg <[email protected]>
-
- * builds/compiler/gcc.mk, builds/compiler/gcc-dev.mk (CFLAGS):
- Add -fno-strict-aliasing to get rid of zillion warnings from gcc
- version 3.3.
-
-2003-06-14 Werner Lemberg <[email protected]>
-
- * include/freetype/ftglyph.h (ft_glyph_bbox_unscaled,
- ft_glyph_bbox_subpixels, ft_glyph_bbox_gridfit,
- ft_glyph_bbox_truncate, ft_glyph_bbox_pixels): Replaced with
- FT_GLYPH_BBOX_UNSCALED, FT_GLYPH_BBOX_SUBPIXELS,
- FT_GLYPH_BBIX_GRIDFIT, FT_GLYPH_BBOX_TRUNCATE, FT_GLYPH_BBOX_PIXELS.
- The lowercase variants are now (deprecated aliases) to the uppercase
- versions.
- Updated all other files.
-
- * include/freetype/ftmodule.h (ft_module_font_driver,
- ft_module_renderer, ft_module_hinter, ft_module_styler,
- ft_module_driver_scalable, ft_module_driver_no_outlines,
- ft_module_driver_has_hinter): Replaced with FT_MODULE_FONT_DRIVER,
- FT_MODULE_RENDERER, FT_MODULE_HINTER, FT_MODULE_STYLER,
- FT_MODULE_DRIVER_SCALABLE, FT_MODULE_DRIVER_NO_OUTLINES,
- FT_MODULE_DRIVER_HAS_HINTER.
- The lowercase variants are now (deprecated aliases) to the uppercase
- versions.
- Updated all other files.
-
- * src/base/ftglyph.c (FT_Glyph_Get_CBox): Handle bbox_mode better
- as enumeration.
-
- * src/pcf/pcfdrivr.c (pcf_driver_class), src/winfonts/winfnt.c
- (winfnt_driver_class), src/bdf/bdfdrivr.c (bdf_driver_class): Add
- the FT_MODULE_DRIVER_NO_OUTLINES flag.
-
-2003-06-13 Detlef Würkner <[email protected]>
-
- * src/pfr/pfrobjs.c (pfr_slot_load): Apply font matrix.
-
-2003-06-13 Werner Lemberg <[email protected]>
-
- * builds/dos/detect.mk: Test not only for `Dos' but for `DOS' also.
-
- * builds/dos/dos-emx.mk, builds/compiler/emx.mk: New files for
- EMX gcc compiler.
- * builds/dos/detect.mk: Add target `emx'.
-
- * builds/compiler/watcom.mk (LINK_LIBRARY): GNU Make for DOS doesn't
- like a trailing semicolon; add a dummy command.
-
- * src/cid/cidload.c: Remove parse_font_bbox code (already enclosed
- with #if 0 ... #endif).
-
- * src/type1/t1tokens.h: Handle /FontName.
- * src/type1/t1load.c (parse_font_name): Removed.
- Remove parse_font_bbox code (already enclosed with #if 0 ...
- #endif).
-
- * src/type42/t42parse.c (t42_parse_font_name): Removed.
- Remove t42_parse_font_bbox code (already enclosed with #if 0 ...
- #endif).
- (t42_keywords): Handle /FontName with T1_FIELD_KEY.
-
-2003-06-12 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/psaux.h (T1_FieldType): Add
- T1_FIELD_TYPE_KEY.
- (T1_FIELD_KEY): New macro.
- * src/psaux/psobjs.c (ps_parser_load_field): Handle
- T1_FIELD_TYPE_KEY.
-
- * src/cid/cidtoken.h: Use T1_FIELD_KEY for /CIDFontName.
-
-2003-06-11 Alexander Malmberg <[email protected]>
-
- * src/cache/ftlru.c (FT_LruList_Remove_Selection): Decrease
- number of nodes.
- (FT_LruList_Lookup): Fix assertion for out-of-memory case.
-
-2003-06-11 Werner Lemberg <[email protected]>
-
- * src/cid/cidload.c (cid_decrypt): Removed.
- (cid_read_subrs): Use t1_decrypt from psaux module.
- * src/cid/cidload.h: Updated.
- * src/cid/cidgload.c (cid_load_glyph): Use t1_decrypt from psaux
- module.
-
-2003-06-10 Werner Lemberg <[email protected]>
-
- * src/cid/cidobjs.c: Apply change 2003-05-31 from <[email protected]>.
- Compute style flags.
- Fix computation of root->height.
- * src/cid/cidtoken.h: Handle FontBBox.
- * src/cid/cidload.c (cid_load_keyword): Handle
- T1_FIELD_LOCATION_BBOX.
- (parse_font_bbox): Commented out.
- (cid_field_record): Comment out element for parsing FontBBox.
-
- * src/type42/t42parse.c (t42_parse_font_bbox): Commented out.
- (t42_keywords): Handle FontBBox with T1_FIELD_BBOX, not with
- T1_FIELD_CALLBACK.
- (t42_parse_font_bbox): Commented out.
- (t42_load_keyword): Handle T1_FIELD_LOCATION_BBOX.
- * src/type42/t42objs.c (T42_Face_Init): Apply change 2003-05-31
- from <[email protected]>.
-
-2003-06-09 George Williams <[email protected]>
-
- * src/truetype/ttinterp.c (SetSuperRound) <0x30>: Follow Apple's
- TrueType specification.
- (Ins_MDRP, Ins_MIRP): Fix single width cut-in test.
-
-2003-06-09 Detlef Würkner <[email protected]>
-
- * src/gzip/ftgzip.c: (inflate_mask): Replaced with...
- (NO_INFLATE_MASK): This.
- * src/gzip/infutil.h: Declare `inflate_mask' conditionally by
- NO_INFLATE_MASK.
-
-2003-06-09 Alexis S. L. Carvalho <[email protected]>
-
- * src/gzip/ftgzip.c (ft_gzip_file_fill_output): Handle Z_STREAM_END
- correctly.
-
-2003-06-09 Wolfgang Domröse <[email protected]>
-
- * src/pshinter/pshglob.c (psh_globals_new): Change calculation of
- dim->stdw.count to avoid compiler problem.
-
- * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Move the block
- variables to the beginning of the function to avoid compiler
- problems.
- Add casts necessary for 16bit compilers.
-
-2003-06-09 Werner Lemberg <[email protected]>
-
- * src/pfr/rules.mk (PFR_DRV_SRC): Add pfrsbit.c.
- (PFR_DRV_H): Add pfrtypes.h.
-
- * include/freetype/config/ftconfig.h: s/__MWKS__/__MWERKS__/.
-
-2003-06-08 Karl Schultz <[email protected]>
-
- * src/pfr/pfrsbit.c (pfr_bitwriter_init): Change type of third
- argument to FT_Bool.
- (pfr_lookup_bitmap_data): Change type of third and fourth argument
- to FT_UInt. Updated caller.
- (pfr_load_bitmap_bits): Change type of fourth argument to FT_Bool.
-
-2003-06-08 Werner Lemberg <[email protected]>
-
- Completely revised FreeType's make management.
-
- . In all makefiles `/' is used as the path separator. The
- conversion to the real path separators is done as late as
- possible using $(subst ...).
-
- . $(HOSTSEP) no longer exists. Now, $(SEP) gives the path separator
- for the operating system, and the new $(COMPILER_SEP) the path
- separator for the compiler tools.
-
- . $(BUILD) has been renamed to $(BUILD_DIR). In general, all
- directory variables end with `_DIR'. The variants ending in `_'
- (like `BASE_' have been removed).
-
- The following ChangeLog entries only describe changes which are
- not related to the redesign.
-
- * builds/beos/beos-def.mk (BUILD_DIR): Fix typo.
- * builds/compiler/watcom.mk (LINK_LIBRARY): Fix linker call to avoid
- overlong arguments as suggested by J. Ali Harlow
- <[email protected]>.
- * builds/dos/dos-wat.mk: New file.
- * builds/freetype.mk (FREETYPE_H): Include header files from the
- `devel' subdirectory.
-
- * builds/os2/os2-dev.mk, builds/unix/unixddef.mk,
- builds/unix/unixddef.mk, builds/win32/w32-bccd.mk,
- builds/win32/w32-dev.mk (BUILD_DIR): Fix path.
-
- * builds/unix/configure.ac, builds/unix/configure: Updated.
- * builds/unix/unix-def.in (DISTCLEAN): Add `freetype2.pc'.
-
-2003-06-07 Werner Lemberg <[email protected]>
-
- * src/base/ftmac.c (FT_New_Face_From_SFNT): s/rlen/sfnt_size/ to
- make it compile.
-
- * devel/ftoption.h: Updated.
-
-2003-06-07 Detlef Würkner <[email protected]>
-
- * include/freetype/internal/psaux.h, src/truetype/ttgload.h:
- s/index/idx/ to fix compiler warnings.
-
- * src/sfnt/ttcmap0.c (tt_face_build_cmaps): Use more `volatile' to
- fix compiler warning.
-
- * src/gzip/ftgzip.c (BUILDFIXED): Removed.
- * src/gzip/inftrees.c (inflate_trees_fixed) [!BUILDFIXED]: Use
- FT_UNUSED to remove compiler warning.
-
-2003-06-06 Werner Lemberg <[email protected]>
-
- * include/freetype/ftstroker.h: Renamed to...
- * include/freetype/ftstroke.h: This.
-
- * src/base/ftstroker.c: Renamed to...
- * src/base/ftstroke.c: This.
-
- * include/freetype/config/ftheader.h (FT_STROKER_H): Updated.
-
- * src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk:
- Updated.
-
- * src/pcf/pcfdriver.c: Renamed to...
- * src/pcf/pcfdrivr.c: This.
- * src/pcf/pcfdriver.h: Renamed to...
- * src/pcf/pcfdrivr.h: This.
-
- * src/pcf/Jamfile, src/pcf/rules.mk: Updated.
-
-2003-06-05 Wenlin Institute (Tom Bishop) <[email protected]>
-
- * src/base/ftmac.c (file_spec_from_path) [TARGET_API_MAC_CARBON]:
- Add `#if !defined(__MWERKS__)'.
-
-2003-06-05 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/psaux.h (T1_FieldType): Add
- T1_FIELD_TYPE_FIXED_1000 and T1_FIELD_TYPE_FIXED_1000_P.
- (T1_FIELD_FIXED_1000, T1_FIELD_FIXED_1000_P): New macros.
- * src/psaux/psobjs.c (ps_parser_load_field): Handle
- T1_FIELD_TYPE_FIXED_1000 and T1_FIELD_TYPE_FIXED_1000_P.
-
- * src/cff/cffparse.c (cff_kind_fixed_thousand): New enumeration.
- (CFF_FIELD_FIXED_1000): New macro.
- (cff_parser_run): Handle cff_kind_fixed_thousand.
- * src/cff/cfftoken.h: Use CFF_FIELD_FIXED_1000 for blue_scale.
- * src/cff/cffload (cff_subfont_load): Fix default values of
- expansion_factor and blue_scale.
-
- * src/cif/cidtoken.h, src/type1/t1tokens.h: Use T1_FIELD_FIXED_1000
- for blue_scale.
-
- * src/pshinter/pshglob.c (psh_globals_new): Fix default value of
- blue_scale.
-
-2003-06-04 Wolfgang Domröse <[email protected]>
-
- * include/freetype/internal/ftdriver.h,
- include/freetype/internal/ftobjs.h,
- include/freetype/internal/psaux.h, src/cid/cidgload.c,
- src/psaux/psobjs.c, src/psaux/t1decode.c, src/psaux/psobjs.h,
- src/pshinter/pshrec.c, src/pshinter/pshalgo.c,
- src/psnames/psmodule.c, src/raster/ftraster.c, src/sfnt/sfobjs.c,
- src/smooth/ftgrays.c, src/smooth/ftsmooth.c, src/truetype/ttobjs.c,
- src/truetype/ttdriver.c, src/truetype/ttgload.c, src/type1/t1afm.c,
- src/type1/t1gload.c, src/type1/t1gload.h, src/type1/t1load.c,
- src/type1/t1objs.c, src/type42/t42parse.c, src/type42/t42parse.h:
- Many casts and slight argument type changes to make it work with
- a 16bit compiler.
-
-2003-06-04 Werner Lemberg <[email protected]>
-
- * include/freetype/config/ftoption.h: Defining
- TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING by default is a bad idea
- since some fonts (e.g. Arial) produce worse results than without
- hinting. Reverted.
-
-2003-06-04 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c (load_truetype_glyph)
- [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Call
- FT_GlyphLoader_CheckPoints before adding phantom points. This fixes
- a segfault bug with fonts (e.g. htst3.ttf) which have nested
- subglyphs more than one level deep. Reported by Anthony Fok.
-
- * include/freetype/config/ftoption.h: Define
- TT_CONFIG_OPTION_BYTECODE_INTERPRETER,
- TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING, and
- TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING to make it the new
- default.
-
-2003-06-03 Werner Lemberg <[email protected]>
-
- * src/autohint/ahhint.c (ah_hinter_hint_edges): Removed. Just a
- wrapper for ah_hint_edges.
- (ah_hint_edges): Renamed to...
- (ah_hinter_hint_edges): This.
-
- * src/base/ftobjs.c (FT_Set_Hint_Flags): Removed. Unused.
-
- * include/freetype/internal/ftobjs.h (FT_Face_InternalRec),
- include/freetype/internal/psaux.h (T1_DecoderRec),
- src/cff/cffgload.h (CFF_Builder): Remove `hint_flags' field.
- Unused.
-
- * src/cff/cffgload.c (cff_builder_init): Updated.
- (cff_decoder_parse_charstrings) <cff_op_endchar>: Call hinter->apply
- with decoder->hint_mode instead of builder->hint_flags.
- * src/psaux/t1decode.c (t1_decoder_init): Updated.
-
- * src/base/ftstroker.c (ft_stroke_border_export): s/index/idx/.
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Commented out code which
- increased root->height by 15% if the line gap was zero. There exist
- fonts (containing e.g. form drawing characters) which intentionally
- have a zero line gap value.
-
- * src/truetype/ttinterp.c (Free_Project, CUR_Func_freeProj):
- Removed. Unused.
- Updated all callers.
-
-2003-06-02 Werner Lemberg <[email protected]>
-
- * src/cff/cffobjs.c (cff_face_init): Use symbolic names for
- Adobe specific encoding IDs (there was a wrong EID value for custom
- encoding).
-
- * src/cff/cffcmap.h (CFF_CMapStdRec): Remove `count'.
- * src/cff/cffcmap.c (cff_cmap_encoding_init,
- cff_cmap_encoding_done): Updated.
- (cff_cmap_encoding_char_index, cff_cmap_encoding_char_next): Use
- 256 as limit for character code.
-
-2003-06-01 Werner Lemberg <[email protected]>
-
- * src/winfonts/winfnt.c (FNT_Load_Glyph): Revert change from
- 2003-03-20.
-
-2003-05-31 Werner Lemberg <[email protected]>
-
- * include/freetype/fttrigon.h (FT_Vector_Normalize): Removed.
-
-2003-05-31 <[email protected]>
-
- * src/type1/t1objs.c (T1_Face_Init): Improve algorithm for guessing
- the font style by ignoring spaces and hyphens.
-
- * builds/unix/freetype2.in: Fix `Version' field.
-
-2003-05-30 Werner Lemberg <[email protected]>
-
- Avoid overwriting of numeric font dictionary entries for synthetic
- fonts. Additionally, some entries were handled as `integer' instead
- of `number'.
-
- * include/freetype/internal/psaux.h (T1_FieldType): Add
- T1_FIELD_TYPE_BOOL_P, T1_FIELD_TYPE_INTEGER_P, and
- T1_FIELD_TYPE_FIXED_P.
- (T1_FIELD_BOOL_P, T1_FIELD_NUM_P, T1_FIELD_FIXED_P): New macros.
- * src/psaux/psobjs.c (ps_parser_load_field): Handle new field types.
-
- * include/freetype/internal/cfftypes.h (CFF_FontRecDict),
- src/cff/cfftoken.h: Change type of underline_position and
- underline_thickness to FT_Fixed.
- * src/cff/cffload.c (cff_subfont_load): Fix default values of
- underline_position and underline_thickness.
- * src/cff/cffobjs.c (cff_face_init): Set underline_position
- and underline_thickness in `root'.
-
- * include/freetype/internal/t1types.h (T1_Font): Change point_type
- and stroke_width to pointers.
- * include/freetype/t1tables.h (PS_FontInfo): Change italic_angle,
- is_fixed_pitch, underline_position, and underline_thickness to
- pointers.
- * src/type1/t1tokens.h: Change italic_angle, is_fixed_pitch,
- underline_position, and underline_thickness to pointers. Change
- the type of the latter two to `fixed'.
- Change type of stroke_width to `fixed' and make it a pointer.
- Change paint_type to pointer.
- * src/type1/t1objs.c (T1_Face_Done): Updated.
- (T1_Face_Init): Updated.
- Fix assignment of underline_position and underline_thickness.
-
- * src/cid/cidtoken.h: Change italic_angle, is_fixed_pitch,
- underline_position, and underline_thickness to pointers. Change
- the type of the latter two to `fixed'.
- Change type of stroke_width to `fixed'.
- * src/cid/cidobjs.c (cid_face_done): Updated.
- (cid_face_init): Updated.
- Fix assignment of underline_position and underline_thickness.
-
- * src/type42/t42parse.c: Change italic_angle, is_fixed_pitch,
- underline_position, and underline_thickness to pointers. Change the
- type of the latter two to `fixed'.
- Change type of stroke_width to `fixed' and make it a pointer.
- Change paint_type to pointer.
- * src/type42/t42objs.c (T42_Face_Init): Updated.
- Fix assignment of underline_position and underline_thickness.
- (T42_Face_Done): Updated.
-
- * src/base/ftobjs.c (open_face_from_buffer): Fix compiler warning.
- * src/pshinter/pshglob.c, src/pshinter/pshglob.h
- (psh_globals_set_scale): Make it a local function.
-
- * test/gview.c: Fix renaming ps3->ps typo.
- Formatting.
-
-2003-05-29 Werner Lemberg <[email protected]>
-
- * src/pshinter/pshalgo1.[ch], src/pshinter/pshalgo2.[ch]: Removed.
- * src/pshinter/pshalgo.h: Removed.
-
- * src/pshinter/pshalgo3.[ch]: Renamed to...
- * src/pshinter/pshalgo.[ch]: New files.
- s/PSH3/PSH/.
- s/psh3/psh/.
- s/ps3/ps/.
-
- * src/pshinter/pshrec.c, src/pshinter/pshinter.c: Updated.
- * src/pshinter/rules.mk, src/pshinter/Jamfile: Updated.
-
- * src/pshinter/pshglob.[ch] (psh_dimension_snap_width): Commented
- out.
-
- * tests/gview.c: Remove code for pshalgo1 and pshalgo2.
- Updated.
-
-2003-05-28 Martin Zinser <[email protected]>
-
- * vms_make.com: Reworked support for shareable images on VMS. The
- first version was kind of a hack; the current implementation of the
- procedure to extract the required symbols is much cleaner.
-
- Reworked creation of MMS files, avoiding a number of temporary files
- which were created in the previous version.
-
- Further work on creating descrip.mms files on the fly.
-
- * builds/vms/descrip.mms, src/autohint/descrip.mms,
- src/type1/descrip.mms: Removed.
-
-2003-05-28 Werner Lemberg <[email protected]>
-
- * src/pshinter/pshalgo3.c (psh3_glyph_compute_extrema): Skip
- contours with only a single point to avoid segfault.
-
- * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Activate code for
- handling `origin'.
-
-2003-05-24 Werner Lemberg <[email protected]>
-
- * src/autohint/ahtypes.h (AH_OPTION_NO_STRONG_INTERPOLATION):
- Removed since unused.
-
-2003-05-21 Werner Lemberg <[email protected]>
-
- * include/freetype/config/ftstdlib.h (ft_strcat): New wrapper macro
- for strcat.
-
- * src/base/ftmac.c (create_lwfn_name): s/isupper/ft_isupper/.
- (parse_font): s/memcpy/ft_memcpy/.
- (is_dfont) [TARGET_API_MAC_CARBON]: s/memcmp/ft_memcmp/.
- * src/base/ftobjs.c (load_mac_face) [FT_MACINTOSH]:
- s/strlen/ft_strlen/.
- s/strcat/ft_strcat/.
- s/strcpy/ft_strcpy/.
- * src/gzip/zutil.h: s/memset/ft_memset/.
- s/memcmp/ft_memcmp/.
-
- * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c
- (PCF_Face_Init): Test for charset registry case-insensitively.
-
- * src/gzip/ftgzip.c (ft_gzip_fil_io): Revert change from yesterday;
- it has already been fixed differently.
-
- * src/truetype/ttinterp.c (DO_SFVTL): Add missing braces around
- if-clause.
-
-2003-05-21 Martin Zinser <[email protected]>
-
- * t1load.c (parse_blend_axis_types): Fix compiler warning.
-
- * descrip.mms: Removed. Now created by...
-
- * vms_make.com: New file.
-
-2003-05-21 Weiqi Gao <[email protected]>
-
- * src/gzip/ftgzip.c (ft_gzip_file_io): Avoid zero value of `delta'
- to prevent infinite loop.
-
-2003-05-21 Lars Clausen <[email protected]>
-
- * docs/VERSION.DLL: Provide better autoconf snippet to check
- FreeType version.
-
-2003-05-21 Werner Lemberg <[email protected]>
-
- * src/base/ftobjs.c (open_face): Free `internal' not
- `face->internal' in case of error to avoid possible segfault.
-
- * src/pshinter/pshalgo3.c (ps3_hints_apply): Check whether we
- actually have an outline.
-
-2003-05-20 David Chester <[email protected]>
-
- * src/pshinter/pshalgo3.c (ps3_hints_apply): Try to optimize
- y_scale so that the top of non-capital letters is aligned on a pixel
- boundary whenever possible.
-
- * src/autohint/ahhint.c (ah_hint_edges): Make sure that lowercase
- m's maintain their symmetry.
-
-2003-05-20 Werner Lemberg <[email protected]>
-
- * src/autohint/ahhint.c (ah_hinter_load_glyph): Oops! David's
- patch from yesterday has been resolved already in a different
- way. Reverted.
-
-2003-05-19 David Chester <[email protected]>
-
- * src/autohint/ahhint.c (ah_hinter_load_glyph): Don't scale
- y_scale locally but face->size->metrics.y_scale.
-
-2003-05-19 David Turner <[email protected]>
-
- * src/sfnt/ttcmap0.c (tt_cmap4_char_next): Select proper start
- value for `hi' to avoid infinite loop.
-
-2003-05-18 Yong Sun <[email protected]>
-
- * src/raster/ftraster.c (Insert_Y_Turn): Fix overflow test.
-
-2003-05-18 Werner Lemberg <[email protected]>
-
- * include/freetype/config/ftoption.h [FT_CONFIG_OPTION_MAC_FONTS]:
- New macro.
- * src/base/ftobjs.c: Use it to control mac font support on non-mac
- platforms.
-
-2003-05-17 George Williams <[email protected]>
-
- Implement partial support of Mac fonts on non-Mac platforms.
-
- * src/base/ftobjs.c (memory_stream_close, new_memory_stream,
- open_face_from_buffer, Mac_Read_POST_Resource,
- Mac_Read_sfnt_Resource, IsMacResource, IsMacBinary, load_mac_face)
- [!FT_MACINTOSH]: New functions.
- (FT_Open_Face) [!FT_MACINTOSH]: Use load_mac_face.
-
-2003-05-17 Werner Lemberg <[email protected]>
-
- * src/base/ftobjs.c (FT_Load_Glyph): Scale linear advance width only
- if FT_FACE_FLAG_SCALABLE is set (otherwise we have a division by
- zero since FNT and friends don't define `face->units_per_EM').
-
-2003-05-15 David Turner <[email protected]>
-
- * src/base/fttrigon.c (FT_Vector_Rotate): Avoid rounding errors
- for small values.
-
-2003-05-15 Werner Lemberg <[email protected]>
-
- * src/autohint/ahtypes.h (AH_PointRec): Remove unused `in_angle'
- and `out_angle' fields.
-
-2003-05-14 George Williams <[email protected]>
-
- * src/base/ftmac.c (FT_New_Face_From_SFNT): Handle CFF files also.
-
-2003-05-14 Werner Lemberg <[email protected]>
-
- * include/freetype/freetype.h: Fix typo in comment
- (FT_HAS_FIXED_SIZES).
-
-2003-05-10 Dan Williams <[email protected]>
-
- * builds/unix/aclocal.m4: Comment out definition of
- `allow_undefined_flag' for Darwin 1.3.
- * builds/unix/configure.ac: Add option --with-old-mac-fonts.
- * builds/unix/ltmain.sh: Fix version numbering for Darwin 1.3.
- * builds/unix/configure: Regenerated.
-
- * include/freetype/config/ftconfig.h: Fix conditions for defining
- `FT_MACINTOSH'.
- * src/base/ftbase.c: Include `ftmac.c' conditionally.
- * src/base/ftmac.c: Handle __GNUC__.
-
-2003-05-07 YAMANO-UCHI Hidetoshi <[email protected]>
-
- * src/cid/cidload.c (is_alpha): Removed.
- (cid_parse_dict): Use `cid_parser_skip_alpha' instead of `is_alpha'.
-
-2003-05-07 Werner Lemberg <[email protected]>
-
- * src/autohint/ahoptim.c, src/autohint/ahoptim.h: Obsolete, removed.
-
-2003-05-07 David Turner <[email protected]>
-
- * src/autohint/ahglyph.c (ah_setup_uv): Exchange `for' loop and
- `switch' statement to make it run faster.
- (ah_outline_compute_segments): Reset `segment->score' and
- `segment->link'.
- (ah_outline_link_segments): Provide alternative code which does
- the same but runs much faster.
- Handle major direction also.
- (ah_outline_compute_edges): Scale `edge_distance_threshold' down
- after rounding instead of scaling comparison value in loop.
-
- * src/autohint/ahhint.c (ah_hinter_align_stong_points): Provide
- alternative code which runs faster.
- Handle `before->scale == 0'.
-
- * src/autohint/ahtypes.h (AH_SegmentRec): Move some fields down.
- (AH_EdgeRec): Move some fields in structure.
- New field `scale'.
-
- * src/sfnt/ttcmap0.c (tt_cmap4_char_next): Use binary search.
-
-2003-05-02 Werner Lemberg <[email protected]>
-
- * src/autohint/ahoptim.c (LOG): Renamed to...
- (AH_OPTIM_LOG): This.
- (AH_Dump_Springs): Fix log message format.
-
- * src/autohint/ahhint.c (ah_hint_edges_3): Renamed to...
- (ah_hint_edges): This.
-
-2002-05-02 Keith Packard <[email protected]>
-
- * src/bdf/bdfdrivr.c (BDF_Set_Pixel_Size): Initialize `max_advance'.
-
-2003-05-01 Werner Lemberg <[email protected]>
-
- * src/autohint/ahglyph.c (ah_test_extrema): Renamed to...
- (ah_test_extremum): This.
-
-2003-04-28 Werner Lemberg <[email protected]>
-
- * builds/unix/configure.ac: Generate `freetype.pc' from
- `freetype.in'.
- * builds/unix/configure: Regenerated.
- * builds/unix/install.mk (install, uninstall): Handle `freetype.pc'.
-
-2003-04-28 Gustavo J. A. M. Carneiro <[email protected]>
-
- * builds/unix/freetype2.in: New file. Contains building information
- for the `pkg-config' package.
-
-2003-04-28 David Turner <[email protected]>
-
- * src/base/ftobjs.c (FT_Load_Glyph): Fix boundary check for
- `glyph_index'.
-
-2003-04-25: Graham Asher <[email protected]>
-
- Added the optional unpatented hinting system for TrueType. It
- allows typefaces which need hinting to produce correct glyph forms
- (e.g., Chinese typefaces from Dynalab) to work acceptably without
- infringing Apple patents. This system is compiled only if
- TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING is defined in
- ftoption.h.
-
- * include/freetype/ttunpat.h: New file. Defines
- FT_PARAM_TAG_UNPATENTED_HINTING.
-
- * include/freetype/config/ftheader.h (FT_TRUETYPE_UNPATENTED_H): New
- macro to use when including ttunpat.h.
-
- * include/freetype/config/ftoption.h
- (TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING,
- TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): New configuration macros
- (not defined, but in comments) for the unpatented hinting system.
-
- * include/freetype/internal/tttypes.h (TT_FaceRec)
- [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: New element `FT_Bool
- unpatented_hinting'.
-
- * src/truetype/ttinterp.c (NO_APPLE_PATENT, APPLE_THRESHOLD):
- Removed.
- (GUESS_VECTOR): New macro.
- (TT_Run_Context) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
- Set `both_x_axis'.
- (tt_default_graphics_state)
- [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Updated.
- (Current_Ratio) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
- Handle `unpatented_hinting'.
- (Direct_Move) [NO_APPLE_PATENT]: Removed.
- [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Insert assertion.
- (Project, FreeProject)
- [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Insert assertion.
- (Compute_Funcs) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
- Implement unpatented hinting.
- (DO_SPVTCA, DO_SFVTCA, DO_SPVTL, DO_SFVTL, DO_SPVFS, DO_SFVFS,
- Ins_SDPVTL): Call `GUESS_VECTOR'.
- (DO_GPV, DO_GFV) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
- Handle `unpatented_hinting'.
- (Compute_Point_Displacement) [NO_APPLE_PATENT]: Removed.
- [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Implement unpatented
- hinting.
- (Move_Zp2_Point, Ins_SHPIX, Ins_DELTAP, Ins_DELTAC)
- [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Implement unpatented
- hinting.
- (TT_RunIns): Updated.
-
- * src/truetype/ttobjs.c
- [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Include
- FT_TRUETYPE_UNPATENTED_H.
- (tt_face_init) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING,
- TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING]: Check
- FT_PARAM_TAG_UNPATENTED_HINTING.
-
- * src/truetype/ttobjs.h (TT_GraphicsState)
- [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Add `both_x_axis'.
-
-2003-04-25 Werner Lemberg <[email protected]>
-
- * src/bdf/bdflib.c (hash_bucket, hash_lookup): Use `const' for first
- argument.
- (bdf_get_font_property): Use `const' for third argument.
- Updated all callers.
- * src/bdf/bdfdrivr.c (BDF_Face_Init): Set pixel width and height
- similar to the PCF driver.
- * src/bdf/bdf.h (_hashnode): Use `const' for `key'.
- Updated.
-
- * src/gzip/ftgzip.c: C++ doesn't like that the array `inflate_mask'
- is declared twice. It is perhaps better to modify the zlib source
- files directly instead of this hack.
- (zcalloc, zfree, ft_gzip_stream_close, ft_gzip_stream_io): Add casts
- to make build with g++ successful.
-
-2003-04-24 Manish Singh <[email protected]>
-
- * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
- (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Split on `-'
- also for searching the style name.
-
-2003-04-24 David Turner <[email protected]>
-
- * src/pcf/pcfread.c (pcf_load_font): Fixed the computation of
- face->num_glyphs. We must increase the value by 1 to respect the
- convention that glyph index 0 always corresponds to the `missing
- glyph'.
-
-2003-04-24 Werner Lemberg <[email protected]>
-
- * builds/unix/unix-cc.in (CFLAGS): Add @CPPFLAGS@.
-
-2003-04-24 Dieter Baron <[email protected]>
-
- * builds/unix/freetype-config.in (cflags): Emit FreeType 2's include
- files first. Otherwise there are conflicts with FreeType 1
- installed simultaneously.
-
-2003-04-23 Werner Lemberg <[email protected]>
-
- Fixing bugs reported by Nelson Beebe.
-
- * src/base/ftstroker.c (FT_Stroker_ParseOutline): Remove unused
- variable `in_path'.
-
- * src/base/ftobjs (ft_glyphslot_set_bitmap): Change type of
- second argument to `FT_Byte*'.
- * include/freetype/internal/ftobjs.h: Updated.
-
- * src/bdf/bdflib.c (_bdf_readstream): Remove unused variable `res'.
- (_bdf_parse_glyphs): Remove unused variable `next'.
- Mark `call_data' as unused.
-
- * src/cache/ftlru.c (FT_LruList_Lookup): Remove unused variable
- `plast'.
-
- * src/pcf/pcfread.c (pcf_seek_to_table_type): Slight recoding to
- actually use `error'.
- (pcf_load_font): Remove unused variable `avgw'.
-
- * src/pfr/pfrobjs.c (pfr_face_get_kerning): Change return type
- to `void'.
- Mark `error' as unused.
- * src/pfr/pfrobjs.h: Updated.
- * src/pfr/pfrdrivr.c (pfr_get_kerning): Updated.
-
- * src/sfnt/ttload.c (sfnt_dir_check): Remove unused variable
- `format_tag'.
-
- * src/sfnt/ttcmap0.c (tt_cmap6_validate, tt_cmap10_validate): Remove
- unused variable `start'.
- (tt_cmap10_char_next): Remove unused variable `result'
-
- * src/sfnt/sfobjs.c (tt_face_get_name): Mark `error' as unused.
-
- * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Mark `error' as
- unused.
-
- * src/type1/t1objs.c (T1_Face_Init): Remove unused variable
- `pshinter'.
-
- * src/type1/t1gload.c (T1_Load_Glyph): Use `glyph_data_loaded'
- only for FT_CONFIG_OPTION_INCREMENTAL.
-
-2003-04-23 Akito Hirai <[email protected]>
-
- * src/sfnt/ttcmap0.c (tt_cmap4_validate): Provide a weak variant
- of the glyph ID bounding check if FT_VALIDATE_TIGHT is not active.
- Without this change, many CJK fonts from Dynalab are rejected.
-
-2003-04-23 Joe Marcus Clarke <[email protected]>
-
- * src/base/ftbdf.c (FT_Get_BDF_Property): Check for valid
- `get_interface'.
-
-2003-04-23 Paul Miller <[email protected]>
-
- * src/base/ftmac.c (parse_fond): Fix handling of style names.
-
-2003-04-23 Werner Lemberg <[email protected]>
-
- * src/pfr/pfrload.c (pfr_extra_item_load_font_id): Use FT_PtrDist
- instead of FT_Uint for `len'.
-
-2003-04-22 Werner Lemberg <[email protected]>
-
- * src/gzip/ftgzip.c (zcalloc) [!FT_CONFIG_OPTION_SYSTEM_ZLIB]:
- Convert K&R format to modern C usage.
- (FT_Stream_OpenGzip): Use long constant.
-
-2003-04-21 Werner Lemberg <[email protected]>
-
- * src/cache/ftccache.c (ftc_cache_lookup): Remove shadow declaration
- of `manager'.
-
-2003-04-20 Werner Lemberg <[email protected]>
-
- * doc/INSTALL.UNX: Cleaned up.
-
-2003-04-09 Torrey Lyons <[email protected]>
-
- * src/base/ftmac.c (open_face_from_buffer): Removed a double-free
- bug that had nasty consequences when trying to open an `invalid'
- font on a Mac.
-
-2003-04-09 Mike Fabian <[email protected]>
-
- * src/bdf/bdfdrivr.h (BDF_encoding_el), src/pcf/pcf.h
- (PCF_EncodingRec): Changed FT_Short to FT_UShort in order to be able
- to access more than 32768 glyphs in fonts.
-
-2003-04-08 David Turner <[email protected]>
-
-
- * Version 2.1.4 released.
- =========================
-
-
-2003-04-03 Martin Muskens <[email protected]>
-
- * src/type1/t1load.c (T1_Open_Face): Fixed the code to make it
- handle special cases where a font only contains a `.notdef' glyph
- (happens in PDF-embedded fonts). Otherwise, FT_Panic was called.
-
-2003-03-27 David Turner <[email protected]>
-
- * README: Udpated.
-
- * README.UNX: Removed (now replaced by docs/INSTALL.UNX).
-
- * src/pshinter/pshalgo3.c: The hinter now performs as in 2.1.3 and
- will ignore stem quantization only when FT_LOAD_TARGET_SMOOTH is
- used.
- (psh3_dimension_quantize_len): Enabled.
- (psh3_hint_align): Enable commented code.
- (psh3_hint_align_light): Commented out.
-
- * src/base/ftobjs.c (FT_Set_Char_Size): Changed the default
- computations to include rounding in all cases; this is required to
- provide accurate kerning data when native TrueType hinting is
- enabled.
-
- * src/type1/t1load.c (is_name_char): The Type 1 loader now accepts
- more general names according to the PostScript specification (the
- previous one was too restrictive).
- (parse_font_name, parse_encoding, parse_charstrings, parse_dict):
- Use `is_name_char'.
- (parse_subrs): Handle empty arrays.
-
-2003-03-20 David Turner <[email protected]>
-
- Serious rewriting of the documentation.
-
- * docs/BUGS, docs/BUILD: Removed.
- * docs/DEBUG.TXT: Renamed to...
- * docs/DEBUG: This.
- * docs/CUSTOMIZE, docs/TRUETYPE, docs/UPGRADE.UNX: New files.
- * docs/INSTALL.ANY, docs/INSTALL.UNX, docs/INSTALL.GNU New files,
- containing platform specific information previously in INSTALL.
- * docs/readme.vms: Renamed to...
- * docs/INSTALL.VMS: This.
-
- * docs/*: Updated.
-
- Introduced three new functions to deal with glyph bitmaps within
- FT_GlyphSlot objects:
-
- ft_glyphslot_free_bitmap
- ft_glyphslot_alloc_bitmap
- ft_glyphslot_set_bitmap
-
- These functions are much more convenient to use than managing the
- FT_GLYPH_OWN_BITMAP flag manually.
-
- * include/freetype/internal/ftobjs.h (ft_glyphslot_free_bitmap,
- ft_glyphslot_alloc_bitmap, ft_glyphslot_set_bitmap): New functions.
- * src/base/ftobjs.c: Implement them.
- (ft_glyphslot_done): Use ft_glyphslot_free_bitmap.
-
- * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdriver.c
- (PCF_Glyph_Load): Remove unused variable `memory'.
- Use `ft_glyphslot_*' functions.
- Don't set `FT_GLYPH_OWN_BITMAP'.
-
- * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Use
- `ft_glyphslot_alloc_bitmap'.
-
- * src/sfnt/ttsbit.c (Load_SBit_Image): Change 5th argument to type
- `FT_GlyphSlot'.
- Adding argument `depth' to handle recursive calls.
- Use `ft_glyphslot_alloc_bitmap'.
- (tt_face_load_sbit_image): Remove unused variable `memory'.
- Don't handle `FT_GLYPH_OWN_BITMAP'.
- Update call to Load_SBit_Image.
-
- * src/type42/t42objs.c (ft_glyphslot_clear): Renamed to...
- (t42_glyphslot_clear): This. Updated caller.
- Call `ft_glyphslot_free_bitmap'.
-
- * src/winfonts/winfnt.c (FNT_Load_Glyph): Use
- `ft_glyphslot_set_bitmap'.
- Don't handle `FT_GLYPH_OWN_BITMAP'.
-
- * src/cache/ftlru.c (FT_LruList_Lookup): Fixed an invalid assertion
- check.
-
- * src/autohint/ahglyph.c (ah_outline_load): Add two scaling
- arguments.
- * src/autohint/ahglyph.h: Updated.
- * src/autohint/ahhint.c (ah_hinter_load): Updated.
- * src/autohint/ahglobal.c (ah_hinter_compute_widths): Updated.
-
- * src/cache/ftccache.c (ftc_family_done): Fixed small bug that could
- crash the cache in rare circumstances (mostly with broken fonts).
-
-2003-03-15 David Turner <[email protected]>
-
- * src/truetype/ttdriver.c (Set_Char_Sizes): Fixed a small rounding
- bug. Actually, it seems that previous versions of FreeType didn't
- perform TrueType rounding exactly as appropriate.
-
-2003-03-14 David Turner <[email protected]>
-
- * src/truetype/ttdriver.c (Set_Char_Sizes): Fixing the small
- TrueType native rendering glitches; they came from a small rounding
- error.
-
-2003-03-13 David Turner <[email protected]>
-
- Added new environment variables to control memory debugging with
- FreeType. See the description of `FT2_DEBUG_MEMORY',
- `FT2_ALLOC_TOTAL_MAX' and `FT2_ALLOC_COUNT_MAX' in DEBUG.TXT.
-
- * src/base/ftdbgmem.c (FT_MemTableRec): Add `alloc_count',
- `bound_total', `alloc_total_max', `bound_count', `alloc_count_max'.
- (ft_mem_debug_alloc): Handle new variables.
- (ft_mem_debug_init): s/FT_DEBUG_MEMORY/FT2_DEBUG_MEMORY/.
- Handle new environment variables.
- * docs/DEBUG.TXT: Updated.
-
- Fixed the cache sub-system to correctly deal with out-of-memory
- conditions.
-
- * src/cache/ftccache.c (ftc_node_destroy): Comment out generic
- check.
- (ftc_cache_lookup): Implement loop.
- * src/cache/ftccmap.c: Define FT_COMPONENT.
- * src/cache/ftcsbits.c (ftc_sbit_node_load): Handle
- FT_Err_Out_Of_Memory.
- * src/cache/ftlru.c: Include FT_INTERNAL_DEBUG_H.
- (FT_LruList_Lookup): Implement loop.
-
- * src/pfr/pfrobjs.c (pfr_face_done): Fix memory leak.
- (pfr_face_init): Fixing compiler warnings.
-
- * src/psaux/psobjs.c (reallocate_t1_table): Fixed a bug (memory
- leak) that only happened when a try to resize an array would end in
- an out-of-memory condition.
-
- * src/smooth/ftgrays.c (gray_convert_glyph): Removed compiler
- warnings / volatile bug.
-
- * src/truetype/ttobjs.c (tt_glyphzone_done): Removed segmentation
- fault that happened in tight memory environments.
-
-2003-02-28 Pixel <[email protected]>
-
- * src/gzip/ftgzip.c (ft_gzip_file_done): Fixed memory leak: The ZLib
- stream was not properly finalized.
-
-2003-02-25 Anthony Fok <[email protected]>
-
- * src/cache/ftccmap.c: Include FT_TRUETYPE_IDS_H.
- (ftc_cmap_family_init): The cmap cache now
- supports UCS-4 charmaps when available in Asian fonts.
-
- * src/sfnt/ttload.c, src/base/ftobjs.c: Changed `asian' to `Asian'
- in comments.
-
-2003-02-25 David Turner <[email protected]>
-
- * src/gzip/ftgzip.c (ft_gzip_file_fill_output): Fixed a bug that
- caused FreeType to loop endlessly when trying to read certain
- compressed gzip files. The following test reveals the bug:
-
- touch 0123456789 ; gzip 0123456789 ; ftdump 0123456789.gz
-
- Several fixes to the PFR font driver:
-
- - The list of available embedded bitmaps was not correctly set in
- the root FT_FaceRec structure describing the face.
-
- - The glyph loader always tried to load the outlines when
- FT_LOAD_SBITS_ONLY was specified.
-
- - The table loaded now scans for *undocumented* elements of a
- physical font's auxiliary data record. This is necessary to
- retrieve the `real' family and style names.
-
- NOTE THAT THESE CHANGES THE FAMILY NAME OF MANY PFR FONTS!
-
- * src/pfr/pfrload.c (pfr_aux_name_load): New function.
- (pfr_phy_font_done): Free `family_name' and `style_name' also.
- Remove unused variables.
- (pfr_phy_font_load): Extract useful information from the auxiliary
- bytes.
-
- * src/pfr/pfrobjs.c (pfr_face_done): Set pointers to NULL.
- (pfr_face_init): Provide fallback values for `family_name' and
- `style_name'.
- Handle strikes.
- (pfr_slot_load): Handle FT_LOAD_SBITS_ONLY.
- * src/pfr/pfrtypes.h (PFR_PhyFontRec): Add fields `ascent',
- `descent', `leading', `family_name', and `style_name'.
-
- * src/truetype/ttdriver.c (Set_Char_Sizes): Fixed a rounding bug
- when computing the scale factors for a given character size in
- points with resolution.
-
- * devel/ft2build.h, devel/ftoption.h: New files (in a new directory)
- which are special development versions of include/ft2build.h and
- include/freetype/config/ftoption.h, respectively.
-
-2003-02-18 David Turner <[email protected]>
-
- Fixing the slight distortion problem that occurred due to the latest
- auto-hinter changes.
-
- * src/base/ftobjs.c (ft_recompute_scaled_metrics): Fix rounding.
-
- * src/truetype/ttdriver.c (Set_Char_Sizes): New variable `metrics2'.
- [!TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Removed.
-
- * src/truetype/ttobjs.h (TT_SizeRec): New field `metrics'.
- * src/truetype/ttobjs.c (Reset_Outline_Size): Fix initialization of
- `metrics'.
- [FT_CONFIG_CHESTER_ASCENDER]: Code removed.
- (Reset_SBit_Size): Fix initialization of `metrics'.
-
- * src/truetype/ttinterp.c (TT_Load_Context): Fix initialization of
- `exec->metrics'.
-
- * src/autohint/ahhint.c (ah_hinter_load): Disabled the advance width
- `correction' which seemed to provide more trouble than benefits.
-
-2003-02-13 Graham Asher <[email protected]>
-
- Changed the incremental loading interface in a way that makes it
- simpler and allows glyph metrics to be changed (e.g., by adding a
- constant, as required by CFF fonts) rather than just overridden.
- This was required to make the GhostScript-to-FreeType bridge work.
-
- * src/cff/cffgload.c (cff_slot_load) [FT_CONFIG_OPTION_INCREMENTAL]:
- Allow metrics to be overridden.
- * src/cid/cidgload.c (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL]:
- Ditto.
-
- * src/truetype/ttgload.c (load_truetype_glyph)
- [FT_CONFIG_OPTION_INCREMENTAL]: Simplify.
- (compute_glyph_metrics) [FT_CONFIG_OPTION_INCREMENTAL]: Code block
- moved down.
-
- * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
- [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
-
- * include/freetype/ftincrem.h: Updated.
-
-2003-01-31 David Turner <[email protected]>
-
- * docs/CHANGES, docs/VERSION.DLL, docs/TODO: Updating documentation
- for the 2.1.4 release.
-
- * builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/index.html: Updating the project file for
- 2.1.4.
-
- * src/gzip/adler32.c, src/gzip/ftgzip.c, src/gzip/infblock.c,
- src/gzip/infcodes.c, src/gzip/inflate.c, src/gzip/inftrees.c,
- src/gzip/infutil.c: Removed old-style (K&R)function definitions.
- This avoids warnings with Visual C++ at its most pedantic mode.
-
- * src/pfr/pfrsbit.c: Removed compiler warnings.
-
- * src/cache/ftccmap.c (ftc_cmap_family_init): Changed an FT_ERROR
- into an FT_TRACE1 since it caused `ftview' and others to dump too
- much junk when trying to display a waterfall with a font without a
- Unicode charmap (e.g. SYMBOL.TTF).
-
- Implemented FT_CONFIG_CHESTER_BLUE_SCALE, corresponding to the last
- patch from David Chester, but with a much simpler (and saner)
- implementation.
-
- * src/autohint/ahhint.c (ah_hinter_load_glyph)
- [FT_CONFIG_CHESTER_BLUE_SCALE]: Try to optimize the y_scale so that
- the top of non-capital letters is aligned on a pixel boundary
- whenever possible.
-
- * src/base/ftobjs.c (FT_Set_Char_Size)
- [FT_CONFIG_CHESTER_BLUE_SCALE]: Round differently.
- * src/truetype/ttdriver.c (Set_Char_Sizes)
- [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Do some rounding only
- if this macro is defined.
-
- * src/truetype/ttobjs.c (Reset_Outline_Size)
- [FT_CONFIG_CHESTER_ASCENDER]: Round differently.
-
- * src/pshinter/pshalgo3.c: Improved the Postscript hinter. Getting
- rid of stem snapping seems to work well here (though the stems are
- still slightly moved to increase contrast).
- (psh3_dimension_quantize_len): Commented out.
- (psh3_hint_align_light): New function.
- (psh3_hint_align): Comment out some code.
-
- THIS IMPROVES ANTI-ALIASED RENDERING, BUT MONOCHROME AND LCD MODES
- STILL SUCK.
-
-2003-01-22 David Chester <[email protected]>
-
- * src/autohint/ahhint.c (ah_compute_stem_width): Small fix to the
- stem width optimization.
-
-2003-01-22 David Turner <[email protected]>
-
- Adding a new API `FT_Get_BDF_Property' to retrieve the BDF
- properties of a given PCF or BDF font.
-
- * include/freetype/ftbdf.h (FT_PropertyType): New enumeration.
- (BDF_Property, BDF_PropertyRec): New structure.
- FT_Get_BDF_Property): New function.
- * include/freetype/internal/bdftypes.h: Include FT_BDF_H.
- (BDF_GetPropertyFunc): New function pointer.
-
- * src/base/ftbdf.c (test_font_type): New helper function.
- (FT_Get_BDF_Charset_ID): Use `test_font_type'.
- (FT_Get_BDF_Property): New function.
-
- * src/bdf/bdfdrivr.c: Include FT_BDF_H.
- (bdf_get_bdf_property, bdf_driver_requester): New functions.
- (bdf_driver_class): Use `bdf_driver_requester'.
-
- * src/pcf/pcfdrivr.c: Include FT_BDF_H.
- (pcf_get_bdf_property, pdc_driver_requester): New functions
- (pcf_driver_class): Use `pcf_driver_requester'.
-
- * src/pcf/pcfread.c: Include `pcfread.h'.
- (pcf_find_property): Decorate it with FT_LOCAL_DEF.
- * src/pcf/pcfread.h: New file, providing `pcf_find_property'.
-
- * src/sfnt/ttload.c (sfnt_dir_check): Relaxed the `head' table size
- verification to accept a few broken fonts who pad the size
- incorrectly (the table should be padded, but its `size' field
- shouldn't according to the specification).
-
-2003-01-18 Werner Lemberg <[email protected]>
-
- * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
- --copy' from libtool 1.4.3.
- * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
- automake 1.7.1.
- * builds/unix/configure: Regenerated with autoconf 2.54.
- * builds/unix/config.guess, builds/unix/config.sub: Updated from
- `config' CVS module at subversions.gnu.org.
- * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
- `automake' CVS module at subversions.gnu.org.
-
-2003-01-15 David Turner <[email protected]>
-
- * include/freetype/freetype.h: Fixed documentation for
- FT_Size_Metrics.
-
-2003-01-15 James Su <[email protected]>
-
- * src/gzip/ftgzip.c (ft_gzip_check_header): Bugfix: couldn't read
- certain gzip-ed font files (typo: `&&' -> `&').
-
-2003-01-15 Huw D M Davies <[email protected]>
-
- Added a Windows .FNT specific API (mostly for Wine). Also fixed a
- nasty bug in the header loader which would cause invalid memory
- overwrites.
-
- * include/freetype/config/ftheader.h (FT_WINFONTS_H): New macro
- for ftwinfnt.h.
- * include/freetype/internal/fnttypes.h: Include FT_WINFONTS_H.
- (FNT_FontRec): Updated.
- Move Windows FNT definition to...
- * include/freetype/ftwinfnt.h: This new file.
- (FT_WinFNT_HeaderRec): Rename `reserved2' to `reserved1'.
- * src/base/ftwinfnt.c: New file, providing `FT_Get_WinFNT_Header'.
- * src/winfonts/winfnt.c (winfnt_header_fields): Updated.
- Rename `reserved2' to `reserved1'.
- (fnt_font_load): Updated.
-
- * src/base/Jamfile, src/base/descrip.mms, src/base/rules.mk:
- Updated.
-
-2003-01-14 Graham Asher <[email protected]>
-
- * include/freetype/ftglyph.h, src/base/ftglyph.c: Added `const' to
- the type of the first argument to FT_Matrix_Multiply, which isn't
- changed -- this adds documentation and convenience.
-
-2003-01-13 Graham Asher <[email protected]>
-
- * src/sfnt/ttload.c (tt_face_load_metrics)
- [FT_CONFIG_OPTION_INCREMENTAL]: TrueType typefaces without
- horizontal metrics (without the `hmtx' table) are now tolerated if
- an incremental interface has been specified that has a
- get_glyph_metrics function, implying that metrics will be supplied
- from outside. This happens for certain Type 42 fonts passed from
- GhostScript.
-
-2003-01-11 David Chester <[email protected]>
-
- Patches to the auto-hinter in order to slightly improve the output.
- Note that everything is controlled through the new
- FT_CONFIG_OPTION_CHESTER_HINTS defined in `ftoption.h'. There are
- also individual FT_CONFIG_CHESTER_XXX macros to control individual
- `features'.
-
- Note that all improvements are enabled by default, but can be
- tweaked for optimization and testing purposes. The configuration
- macros will most likely disappear in the short future.
-
- * include/freetype/config/ftoption.h
- (FT_CONFIG_OPTION_CHESTER_HINTS): New macro.
- (FT_CONFIG_CHESTER_{SMALL_F,ASCENDER,SERIF,STEM,BLUE_SCALE})
- [FT_CONFIG_OPTION_CHESTER_HINTS]: New macros to control individual
- features.
-
- * src/autohint/ahglobal.c (blue_chars) [FT_CONFIG_CHESTER_SMALL_F]:
- Add blue zone for `fijkdbh'.
- * src/autohint/ahglobal.h (AH_IS_TOP_BLUE)
- [FT_CONFIG_CHESTER_SMALL_F]: Use `AH_BLUE_SMALL_F_TOP'.
- * src/autohint/ahglyph.c (ah_outline_compute_edges)
- [FT_CONFIG_CHESTER_SERIF]: Use `AH_EDGE_SERIF'.
- (ah_outline_compute_blue_edges) [FT_CONFIG_CHESTER_SMALL_F]:
- Increase threshold for `best_dist'.
- * src/autohint/ahhint.c (ah_compute_stem_width)
- [FT_CONFIG_CHESTER_SERIF]: Provide new version for improved serif
- handling.
- (ah_align_linked_edge) [FT_CONFIG_CHESTER_SERIF]: Use special
- version of `ah_compute_stem_width'.
- (ah_hint_edges_3) [FT_CONFIG_CHESTER_STEM]: A new algorithm for stem
- alignment when stem widths are less than 1.5 pixels wide centers the
- stem slightly off-center of the center of a pixel (this increases
- sharpness and consistency).
- [FT_CONFIG_CHESTER_SERIF]: Use special version of
- `ah_compute_stem_width'.
- * src/autohint/ahtypes.h [FT_CONFIG_CHESTER_SMALL_F]: Add
- `AH_BLUE_SMALL_F_TOP'.
-
-2003-01-11 David Turner <[email protected]>
-
- * include/freetype/internal/fnttypes.h (WinFNT_HeaderRec): Increase
- size of `reserved2' to avoid memory overwrites.
-
-2003-01-08 Huw Davies <[email protected]>
-
- * src/winfonts/winfnt.c (winfnt_header_fields): Read 16 bytes into
- `reserved2', not `reserved'.
-
- * src/base/ftobjs.c (find_unicode_charmap): Fixed the error code
- returned when the font doesn't contain a Unicode charmap. This
- allows FT2 to load `symbol.ttf' and a few others correctly since the
- last release.
- (open_face): Fix return value.
-
-2003-01-08 Owen Taylor <[email protected]>
-
- Implemented the FT_RENDER_MODE_LIGHT hinting mode in the auto and
- postscript hinters.
-
- * src/autohint/ahtypes.h (AH_HinterRec): Add `do_stem_adjust'.
- * src/autohint/ahhint.c (ah_compute_stem_width): Handle
- hinter->do_stem_adjust.
- (ah_hinter_load_glyph): Set hinter->do_stem_adjust.
-
- * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add `do_stem_adjust'.
- * src/pshinter/pshalgo3.c (psh3_hint_align): Use `do_stem_adjust'.
- (ps3_hints_apply): Handle FT_RENDER_MODE_LIGHT.
-
- * include/freetype/freetype.h (FT_Render_Mode): Add
- FT_RENDER_MODE_LIGHT.
-
- * src/truetype/ttgload.c: Fixing the TrueType loader to handle
- invalid composites correctly by limiting the recursion depth.
- (TT_MAX_COMPOSITE_RECURSE): New macro.
- (load_truetype_glyph): Add argument `recurse_count'.
- Load a composite only if the numbers of contours is -1, emit error
- otherwise.
- (TT_Load_Glyph): Updated.
-
-2003-01-08 David Turner <[email protected]>
-
- * Jamrules, Jamfile, Jamfile.in, src/*/Jamfile: Small changes to
- support the compilation of FreeType 2 as part of larger projects
- with their own configuration options (only with Jam).
-
-2003-01-07 David Turner <[email protected]>
-
- * src/base/ftstroker.c: Probably the last bug-fixes to the stroker;
- the API is likely to change, however.
- (ft_stroke_border_close): Don't record empty paths.
- (ft_stroke_border_get_counts): Increase `num_points' also in for loop.
- (ft_stroke_border_export): Don't increase `write' twice in for loops.
- (ft_stroker_outside): Handle `phi' together with `theta'.
- (FT_Stroker_ParseOutline): New function.
-
- * src/base/fttrigon.c (FT_Angle_Diff): Fixing function: It returned
- invalid values for large negative angle differences (resulting in
- incorrect stroker computations, among other things).
-
- * src/cache/ftccache.c (ftc_node_hash_unlink): Removing incorrect
- assertion, and changing code to avoid hash table size contraction.
-
- * src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms: Adding
- `ftstroker' to default build, as optional component.
-
-2002-12-26 David Turner <[email protected]>
-
- * src/gzip/adler32.c, src/gzip/infblock.c, src/gzip/inflate.c,
- src/gzip/inftrees.c, src/gzip/zconf.h, src/gzip/zlib.h,
- src/gzip/zutil.h: Updates to allow compilation without compiler
- warnings with LCC-Win32.
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
- * builds/unix/configure.ac (version_info): Increased to 9:3:3.
- * builds/unix/configure: Regenerated.
- * docs/VERSION.DLL: Updated.
-
-2002-12-23 Anthony Fok <[email protected]>
-
- * builds/unix/configure.ac, builds/unix/unix-cc.in (LINK_LIBRARY),
- builds/unix/unix-def.in (SYSTEM_ZLIB): Small fix to configure
- sub-system on Unix to allow other programs to correctly link with
- zlib when needed.
-
-2002-12-19 David Turner <[email protected]>
-
- * include/freetype/internal/sfnt.h (SFNT_Load_Table_Func): New
- function pointer.
-
- * include/freetype/tttables.h (FT_Load_Sfnt_Table): New function.
- * src/base/ftobjs.c: Implement it.
-
- * src/sfnt/sfdriver.c (sfnt_get_interface): Handle `load_sfnt'
- module request.
-
-2002-12-17 David Turner <[email protected]>
-
- * src/base/ftobjs.c (find_unicode_charmap): Added some comments to
- better explain what's happening there.
- (open_face): Included Graham Asher's fix to prevent faces without
- Unicode charmaps from loading.
-
- * src/winfonts/winfnt.c: Included George Williams's fix to support
- version 2 fonts correctly.
- (winfnt_header_fields): Updated.
- (fnt_font_load): Handle version 2 fonts.
- (FNT_Load_Glyph): Updated.
-
-2002-12-16 David Turner <[email protected]>
-
- * docs/VERSION.DLL: Updating document to better explain the
- differences between the three version numbers being used on Unix, as
- well as providing an autoconf fragment provided by Lars Clausen.
-
- * src/smooth/ftgrays.c (gray_render_conic): Fixed small bug that
- prevented Bézier arcs with negative vertical coordinates to be
- rendered appropriately.
-
-2002-12-02 Antoine Leca <[email protected]>
-
- * src/base/ftobjs.c: Modified the logic to get Unicode charmaps.
- Now it loads UCS-4 charmaps when there is one.
- (find_unicode_charmap): New function.
- (open_face): Refer to the above one.
- (FT_Select_Charmap): Idem.
-
-2002-11-29 Antoine Leca <[email protected]>
-
- * include/freetype/ftgzip.h: Correct the name of the controlling
- macro (was __FTXF86_H__ ...).
-
-2002-11-27 Vincent Caron <[email protected]>
-
- * builds/unix/unix-def.in, builds/unix/freetype-config.in,
- builds/unix/configure.ac, src/gzip/rules.mk, src/gzip/ftgzip.c
- [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Adding support for system zlib
- installations if available on the target platform (Unix only).
-
-2002-11-23 David Turner <[email protected]>
-
- * src/cff/cffload.c (cff_charset_load, cff_encoding_load): Modified
- charset loader to accept pre-defined charsets, even when the font
- contains fewer glyphs. Also enforced more checks to ensure that we
- never overflow the character codes array in the encoding.
-
-2002-11-22 Antoine Leca <[email protected]>
-
- * include/freetype/ttnameid.h: Updated to latest OpenType
- specification.
-
-2002-11-18 David Turner <[email protected]>
-
-
- * Version 2.1.3 released.
- =========================
-
-
-2002-11-07 David Turner <[email protected]>
-
- * src/cache/ftcsbit.c (ftc_sbit_node_load): Fixed a small bug that
- caused problems with embedded bitmaps.
-
- * src/otlayout/otlayout.h, src/otlyaout/otlconf.h,
- src/otlayout/otlgsub.c, src/otlayout/otlgsub.h,
- src/otlayout/otlparse.c, src/otlayout/otlparse.h,
- src/otlayout/otlutils.h: Updating the OpenType Layout code, adding
- support for the first GSUB lookups. Nothing that really compiles
- for now though.
-
- * src/autohint/ahhint.c (ah_align_serif_edge): Disabled serif stem
- width quantization. It produces slightly better shapes though this
- is not distinguishable with many fonts.
- Remove other dead code.
-
- * src/Jamfile, src/*/Jamfile: Simplified.
- Use $(FT2_SRC_DIR).
-
-2002-11-06 David Turner <[email protected]>
-
- * include/freetype/freetype.h (FT_LOAD_TARGET_LIGHT): New macro.
- (FT_LOAD_TARGET, FT_LOAD_TARGET_MODE): Use `& 15' instead of `& 7'.
-
-2002-11-05 David Turner <[email protected]>
-
- * include/freetype/config/ftoption.h, src/gzip/ftgzip.c: Added
- support for the FT_CONFIG_OPTION_SYSTEM_ZLIB option, used to specify
- the use of system-wide zlib.
-
- Note that this macro, as well as
- TT_CONFIG_OPTION_BYTECODE_INTERPRETER, is not #undef-ed anymore.
- This allows the build system to define them depending on the
- configuration (typically by adding -D flags at compile time).
-
- * src/sfnt/ttcmap0.c (tt_face_build_cmaps): Removed compiler
- warnings in optimized mode relative to the `volatile' local
- variables. This was not a compiler bug after all, but the fact that
- a pointer to a volatile variable is not the same as a volatile
- pointer to a variable :-)
-
- The fix was to change
- `volatile FT_Byte* p'
- into
- `FT_Byte* volatile p'.
-
- * src/pfr/pfrload.c (pfr_phy_font_load), src/pfr/pfrdrivr.c
- (pfr_get_metrics), src/gzip/inftrees.c: Removed compiler warnings in
- optimized modes.
-
- * src/gzip/*.[hc]: Modified our zlib copy in order to prevent
- exporting any zlib function names outside of the component. This
- prevents linking problems on some platforms, when applications want
- to link FreeType _and_ zlib together.
-
-2002-11-05 Juliusz <[email protected]>
-
- * src/psaux/psobjs.c (ps_table_add): Modified increment loop in
- order to implement exponential behaviour.
-
-2002-11-01 David Turner <[email protected]>
-
- Added PFR-specific public API. Fixed the kerning retrievel routine
- (it returned invalid values when the outline and metrics resolution
- differ).
-
- * include/freetype/ftpfr.h, include/freetype/internal/pfr.h: New
- files.
-
- * include/freetype/internal/internal.h (FT_INTERNAL_PFR_H): New
- macro for pfr.h.
-
- * src/base/ftpfr.c: New file.
- * src/base/Jamfile, src/base/descrip.mms: Updated.
-
- * src/pfr/pfrdrivr.c: Include FT_INTERNAL_PFR_H.
- (pfr_get_kerning, pfr_get_advance, pfr_get_metrics): New functions.
- (pfr_service_rec): New format interface.
- (pfr_driver_class): Use `pfr_service_rec'.
- Replace `pfr_face_get_kerning' with `pfr_get_kerning'.
- * src/pfr/pfrobjs.c: Remove dead code.
-
- * src/base/ftobjs.c (ft_glyphslot_clear): Small internal fix to
- better support bitmap-based font formats.
-
- * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Fix handling of
- `scale'.
- Fix arguments to `FT_Vector_From_Polar'.
-
-2002-10-31 David Turner <[email protected]>
-
- Add support for automatic handling of gzip-compressed PCF files.
-
- * src/gzip/*: New files, taken from the zlib package (except
- ftgzip.c).
-
- * include/freetype/ftgzip.h, src/gzip/ftgzip.c: New files.
- * include/freetype/config/ftheader.h (FT_GZIP_H): New macro for
- `ftgzip.h'.
-
- * src/pcf/pcfdriver.c: Include FT_GZIP_H and FT_ERRORS_H.
- (PCF_Face_Init): If normal open fails, try to open gzip stream.
- (PCF_Face_Done): Close gzip stream.
-
- * include/freetype/internal/pcftypes.h (PCF_Public_FaceRec),
- src/pcf/pcf.h (PCF_FaceRec): Add `gzip_stream' and `gzip_source'.
-
- * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_USE_ZLIB):
- New macro.
- (T1_CONFIG_OPTION_DISABLE_HINTER, FT_CONFIG_OPTION_USE_CMAPS
- FT_CONFIG_OPTION_NO_CONVENIENCE_FUNCS,
- FT_CONFIG_OPTION_ALTERNATE_GLYPH_FORMATS): Removed.
-
- (FT_EXPORT, FT_EXPORT_DEF, FT_DEBUG_LEVEL_ERROR,
- FT_DEBUG_LEVEL_TRACE, FT_DEBUG_MEMORY): Comment out definitions so
- that platform specific configuration file can override.
-
- * include/freetype/internal/ftstream.h: Include FT_SYSTEM_H.
-
-2002-10-30 David Turner <[email protected]>
-
- * FreeType 2.1.3rc3 released.
-
-2002-10-25 David Turner <[email protected]>
-
- * include/freetype/ftcache.h (FT_POINTER_TO_ULONG): New macro.
- (FTC_FACE_ID_HASH): Rewritten, using FT_POINTER_TO_ULONG.
-
-2002-10-22 Giuseppe Ghibò <[email protected]>
-
- * include/freetype/freetype.h (FT_Encoding): Fix entry for latin-2.
-
-2002-10-07 Werner Lemberg <[email protected]>
-
- * include/freetype/freetype.h (FT_Open_Face): Use `const' for `args'
- (suggested by Graham).
- * src/base/ftobjs.c (FT_Open_Face): Updated.
- (ft_input_stream_new): Ditto.
-
-2002-10-05 David Turner <[email protected]>
-
- Adding support for embedded bitmaps to the PFR driver, and rewriting
- its kerning loader/handler to use all kerning pairs in a physical
- font (and not just the first item).
-
- * src/pfr/pfr.c: Include `pfrsbit.c'.
- * src/pfr/pfrgload.c: Include `pfrsbit.h'.
- * src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): Rewritten.
- (pfr_phy_font_done, pfr_phy_font_load): Updated.
- * src/pfr/pfrobks.c: Include `pfrsbit.h'.
- (pfr_face_init): Handle kerning and embedded bitmaps.
- (pfr_slot_load): Load embedded bitmaps.
- (PFR_KERN_INDEX): Removed.
- (pfr_face_get_kerning): Rewritten.
- * src/pfr/pfrsbit.c, src/pfr/pfrsbit.h: New files.
- * src/pfr/pfrtypes.h (PFR_KernItemRec): New structure.
- (PFR_KERN_INDEX): New macro.
- (PFR_PhyFontRec): Add items for kerning and embedded bitmaps.
- * src/pfr/Jamfile (_sources) [FT2_MULTI]: Add `pfrsbit'.
-
- * src/base/ftobjs.c (FT_Load_Glyph): Don't load bitmap fonts if
- FT_LOAD_NO_RECURSE is set.
- Load embedded bitmaps only if FT_LOAD_NO_BITMAP isn't set.
-
- * src/tools/docmaker/content.py, src/tools/docmaker/sources.py,
- src/tools/docmaker/tohtml.py: Fixing a few nasty bugs.
-
- * src/sfnt/ttcmap0.c (tt_cmap4_validate): The validator for format 4
- sub-tables is now capable of dealing with invalid `length' fields at
- the start of the sub-table. This allows fonts like `mg______.ttf'
- (i.e. Marriage) to return accurate charmaps.
-
- * docs/CHANGES: Updated.
-
-2002-10-05 Werner Lemberg <[email protected]>
-
- * src/smooth/ftgrays.c (SUBPIXELS): Add cast to `TPos'.
- Update all callers.
- (TRUNC): Add cast to `TCoord'.
- Update all callers.
- (TRaster): Use `TPos' for min_ex, max_ex, min_ey, max_ey, and
- last_ey.
- Update all casts.
- (gray_render_line): Fix casts for `p' and `first'.
-
-2002-10-02 Detlef Würkner <[email protected]>
-
- * src/bdf/bdflib.c (bdf_load_font): Allocate the _bdf_parse_t
- structure with FT_ALLOC instead of using the stack.
-
-2002-09-27 Werner Lemberg <[email protected]>
-
- * src/include/freetype/internal/tttypes.h (num_sbit_strikes,
- num_sbit_scales): Use `FT_ULong'.
- * src/sfnt/sfobjs.c (sfnt_load_face): Updated accordingly.
- * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Ditto.
- (find_sbit_image): Remove cast.
- * src/raster/ftrend1.c (ft_raster1_render): Fix cast.
-
-2002-09-27 Wolfgang Domröse <[email protected]>
-
- * src/sfnt/ttload.c (tt_face_load_names): Use cast.
- * src/sfnt/ttcmap.c (code_to_next2): Use long constant.
- (code_to_index4): Use cast.
- (code_to_index8_12): Fix cast.
- * src/sfnt/ttcmap0.c (tt_cmap4_char_next, tt_cmap8_char_index,
- tt_cmap12_char_index): Use cast for `result'.
- (tt_face_build_cmaps): Use cast.
- * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_ucs4): Use cast for
- `code'.
- (sfnt_load_face): Use FT_Int32 for `flags'.
-
- * src/smooth/ftgrays.c (gray_render_scanline, gray_render_line,
- gray_compute_cbox, gray_convert_glyph, gray_raster_reset): Add casts
- to `TCoord' and `int'.
- More 16bit fixes.
- s/FT_Pos/TPos/.
- * src/smooth/ftsmooth.c (ft_smooth_render_generic): Add casts.
-
-2002-09-26 Werner Lemberg <[email protected]>
-
- * src/sfnt/ttpost.c (load_post_names, tt_face_free_ps_names,
- tt_face_get_ps_name): Replace switch statement with if clauses to
- make it more portable.
-
- * src/cff/cffobjs.c (cff_face_init): Ditto.
-
- * include/freetype/ftmodule.h (FT_Module_Class): Use `FT_Long' for
- `module_size'.
- * include/freetype/ftrender.h (FT_Glyph_Class_): Use `FT_Long' for
- `glyph_size'.
-
- * src/base/ftobjs.c (FT_Render_Glyph): Change second parameter to
- `FT_Render_Mode'.
- (FT_Render_Glyph_Internal): Change third parameter to
- `FT_Render_Mode'.
- * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Change second parameter
- to `FT_Render_Mode'.
-
- * src/raster/ftrend1.c (ft_raster1_render): Change third parameter
- to `FT_Render_Mode'.
- * src/smooth/ftsmooth.c (ft_smooth_render, ft_smooth_render_lcd,
- ft_smooth_render_lcd_v): Ditto.
- (ft_smooth_render_generic): Change third and fifth parameter to
- `FT_Render_Mode'.
-
- * include/freetype/freetype.h, include/freetype/internal/ftobjs.h,
- include/freetype/ftglyph.h: Updated.
-
- * src/cff/cffdrivr.c (Load_Glyph), src/pcf/pcfdriver.c
- (PCF_Glyph_Load), src/pfr/pfrobjs.c (pfr_slot_load),
- src/winfonts/winfnt.c (FNT_Load_Glyph), src/t42/t42objs.c
- (T42_GlyphSlot_Load), src/bdf/bdfdrivr.c (BDF_Glyph_Load): Change
- fourth parameter to `FT_Int32'.
-
- * src/pfr/pfrobjs.c (pfr_face_init): Add two missing parameters
- and declare them as unused.
-
- * src/cid/cidparse.h (CID_Parser): Use FT_Long for `postscript_len'.
-
- * src/psnames/psnames.h (PS_Unicode_Value_Func): Change return
- value to FT_UInt32.
- * src/psnames/psmodule.c (ps_unicode_value, ps_build_unicode_table):
- Updated accordingly.
-
-2002-09-26 Wolfgang Domröse <[email protected]>
-
- * src/cff/cffdrivr.c (Get_Kerning): Use FT_Long for `middle'.
- (cff_get_glyph_name): Use cast for result of ft_strlen.
- * src/cff/cffparse.c (cff_parse_real): User cast for assigning
- `exp'.
- * src/cff/cffload.c (cff_index_get_pointers): Use FT_ULong for
- some local variables.
- (cff_charset_load, cff_encoding_load): Use casts to FT_UInt for some
- switch statements.
- (cff_font_load): Use cast in call to CFF_Load_FD_Select.
- * src/cff/cffobjs.c (cff_size_init): Use more casts.
- (cff_face_init): Use FT_Int32 for `flags'.
- * src/cff/cffgload.c (cff_operator_seac): Use cast for assigning
- `adx' and `ady'.
- (cff_decoder_parse_charstrings): Use FT_ULong for third parameter.
- Use more casts.
- * src/cff/cffcmap.c (cff_cmap_unicode_init): Use cast for `count'.
-
- * src/cid/cidload.c (cid_read_subrs): Use FT_ULong for `len'.
- * src/cid/cidgload.c (cid_load_glyph): Add missing cast for
- `cid_get_offset'.
-
- * src/psaux/t1decode.c (t1_decoder_parse_charstrings) <18>: Use
- cast for `num_points'.
- (t1_decoder_init): Use cast for assigning `decoder->num_glyphs'.
-
- * src/base/ftdebug.c (ft_debug_init): Use FT_Int.
- * include/freetype/internal/ftdriver.h (FT_Slot_LoadFunc): Use
- `FT_Int32' for fourth parameter.
- * src/base/ftobjs.c (open_face): Use cast for calling
- clazz->init_face.
-
- * src/raster/ftraster.c (Set_High_Precision): Use `1' instead of
- `1L'.
- (Finalize_Profile_Table, Line_Up, ft_black_init): Use casts.
- * src/raster/ftrend1.c (ft_raster1_render): Ditto.
-
- * src/sfnt/sfnt_dir_check: Compare `magic' with unsigned long
- constant.
-
-2002-09-26 Detlef Würkner <[email protected]>
-
- * builds/amiga/include/freetype/config/ftmodule.h: Updated.
-
-2002-09-25 David Turner <[email protected]>
-
- * src/autohint/ahtypes.h (AH_HINT_METRICS): Disabling metrics
- hinting in the auto-hinter. This produces much better anti-aliased
- text.
-
- * docs/CHANGES: Updating the changes documentation.
-
-2002-09-25 Anthony Fok <[email protected]>
-
- * src/sfnt/ttcmap0.c (tt_cmap4_validate, tt_cmap4_char_index,
- tt_cmap4_char_next): Added support for opens___.ttf (it contains a
- charmap that uses offset=0xFFFFU instead of 0x0000 to indicate a
- missing glyph).
-
-2002-09-21 Wolfgang Domröse <[email protected]>
-
- * src/truetype/ttdriver.c (Load_Glyph): Fourth parameter must be
- FT_Int32.
- * src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph):
- Ditto.
-
-2002-09-19 Wolfgang Domröse <[email protected]>
-
- More 16bit fixes.
-
- * src/autohint/ahglobal.c (sort_values): Use FT_Pos for `swap'.
- (ah_hinter_compute_widths): Use FT_Pos for `dist'.
- Use AH_MAX_WIDTHS.
- * src/autohint/ahglyph.c (ah_outline_scale_blue_edges): Use FT_Pos
- for `delta'.
- (ah_outline_compute_edges): Replace some ints with FT_Int and
- FT_Pos.
- (ah_test_extrema): Clean up code.
- (ah_get_orientation): Use 4 FT_Int variables instead of FT_BBox to
- hold indices.
- * src/autohint/ahtypes.h (AH_SegmentRec): Change type of `score'
- to FT_Pos.
-
-2002-09-19 Werner Lemberg <[email protected]>
-
- * builds/unix/config.guess, builds/unix/config.sub: Updated to
- recent versions.
-
-2002-09-18 David Turner <[email protected]>
-
- * src/base/ftobjs.c (FT_Library_Version): Bugfix.
-
- * FreeType 2.1.3rc2 (release candidate 2) is released!
-
-2002-09-17 David Turner <[email protected]>
-
- * include/freetype/freetype.h, include/freetype/ftimage.h,
- include/freetype/ftstroker.h, include/freetype/ftsysio.h,
- include/freetype/ftsysmem.h, include/freetype/ttnameid.h: Updating
- the in-source documentation.
-
- * src/tools/docmaker/tohtml.py: Updating the HTML formatter in the
- DocMaker tool.
-
- * src/tools/docmaker.py: Removed.
-
-2002-09-17 Werner Lemberg <[email protected]>
-
- More 16bit fixes.
-
- * src/psaux/psobjs.c (reallocate_t1_table): Use FT_Long for
- second parameter.
-
-2002-09-16 Werner Lemberg <[email protected]>
-
- 16bit fixes from Wolfgang Domröse.
-
- * src/type1/t1parse.h (T1_ParserRec): Change type of `base_len'
- and `private_len' to FT_Long.
- * src/type1/t1parse.c (T1_Get_Private_Dict): Remove cast for
- `private_len'.
- * src/type1/t1load.c: Use FT_Int cast for most calls of T1_ToInt.
- Use FT_PtrDist where appropriate.
- (parse_encoding): Use FT_Long for `count' and `n'.
- (read_binary_data): Use FT_Long* for second parameter.
- * src/type1/t1afm.c (afm_atoindex): Use FT_PtrDist.
-
- * src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused label.
- * src/pshinter/pshalgo3.c (psh3_hint_align): Remove unused variable.
-
-2002-09-14 Werner Lemberg <[email protected]>
-
- Making ftgrays.c compile stand-alone again.
-
- * include/freetype/ftimage.h: Include ft2build.h only if _STANDALONE_
- isn't defined.
- * src/smooth/ftgrays.c [_STANDALONE_]: Define ft_memset,
- FT_BEGIN_HEADER, FT_END_HEADER.
- (FT_MEM_ZERO): Define.
- (TRaster) [GRAYS_USE_GAMMA]: Use `unsigned char' instead of FT_Byte.
- (gray_render_span, gray_init_gamma): Don't use `FT_UInt'.
- Don't cast with `FT_Byte'.
- (grays_init_gamma): Don't use `FT_UInt'.
-
-2002-09-14 Werner Lemberg <[email protected]>
-
- * src/base/ftinit.c (FT_Add_Default_Modules): Improve error message.
- * src/pcf/pcfdriver.c (PCF_Face_Done): Improve tracing message.
- * include/freetype/config/ftoption.h (FT_MAX_MODULES): Increased
- to 32.
-
-2002-09-10 Werner Lemberg <[email protected]>
-
- * builds/unix/configure.ac (version_info): Set to 9:2:3.
- * builds/unix/configure: Regenerated.
- * docs/VERSION.DLL: Updated.
-
-2002-09-09 David Turner <[email protected]>
-
- * src/pshinter/pshalgo2.c (psh2_glyph_find_strong_points),
- src/pshinter/pshalgo3.c (psh3_glyph_find_strong_points): Adding fix
- to prevent seg fault when hints are provided in an empty glyph.
-
- * src/cache/ftccache.i (GEN_CACHE_LOOKUP) [FT_DEBUG_LEVEL_ERROR]:
- Removed conditional code. This fixes a bug that prevented
- compilation in debug mode of template instantiation.
-
- * include/freetype/ftimage.h: Removed incorrect `zft_' definitions
- and updated constants documentation comments.
-
- * src/cff/cffparse.c (cff_parser_run): Fixed the CFF table loader.
- It didn't accept empty arrays, and this prevented the loading of
- certain fonts.
-
- * include/freetype/freetype.h (FT_FaceRec): Updating documentation
- comment. The `descender' value is always *negative*, not positive.
-
-2002-09-09 Owen Taylor <[email protected]>
-
- * src/pcf/pcfdriver.c (PCF_Glyph_Load): Fixing incorrect computation
- of bitmap metrics.
-
-2002-09-08 David Turner <[email protected]>
-
- Various updates to correctly support sub-pixel rendering.
-
- * include/freetype/config/ftmodule.h: Add two renderers for LCD.
-
- * src/base/ftobjs.c (FT_Load_Glyph): Updated.
-
- * src/smooth/ftsmooth.c (ft_smooth_render_lcd,
- ft_smooth_render_lcd_v): Set FT_PIXEL_MODE_LCD and
- FT_PIXEL_MODE_LCD_V, respectively.
-
- * include/freetype/cache/ftcimage.h (FTC_ImageTypeRec): New
- structure.
- Updated all users.
- (FTC_ImageDesc): Removed.
- (FTC_ImageCache_Lookup): Second parameter is now of type
- `FTC_ImageType'.
- Updated all users.
- (FTC_IMAGE_DESC_COMPARE): Updated and renamed to...
- (FTC_IMAGE_TYPE_COMPARE): This.
- (FTC_IMAGE_DESC_HASH): Updated and renamed to...
- (FTC_IMAGE_TYPE_HASH): This.
-
- * include/freetype/cache/ftcsbits.h (FTC_SBitRec): Field `num_grays'
- replaced with `max_grays'.
- `pitch' is now FT_Short.
- (FTC_SBitCache_Lookup): Second parameter is now of type
- `FTC_ImageType'.
- Updated all users.
-
- * src/cache/ftcimage.c (FTC_ImageQueryRec, FTC_ImageFamilyRec):
- Updated.
- (ftc_image_node_init): Updated.
- Moved code to convert type flags to load flags to...
- (FTC_Image_Cache_Lookup): This function.
- (ftc_image_family_init): Updated.
-
- * src/cache/ftcsbit.c (FTC_SBitQueryRec, FTC_SBitFamilyRec):
- Updated.
- (ftc_sbit_node_load): Updated.
- Moved code to convert type flags to load flags to...
- (FTC_SBitCache_Lookup): This function.
-
- * src/autohint/ahtypes.h (AH_HinterRec): Replace `no_*_hints' with
- `do_*_snapping'.
- Update all users (with negation).
- * src/autohint/ahhint.c (ah_compute_stem_width): Fix threshold for
- `dist' for `delta' < 40.
-
- * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Replace `no_*_hints' with
- `do_*_snapping'.
- Update all users (with negation).
- * src/pshinter/pshalgo3.c (psh3_dimension_quantize_len): New
- function.
- (psh3_hint_align): Use it.
- Improve hinting code.
- [STRONGER]: Removed.
- (STRONGER): Removed.
-
- * include/freetype/freetype.h (FT_Set_Hint_Flags, FT_HINT_*):
- Removed.
-
-2002-09-05 Werner Lemberg <[email protected]>
-
- * src/cid/cidobjs.c (CID_Size_Init): Renamed to...
- (cid_size_init): This.
- * src/psaux/psobjs.c (T1_Builder_Add_Point1): Renamed to...
- (t1_builder_add_point1): This.
-
- Updated all affected code.
-
- * src/pshinter/pshalgo3.c (psh3_hint_align): Fix compiler warnings.
- * src/type1/t1gload.c (T1_Compute_Max_Advance): Ditto.
-
-2002-09-04 David Turner <[email protected]>
-
- * include/freetype/freetype.h: Corrected the definition of
- ft_encoding_symbol to be FT_ENCODING_MS_SYMBOL (instead of
- the erroneous FT_ENCODING_SYMBOL).
-
- * builds/unix/unix-def.in (datadir): Initialize it (thanks to
- Anthony Fok).
-
-2002-08-29 David Turner <[email protected]>
-
- Slight modification to the Postscript hinter to slightly increase
- the contrast of smooth hinting. This is very similar to what the
- auto-hinter does when it comes to stem width computations. However,
- it produces better results with well-hinted fonts.
-
- * include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Add hint
- mode to `init' member function.
- (T1_DecoderRec): Add hint mode.
- * include/freetype/internal/pshints (T1_Hints_ApplyFunc,
- T2_Hints_ApplyFunc): Pass `hint_mode', not `hint_flags'.
- * src/psaux/t1decode.c (t1_decoder_init): Add hint mode argument.
- * src/pshinter/pshalgo1.c (ps1_hints_apply): Pass hint mode, not
- hint flags.
- * src/pshinter/pshalgo2.c (ps2_hints_apply): Ditto.
- * src/pshinter/pshalgo3.c (ps3_hints_apply): Ditto.
- (STRONGER): New macro.
- (psh3_hint_align, psh3_hint_table_align_hints): Pass `glyph' instead
- of `hint_flags'.
- Implement announced changes.
- * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add flags to control
- vertical and horizontal hints and snapping.
-
- * README, docs/CHANGES: Updating for the 2.1.3 release.
-
-2002-08-27 David Turner <[email protected]>
-
- * Massive re-formatting changes to many, many source files. I don't
- want to list them all here. The operations performed were all
- logical transformations of the sources:
-
- - trying to convert all enums and constants to CAPITALIZED_STYLE,
- #with define definitions like
-
- #define my_old_constants MY_NEW_CONSTANT
-
- - big, big update of the documentation comments
-
- * include/freetype/freetype.h, src/base/ftobjs.c,
- src/smooth/ftsmooth.c, include/freetype/ftimage.h: Adding support
- for LCD-optimized rendering though the new constants/enums:
-
- FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
- FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
-
- This is still work in progress, don't expect everything to work
- correctly though most of the features have been implemented.
-
- * Adding new FT_LOAD_XXX flags, used to specify both hinting and
- rendering targets:
-
- FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
- FT_LOAD_TARGET_MONO :: monochrome bitmaps
- FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated
- hinting & rendering
- FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated
- hinting & rendering
-
- Note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
- behaviour of the font engine is _unchanged_.
-
- * include/freetype/ftimage.h
- (FT_Outline_{Move,Line,Conic,Cubic}To_Func): Renamed to...
- (FT_Outline_{Move,Line,Conic,Cubic}ToFunc): This.
- (FT_Raster_Span_Func): Renamed to ...
- (FT_SpanFunc): This.
- (FT_Raster_{New,Done,Reset,Set_Mode,Render}_Func): Renamed to ...
- (FT_Raster_{New,Done,Reset,SetMode,Render}Func}: This.
-
- Updated all affected code.
-
- * include/freetype/ftrender.h
- (FT_Glyph_{Init,Done,Transform,BBox,Copy,Prepare}_Func): Renamed
- to ...
- (FT_Glyph_{Init,Done,Transform,GetBBox,Copy,Prepare}Func): This.
- (FTRenderer_{render,transform,getCBox,setMode}): Renamed to ...
- (FT_Renderer_{RenderFunc,TransformFunc,GetCBoxFunc,SeteModeFunc}):
- This.
-
- Updated all affected code.
-
- * src/autohint/ahtypes.h (AH_Point, AH_Segment, AH_Edge, AH_Globals,
- AH_Face_Globals, AH_Outline, AH_Hinter): These typedefs are now
- pointers to the corresponding `*Rec' structures. All source files
- have been updated accordingly.
-
- * src/cff/cffgload.c (cff_decoder_init): Add hint mode as parameter.
- * src/cff/cffgload.h (CFF_Decoder): Add `hint_mode' element.
-
- * src/cid/cidgload.c (CID_Compute_Max_Advance): Renamed to...
- (cid_face_compute_max_advance): This.
- (CID_Load_Glyph): Renamed to...
- (cid_slot_load_glyph): This.
- * src/cid/cidload.c (CID_Open_Face): Renamed to...
- (cid_face_open): This.
- * src/cid/cidobjs.c (CID_GlyphSlot_{Done,Init}): Renamed to...
- (cid_slot_{done,init}): This.
- (CID_Size_{Get_Globals_Funcs,Done,Reset): Renamed to...
- (cid_size_{get_globals_funcs,done,reset): This.
- (CID_Face_{Done,Init}): Renamed to...
- (cid_face_{done,init}): This.
- (CID_Driver_{Done,Init}: Renamed to...
- (cid_driver_{done,init}: This.
- * src/cid/cidparse.c (CID_{New,Done}_Parser): Renamed to...
- (cid_parser_{new,done}): This.
- * src/cid/cidparse.h (CID_Skip_{Spaces,Alpha}): Renamed to...
- (cid_parser_skip_{spaces,alpha}): This.
- (CID_To{Int,Fixed,CoordArray,FixedArray,Token,TokenArray}): Renamed
- to...
- (cid_parser_to_{int,fixed,coord_array,fixed_array,token,token_array}):
- This.
- (CID_Load_{Field,Field_Table): Renamed to...
- (cid_parser_load_{field,field_table}): This.
- * src/cid/cidriver.c (CID_Get_Interface): Renamed to...
- (cid_get_interface): This.
-
- Updated all affected code.
-
- * src/psaux/psobjs.c (PS_Table_*): Renamed to...
- (ps_table_*): This.
- (T1_Builder_*): Renamed to...
- (t1_builder_*): This.
- * src/psaux/t1decode.c (T1_Decoder_*): Renamed to...
- (t1_decoder_*): This.
-
- * src/psnames/psmodule.c (PS_*): Renamed to...
- (ps_*): This.
-
- Updated all affected code.
-
- * src/sfnt/sfdriver (SFNT_Get_Interface): Renamed to...
- (sfnt_get_interface): This.
- * src/sfnt/sfobjs.c (SFNT_*): Renamed to...
- (sfnt_*): This.
- * src/sfnt/ttcmap.c (TT_CharMap_{Load,Free}): Renamed to...
- (tt_face_{load,free}_charmap): This.
- * src/sfnt/ttcmap0.c (TT_Build_CMaps): Renamed to...
- (tt_face_build_cmaps): This.
- * src/sfnt/ttload.c (TT_*): Renamed to...
- (tt_face_*): This.
- * src/sfnt/ttpost.c (TT_Post_Default_Names): Renamed to...
- (tt_post_default_names): This.
- (Load_*): Renamed to...
- (load_*): This.
- (TT_*): Renamed to...
- (tt_face_*): This.
- * src/sfnt/ttsbit.c (TT_*): Renamed to...
- (tt_face_*): This.
- ({Find,Load,Crop}_*): Renamed to...
- ({find,load,crop}_*): This.
-
- Updated all affected code.
-
- * src/smooth/ftsmooth.c (ft_smooth_render): Renamed to...
- (ft_smooth_render_generic): This.
- Make function more generic by adding vertical and horizontal scaling
- factors.
- (ft_smooth_render, ft_smooth_render_lcd, ft_smooth_render_lcd_v):
- New functions.
-
- (ft_smooth_locd_renderer_class, ft_smooth_lcdv_renderer_class): New
- classes.
-
- * src/truetype/ttobjs.c (TT_{Done,New}_GlyphZone): Renamed to...
- (tt_glyphzone_{done,new}): This.
- (TT_{Face,Size,Driver}_*): Renamed to...
- (tt_{face,size,driver}_*): This.
- * src/truetype/ttpload.c (TT_Load_Locations): Renamed to...
- (tt_face_load_loca): This.
- (TT_Load_Programs): Renamed to...
- (tt_face_load_fpgm): This.
- (TT_*): Renamed to...
- (tt_face_*): This.
-
-2002-08-27 Werner Lemberg <[email protected]>
-
- * docs/VERSION.DLL: New file.
-
-2002-08-23 Graham Asher <[email protected]>
-
- * src/cff/cffgload.c (cff_operator_seac)
- [FT_CONFIG_OPTION_INCREMENTAL]: Incremental fonts (actually not
- incremental in the case of CFF but just using callbacks to get glyph
- recipes) pass the character code, not the glyph index, to the
- get_glyph_data function; they have no valid charset table.
-
- * src/cff/cffload.c (cff_font_load): Removed special cases for
- FT_CONFIG_OPTION_INCREMENTAL, which are no longer necessary; CFF
- fonts provided via the incremental interface now have to conform
- more closely to the CFF font format.
-
- * src/cff/cffload.h (cff_font_load): Removed argument now unneeded.
-
- * src/cff/cffobjs.c (cff_face_init): Changed call to cff_font_load
- to conform with new signature.
-
-2002-08-22 David Turner <[email protected]>
-
- * src/base/ftobject.c, src/base/ftsynth.c, src/base/ftstroker.c,
- src/bdf/bdfdrivr.c: Removed compiler warnings.
-
-2002-08-21 Werner Lemberg <[email protected]>
-
- * src/pshinter/pshalgo3.c (psh3_glyph_compute_inflections,
- psh3_glyph_compute_extrema, psh3_hint_table_find_strong_point): Fix
- compiler warnings and resolve shadowing of local variables.
-
-2002-08-21 David Turner <[email protected]>
-
- The automatic and Postscript hinter now automatically detect
- inflection points in glyph outlines and treats them specially. This
- is very useful to prevent nasty effect like the disappearing
- diagonals of `S' and `s' in many, many fonts.
-
- * src/autohint/ahtypes.h (ah_flag_inflection): New macro.
- * src/autohint/ahangles.c (ah_angle_diff): New function.
- * src/autohint/ahangles.h: Updated.
- * src/autohint/ahglyph.c (ah_outline_compute_inflections): New
- function.
- (ah_outline_detect_features): Use it.
- * src/autohint/ahhint.c (ah_hinter_align_strong_points)
- [!AH_OPTION_NO_WEAK_INTERPOLATION]: Handle inflection.
-
- * src/tools/docmaker/docmaker.py, src/tools/docmaker/utils.py,
- src/tools/docmaker/tohtml.py: Updating the DocMaker tool.
-
- * include/freetype/freetype.h: Changing the type of the `load_flags'
- parameter from `FT_Int' to `FT_Int32', this in order to support more
- options. This should only break binary and/or source compatibility
- on 16-bit platforms (Atari?).
- (FT_LOAD_NO_AUTOHINT): New macro.
-
- * src/base/ftobjs.c (FT_Load_Glyph): Updated.
- Handle FT_LOAD_NO_AUTOHINT.
- (FT_Load_Char): Updated.
-
- * src/pshinter/pshalgo3.c, src/base/ftobjs.c, src/base/ftobject.c,
- src/autohint/ahglyph.c, include/freetype/freetype.h: Fixing typos
- and removing compiler warnings.
-
-2002-08-20 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c (TT_Get_Metrics): Add guard for k = 0.
-
-2002-08-20 David Turner <[email protected]>
-
- * src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c,
- src/pshinter/pshglob.c, src/pshinter/pshrec.c,
- src/autohint/ahmodule.c [DEBUG_HINTER]: Removing compiler warnings
- (only used in development builds anyway).
-
- Improve support of local extrema and stem edge points.
-
- * src/pshinter/pshalgo3.h (PSH3_Hint_TableRec): Use PSH3_ZoneRec
- for `zones'.
- (PSH3_DIR_UP, PSH3_DIR_DOWN): Exchange values.
- (PSH3_DIR_HORIZONTAL, PSH3_DIR_VERTICAL): New macros.
- (PSH3_DIR_COMPARE, PSH3_DIR_IS_HORIZONTAL, PSH3_IS_VERTICAL): New
- macros.
- (PSH3_POINT_INFLEX): New enum.
- (psh3_point_{is,set}_{off,inflex}): New macros.
- (PSH3_POINT_{EXTREMUM,POSITIVE,NEGATIVE,EDGE_MIN,EDGE_MAX): New
- enum values.
- (psh3_point_{is,set}_{extremum,positive,negative,edge_min,edge_max}):
- New macros.
- (PSH3_PointRec): New members `flags2' and `org_v'.
- (PSH3_POINT_EQUAL_ARG, PSH3_POINT_ANGLE): New macros.
-
- * src/pshinter/pshalgo3.c [DEBUG_HINTER]: Removing compiler
- warnings.
- (COMPUTE_INFLEXS): New macro.
- (psh3_hint_align): Simplify some basic arithmetic computations.
- (psh3_point_is_extremum): Removed.
- (psh3_glyph_compute_inflections) [COMPUTE_INFLEXS]: New function.
- (psh3_glyph_init) [COMPUTE_INFLEXS]: Use it.
- (psh3_glyph_compute_extrema): New function.
- (PSH3_STRONG_THRESHOLD): Increased to 30.
- (psh3_hint_table_find_strong_point): Improved.
- (psh3_glyph_find_strong_points,
- psh3_glyph_interpolate_strong_points): Updated.
- (psh3_hints_apply): Use psh3_glyph_compute_extrema.
-
- * test/gview.c (draw_ps3_hint, ps3_draw_control_points): New
- functions.
- Other small updates.
-
- * Jamfile: Small updates.
-
-2002-08-18 Arkadiusz Miskiewicz <[email protected]>
-
- * builds/unix/install.mk (install, uninstall): Add $(DESTDIR) to
- make life easier for package maintainers.
-
-2002-08-18 Werner Lemberg <[email protected]>
-
- * src/pcf/pcfdriver.c (PCF_Glyph_Load): Fix computation of
- horiBearingX.
- * src/bdf/bdfdrivr.c (BDF_GlyphLoad): Fix computation of
- horiBearingY.
-
-2002-08-16 George Williams <[email protected]>
-
- Add support for Apple composite glyphs.
-
- * include/freetype/config/ftoption.h
- (TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED): New macro.
-
- * src/truetype/ttgload.c (OVERLAP_COMPOUND, SCALED_COMPONENT_OFFSET,
- UNSCALED_COMPONENT_OFFSET): New macros for additional OpenType
- glyph loading flags.
- (load_truetype_glyph): Implement it.
-
-2002-08-16 Werner Lemberg <[email protected]>
-
- * src/cff/cffgload.c (cff_free_glyph_data),
- src/cff/cffload.c (cff_font_load): Use FT_UNUSED.
-
-2002-08-15 Werner Lemberg <[email protected]>
-
- * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Initialize `error'.
- * src/sfnt/sfobjs.c (SFNT_Load_Face): Fix compiler warning.
-
-2002-08-15 Graham Asher <[email protected]>
-
- Implemented the incremental font loading system for the CFF driver.
- Tested using the GhostScript-to-FreeType bridge (under development).
-
- * src/cff/cffgload.c (cff_get_glyph_data, cff_free_glyph_data): New
- functions.
- (cff_operator_seac, cff_compute_max_advance, cff_slot_load): Use
- them.
- * src/cff/cffload.c (cff_font_load): Add `face' parameter.
- Load charset and encoding only if there are glyphs.
- [FT_CONFIG_OPTION_INCREMENTAL]: Incremental fonts don't need
- character recipes.
- * src/cff/cffload.h, src/cff/cffobjs.c: Updated.
-
- * src/cid/cidgload.c (cid_load_glyph)
- [FT_CONFIG_OPTION_INCREMENTAL]: Corrected the incremental font
- loading implementation to use the new system introduced on
- 2002-08-01.
-
-2002-08-06 Werner Lemberg <[email protected]>
-
- * src/cff/cffcmap.c: Remove compiler warnings.
- * src/cache/ftccache.c, src/cache/ftccache.i,
- src/pfr/pfrload.c, src/pfr/pfrgload.c: s/index/idx/.
- * src/cff/cffload.c: s/select/fdselect/.
- * src/raster/ftraster.c: s/wait/waiting/.
-
-2002-08-01 Graham Asher <[email protected]>
-
- * src/type1/t1load.c (T1_Open_Face): Tolerate a face with no
- charstrings if there is an incremental loading interface. Type 1
- faces supplied by PostScript interpreters like GhostScript will
- typically not provide any charstrings at load time, so this is
- essential if they are to work.
-
-2002-08-01 Graham Asher <[email protected]>
-
- Modified incremental loading interface to be closer to David's
- preferences. The header freetype.h is not now affected, the
- interface is specified via an FT_Parameter, the pointer to the
- interface is hidden in an internal part of the face record, and all
- the definitions are in ftincrem.h.
-
- * include/freetype/freetype.h [FT_CONFIG_OPTION_INCREMENTAL]:
- Removed.
- * include/freetype/internal/ftobjs.h [FT_CONFIG_OPTION_INCREMENTAL]:
- Include FT_INCREMENTAL_H.
- (FT_Face_InternalRec) [FT_CONFIG_OPTION_INCREMENTAL]: Add
- `incremental_interface'.
-
- * src/base/ftobjs.c (open_face, FT_Open_Face)
- [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
- * src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]:
- Updated.
-
- * src/truetype/ttgload.c (load_truetype_glyph)
- [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
- Free loaded glyph data properly.
- (compute_glyph_metrics, TT_Load_Glyph)
- [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
- * src/truetype/ttobjs.c (TT_Face_Init)
- [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
-
- * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
- [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
- (T1_Parse_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
- Free loaded glyph data properly.
- (T1_Load_Glyph): Updated.
- [FT_CONFIG_OPTION_INCREMENTAL]: Free loaded glyph data properly.
-
-2002-07-30 David Turner <[email protected]>
-
- * include/freetype/ftincrem.h: Adding new experimental header file
- to demonstrate a `cleaner' API to support incremental font loading.
-
- * include/freetype/config/ftheader.h (FT_INCREMENTAL_H): New macro.
-
- * src/tools/docmaker/*: Adding new (more advanced) version of
- the DocMaker tool, using Python's sophisticated regexps.
-
-2002-07-28 Werner Lemberg <[email protected]>
-
- s/ft_memset/FT_MEM_SET/.
- s/FT_MEM_SET/FT_MEM_ZERO/ where appropriate.
-
-2002-07-27 Werner Lemberg <[email protected]>
-
- * src/sfnt/ttload.c (sfnt_dir_check): Make it work with TTCs.
-
-2002-07-26 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c (load_truetype_glyph)
- [FT_CONFIG_OPTION_INCREMENTAL]: s/memset/ft_memset/.
-
- * src/autohint/ahhint.c (ah_hint_edges_3): Fix compiler warning.
- * src/cff/cffload.c (cff_encoding_load): Remove `memory' variable.
- * src/cff/cffcmap.c (cff_cmap_encoding_init): Remove `psnames'
- variable.
- * src/truetype/ttgload.c (load_truetype_glyph): Remove statement
- without effect.
- * src/truetype/ttdriver (Get_Char_Index, Get_Next_Char): Removed.
-
- * src/pshinter/pshalgo3.c (psh3_hint_table_record,
- psh3_hint_table_init, psh3_hint_table_activate_mask): Fix error
- message.
-
-2002-07-24 Graham Asher <[email protected]>
-
- * src/truetype/ttobjs.c: Fix for bug reported by Sven Neumann
- [[email protected]] on the FreeType development forum: `If
- FT_CONFIG_OPTION_INCREMENTAL is undefined (this is the default), the
- TrueType loader crashes in line 852 of src/truetype/ttgload.c when
- it tries to access face->glyph_locations.'
-
-2002-07-18 Graham Asher <[email protected]>
-
- Added types and structures to support incremental typeface loading.
- The FT_Incremental_Interface structure, defined in freetype.h, is
- designed to be passed to FT_Open_Face to provide callback functions
- to obtain glyph recipes and metrics, for fonts like those passed
- from PostScript that do not necessarily provide all, or any, glyph
- information, when first opened.
-
- * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL):
- New configuration macro to enable incremental face loading. By
- default it is not defined.
-
- * include/freetype/freetype.h (FT_Basic_Glyph_Metrics,
- FT_Get_Glyph_Data_Func, FT_Get_Glyph_Metrics_Func,
- FT_Incremental_Interface_Funcs, FT_Incremental_Interface)
- [FT_CONFIG_OPTION_INCREMENTAL]: New.
- (FT_Open_Args, FT_FaceRec) [FT_CONFIG_OPTION_INCREMENTAL]: New field
- `incremental_interface'.
- (FT_Open_Flags) [FT_CONFIG_OPTION_INCREMENTAL]: New enum
- `ft_open_incremental'.
-
- * include/freetype/fttypes.h: Include FT_CONFIG_CONFIG_H.
- (FT_Data): New structure to represent binary data.
-
- * src/base/ftobjs.c (open_face) [FT_CONFIG_OPTION_INCREMENTAL]:
- Add parameter for incremental loading.
- (FT_Open_Face) [FT_CONFIG_OPTION_INCREMENTAL]: Use incremental
- interface.
-
- * src/truetype/ttgload.c (load_truetype_glyph)
- [FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system
- for the TrueType driver.
- (compute_glyph_metrics): Return FT_Error.
- [FT_CONFIG_OPTION_INCREMENTAL]: Check for overriding metrics.
- (TT_Load_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Don't look for
- the glyph table while handling an incremental font.
- Get glyph offset.
-
- * src/truetype/ttobjs.c (TT_Face_Init)
- [FT_CONFIG_OPTION_INCOREMENTAL]: Added the incremental loading
- system for the TrueType driver.
-
- * src/cid/cidgload.c (cid_load_glyph)
- [FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system
- for the CID driver.
-
- * src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]:
- Changes to support incremental Type 42 fonts: Assume a font has
- glyphs if it has an incremental interface object.
-
- * src/type1/t1gload.c (T1_Parse_Glyph): Renamed to...
- (T1_Parse_Glyph_And_Get_Char_String): This.
- [FT_CONFIG_OPTION_INCREMENTAL]: Added support for incrementally
- loaded Type 1 faces.
- (T1_Parse_Glyph): New function.
- (T1_Load_Glyph): Updated.
-
-2002-07-17 David Turner <[email protected]>
-
- Cleaning up the cache sub-system code; linear hashing is now the
- default.
-
- * include/freetype/cache/ftccache.h, src/cache/ftccache.i,
- src/cache/ftccache.c [!FTC_CACHE_USE_LINEAR_HASHING]: Removed.
- (FTC_CACHE_USE_LINEAR_HASHING: Removed also.
-
- FT_CONFIG_OPTION_USE_CMAPS is now the default.
-
- * include/freetype/internal/ftdriver.h (FT_Driver_ClassRec): Remove
- `get_char_index' and `get_next_char'.
-
- * include/freetype/config/ftoption.h,
- include/freetype/internal/tttypes.h, src/base/ftobjs.c,
- src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/pcf/pcfdrivr.c,
- src/pfr/pfrdrivr.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c,
- src/sfnt/ttcmap0.h, src/sfnt/ttload.c, src/type1/t1objs.c,
- src/type42/t42objs.c, src/winfonts/winfnt.c
- [!FT_CONFIG_OPTION_USE_CMAPS]: Removed. The new cmap code is now
- the default.
-
- * src/type42/t42objs.c (T42_CMap_CharIndex, T42_CMap_CharNext):
- Removed.
- * src/type42/t42objs.h: Updated.
-
- * src/cid/cidriver.c (Cid_Get_Char_Index, Cid_Get_Next_Char):
- Removed.
- (t1_cid_driver_class): Updated.
- * src/truetype/ttdriver.c (tt_driver_class): Updated.
- * src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Removed
- (t1_driver_class): Updated.
- * src/type42/t42drivr.c (t42_driver_class): Updated.
-
- * src/base/ftobjs.c (open_face): Select Unicode cmap by default.
-
- * src/sfnt/ttload.c (TT_Load_SFNT_Header): Fixed a recent bug that
- prevented OpenType fonts to be recognized by FreeType.
-
-2002-07-11 David Turner <[email protected]>
-
- Changing the SFNT loader to check for SFNT-based font files
- differently. We now ignore the range `helper' fields and check the
- `head' table's magic number instead.
-
- * include/freetype/internal/tttypes.h (SFNT_HeaderRec): Add `offset'
- field.
-
- * src/sfnt/ttload.c (sfnt_dir_check): New function.
- (TT_Load_SFNT_HeaderRec): Renamed to...
- (TT_Load_SFNT_Header): This.
- Implement new functionality.
- * src/sfnt/ttload.h: Updated.
- * src/sfnt/sfdriver.c (sfnt_interface): Updated.
-
- * src/base/ftobject.c, src/base/fthash.c: Updated object sub-system
- and dynamic hash table implementation (still experimental, don't
- use).
- * include/freetype/internal/fthash.h: Updated.
- * include/freetype/internal/ftobjs.h (FT_LibraryRec): New member
- `meta_class'.
-
- Fixing a bug in the Type 1 loader that prevented valid font bounding
- boxes to be loaded from multiple master fonts.
-
- * include/freetype/t1tables.h (PS_BlendRec): Add `bboxes' field.
-
- * include/freetype/internal/psaux.h (T1_FieldType): Add
- `T1_FIELD_TYPE_BBOX'.
- (T1_FieldLocation): Add `T1_FIELD_LOCATION_BBOX'.
- (T1_FIELD_BBOX): New macro.
-
- * src/psaux/psobjs.c (PS_Parser_LoadField): Handle T1_FIELD_TYPE_BBOX.
- * src/type1/t1load.c (t1_allocate_blend): Create blend->bboxes.
- (T1_Done_Blend): Free blend->bboxes.
- (t1_load_keyword): Handle T1_FIELD_LOCATION_BBOX.
- (parse_font_bbox): Commented out.
- (t1_keywords): Comment out `parse_font_bbox'.
- * src/type1/t1tokens.h: Define `FontBBox' field.
-
-2002-07-10 David Turner <[email protected]>
-
- * src/cff/cffobjs.c: Small fix to select the Unicode charmap by
- default when needed.
- Small fix to allow OpenType fonts to support Adobe charmaps when
- needed.
-
- * src/cff/cffcmap.c, src/cff/cffcmap.h: New files to support
- charmaps for CFF fonts.
-
- * src/cff/cff.c, src/cff/Jamfile, src/cff/rules.mk: Updated.
-
- * include/freetype/internal/cfftypes.h (CFF_EncodingRec): Use
- fixed-length arrays for `sids' and `codes'. Add `count' member.
- (CFF_FontRec): Add `psnames' member.
-
- * src/cff/cffdrivr.c, src/cff/cffload.c, src/cff/cffload.h,
- src/cff/cffobjs.c, src/cff/cffobjs.h, src/cff/cffparse.c,
- src/cffparse.h, src/cff/cffgload.c, src/cff/cffgload.h: Adding
- support for CFF charmaps, reformatting the sources, and removing
- some bugs in the Encoding and Charset loaders.
- Many fonts renamed to use lowercase only:
-
- CFF_Builder_Init -> cff_builder_init
- CFF_Builder_Done -> cff_builder_done
- CFF_Init_Decoder -> cff_decoder_init
- CFF_Parse_CharStrings -> cff_decoder_parse_charstrings
- CFF_Load_Glyph -> cff_slot_load
- CFF_Init_Decoder -> cff_decoder_init
- CFF_Prepare_Decoder -> cff_decoder_prepare
- CFF_Get_Standard_Encoding -> cff_get_standard_encoding
- CFF_Access_Element -> cff_index_access_element
- CFF_Forget_Element -> cff_index_forget_element
- CFF_Get_Name -> cff_index_get_name
- CFF_Get_String -> cff_index_get_sid_string
- CFF_Get_FD -> cff_fd_select_get
- CFF_Done_Charset -> cff_charset_done
- CFF_Load_Charset -> cff_charset_load
- CFF_Done_Encoding -> cff_encoding_done
- CFF_Load_Encoding -> cff_encoding_load
- CFF_Done_SubFont -> cff_subfont_done
- CFF_Load_Font -> cff_font_load
- CFF_Done_Font -> cff_font_done
- CFF_Size_Get_Global_Funcs -> cff_size_get_global_funcs
- CFF_Size_Done -> cff_size_done
- CFF_Size_Init -> cff_size_init
- CFF_Size_Reset -> cff_size_reset
- CFF_GlyphSlot_Done -> cff_slot_done
- CFF_GlyphSlot_Init -> cff_slot_init
- CFF_StrCopy -> cff_strcpy
- CFF_Face_Init -> cff_face_init
- CFF_Face_Done -> cff_face_done
- CFF_Driver_Init -> cff_driver_init
- CFF_Driver_Done -> cff_driver_done
- CFF_Parser_Init -> cff_parser_init
- CFF_Parser_Run -> cff_parser_run
-
- add_point -> cff_builder_add_point
- add_point1 -> cff_builder_add_point1
- add_contour -> cff_builder_add_contour
- close_contour -> cff_builder_close_contour
- cff_explicit_index -> cff_index_get_pointers
-
-2002-07-09 Owen Taylor <[email protected]>
-
- * src/pshinter/pshglob.c (psh_globals_new): Fixed a bug that
- prevented the hinter from using correct standard width and height
- values, resulting in hinting bugs with certain fonts (e.g. Utopia).
-
-2002-07-07 David Turner <[email protected]>
-
- * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Added code to return
- successfully when the function is called with a bitmap glyph (the
- previous code simply returned with an error).
-
- * docs/DEBUG.TXT: Adding debugging support documentation.
-
- * src/base/ftdebug.c (ft_debug_init), builds/win32/ftdebug.c
- (ft_debug_init), builds/amiga/src/ftdebug.c (ft_debug_init): Changed
- the syntax of the FT2_DEBUG environment variable used to control
- debugging output (i.e. logging and error messages). It must now
- look like:
-
- any:6 memory:4 io:3 or
- any:6,memory:4,io:3 or
- any:6;memory:4;io:3
-
-2002-07-07 Owen Taylor <[email protected]>
-
- * src/pshinter/pshglob.c (psh_blues_snap_stem): Adding support for
- blue fuzz.
- * src/pshinter/pshglob.h (PSH_BluesRec): Add `blue_fuzz' field.
- * src/type1/t1load.c (T1_Open_Face): Initialize `blue_fuzz'.
-
- Adding support for hinter-specific bit flags, and the new
- FT_Set_Hint_Flags high-level API.
-
- * include/freetype/freetype.h (FT_Set_Hint_Flags): New function.
- (FT_HINT_NO_INTEGER_STEM, FT_HINT_NO_HSTEM_ALIGN,
- FT_HINT_NO_VSTEM_ALIGN): New macros.
-
- * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Add
- `hint_flags' member.
-
- * src/base/ftobjs.c (FT_Set_Hint_Flags): New function.
-
- * include/freetype/internal/psaux.h (T1_DecoderRec): Add `hint_flags'
- member.
-
- * include/freetype/internal/pshints.h (T1_Hints_ApplyFunc,
- T2_Hints_ApplyFunc): Add parameter to pass hint flags.
-
- * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings,
- T1_Decoder_Init): Use decoder->hint_flags.
- * src/cff/cffgload.h (CFF_Builder): Add `hint_flags' field.
- * src/cff/cffgload.c (CFF_Builder_Init): Set builder->hint_flags.
- (CFF_Parse_CharStrings): Updated.
- * src/pshinter/pshalgo1.c (ps1_hints_apply): Add parameter to handle
- hint flags (unused).
- * src/pshinter/pshalgo1.h: Updated.
- * src/pshinter/pshalgo2.c (ps2_hints_apply): Add parameter to handle
- hint flags (unused).
- * src/pshinter/pshalgo2.h: Updated.
- * src/pshinter/pshalgo3.c (ps3_hints_apply): Add parameter to handle
- hint flags.
- * src/pshinter/pshalgo3.h: Updated.
-
-2002-07-04 David Turner <[email protected]>
-
- * src/pfr/pfrobjs.c (pfr_slot_load): Fixed a small bug that returned
- incorrect advances when the outline resolution was different from
- the metrics resolution.
-
- * src/autohint/ahhint.c: Removing compiler warnings.
-
- * src/autohint/ahglyph.c: s/FT_MEM_SET/FT_ZERO/ where appropriate.
- (ah_outline_link_segments): Slight improvements to the serif
- detection code. More work is needed though.
-
-2002-07-03 David Turner <[email protected]>
-
- Small improvements to the automatic hinter. Uneven stem-widths have
- now disappeared and everything looks much better, even if there are
- still issues with serifed fonts.
-
- * src/autohint/ahtypes.h (AH_Globals): Added `stds' array.
- * src/autohint/ahhint.c (OPTIM_STEM_SNAP): New #define.
- (ah_snap_width): Commented out.
- (ah_align_linked_edge): Renamed to...
- (ah_compute_stem_width): This.
- Don't allow uneven stem-widths.
- (ah_align_linked_edge): New function.
- (ah_align_serifed_edge): Don't strengthen serifs.
- (ah_hint_edges_3, ah_hinter_scale_globals): Updated.
-
-2002-07-03 Owen Taylor <[email protected]>
-
- Adding new algorithm based on Owen Taylor's recent work.
-
- * src/pshinter/pshalgo3.c, src/pshinter/pshalgo3.h: New files.
- * src/pshinter/pshalgo.h: Updated.
- Use pshalgo3 by default.
- * src/pshinter/pshinter.c: Include pshalgo3.c.
-
- * src/pshinter/Jamfile, src/pshinter/rules.mk: Updated.
-
-2002-07-01 Owen Taylor <[email protected]>
-
- * src/pshinter/pshalgo2.c (psh2_glyph_find_strong_points): Fix a bug
- where, if a glyph has more than hint mask, the second mask gets
- applied to points that should have been covered by the first mask.
-
-2002-07-01 Keith Packard <[email protected]>
-
- * src/sfnt/ttcmap0.c (tt_cmap8_char_next, tt_cmap12_char_next):
- Fixing the cmap 8 and 12 parsing routines.
-
-2002-07-01 David Turner <[email protected]>
-
- * src/base/ftsynth.c: Include FT_TRIGONOMETRY_H.
- (FT_Outline_Embolden): Renamed to...
- (FT_GlyphSlot_Embolden): This.
- Updated to new trigonometric functions.
- (FT_Outline_Oblique): Renamed to...
- (FT_GlyphSlot_Oblique): This.
- (ft_norm): Removed.
- * include/freetype/ftsynth.h: Updated.
-
-2002-06-26 David Turner <[email protected]>
-
- * include/freetype/internal/ftobject.h: Updating the object
- sub-system definitions (still experimental).
-
- * src/base/fthash.c (ft_hash_remove): Fixing a small reallocation
- bug.
-
- * src/base/fttrigon.c (FT_Vector_From_Polar, FT_Angle_Diff): New
- functions.
- * include/freetype/fttrigon.h: Updated.
-
-
- Adding path stroker component (work in progress).
-
- * include/freetype/ftstroker.h, src/base/ftstroker.c: New files.
- * src/base/Jamfile: Updated.
-
- * include/freetype/config/ftheader.h (FT_STROKER_H): New macro.
-
-
- * src/truetype/ttgload.c (TT_Load_Composite_Glyph),
- src/base/ftoutln.c (FT_Vector_Transform): Fixed Werner's latest fix.
- FT_Vector_Transform wasn't buggy, the TrueType composite loader was.
-
-2002-06-24 Werner Lemberg <[email protected]>
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
-
-2002-06-21 David Turner <[email protected]>
-
-
- * Version 2.1.2 released.
- =========================
-
-
-2002-06-21 Roberto Alameda <[email protected]>.
-
- * include/freetype/internal/t42types.h (T42_Font): Removed since
- it is already in t42objs.h.
- (T42_Face): Use T1_FontRec.
-
- * src/base/fttype1.c (FT_Get_PS_Font_Info): Updated.
- (FT_Has_PS_Glyph_Names): Check for type42 driver name also.
- * src/type42/t42objs.h: Include FT_INTERNAL_TYPE42_TYPES_H.
- (T42_Face): Removed since it is already in t42types.h.
-
-2002-06-21 Detlef Würkner <[email protected]>
-
- * src/pfrgload.c (pfr_glyph_load_compound): Fix loading of composite
- glyphs.
-
-2002-06-21 Sven Neumann <[email protected]>
-
- * src/prf/pfrtypes.h (PFR_KernPair): New structure.
- (PFR_PhyFont): Use it.
- (PFR_KernFlags): New enumeration.
- * src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): New
- function.
- (pfr_phy_font_extra_items): Use it.
- (pfr_phy_font_done): Updated.
- * src/pfr/pfrobjs.c (pfr_face_init): Set kerning flag conditionally.
- (pfr_face_get_kerning): New function.
- * src/pfr/pfrobjs.h: Updated.
- * src/pfr/pfrdrivr.c (pfr_driver_class): Updated.
-
-2002-06-21 David Turner <[email protected]>
-
- * README, docs/CHANGES: Preparing the 2.1.2 release.
-
-2002-06-19 Detlef Würkner <[email protected]>
-
- * src/base/fttype1.c: Include FT_INTERNAL_TYPE42_TYPES_H.
- (t1_face_check_cast): Removed.
- (FT_Get_PS_Font_Info): Make it work with CID and Type 42 drivers
- also.
-
-2002-06-19 Sebastien BARRE <http://barre.nom.fr/contact.html#email>
-
- * src/type42/t42parse.c (t42_parse_sfnts): Fix compiler warning.
-
-2002-06-19 Werner Lemberg <[email protected]>
-
- * src/base/ftoutln.c (FT_Vector_Transform): Fix serious typo
- (xy <-> yx).
- * src/truetype/ttgload.c (load_truetype_glyph): Replace `|' with
- `||' to make code easier to read.
-
-2002-06-18 Roberto Alameda <[email protected]>.
-
- * src/type42/t42objs.c (t42_check_size_change): Removed.
- (T42_Size_SetChars, T42_Size_SetPixels): Use FT_Activate_Size
- instead.
- (T42_GlyphSlot_Load): Remove call to t42_check_size_change.
-
-2002-06-18 Detlef Würkner <[email protected]>
-
- * src/psaux/t1cmap.c (t1_cmap_custom_char_index,
- t1_cmap_custom_char_next): Fix index computation -- indices start
- with 0 and not with cmap->first.
-
- Provide default charmaps.
-
- * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c
- (PCF_Face_Init), src/pfr/pfrobjs.c (pfr_face_init),
- src/type1/t1objs (T1_Face_Init), src/winfonts/winfnt.c
- (FNT_Face_Init): Implement it.
-
-2002-06-17 Sven Neumann <[email protected]>
-
- * src/pfr/pfrobjs.c (pfr_face_init): Fix typo.
-
-2002-06-16 Leonard Rosenthol <[email protected]>
-
- Updated Win32/VC++ projects to include the new PFR driver.
-
- * builds/win32/visualc/freetype.dsp: Updated.
-
-2002-06-16 Anthony Fok <[email protected]>
-
- Install freetype2.m4.
-
- * builds/unix/install.mk (install, uninstall): Handle it.
-
-2002-06-16 Detlef Würkner <[email protected]>
-
- Same fix for PFR driver.
-
- * src/pfr/pfrcmap.c (pfr_cmap_char_index, pfr_cmap_char_next):
- Increase return value by 1.
- * src/pfr/pfrobjs.c (pfr_slot_load): Decrease index by 1.
-
-2002-06-15 Detlef Würkner <[email protected]>
-
- Fix glyph indices to make index zero always the undefined glyph.
-
- * src/bdf/bdfdrivr.c (bdf_cmap_init): Don't decrease
- cmap->num_encodings.
- (bdf_cmap_char_index, bdf_cmap_char_next, BDF_Get_Char_Index):
- Increase result by 1 for normal cases.
- (BDF_Glyph_Load): Decrease index by 1.
-
- * src/pcf/pcfdriver.c (pcf_cmap_char_index, pcf_cmap_char_next,
- PCF_Char_Get_Index): Increase result by 1 for normal cases.
- (PCF_Glyph_Load): Decrease index by 1.
- * src/pcf/pcfread.c (pcf_get_encodings): Don't decrease j for
- allocating `encoding'.
-
- * src/base/ftobjs.c (FT_Load_Glyph, FT_Get_Glyph_Name): Fix
- bounding tests.
-
-2002-06-14 Detlef Würkner <[email protected]>
-
- Add new cmap support to BDF driver.
-
- * src/bdf/bdfdrivr.c (BDF_CMapRec) [FT_CONFIG_OPTION_USE_CMAPS]:
- New structure.
- (bdf_cmap_init, bdf_cmap_done, bdf_cmap_char_index,
- bdf_cmap_char_next) [FT_CONFIG_OPTION_USE_CMAPS]: New functions.
- (BDF_Get_Char_Index) [!FT_CONFIG_OPTION_USE_CMAPS]: Use only
- conditionally.
- (BDF_Face_Init): Handle `AVERAGE_WIDTH' and `POINT_SIZE' keywords.
- Implement new cmap handling.
- (bdf_driver_class): Updated.
-
-2002-06-14 Werner Lemberg <[email protected]>
-
- * Makefile, configure, */*.mk, builds/unix/unix-def.in,
- docs/CHANGES, docs/INSTALL: s/TOP/TOP_DIR/.
-
-2002-06-12 Werner Lemberg <[email protected]>
-
- * src/bdf/bdflib.c: s/FT_Short/short/ for consistency.
-
-2002-06-11 David Turner <[email protected]>
-
- * builds/win32/ftdebug.c: Added a missing #endif.
-
- * src/sfnt/ttload.c, src/bdf/bdflib.c: Removing compiler warnings.
-
- Removed the bug in Type 42 driver that prevented un-hinted outlines
- to be loaded.
-
- * src/type42/t42objs.c (T42_Face_Init): Call FT_Done_Size.
- (T42_Size_Init): Call FT_Activate_Size.
- (t42_check_size_change): New function.
- (T42_Size_SetChars, T42_Size_SetPixels): Use it.
- (ft_glyphslot_clear): Replace FT_MEM_SET with FT_ZERO.
- (T42_GlyphSlot_Load): Use t42_check_size_change.
- Initialize more fields of `glyph'.
-
- * builds/win32/visualc/freetype.dsp: Updated.
-
-2002-06-09 David Turner <[email protected]>
-
-
- * Version 2.1.1 released.
- =========================
-
-
-2002-06-08 Juliusz Chroboczek <[email protected]>
-
- * include/freetype/internal/ftobjs.h, src/autohint/ahglyph.c,
- src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/smooth/ftgrays.c: Don't
- use `setjmp', `longjmp', and `jmp_buf' but `ft_setjmp', `ft_longjmp',
- and `ft_jmp_buf'.
- Removed direct references to <stdio.h> and <setjmp.h> when
- appropriate, to eventually replace them with a
- FT_CONFIG_STANDARD_LIBRARY_H. Useful for the XFree86 Font Server
- backend based on FT2.
-
- * src/base/fttype1.c (FT_Has_PS_Glyph_Names): Fix return value.
-
-2002-06-08 David Turner <[email protected]>
-
- * src/pcf/pcfdriver.c (pcf_cmap_char_next): Fixed a bug that caused
- the function to return invalid values.
-
- * src/cache/ftccache.i: Removing a typo that prevented
- the source's compilation.
-
- * src/cache/ftccache.c (ftc_node_hash_unlink): Fixed a
- bug that caused nasty memory overwrites. The hash table's
- buckets array wasn't correctly resized when shrunk.
-
-2002-06-08 Detlef Würkner <[email protected]>
-
- * builds/amiga/smakefile, builds/amiga/makefile: Updated.
-
-2002-06-08 Werner Lemberg <[email protected]>
-
- * src/cache/ftccache.c (ftc_node_hash_unlink, ftc_node_hash_link)
- [FTC_CACHE_USE_LINEAR_HASHING]: Fix returned error code.
- Fix debugging messages.
- * src/cache/ftccache.i (GEN_CACHE_LOOKUP): Move declaration of
- `family' and `hash' up to make it compilable with g++.
-
- * src/type42/t42error.h: New file.
- * src/type42/t42drivr.c, src/type42/t42objs.c,
- src/type42/t42parse.c: Use t42 error codes.
- * src/type42/rules.mk: Updated.
-
- * src/base/ftnames.c: Include FT_INTERNAL_STREAM_H.
-
-2002-06-08 David Turner <[email protected]>
-
- * src/cache/ftccmap.c: GEN_CACHE_FAMILY_COMPARE,
- GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
- New macros.
- (ftc_cmap_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
- ftc_cache_lookup.
- (FTC_CMapCache_Lookup): Updated.
-
- Adding various experimental optimizations to the cache manager.
-
- * include/freetype/cache/ftccache.h (FTC_CACHE_USE_INLINE,
- FTC_CACHE_USE_LINEAR_HASHING): New options.
- (FTC_CacheRec) [FTC_CACHE_USE_LINEAR_HASHING]: New elements `p',
- `mask', and `slack'.
-
- * src/cache/ftccache.c (FTC_HASH_MAX_LOAD, FTC_HASH_MIN_LOAD,
- FTC_HASH_SUB_LOAD) [FTC_CACHE_USE_LINEAR_HASHING,
- FTC_HASH_INITIAL_SIZE]: New macros.
- (ftc_node_mru_link, ftc_node_mru_up): Optimized.
- (ftc_node_hash_unlink, ftc_node_hash_link)
- [FTC_CACHE_USE_LINEAR_HASHING]: New variants.
- (FTC_PRIMES_MIN, FTC_PRIMES_MAX, ftc_primes, ftc_prime_closest,
- FTC_CACHE_RESIZE_TEST, ftc_cache_resize)
- [!FTC_CACHE_USE_LINEAR_HASHING]: Define it conditionally.
- (ftc_cache_init, ftc_cache_clear) [FTC_CACHE_USE_LINEAR_HASHING]:
- Updated.
- (ftc_cache_lookup) [FTC_CACHE_USE_LINEAR_HASHING]: Implement it.
-
- * src/cache/ftccache.i: New file.
-
- * src/cache/ftcsbits.c (GEN_CACHE_FAMILY_COMPARE,
- GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
- New macros.
- (ftc_sbit_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
- ftc_cache_lookup.
- (FTC_SBitCache_Lookup): Updated.
-
- * src/type42/t42parse.c: Removing duplicate function.
-
-2002-06-07 Graham Asher <[email protected]>
-
- * src/base/ftobjs.c (FT_Render_Glyph_Internal): Changed definition
- from FT_EXPORT_DEF to FT_BASE_DEF.
-
-2002-06-07 David Turner <[email protected]>
-
- Fixed the bug that prevented the correct display of fonts with
- `ftview'.
-
- * src/type42/t42drivr.c: Split into...
- * src/type42/t42drivr.h, src/type42/t42parse.c,
- src/type42/t42parse.h, src/type42/t42objs.h, src/type42/t42objs.c,
- src/type42/type42.c: New files.
-
- (t42_get_glyph_name, t42_get_ps_name, t42_get_name_index): Use
- `face->type1'.
-
- (Get_Interface): Renamed to...
- (T42_Get_Interface): This.
- Updated.
- (T42_Open_Face, T42_Face_Done): Updated.
- (T42_Face_Init): Add new cmap support.
- Updated.
- (T42_Driver_Init, T42_Driver_Done, T42_Size_Init, T42_Size_Done,
- T42_GlyphSlot_Init, T42_GlyphSlot_Done): Updated.
- (Get_Char_Index, Get_Next_Char): Renamed to...
- (T42_CMap_CharIndex, T42_CMap_CharNext): This.
- Updated.
- (T42_Char_Size, T42_Pixel_Size): Renamed to...
- (T42_Size_SetChars, T42_Size_SetPixels): This.
- (T42_Load_Glyph): Renamed to...
- (T42_GlyphSlot_Load): This.
-
- (t42_init_loader, t42_done_loader): Renamed to...
- (t42_loader_init, t42_loader_done): This.
- (T42_New_Parser, T42_Finalize_Parser): Renamed to...
- (t42_parser_init, t42_parser_done): This.
- (parse_dict): Renamed to...
- (t42_parse_dict): This.
- (is_alpha, is_space, hexval): Renamed to...
- (t42_is_alpha, t42_is_space, t42_hexval): This.
- (parse_font_name, parse_font_bbox, parse_font_matrix,
- parse_encoding, parse_sfnts, parse_charstrings, parse_dict):
- Renamed to...
- (t42_parse_font_name, t42_parse_font_bbox, t42_parse_font_matrix,
- t42_parse_encoding, t42_parse_sfnts, t42_parse_charstrings,
- t42_parse_dict): This.
- Updated.
-
- (t42_keywords): Updated.
-
- * src/type42/Jamfile, src/type42/descrip.mms: Updated.
-
-2002-06-03 Werner Lemberg <[email protected]>
-
- Add 8bpp support to BDF driver.
-
- * src/bdf/bdflib.c (_bdf_parse_start): Handle 8bpp.
- * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Ditto.
- * src/bdf/README: Updated.
-
-2002-06-02 Detlef Würkner <[email protected]>
-
- * src/pfr/pfrload.c (pfr_phy_font_done): Free `blue_values' array.
-
-2002-05-29 Detlef Würkner <[email protected]>
-
- * src/bdf/bdflib.c (_bdf_readstream): Allocate `buf' dynamically.
- (_bdf_parse_glyphs): Use correct size for allocating
- `font->unencoded'.
- (bdf_load_font): Free array conditionally.
- Return proper error code in case of failure.
- * src/bdf/bdfdrivr.c (BDF_Face_Init): Make it more robust against
- unusual fonts.
-
-2002-05-29 Werner Lemberg <[email protected]>
-
- * src/bdf/descrip.mms, src/type42/descrip.mms: New files.
- * descrip.mms (all): Updated.
-
- * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix typo which prevented
- compilation.
- * src/pshglob.c (psh_blues_scale_zones): Fix compiler warning.
-
-2002-05-28 Detlef Würkner <[email protected]>
-
- * builds/amiga/makefile, builds/amiga/smakefile,
- amiga/include/freetype/config/ftmodule.h: Updated to include
- support for BDF and Type42 drivers.
-
- * docs/modules.txt: Updated.
-
-2005-05-28 David Turner <[email protected]>
-
- * docs/CHANGES: Updating file for next release (2.1.1).
-
- * src/bdf/bdflib.c: Removing compiler warnings.
-
- * include/freetype/ftxf86.h, src/base/ftxf86.c: New files.
- They provide a new API (FT_Get_X11_Font_Format) to retrieve an
- X11-compatible string describing the font format of a given face.
- This was put in a new optional base source file, corresponding to a
- new public header (named FT_XFREE86_H since this function should
- only be used within the XFree86 font server IMO).
-
- * include/freetype/config/ftheader.h (FT_XFREE86_H): New macro (not
- documented yet).
-
- * src/base/fttype1.c: New file, providing two new API functions
- (FT_Get_PS_Font_Info and FT_Has_PS_Glyph_Names).
- * include/freetype/t1tables.h: Updated.
-
- * src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms:
- Updating build control files for the new files `ftxf86.c' and
- `fttype1.c' in src/base.
-
- * src/pshinter/pshglob.c (psh_blues_scale_zones): Fixed a bug that
- prevented family blue zones substitution from hapenning correctly.
-
- * include/freetype/ftbdf.h FT_Get_BDF_Charset_ID): Adding
- documentation comment.
-
-2002-05-28 Werner Lemberg <[email protected]>
-
- * src/base/ftnames.c (FT_Get_Sfnt_Name): Don't use FT_STREAM_READ_AT
- but FT_STREAM_READ.
- Declare `stream' variable.
-
- * src/bdf/bdflib.c (_bdf_parse_glyphs): Replace floating point math
- with calls to `FT_MulDiv'.
-
-2002-05-28 David Turner <[email protected]>
-
- Fixing the SFNT name table loader to support various buggy fonts.
- It now ignores empty name entries, entries with invalid pointer
- Offsets and certain fonts containing tables with broken
- `storageOffset' fields.
-
- Name strings are now loaded on demand, which reduces the memory
- requirements for a given FT_Face tremendously (for example, the name
- table of Arial.ttf is about 10Kb and contains 70 names).
-
- This is a temporary fix. The whole name table loader and interface
- will be rewritten in a much more cleanly way shortly, once CSEH have
- been introduced in the sources.
-
- * include/freetype/internal/tttypes.h (TT_NameEntryRec): Change
- type of `stringOffset' to FT_ULong.
- (TT_NameTableRec): Change type of `numNameRecords' and
- `storageOffset' to FT_UInt.
- Replace `storage' with `stream'.
- * src/base/ftnames.c (FT_Get_Sfnt_Name): Load name on demand.
- * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Ditto.
- Make code more robust.
- * src/sfnt/sfobjs.c (TT_NameEntry_ConvertFunc): New typedef.
- (tt_face_get_name): Use it.
- Make code more robust.
- * src/sfnt/ttload.c (TT_Load_Names): Use `static' for arrays.
- Handle invalid `storageOffset' data better.
- Set length fields to zero for invalid or ignored data.
- Remove code within FT_DEBUG_LEVEL_TRACE.
- (TT_Free_Names): Updated.
-
-2002-05-24 Tim Mooney <[email protected]>
-
- * builds/unix/ft-munmap.m4: New file, extracted FT_MUNMAP_DECL and
- FT_MUNMAP_PARAM from aclocal.m4 into here, so aclocal.m4 can be
- rebuilt from sources. Set macro serial to 1, and use third argument
- to AC_DEFINE for our two custom symbols, so ftconfig.in could one day
- be rebuilt with autoheader (not recommended now, ftconfig.in is a
- custom source file)
-
-2002-05-22 Werner Lemberg <[email protected]>
-
- * include/freetype/config/ftheader.h (FT_BEZIER_H): Removed.
- (FT_BDF_H): New macro for accessing `ftbdf.h'.
-
- * src/type42/t42drivr.c (hexval): Fix typo.
-
-2002-05-21 Martin Muskens <[email protected]>
-
- * src/psaux/psobjs.c (T1Radix): New function.
- (t1_toint): Use it to handle numbers in radix format.
-
- * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Add dummy
- for undocumented, obsolete opcode 15.
-
-2002-05-21 David Turner <[email protected]>
-
- * src/bdf/bdflib.c: Removed compiler warning, and changed all tables
- to the `static const' storage specifier (instead of simply
- `static').
-
- * src/type42/t42drivr.c (hexval): Use more efficient code.
- Removing compiler warnings.
- * src/bdf/bdfdrivr.c: Removing compiler warnings.
-
- * include/freetype/internal/ftbdf.h, src/base/ftbdf.c,
- src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk
- (FT_Get_BDF_Charset_ID): New API to retrieve BDF-specific strings
- from a face. This is much cleaner than accessing the internal types
- `BDF_Public_Face' defined in FT_INTERNAL_BDF_TYPES_H.
-
-2002-05-21 Werner Lemberg <[email protected]>
-
- * src/bdf/README: Mention Microsoft's SBIT tool.
-
- * src/cff/cffdrivr.c, src/cid/cidriver.c, src/pcf/pcfdriver.c,
- src/truetype/ttdriver.c, src/type1/t1driver.c,
- src/winfonts/winfnt.c, src/type42/t42drivr.c, src/bdf/bdfdrivr.c
- [FT_CONFIG_OPTION_DYNAMIC_DRIVERS]: Completely removed. It has
- been never used.
-
-2002-05-21 Roberto Alameda <[email protected]>.
-
- * src/type42/t42drivr.c: s/T42_ENCODING_TYPE_/T1_ENCODING_TYPE_/.
- (parse_font_matrix): Remove unnecessary code.
- (parse_sfnts): Initialize some variables.
- (t42_driver_class) [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Use
- ft_module_driver_has_hinter conditionally.
- Moved some type 42 specific structure definitions to...
- * include/freetype/internal/t42types.h: New file.
- * include/freetype/internal/internal.h (FT_INTERNAL_T42_TYPES_H):
- New macro.
-
-2002-05-20 Werner Lemberg <[email protected]>
-
- * include/freetype/cache/ftcsbits.h (FTC_SBit): Added a new field
- `num_grays' for specifying the number of used gray levels.
- * src/cache/ftcsbits.c (ftc_sbit_node_load): Initialize it.
-
-2002-05-19 Werner Lemberg <[email protected]>
-
- Adding a driver for BDF fonts written by Francesco Zappa Nardelli
- <[email protected]>. Heavily modified by me to
- better adapt it to FreeType, removing unneeded stuff. Additionally,
- it now supports Mark Leisher's BDF extension for anti-aliased
- bitmap glyphs with 2 and 4 bpp.
-
- * src/bdf/*: New driver.
- * include/freetype/internal/bdftypes.h: New file.
- * include/freetype/internal/fttrace.h: Added BDF driver components.
- * include/freetype/fterrdef.h: Added error codes for BDF driver.
- * include/freetype/config/ftmodule.h, src/Jamfile: Updated.
- * include/freetype/internal/internal.h (FT_INTERNAL_BDF_TYPES_H):
- New macro.
-
- * include/freetype/config/ftstdlib.h (ft_sprintf): New alias for
- sprintf.
-
-2002-05-18 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/fttrace.h: Added Type 42 driver
- component.
- * src/type42/t42drivr.c: Use it.
-
- * include/freetype/internal/internal.h (FT_INTERNAL_PCF_TYPES_H):
- New macro.
-
-2002-05-17 Werner Lemberg <[email protected]>
-
- * src/type42/Jamfile: New file.
-
-2002-05-14 Werner Lemberg <[email protected]>
-
- Adding a driver for Type42 fonts written by Roberto Alameda
- <[email protected]>.
-
- * src/type42/*: New driver.
- * include/freetype/config/ftmodule.h, src/Jamfile: Updated.
- * include/freetype/config/ftstdlib.h (ft_xdigit, ft_memcmp,
- ft_atoi): New aliases for xdigit, memcmp, and atoi, respectively.
-
-2002-05-12 Owen Taylor <[email protected]>
-
- * src/sfnt/ttload.c (TT_LookUp_Table): Protect against tables
- with a zero length value.
-
-2002-05-12 Michael Pfeiffer <[email protected]>
-
- * builds/beos/beos.mk: Include `link-std.mk'.
-
-2002-05-12 Werner Lemberg <[email protected]>
-
- * src/type1/t1load.h (T1_Loader): Renamed to...
- (T1_LoaderRec): This.
- (T1_Loader): Now pointer to T1_LoaderRec.
- * src/type1/t1load.c: Updated.
-
- * include/freetype/internal/t1types.h, src/type1/t1load.c,
- src/type1/t1objs.c:
- s/T1_ENCODING_TYPE_EXPORT/T1_ENCODING_TYPE_EXPERT/.
-
-2002-05-06 Werner Lemberg <[email protected]>
-
- * README: Add a note regarding libttf vs. libfreetype.
-
-2002-05-05 Werner Lemberg <[email protected]>
-
- FreeType 2 can now be built in an external directory with the
- configure script also.
-
- * builds/freetype.mk (INCLUDES): Add `OBJ_DIR'.
-
- * builds/unix/detect.mk (have_mk): New variable to test for
- external build.
- (unix-def.mk): Defined according to value of `have_mk'.
- * builds/unix/unix.mk (have_mk): New variable to test for
- external build.
- Select include paths for unix-def.mk and unix-cc.mk according
- to value of `have_mk'.
- * builds/unix/unix-def.in (OBJ_BUILD): New variable.
- (DISTCLEAN): Use it.
- * builds/unix/unix-cc.in (LIBTOOL): Define default value only
- if not yet defined.
- * builds/unix/install.mk (install): Use `OBJ_BUILD' for installing
- freetype-config.
-
- * configure: Don't depend on bash features.
- (ft2_dir, abs_curr_dir, abs_ft2_dir): New variables (code
- partially taken from Autoconf).
- Build a dummy Makefile if not building in source tree.
-
- * docs/INSTALL: Document it.
-
-2002-05-04 David Turner <[email protected]>
-
- * src/truetype/ttgload.c (TT_Load_Glyph): Finally fixing the last
- bug that prevented FreeType 2.x and FreeType 1.x to produce
- bit-by-bit identical monochrome glyph bitmaps with native TrueType
- hinting. The culprit was a single-bit flag that wasn't set
- correctly by the TrueType glyph loader.
-
- * src/otlayout/otlayout.h, src/otlayout/otlbase.c,
- src/otlayout/otlbase.h, src/otlayout/otlconf.h,
- src/otlayout/otlgdef.c, src/otlayout/otlgdef.h,
- src/otlayout/otlgpos.c, src/otlayout/otlgpos.h,
- src/otlayout/otlgsub.c, src/otlayout/otlgsub.h,
- src/otlayout/otljstf.c, src/otlayout/otljstf.h,
- src/otlayout/otltable.c, src/otlayout/otltable.h,
- src/otlayout/otltags.h: New OpenType Layout source files. The
- module is still incomplete.
-
-2002-05-02 Werner Lemberg <[email protected]>
-
- * src/sfnt/ttcmap0.c (tt_cmap4_char_index): Fix serious typo
- (0xFFFU -> 0xFFFFU).
-
-2002-05-01 Werner Lemberg <[email protected]>
-
- * docs/INSTALL: Fix URL of makepp.
-
-2002-05-01 David Turner <[email protected]>
-
- * src/sfnt/sfobjs.c (tt_face_get_name): Fixing a bug that caused
- FreeType to crash when certain broken fonts (e.g. `hya6gb.ttf')
- were opened.
-
- * src/sfnt/ttload.c (TT_Load_Names): Applied a small work-around to
- manage fonts containing a broken name table (e.g. `hya6gb.ttf').
-
- * src/sfnt/ttcmap0.c (tt_cmap4_validate): Fixed over-restrictive
- validation test. The charmap validator now accepts overlapping
- ranges in format 4 charmaps.
-
- * src/sfnt/ttcmap0.c (tt_cmap4_char_index): Switched to a binary
- search algorithm. Certain fonts contain more than 170 distinct
- segments!
-
- * include/freetype/config/ftstdlib.h: Adding an alias for the `exit'
- function. This will be used in the near future to panic in case of
- unexpected exception (which shouldn't happen in theory).
-
- * include/freetype/internal/fthash.h, src/base/fthash.c: New files.
- This is generic implementation of dynamic hash tables using a linear
- algorithm (to get rid of `stalls' during resizes). In the future
- this will be used in at least three parts of the library: the cache
- sub-system, the object sub-system, and the memory debugger.
-
- * src/base/Jamfile: Updated.
-
- * include/freetype/internal/internal.h (FT_INTERNAL_HASH_H,
- FT_INTERNAL_OBJECT_H): New macros.
-
- * include/freetype/internal/ftcore.h: New file to group all new
- definitions related to exception handling and memory management. It
- is very likely that this file will disappear or be renamed in the
- future.
-
- * include/freetype/internal/ftobject.h, include/freetype/ftsysmem.h:
- Adding comments to better explain the object sub-system as well as
- the new memory manager interface.
-
-2002-04-30 Wenlin Institute (Tom Bishop) <[email protected]>
-
- * src/base/ftmac.c (p2c_str): Removed.
- (file_spec_from_path) [TARGET_API_MAC_CARBON]: Added support for
- OS X.
- (is_dfont) [TARGET_API_MAC_CARBON]: Define only for OS X.
- Handle `nameLen' <= 6 also.
- (parse_fond): Remove unused variable `name_table'.
- Use functionality of old p2c_str directly.
- Add safety checks.
- (read_lwfn): Initialize `size_p'.
- Check for size_p == NULL.
- (new_memory_stream, open_face_from_buffer): Updated to FreeType 2.1.
- (FT_New_Face_From_LWFN): Remove unused variable `memory'.
- Remove some dead code.
- (FT_New_Face_From_SFNT): Remove unused variable `stream'.
- (FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Define only for
- OS X.
- (FT_New_Face_From_FOND): Remove unused variable `error'.
- (ResourceForkSize): New function.
- (FT_New_Face): Use it.
- Handle empty resource forks.
- Conditionalize some code for OS X.
- Add code to call normal loader as a fallback.
-
-2002-04-30 Werner Lemberg <[email protected]>
-
- `interface' is reserved on the Mac.
-
- * include/freetype/ftoutln.h, include/freetype/internal/sfnt.h,
- src/base/ftoutln.c: s/interface/func_interface/.
- * src/base/ftbbox.c (FT_Outline_Get_BBox):
- s/interface/bbox_interface/.
- * src/cff/cffdrivr.c: s/interface/module_interface/.
- * src/cff/cffload.c, src/cff/cffload.h:
- s/interface/psnames_interface/.
- * src/cid/cidriver.c: s/interface/cid_interface/.
- * src/sfnt/sfdriver.c: s/interface/module_interface/.
- * src/smooth/ftgrays.c: s/interface/func_interface/.
- * src/truetype/ttdriver.c: s/interface/tt_interface/.
- * src/type1/t1driver.c: s/interface/t1_interface/.
-
- Some more variable renames to avoid troubles on the Mac.
-
- * src/raster/ftraster.c:
- s/Unknown|Ascending|Descending|Flat/\1_State/.
- * src/smooth/ftgrays.c: s/TScan/TCoord/.
-
- Other changes for the Mac.
-
- * include/freetype/config/ftconfig.h: Define FT_MACINTOSH for
- Mac platforms.
- * src/base/ftobjs.c: s/macintosh/FT_MACINTOSH/.
-
- * src/raster/ftrend1.c (ft_raster1_render): Make `pitch' always
- an even number.
-
-2002-04-29 Jouk Jansen <[email protected]>
-
- * descrip.mms (all): Add pfr driver.
-
-2002-04-28 Werner Lemberg <[email protected]>
-
- * src/pfr/pfrerror.h: New file.
- * include/freetype/ftmoderr.h: Add PFR error codes.
- * src/pfr/pfrgload.c: Include pfrerror.h.
- Use PCF error codes.
- (pfr_extra_item_load_stem_snaps): Fix debug message.
- * src/pfr/pfrgload.c: Include pfrerror.h.
- Use PCF error codes.
- (pfr_extra_item_load_bitmap_info, pfr_glyph_load_simple,
- pfr_glyph_load_compound): Fix debug message.
- * src/pfr/pfrobjs.c: Include pfrerror.h.
- Use PCF error codes.
- (pfr_face_init): Return PFR_Err_Unknown_File_Format.
- * src/pfr/rules.mk (PFR_DRV_H): Include pfrerror.h.
-
- * src/pcf/pcfdriver.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_CMAPS]:
- `root' -> `face->root'.
- * src/sfnt/ttcmap0.c (TT_Build_CMaps) [!FT_CONFIG_OPTION_USE_CMAPS]:
- Removed.
- * src/sfnt/ttcmap0.c: Declare TT_Build_CMaps only for
- FT_CONFIG_OPTION_USE_CMAPS.
-
-2002-04-27 Werner Lemberg <[email protected]>
-
- * src/cache/ftccache.c (ftc_cache_lookup),
- src/cache/ftccmap.c (ftc_cmap_family_init),
- src/cache/ftcmanag.c (ftc_family_table_alloc),
- src/cache/ftcsbits.c (FTC_SBit_Cache_Lookup): Use FTC_Err_*.
- src/cache/ftcimage.c (FTC_Image_Cache_Lookup): Use FTC_Err_*.
- (FTC_ImageCache_Lookup): Fix handling of invalid arguments.
-
-2002-04-22 Werner Lemberg <[email protected]>
-
- * builds/unix/configure.ac: Set `version_info' to 9:1:3 (FT2
- version 2.0.9 has 9:0:3).
- * builds/unix/configure: Regenerated (using autoconf 2.53).
-
-2002-04-19 Werner Lemberg <[email protected]>
-
- * src/pfr/pfrload.c (pfr_extra_items_farse): Fix debug message.
- (pfr_phy_font_load): s/size/Size/ for local variable to avoid
- compiler warning.
- * src/pfr/pfrobjs.c (pfr_face_init): Fix debug message.
- (pfr_slot_load): Remove redundant local variable.
-
-2002-04-19 David Turner <[email protected]>
-
- Adding a PFR font driver to the FreeType sources. Note that it
- doesn't support embedded bitmaps or kerning tables yet.
-
- src/pfr/*: New files.
-
- * include/freetype/config/ftmodule.h,
- include/freetype/internal/fttrace.h, src/Jamefile: Updated.
-
- * src/type1/t1gload.h (T1_Load_Glyph), src/type1/t1gload.c
- (T1_Load_Glyph): Fixed incorrect parameter sign-ness in callback
- function.
-
- * include/freetype/internal/ftmemory.h (FT_MEM_ZERO, FT_ZERO): New
- macros.
-
- * include/freetype/internal/ftstream.h (FT_NEXT_OFF3, FT_NEXT_UOFF3,
- FT_NEXT_OFF3_LE, FT_NEXT_UOFF3_LE): New macros to parse in-memory
- 24-bit integers.
-
-2002-04-18 David Turner <[email protected]>
-
- * src/base/ftobjs.c, builds/win32/ftdebug.c,
- builds/amiga/src/base/ftdebug.c: Version 2.1.0 couldn't be linked
- against applications in Win32 and Amiga builds due to changes to
- `src/base/ftdebug.c' that were not properly propagated to
- `builds/win32' and `builds/amiga'. This has been fixed.
-
- * include/freetype/internal/ftobject.h,
- include/freetype/internal/ftexcept.h, include/freetype/ftsysmem.h,
- include/freetype/ftsysio.h, src/base/ftsysmem.c, src/base/ftsysio.c:
- New experimental files.
-
-2002-04-17 David Turner <[email protected]>
-
-
- * Version 2.1.0 released.
- =========================
-
-
-2002-04-17 Michael Jansson <[email protected]>
-
- * src/type1/t1gload.c (T1_Compute_Max_Advance): Fixed a small bug
- that prevented the function to return the correct value.
-
-2002-04-16 Francesco Zappa Nardelli <[email protected]>
-
- * src/pcf/pcfread (pcf_get_accell): Fix parsing of accelerator
- tables.
-
-2002-04-15 David Turner <[email protected]>
-
- * docs/FTL.txt: Formatting.
-
- * include/freetype/config/ftoption.h: Reduce the size of the
- render pool from 32kByte to 16kByte.
-
- * src/pcf/pcfread.c (pcf_seek_to_table_type): Remove compiler
- warning.
-
- * include/freetype/config/ftoption.h (FT_MAX_EXTENSIONS): Removed.
-
- * docs/CHANGES: Preparing 2.1.0 release.
-
-2002-04-13 Werner LEMBERG <[email protected]>
-
- * src/cff/cffgload.c (CFF_Parse_CharStrings): s/rand/Rand/ to avoid
- compiler warning.
-
-2002-04-12 David Turner <[email protected]>
-
- * README.UNX: Updated the Unix-specific quick-compilation guide to
- warn about the GNU Make requirement at compile time.
-
- * include/freetype/config/ftstdlib.h,
- include/freetype/config/ftconfig.h,
- include/freetype/config/ftheader.h,
- include/freetype/internal/ftmemory.h,
- include/freetype/internal/ftobjs.h,
-
- src/autohint/ahoptim.c,
-
- src/base/ftdbgmem.c, src/base/ftdebug.c, src/base/ftmac.c,
- src/base/ftobjs.c, src/base/ftsystem.c,
-
- src/cache/ftcimage.c, src/cache/ftcsbits.c,
-
- src/cff/cffdriver.c, src/cff/cffload.c, src/cff/cffobjs.c,
-
- src/cid/cidload.c, src/cid/cidparse.c, src/cid/cidriver.c,
-
- src/pcf/pcfdriver.c, src/pcf/pcfread.c,
-
- src/psaux/t1cmap.c, src/psaux/t1decode.c,
-
- src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c,
- src/pshinter/pshrec.c,
-
- src/psnames/psmodule.c,
-
- src/raster/ftraster.c,
-
- src/sfnt/sfdriver.c, src/sfnt/ttload.c,
-
- src/smooth/ftgrays.c,
-
- src/type1/t1afm.c, src/type1/t1driver.c, src/type1/t1gload.c,
- src/type1/t1load.c, src/type1/t1objs.c, src/type1/t1parse.c,
-
- builds/unix/ftconfig.in, builds/vms/ftconfig.h,
-
- builds/amiga/src/base/ftdebug.c:
-
- Added the new configuration file `ftstdlib.h' used to define
- aliases for all ISO C library functions used by the engine
- (e.g. strlen, qsort, setjmp, etc.).
-
- This eases the porting of FreeType 2 to environments like
- XFree86 modules/extensions.
-
- Also removed many #include <string.h>, #include <stdlib.h>, etc.
- from the engine's sources where they are not needed.
-
- * src/sfnt/ttpost.c: Use macro name for psnames.h.
-
-2002-04-12 Vincent Caron <[email protected]>
-
- * configure, builds/detect.mk: Updated the build system to print
- a warning message in case GNU Make isn't used to build the library.
-
-2002-04-11 David Turner <[email protected]>
-
- * README, docs/CHANGES, Jamfile.in: Updates for the 2.1.0 release.
-
- * docs/FTL.txt: Updated license text to provide a preferred
- disclaimer and adjust copyright dates/extents.
-
- * include/freetype/cache/ftcglyph.h: Removing obsolete (and
- confusing) comment.
-
- * Jamfile.in: New file.
-
-2002-04-11 Maxim Shemanarev <[email protected]>
-
- * src/smooth/ftgrays.c (gray_hline): Minor optimization.
-
-2002-04-02 Werner Lemberg <[email protected]>
-
- Fixes from the stable branch:
-
- * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_OLD_CALCS):
- Removed.
- [FT_CONFIG_OPTION_OLD_CALCS]: Removed.
- * include/freetype/internal/ftcalc.h, src/base/ftcalc.c
- [FT_CONFIG_OPTION_OLD_CALCS]: Removed.
-
- * src/base/fttrigon.c (FT_Vector_Length): Change algorithm to match
- output of FreeType 1.
-
- * src/pshinter/pshglob.c (psh_globals_scale_widths): Fixed a small
- bug that created un-even stem widths when hinting Postscript fonts.
-
- * src/type1/t1driver.c, src/type1/t1parse.c: 16bit fixes.
-
-2002-04-01 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c: 16bit fixes.
- (TT_Load_Simple_Glyph): Improve debug messages.
- (load_truetype_glyph): Remove dead code.
- * src/truetype/ttinterp.c: 16bit fixes.
- * src/truetype/ttobjs.c: Ditto.
-
- * include/freetype/ftsnames.h, include/freetype/internal/sfnt.h,
- src/cff/cffload.h, src/psaux/psobjs.h, src/truetype/ttinterp.[ch],
- src/sfnt/ttpost.h: s/index/idx/.
-
-2002-03-31 Yao Zhang <[email protected]>
-
- * src/truetype/ttobjs.c (TT_Size_Init): Fix typo.
-
-2002-03-31 Werner Lemberg <[email protected]>
-
- * src/otlayout/otlcommn.c, src/otlayout/otlcommn.h: s/index/idx/.
- * src/psaux/t1cmap.c: Ditto.
- * src/sfnt/ttcmap0.c: Ditto.
-
- * include/freetype/internal/tttypes.h,
- include/freetype/internal/sfnt.h (TT_Goto_Table_Func): Renamed to ...
- (TT_Loader_GotoTableFunc): This.
- * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix debug
- messages.
- * src/psnames/psmodule.c (psnames_interface)
- [!FT_CONFIG_OPTION_ADOBE_GLYPH_LIST]: Fix typo.
- * src/sfnt/sfdriver.c (get_sfnt_table): 16bit fix.
- * src/sfnt/ttcmap.c: 16bit fixes (0xFFFF -> 0xFFFFU).
- * src/sfnt/ttcmap0.c: 16bit fixes.
- (TT_Build_CMaps): Simplify debug messages.
- (tt_cmap12_char_next): Fix offset.
- * src/sfnt/ttload.c (TT_Load_Names, TT_Load_CMap): Fix debug
- messages.
- (TT_Load_OS2): 16bit fix.
-
-2002-03-30 David Turner <[email protected]>
-
- * include/freetype/internal/tttypes.h: Adding comments to some of
- the TT_FaceRec fields.
-
- * src/sfnt/ttcmap0.c (TT_Build_CMaps): Removed compiler warnings.
-
- * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_{utf16,ucs4,other}:
- New functions.
- (tt_face_get_name): Use them to properly extract an ascii font name.
-
-2002-03-30 Werner Lemberg <[email protected]>
-
- * include/freetype/t1tables.h (t1_blend_max): Fix typo.
- * src/base/ftstream.c: Simplify FT_ERROR calls.
- * src/cff/cffdrivr.c (cff_get_glyph_name): Fix debug message.
-
- * src/cff/cffobjs.c (CFF_Driver_Init, CFF_Driver_Done)
- [TT_CONFIG_OPTION_EXTEND_ENGINE]: Removed.
- * src/cff/sfobjs.c (SFNT_Load_Face)
- [TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto.
- * src/truetype/ttobjs.c (TT_Init_Driver, TT_Done_Driver)
- [TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto.
-
- * src/truetype/ttdriver.c, src/truetype/ttobjs.c,
- src/truetype/ttobjs.h: Renaming driver functions to the
- FT_<Subject>_<Action> scheme:
-
- TT_Init_Driver => TT_Driver_Init
- TT_Done_Driver => TT_Driver_Done
- TT_Init_Face => TT_Face_Init
- TT_Done_Face => TT_Face_Done
- TT_Init_Size => TT_Size_Init
- TT_Done_Size => TT_Size_Done
- TT_Reset_Size => TT_Size_Reset
-
-2002-03-29 Werner Lemberg <[email protected]>
-
- * builds/vms/ftconfig.h: Rename LOCAL_DEF and LOCAL_FUNC to
- FT_LOCAL and FT_LOCAL_DEF, respectively, as with other ftconfig.h
- files.
- * builds/unix/ftconfig.in: Add argument to FT_LOCAL and
- FT_LOCAL_DEF.
- * src/truetype/ttinterp.c: s/FT_Assert/FT_ASSERT/.
- * builds/unix/configure.ac: Temporarily deactivate creation of
- ../../Jamfile.
- * builds/unix/configure: Updated.
-
-2002-03-28 KUSANO Takayuki <[email protected]>
-
- * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fix serious typos.
-
-2002-03-28 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/psaux.h (PSAux_ServiceRec): Fix
- compiler warnings.
- * include/freetype/internal/t1types.h (T1_FaceRec): Use `const' for
- some members.
- * src/base/ftapi.c (FT_New_Memory_Stream): Fix typos.
- * src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Add
- cast.
- (t1_cmap_{standard,expert,custom,unicode}_class_rec): Use
- `FT_CALLBACK_TABLE_DEF'.
- * src/psaux/t1cmap.h: Updated.
- * src/sfnt/ttcmap0.c (TT_Build_CMaps): Use `ft_encoding_none'
- instead of zero.
- * src/type1/t1objs.c (T1_Face_Init): Use casts.
-
-2002-03-26 David Turner <[email protected]>
-
- * src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c:
- Fixed a small bug in the FT_CMaps support code.
-
-2002-03-25 David Turner <[email protected]>
-
- * src/truetype/ttinterp.c (Norm): Replaced with...
- (TT_VecLen): This.
- (TT_MulFix14, TT_DotFix14): New functions.
- (Project, Dual_Project, Free_Project, Compute_Point_Displacement,
- Ins_SHPIX, Ins_MIAP, Ins_MIRP): Use them.
- [FT_CONFIG_OPTION_OLD_CALCS]: Removed all code.
-
-2002-03-22 David Turner <[email protected]>
-
- * src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/type1/t1objs.c:
- Various fixes to make the FT_CMaps support work correctly (more
- tests are still needed).
-
- * include/freetype/internal/ftobjs.h, src/sfnt/Jamfile,
- src/sfnt/rules.mk, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
- src/sfnt/ttload.c, src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h: Updated
- the SFNT charmap support to use FT_CMaps.
-
- * include/freetype/fterrdef.h: New file.
- * include/freetype/fterrors.h: Include it. It contains all error
- codes.
- * include/freetype/config/ftheader.h (FT_ERROR_DEFINITIONS_H): New
- macro.
-
- * include/freetype/internal/ftmemory.h, and a lot of other files:
- Changed the names of memory macros. Examples:
-
- MEM_Set => FT_MEM_SET
- MEM_Copy => FT_MEM_COPY
- MEM_Move => FT_MEM_MOVE
-
- ALLOC => FT_ALLOC
- FREE => FT_FREE
- REALLOC = >FT_REALLOC
-
- FT_NEW was introduced to allocate a new object from a _typed_
- pointer.
-
- Note that ALLOC_ARRAY and REALLOC_ARRAY have been replaced by
- FT_NEW_ARRAY and FT_RENEW_ARRAY which take _typed_ pointer
- arguments.
-
- This results in _lots_ of sources being changed, but makes the code
- more generic and less error-prone.
-
- * include/freetype/internal/ftstream.h, src/base/ftstream.c,
- src/cff/cffload.c, src/pcf/pcfread.c, src/sfnt/ttcmap.c,
- src/sfnt/ttcmap0.c, src/sfnt/ttload.c, src/sfnt/ttpost.c,
- src/sfnt/ttsbit.c, src/truetype/ttgload.c, src/truetype/ttpload.c,
- src/winfonts/winfnt.c: Changed the definitions of stream macros.
- Examples:
-
- NEXT_Byte => FT_NEXT_BYTE
- NEXT_Short => FT_NEXT_SHORT
- NEXT_UShortLE => FT_NEXT_USHORT_LE
- READ_Short => FT_READ_SHORT
- GET_Long => FT_GET_LONG
- etc.
-
- Also introduced the FT_PEEK_XXXX functions.
-
- * src/cff/cffobjs.c (CFF_Build_Unicode_Charmap): Removed commented
- out function.
- (find_encoding): Removed.
- (CFF_Face_Init): Remove charmap support.
-
- * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_USE_CMAPS,
- TT_CONFIG_CMAP_FORMAT{0,2,4,6,8,10,12}): New macros to fine-tune
- support of cmaps.
-
-2002-03-21 David Turner <[email protected]>
-
- * src/base/ftobjs.c, src/pcf/pcfdriver.c, src/pcf/pcfread.c: Updated
- to new FT_CMap definitions.
-
- * src/psaux/t1cmap.h, src/psaux/t1cmap.c, src/type1/t1cmap.h,
- src/type1/t1cmap.c: Updating and moving the Type 1 FT_CMap support
- from `src/type1' to `src/psaux' since it is going to be shared by
- the Type 1 and CID font drivers.
-
- * src/psaux/Jamfile, src/psaux/psaux.c, src/psaux/psauxmod.c,
- src/psaux/rules.mk, include/freetype/internal/psaux.h: Added support
- for Type 1 FT_CMaps.
-
-2002-03-20 David Turner <[email protected]>
-
- * src/base/ftgloadr.c (FT_GlyphLoader_CheckSubGlyphs): Fixed a
- memory allocation bug that was due to un-careful renaming of the
- FT_SubGlyph type.
-
- * src/base/ftdbgmem.c (ft_mem_table_destroy): Fixed a small bug that
- caused the library to crash with Electric Fence when memory
- debugging is used.
-
- * Renaming stream macros. Examples:
-
- FILE_Skip => FT_STREAM_SKIP
- FILE_Read => FT_STREAM_READ
- ACCESS_Frame => FT_FRAME_ENTER
- FORGET_Frame => FT_FRAME_EXIT
- etc.
-
- * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed memory leak.
-
- * include/freetype/internal/ftobjs.h: Changing the definition of
- FT_CMap_CharNextFunc slightly.
-
- * src/cff/*.c: Updating CFF type definitions.
-
-2002-03-14 David Turner <[email protected]>
-
- * include/freetype/internal/autohint.h, src/autohint/ahmodule.c,
- src/base/ftapi.c, src/base/ftobjs.c: Updating the type definitions
- for the auto-hinter module.
-
- FT_AutoHinter_Interface => FT_AutoHinter_ServiceRec
- FT_AutoHinter_Interface* => FT_AutoHinter_Service
- etc.
-
- FT_AutoHinter_Get_Global_Func => FT_AutoHinter_GlobalGetFunc
- FT_AutoHinter_Done_Global_Func => FT_AutoHinter_GlobalDoneFunc
- etc.
-
- * ahloader.h [_STANDALONE_]: Removed all conditional code.
-
- * include/freetype/internal/cfftypes.h, src/cff/*.c: Updating the
- type definitions of the CFF font driver.
-
- CFF_Font => CFF_FontRec
- CFF_Font* => CFF_Font
- etc.
-
- * include/freetype/internal/fnttypes.h, src/winfonts/*.c: Updating
- type definitions of the Windows FNT font driver.
-
- * include/freetype/internal/ftdriver.h,
- include/freetype/internal/ftobjs.h, src/base/ftapi.c,
- src/base/ftobjs.c, src/cff/cffdrivr.c, src/cff/cffdrivr.h,
- src/cid/cidriver.c, src/cid/cidriver.h, src/pcf/pcfdriver.c,
- src/pcf/pcfdriver.h, src/truetype/ttdriver.c,
- src/truetype/ttdriver.h, src/type1/t1driver.c, src/type1/t1driver.h,
- src/winfonts/winfnt.c, src/winfonts/winfnt.h: Updating type
- definitions for font drivers.
-
- FTDriver_initFace => FT_Face_InitFunc
- FTDriver_initGlyphSlot => FT_Slot_InitFunc
- etc.
-
- * src/cid/cidobjs.c (CID_Face_Init): Remove dead code.
-
- * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: Updated a
- few face method definitions:
-
- FT_PSName_Requester => FT_Face_GetPostscriptNameFunc
- FT_Glyph_Name_Requester => FT_Face_GetGlyphNameFunc
- FT_Name_Index_Requester => FT_Face_GetGlyphNameIndexFunc
-
- * src/base/ftapi.c: New file. It contains backwards compatibility
- functions.
-
- * include/freetype/internal/psaux.h, src/cid/cidload.c,
- src/cidtoken.h, src/psaux/psobjs.c, src/psaux/psobjs.h,
- src/psaux/t1decode.c, stc/type1/t1load.c, src/type1/t1tokens.h:
- Updated common PostScript type definitions.
- Renamed all enumeration values like to uppercase variants:
-
- t1_token_any => T1_TOKEN_TYPE_ANY
- t1_field_cid_info => T1_FIELD_LOCATION_CID_INFO
- etc.
-
- * include/freetype/internal/psglobals.h: Removed.
- * include/freetype/internal/pshints.h, src/pshinter/pshglob.h:
- Updated.
-
- * include/freetype/internal/tttypes.h,
- include/freetype/internal/sfnt.h, src/base/ftnames.c,
- src/cff/cffdrivr.c, src/sfnt/*.c, src/truetype/*.c: Updated
- SFNT/TrueType type definitions.
-
- * include/freetype/freetype.h, include/freetype/internal/ftgloadr.h:
- Updating type definitions for the glyph loader.
-
-2002-03-13 Antoine Leca <[email protected]>
-
- * include/freetype/config/ftoption.h: Changed the automatic
- detection of Microsoft C compilers to automatically support 64-bit
- integers only since revision 9.00 (i.e. >= Visual C++ 2.0).
-
-2002-03-08 Werner Lemberg <[email protected]>
-
- * src/base/ftutil.c (FT_Realloc): Use MEM_Set instead of memset.
-
-2002-03-07 Werner Lemberg <[email protected]>
-
- * src/base/ftdbgmem.c (ft_mem_table_resize, ft_mem_table_new,
- ft_mem_table_set, ft_mem_debug_alloc, ft_mem_debug_free,
- ft_mem_debug_realloc, ft_mem_debug_done, FT_Alloc_Debug,
- FT_Realloc_Debug, FT_Free_Debug): Fix compiler warnings.
- * src/base/ftcalc.c (FT_MulFix): Ditto.
- * src/cff/cffdrivr.c (cff_get_name_index): Ditto.
- * src/cff/cffobjs.c (CFF_Size_Get_Global_Funcs, CFF_Size_Init,
- CFF_GlyphSlot_Init): Ditto.
- * src/cid/cidobjs.c (CID_GlyphSlot_Init,
- CID_Size_Get_Globals_Funcs): Ditto.
- * src/type1/t1objs.c (T1_Size_Get_Globals_Funcs, T1_GlyphSlot_Init):
- Ditto.
- * src/pshinter/pshmod.c (pshinter_interface): Use `static const'.
- * src/winfonts/winfnt.c (FNT_Get_Next_Char): Remove unused
- variables.
-
- * include/freetype/internal/psaux.h (T1_Builder_Funcs): Renamed
- to...
- (T1_Builder_FuncsRec): This.
- (T1_Builder_Funcs): New typedef.
- (PSAux_Interface): Remove compiler warnings.
- * src/psaux/psauxmod.c (t1_builder_funcs), src/psaux/psobjs.h
- (t1_builder_funcs): Updated.
-
- * src/pshinter/pshglob.h (PSH_Blue_Align): Replaced with ...
- (PSH_BLUE_ALIGN_{NONE,TOP,BOT}): New defines.
- (PSH_AlignmentRec): Updated.
-
- * include/freetype/internal/ftstream.h (GET_Char, GET_Byte): Fix
- typo.
- * include/freetype/internal/ftgloadr.h (FT_SubGlyph): Ditto.
- * src/base/ftstream (FT_Get_Char): Rename to...
- (FT_Stream_Get_Char): This.
-
- * src/base/ftnames.c (FT_Get_Sfnt_Name): s/index/idx/ -- `index' is
- a built-in function in gcc, causing warning messages with gcc 3.0.
- * src/autohint/ahglyph.c (ah_outline_load): Ditto.
- * src/autohint/ahglobal.c (ah_hinter_compute_blues): Ditto.
- * src/cache/ftcmanag.c (ftc_family_table_alloc,
- ftc_family_table_free, FTC_Manager_Done, FTC_Manager_Register_Cache):
- Ditto.
- * src/cff/cffload.c (cff_new_index, cff_done_index,
- cff_explicit_index, CFF_Access_Element, CFF_Forget_Element,
- CFF_Get_Name, CFF_Get_String, CFF_Load_SubFont, CFF_Load_Font,
- CFF_Done_Font): Ditto.
- * src/psaux/psobjs.c (PS_Table_Add, PS_Parser_LoadField): Ditto.
- * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Ditto.
- * src/pshinter/pshrec.c (ps_mask_test_bit, ps_mask_clear_bit,
- ps_mask_set_bit, ps_dimension_add_t1stem, ps_hints_t1stem3,
- * src/pshinter/pshalgo1.c (psh1_hint_table_record,
- psh1_hint_table_record_mask, psh1_hint_table_activate_mask): Ditto.
- * src/pshinter/pshalgo2.c (psh2_hint_table_record,
- psh2_hint_table_record_mask, psh2_hint_table_activate_mask): Ditto.
- * src/sfnt/ttpost.c (Load_Format_20, Load_Format_25,
- TT_Get_PS_Name): Ditto.
- * src/truetype/ttgload.c (TT_Get_Metrics, Get_HMetrics,
- load_truetype_glyph): Ditto.
- * src/type1/t1load.c (parse_subrs, T1_Open_Face): Ditto.
- * src/type1/t1afm.c (T1_Get_Kerning): Ditto.
- * include/freetype/cache/ftcmanag.h (ftc_family_table_free): Ditto.
-
-2002-03-06 David Turner <[email protected]>
-
- * src/type1/t1objs.c (T1_Face_Init), src/cid/cidobjs.c
- (CID_Face_Init): Fixed another bug related to the
- ascender/descender/text height of Postscript fonts.
-
- * src/pshinter/pshalgo2.c (print_zone): Renamed to ...
- (psh2_print_zone): This.
- * src/pshinter/pshalgo1.c (print_zone): Renamed to ...
- (psh1_print_zone): This.
-
- * include/freetype/freetype.h, include/freetype/internal/ftobjs.h,
- src/base/ftobjs.c: Adding the new FT_Library_Version API to return
- the library's current version in dynamic links.
- * src/base/ftinit.c (FT_Init_FreeType): Updated.
-
-2002-03-06 Werner Lemberg <[email protected]>
-
- * src/pshinter/pshglob.h (PSH_DimensionRec): s/std/stdw/.
- * src/pshinter/pshglob.c (psh_global_scale_widths,
- psh_dimension_snap_width, psh_globals_destroy, psh_globals_new):
- Ditto.
-
-2002-03-05 David Turner <[email protected]>
-
- * src/type1/t1objs.c (T1_Face_Init), src/cff/cffobjs.c
- (CFF_Face_Init), src/cid/cidobjs.c (CID_Face_Init): Removing the bug
- that returned global BBox values in 16.16 fixed format (instead of
- integer font units).
-
- * src/cid/cidriver.c (cid_get_postscript_name): Fixed a bug that
- caused the CID driver to return Postscript font names with a leading
- slash (`/') as in `/MOEKai-Regular'.
-
- * src/sfnt/ttload.c (TT_Load_Names), src/sfnt/sfobjs.c (Get_Name),
- src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed the loader so
- that it accepts broken fonts like `foxjump.ttf', which made FreeType
- crash when trying to load them.
-
- Also improved the name table parser to be able to load
- Windows-encoded entries before Macintosh or Unicode ones, since it
- seems some fonts don't have reliable values here anyway.
-
- * include/freetype/internal/psnames.h: Add typedef for
- `PSNames_Service'.
-
-2002-03-05 Werner Lemberg <[email protected]>
-
- * builds/unix/aclocal.m4, builds/unix/ltmain.sh: Update to libtool
- 1.4.2.
- Apply a small patch for AIX to make shared libraries work (this
- patch is already in the CVS version of libtool).
-
- * builds/unix/config.sub, builds/unix/config.guess: Updated to
- recent versions.
-
- * builds/unix/configure.ac: Fix typo
- (AC_CONFIG_FILE->AC_CONFIG_FILES).
-
- * builds/unix/configure: Regenerated.
-
-2002-02-28 David Turner <[email protected]>
-
- * include/freetype/ftconfig.h: Changed `FT_LOCAL xxxx' to
- `FT_LOCAL( xxxx )' everywhere in the source. The same goes for
- `FT_LOCAL_DEF xxxx' which is translated to `FT_LOCAL_DEF( xxxxx )'.
-
- * include/freetype/freetype.h (FREETYPE_MINOR, FREETYPE_PATCH):
- Changing version to 2.1.0 to indicate an unstable branch.
- Added the declarations of FT_Get_First_Char and FT_Get_Next_Char.
-
- * src/base/ftobjs.c: Implement FT_Get_First_Char and
- FT_Get_Next_Char.
-
- * include/freetype/t1tables.h: Renaming structure types. This
-
- typedef T1_Struct_
- {
- } T1_Struct;
-
- becomes
-
- typedef PS_StructRec_
- {
- } PS_StructRec, *PS_Struct;
-
- typedef PS_StructRec T1_Struct; /* backwards-compatibility */
-
- Hence, we increase the coherency of the source code by effectively
- using the `Rec' prefix for structure types.
-
-2002-02-27 David Turner <[email protected]>
-
- * src/sfnt/ttload.c (TT_Load_Names): Simplifying and securing the
- names table loader. Invalid individual name entries are now handled
- correctly. This allows the loading of very buggy fonts like
- `foxjump.ttf' without allocating tons of memory and causing crashes.
-
- * src/otlayout/otlcommon.h, src/otlayout/otlcommon.c: Adding (still
- experimental) code for OpenType Layout tables validation and
- parsing.
-
- * src/type1/t1cmap.h, src/type1/t1cmap.c: Adding (still
- experimental) code for Type 1 charmap processing.
-
- * src/sfnt/ttcmap0.c: New file. It contains a new, still
- experimental SFNT charmap processing support.
-
- * include/freetype/internal/ftobjs.h: Adding validation support as
- well as internal charmap object definitions (FT_CMap != FT_CharMap).
-
-2002-02-24 David Turner <[email protected]>
-
- * Renaming stream functions to the FT_<Subject>_<Action> scheme:
-
- FT_Seek_Stream => FT_Stream_Seek
- FT_Skip_Stream => FT_Stream_Skip
- FT_Read_Stream => FT_Stream_Read
- FT_Read_Stream_At => FT_Stream_Read_At
- FT_Access_Frame => FT_Stream_Enter_Frame
- FT_Forget_Frame => FT_Stream_Exit_Frame
- FT_Extract_Frame => FT_Stream_Extract_Frame
- FT_Release_Frame => FT_Stream_Release_Frame
- FT_Get_XXXX => FT_Stream_Get_XXXX
- FT_Read_XXXX => FT_Stream_Read_XXXX
-
- FT_New_Stream( filename, stream ) =>
- FT_Stream_Open( stream, filename )
-
- (The function doesn't create the FT_Stream structure, it simply
- initializes it for reading.)
-
- FT_New_Memory_Stream( library, FT_Byte* base, size, stream ) =>
- FT_Stream_Open_Memory( stream, const FT_Byte* base, size )
-
- FT_Done_Stream => FT_Stream_Close
- FT_Stream_IO => FT_Stream_IOFunc
- FT_Stream_Close => FT_Stream_CloseFunc
-
- ft_close_stream => ft_ansi_stream_close (in base/ftsystem.c only)
- ft_io_stream => ft_ansi_stream_io (in base/ftsystem.c only)
-
- * src/base/ftutil.c: New file. Contains all memory and list
- management code (previously in `ftobjs.c' and `ftlist.c',
- respectively).
-
- * include/freetype/internal/ftobjs.h: Moving all code related to
- glyph loaders to ...
- * include/freetype/internal/ftgloadr.h: This new file.
- `FT_GlyphLoader' is now a pointer to the structure
- `FT_GlyphLoaderRec'.
- (ft_glyph_own_bitmap): Renamed to ...
- (FT_GLYPH_OWN_BITMAP): This.
- * src/base/ftobjs.c: Moving all code related to glyph loaders
- to ...
- * src/base/ftgloadr.c: This new file.
-
-2002-02-22 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/ftdebug.h (FT_Trace): Remove comma in
- enum to avoid compiler warnings.
-
-2002-02-21 David Turner <[email protected]>
-
- Modified the debug sub-system initialization. Trace levels can now
- be specified within the `FT2_DEBUG' environment variable. See the
- comments within `ftdebug.c' for more details.
-
- * src/base/ftdebug.c: (FT_SetTraceLevel): Removed.
- (ft_debug_init): New function.
- (ft_debug_dummy): Removed.
- Updated to changes in ftdebug.h
-
- * include/freetype/internal/ftdebug.h: Always define
- FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE is defined.
- (FT_Assert): Renamed to ...
- (FT_ASSERT): This.
- Some stuff from ftdebug.h has been moved to ...
-
- * include/freetype/internal/fttrace.h: New file, to define the trace
- levels used for debugging. It is used both to define enums and
- toggle names for FT2_DEBUG.
-
- * include/freetype/internal/internal.h: Updated.
-
- * src/base/ftobjs.c, src/base/ftstream.c: Updated.
-
- * include/freetype/internal/ftextend.h, src/base/ftextend.c:
- Removed. Both files are now completely obsolete.
- * src/base/Jamfile, src/base/rules.mk: Updated.
-
- * include/freetype/fterrors.h: Adding `#undef FT_ERR_CAT' and
- `#undef FT_ERR_XCAT' to avoid warnings with certain compilers (like
- LCC).
-
- * src/pshinter/pshalgo2.c (print_zone): Renamed to ...
- (psh2_print_zone): This to avoid errors during compilation of debug
- library.
-
- * src/smooth/ftgrays.c (FT_COMPONENT): Change definition to as
- `trace_smooth'.
-
-2002-02-20 David Turner <[email protected]>
-
- * README: Adding `[email protected]' address for bug reports.
-
-2002-02-20 Werner Lemberg <[email protected]>
-
- * builds/unix/install.mk (check): New dummy target.
- (.PHONY): Add it.
-
-2002-02-19 Werner Lemberg <[email protected]>
-
- * builds/freetype.mk (FT_CFLAGS): Use $(INCLUDE_FLAGS) first.
-
- * src/cache/ftccache.c (ftc_cache_resize): Mark `error' as unused
- to avoid compiler warning.
- * src/cff/cffload.c (CFF_Get_String): Ditto.
- * src/cff/cffobjs.c (CFF_StrCopy): Ditto.
- * src/psaux/psobjs.c (PS_Table_Done): Ditto.
- * src/pcf/pcfread.c (pcf_seek_to_table_type): Ditto.
- * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Ditto.
- (pcf_get_bitmaps): The same for `sizebitmaps'.
- * src/psaux/t1decode.c (T1_Decode_Parse_Charstrings): The same for
- `orig_y'.
- (t1operator_seac): Comment out more dead code.
- * src/pshinter/pshalgo2.c (ps2_hints_apply): Add `DEBUG_HINTER'
- conditional.
- * src/truetype/ttgload.c (TT_Process_Simple_Glyph,
- load_truetype_glyph): Add `TT_CONFIG_OPTION_BYTECODE_INTERPRETER'
- conditional.
-
-2002-02-18 Werner Lemberg <[email protected]>
-
- * src/autohint/ahglyph.c (ah_outline_link_segments): Remove unused
- variables.
- * src/autohint/ahhint.c (ah_align_serif_edge): Use FT_UNUSED instead
- of UNUSED.
- * src/autohint/ahmodule.c (ft_autohinter_reset): Ditto.
- * src/pshinter/pshrec.c (ps_mask_table_merge): Fix typo in variable
- swapping code.
- * src/pshinter/pshglob.h (PSH_Blue_Align): Add PSH_BLUE_ALIGN_NONE.
- * src/pshinter/pshglob.c (psh_blues_snap_stem): Use it.
- * src/pshinter/pshalgo1.c (psh1_hint_table_optimize): Ditto.
- * src/pshinter/pshalgo2.c (psh2_hint_align): Ditto.
- * include/freetype/internal/ftobjs.h (UNUSED): Removed.
-
-2002-02-10 Roberto Alameda <[email protected]>
-
- Add support for ISOLatin1 PS encoding.
-
- * include/freetype/freetype.h (ft_encoding_latin_1): New tag
- (`lat1').
- * include/freetype/internal/t1types.h (T1_Encoding_Type): Add
- `t1_encoding_isolatin1'.
- * src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Handle
- ft_encoding_latin_1.
- * src/type1/t1load.c (parse_encoding): Handle `ISOLatin1Encoding'.
- * src/type1/t1objs.c (T1_Face_Init): Handle `t1_encoding_isolatin1'.
-
-----------------------------------------------------------------------------
-
-Copyright 2002, 2003, 2004, 2005, 2007, 2008 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.
-
-
-Local Variables:
-version-control: never
-coding: utf-8
-End:
+2005-06-08 Werner Lemberg <[email protected]> + + + * Version 2.1.10 released. + ========================== + + + * src/pcf/readme: Renamed to... + * src/pcf/README: This. + +2005-06-07 Detlef Würkner <[email protected]> + + * builds/amiga/*: Added copyright notes, reworked some comments. + +2005-06-05 Werner Lemberg <[email protected]> + + * Add copyright notices to all files which don't have one. + + * docs/license.txt: Renamed to... + * docs/LICENSE.TXT: This. + * docs/FTL.txt: Renamed to... + * docs/FTL.TXT: This. + * docs/GPL.txt: Renamed to... + * docs/GPL.TXT: This. + + * docs/PATENTS: Slightly reworded. Suggested by Sylvain Beucler + <[email protected]>. + +2005-06-04 Werner Lemberg <[email protected]> + + * include/freetype/ftimage.h (FT_Outline_MoveToFunc, + FT_Outline_LineToFunc, FT_Outline_ConicToFunc, + FT_Outline_CubicToFunc, FT_Raster_RenderFunc), + include/freetype/ftrender.h (FT_Glyph_TransformFunc, + FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Don't use + `const' to stay compatible with FreeType 2.1.9. + +2005-06-01 Adam D. Moss <[email protected]> + + * src/base/ftstroke.c (ft_stroker_inside): Revert `sigma' patch from + 2004-07-11; this gives much better results under normal + circumstances. + +2005-05-30 Chia I Wu <[email protected]> + + * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Minor + documentation improvements. + + * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix typos. + + * src/base/ftbitmap.c (FT_Bitmap_Embolden): Add support for bitmap + of pixel_mode FT_PIXEL_MODE_GRAY2 or FT_PIXEL_MODE_GRAY4. + If xstr is larger than 8 and bitmap is of pixel_mode + FT_PIXEL_MODE_MONO, set xstr to 8 instead of returning error. + +2005-05-29 Chia I Wu <[email protected]> + + * src/base/ftbitmap.c (FT_Bitmap_Embolden): Fix emboldening bitmap + of mode FT_PIXEL_MODE_GRAY. Also add support for mode + FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V. + (ft_bitmap_assure_buffer): FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V + should have ppb (pixel per byte) 1. + Zero the padding when there's no need to allocate memory. + + * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle slot->advance + too. + More suited emboldening strength. + +2005-05-28 Chia I Wu <[email protected]> + + * src/base/ftbitmap.c (FT_Bitmap_Embolden): Handle negative pitch. + Handle FT_PIXEL_MODE_GRAY with num_gray != 256. + Improve speed for FT_PIXEL_MODE_GRAY. + (ft_bitmap_assure_buffer): Accept FT_PIXEL_MODE_LCD and + FT_PIXEL_MODE_LCD_V. + +2005-05-27 Chia I Wu <[email protected]> + + * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Initialize `error'. + + * src/base/ftobjs.c (ft_cmap_done_internal): New function. + (FT_CMap_Done): Remove cmap from cmap list. + (destroy_charmaps, FT_CMap_New): Don't call FT_CMap_Done but + ft_cmap_done_internal. + +2005-05-26 Werner Lemberg <[email protected]> + + * docs/GPL.txt: Update postal address of FSF. + +2005-05-26 Chia I Wu <[email protected]> + + * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Improve + documentation. + + * src/base/ftsynth.c (FT_BOLD_THRESHOLD): Removed. + (FT_GlyphSlot_Embolden): Check whether slot is bitmap owner. + Always modify the metrics. + +2005-05-24 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2005-05-24 Chia I Wu <[email protected]> + + * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): New declaration. + + * include/freetype/ftoutln.h (FT_Outline_Embolden): New declaration. + + * src/base/ftbitmap.c (ft_bitmap_assure_buffer): New auxiliary + function. + (FT_Bitmap_Embolden): New function. + + * src/base/ftoutln.c (FT_Outline_Embolden): New function. + + * src/base/ftsynth.c: Don't include FT_INTERNAL_CALC_H and + FT_TRIGONOMETRY_H but FT_BITMAP_H. + (FT_GlyphSlot_Embolden): Use FT_Outline_Embolden or + FT_Bitmap_Embolden. + +2005-05-24 Werner Lemberg <[email protected]> + + * configure: Always remove config.mk, builds/unix/unix-def.mk, and + builds/unix/unix-cc.mk. This fixes repeated calls of the script. + Reported by Nelson Beebe and Behdad Esfahbod. + + * README.CVS: Mention file permissions. + +2005-05-23 Werner Lemberg <[email protected]> + + * builds/amiga/makefile.os4 (WARNINGS), builds/compiler/gcc-dev.mk + (CFLAGS), builds/compiler/gcc.mk (CFLAGS): Remove + -fno-strict-aliasing. + + * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c -- + it is currently loaded from ttsbit.c. + +2005-05-23 Behdad Esfahbod <[email protected]> + + Say you have `(Foo*)x' and want to assign, pass, or return it as + `(Bar*)'. If you simply say `x' or `(Bar*)x', then the C compiler + would warn you that type casting incompatible pointer types breaks + strict-aliasing. The solution is to cast to `(void*)' instead which + is the generic pointer type, so the compiler knows that it should + make no strict-aliasing assumption on `x'. But the problem with + `(void*)x' is that seems like in C++, unlike C, `void*' is not a + generic pointer type and assigning `void*' to `Bar*' without a cast + causes an error. The solution is to cast to `Bar*' too, with + `(Bar*)(void*)x' as the result -- this is what the patch does. + + * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), + include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Remove + cast on lvalue, use a temporary pointer instead. + Cast temporarily to (void*) to not break strict aliasing. + + * include/freetype/internal/ftmemory.h (FT_MEM_ALLOC, + FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC, FT_MEM_FREE), + src/base/ftglyph.c (FT_Glyph_To_Bitmap): Cast temporarily to (void*) + to not break strict aliasing. + + * src/base/ftinit.c (FT_USE_MODULE): Fix wrong type information. + + * builds/unix/configure.ac (XX_CFLAGS): Remove -fno-strict-aliasing. + +2005-05-23 David Turner <[email protected]> + + Fix Savannah bug #12213 (incorrect behaviour of the cache sub-system + in low-memory conditions). + + * include/freetype/cache/ftccache.h (FTC_CACHE_TRYLOOP, + FTC_CACHE_TRYLOOP_END): New macros. + + * src/cache/ftccache.c (FTC_Cache_NewNode), src/cache/ftcsbits.c + (ftc_snode_compare): Use FT_CACHE_TRYLOOP and FTC_CACE_TRYLOOP_END. + +2005-05-23 Werner Lemberg <[email protected]> + + * src/base/rules.mk (BASE_SRC): Don't add ftsynth.c here but... + (BASE_EXT_SRC): Here. + +2005-05-22 Werner Lemberg <[email protected]> + + * src/base/ftrfork.c (raccess_guess_apple_generic): Mark + `version_number' and `entry_length' as unused. + (raccess_guess_linux_double_from_file_name): Remove `memory'. + (raccess_make_file_name): Mark `error' as unused. + + * src/bdf/bdflib.c (_bdf_parse_properties): Remove `memory'. + + * src/cid/cidobjs.c (cid_face_init): Remove `psnames'. + + * src/sfnt/sfobjs.c (sfnt_load_face): Remove `memory'. + + * src/truetype/ttgxvar.c (ft_var_readpackedpoints, + ft_var_readpackeddeltas, ft_var_load_avar): Mark `error' as unused. + + * src/base/rules.mk (BASE_SRC): Add ftsynth.c. + +2005-05-21 David Turner <[email protected]> + + * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Fix a bug that + produced unpleasant artefacts when trying to embolden very sharp + corners. + +2005-05-20 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2005-05-20 Chia I Wu <[email protected]> + + * src/base/ftbitmap.c: Don't include FT_FREETYPE_H and FT_IMAGE_H + but FT_BITMAP_H. + (FT_Bitmap_Copy): New function (from ftglyph.c). + + * include/freetype/ftbitmap.h (FT_Bitmap_Copy): New public + definition. + + * src/base/ftglyph.c: Include FT_BITMAP_H. + (ft_bitmap_copy): Move to ftbitmap.c. + (ft_bitmap_glyph_init): Remove `memory' variable. + Create new bitmap object if FT_GLYPH_OWN_BITMAP isn't set. + (ft_bitmap_glyph_copy): Use FT_Bitmap_Copy. + (ft_bitmap_glyph_done): Use FT_Bitmap_Done. + (ft_outline_glyph_init): Use FT_Outline_Copy. + + * src/base/ftoutln.c (FT_Outline_Copy): Handle source == target. + (FT_Outline_Done_Internal): Check for valid `memory' pointer. + (FT_Outline_Translate, FT_Outline_Reverse, FT_Outline_Render, + FT_Outline_Transform): Check for valid `outline' pointer. + + * src/base/ftobjs.c (FT_New_GlyphSlot): Prepend glyph slot to + face->glyph, otherwise a new second glyph slot cannot be created. + (FT_Done_GlyphSlot): Fix memory leak. + (FT_Open_Face): Updated -- face->glyph is already managed by + FT_New_GlyphSlot. + + * src/type42/t42objs.c (T42_GlyphSlot_Done): Updated. + +2005-05-20 Kirill Smelkov <[email protected]> + + * include/freetype/ftimage.h (FT_Raster_Params), + include/freetype/ftoutln.h (FT_Outline_Translate, + FT_Outline_Transform), src/base/ftoutln.c (FT_Outline_Translate, + FT_Outline_Transform): Decorate parameters with `const' where + appropriate. + Update all callers. + + * src/raster/ftraster.c (ft_black_reset), src/smooth/ftgrays.c + (gray_raster_reset): Remove `const' from `pool_base' argument. + +2005-05-18 Kirill Smelkov <[email protected]> + + * src/raster/ftmisc.h: New file. Only needed if ftraster.c is + compiled as stand-alone. + + * src/raster/ftraster.c: Add comment how to compile as stand-alone. + s/FT_CONFIG_OPTION_STATIC_RASTER/FT_STATIC_RASTER/. + s/TT_STATIC_RASTER/FT_STATIC_RASTER/. + [_STANDALONE_]: Include ftimage.h and ftmisc.h. + (FT_TRACE1, FT_TRACE6, ft_memset, FT_MEM_ZERO): Define + conditionally. + (Render_Glyph, Render_Gray_Glyph): Return Raster_Err_None (or + Raster_Err_Unsupported). + (ft_black_new) [_STANDALONE_]: Fix type of `the_raster'. + (ft_black_init, ft_black_reset, ft_black_set_mode, ft_black_render): + Use `ras', not `raster'. + (ft_black_done): Use FT_UNUSED_RASTER. + (Horizontal_Sweep_Init, Horizontal_Sweep_Step, + Horizontal_Gray_Sweep_Span): Use FT_UNUSED_RASTER. + +2005-05-18 Werner Lemberg <[email protected]> + + * docs/announce: Start updating. + + * docs/CHANGES: Updated. + +2005-05-16 Vitaliy Pasternak <[email protected]> + + * builds/win32/visualc/freetype.vcproj: Updated. + Exclude debug info for `Release' versions to reduce library size. + +2005-05-16 Werner Lemberg <[email protected]> + + * src/base/ftobjs.c (FT_Open_Face): Make it work as documented, this + is, ignore `aface' completely if face_index < 0. Reported by David + Osborn <[email protected]>. + +2005-05-16 Kirill Smelkov <[email protected]> + + * include/freetype/ftimage.h (FT_Outline_MoveToFunc, + FT_Outline_LineTo_Func, FT_Outline_ConicToFunc, + FT_Outline_CubicToFunc), src/smooth/ftgrays.c (gray_render_conic, + gray_render_cubic, gray_move_to, gray_line_to, gray_conic_to, + gray_cubic_to, gray_render_span, gray_sweep): Decorate parameters + with `const' where appropriate. + +2005-05-11 Kirill Smelkov <[email protected]> + + * include/freetype/ftimage.h (FT_Raster_RenderFunc), + include/freetype/ftrender.h (FT_Glyph_TransformFunc, + FT_Renderer_Render_Func, FT_Renderer_TransformFunc), + src/base/ftglyph.c (ft_outline_glyph_transform), + src/raster/ftrend1.c (ft_raster1_transform, ft_raster1_render), + src/smooth/ftgrays.c (FT_Outline_Decompose, gray_raster_render), + src/smooth/ftsmooth.c (ft_smooth_transform, + ft_smooth_render_generic, ft_smooth_render, ft_smooth_render_lcd, + ft_smooth_render_lcd_v): Decorate parameters with `const' where + appropriate. + + * src/raster/ftraster.c (RASTER_RENDER_POOL): Removed. Obsolete. + (ft_black_render): Decorate parameters with `const' where + appropriate. + +2005-05-11 Werner Lemberg <[email protected]> + + * src/sfnt/ttcmap.c (tt_cmap4_set_range): Fix typo (FT_PEEK_SHORT -> + FT_PEEK_USHORT) which caused crashes. Reported by Ismail Donmez + <[email protected]>. + +2005-05-08 Werner Lemberg <[email protected]> + + * include/freetype/internal/ftserv.h (FT_FACE_FIND_GLOBAL_SERVICE) + [__cplusplus]: Fix typo. + +2005-05-07 Werner Lemberg <[email protected]> + + Handle unsorted SFNT type 4 cmaps correctly (reported by Dirck + Blaskey <[email protected]>). + + * src/sfnt/ttcmap.h (TT_CMap): Add member `unsorted'. + * src/sfnt/ttcmac.c: Use SFNT_Err_Ok where appropriate. + + (tt_cmap0_validate, tt_cmap2_validate, tt_cmap6_validate, + tt_cmap8_validate, tt_cmap10_validate, tt_cmap12_validate): Use + `FT_Error' as return type. + (tt_cmap4_validate): Use `FT_Error' as return type. + Return error code for unsorted cmap. + (tt_cmap4_char_index, tt_cmap4_char_next): Use old code for unsorted + cmaps. + (tt_face_build_cmaps): Set `unsorted' variable in cmap. + +2005-05-07 Werner Lemberg <[email protected]> + + * src/truetype/ttpload.c (tt_face_get_location): Fix typo. + +2005-05-06 Werner Lemberg <[email protected]> + + * src/cff/cffobjs.c (cff_face_init): Set ppem value in top + dictionary for SFNT-based CFF. + +2005-05-05 Werner Lemberg <[email protected]> + + Handle malformed `loca' table entries. + + * docs/TODO: Add some bugs which should be fixed. + + * include/freetype/internal/tttypes.h (TT_FaceRec): Add `glyf_len' + element. + + * src/truetype/ttpload.c (tt_face_load_loca): Get length of `glyf' + table. + (tt_face_get_location): Fix computation of `asize' for malformed + `loca' entries. + +2005-05-01 David Turner <[email protected]> + + * Jamfile: Remove `otvalid' from the list of compiled modules. + + * include/freetype/internal/ftserv.h: Add compiler pragmas to get + rid of annoying warnings with Visual C++ compiler in maximum warning + mode. + + * src/autofit/afhints.c, src/autofit/aflatin.c, src/base/ftstroke.c, + src/bdf/bdfdrivr.c, src/cache/ftcbasic.c, src/cache/ftccmap.c, + src/cache/ftcmanag.c, src/cff/cffload.c, src/cid/cidload.c, + src/lzw/zopen.c, src/otvalid/otvgdef.c, src/pcf/pcfread.c, + src/sfnt/sfobjs.c, src/truetype/ttgxvar.c: Remove compiler warnings. + +2005-04-28 Werner Lemberg <[email protected]> + + * docs/TODO: Updated. + +2005-04-24 Werner Lemberg <[email protected]> + + * src/otvalid/otvcommn.c + (otv_GSUBGPOS_have_MarkAttachmentType_flag): Handle table == 0. + +2005-04-16 Werner Lemberg <[email protected]> + + * src/cff/cffobjs.c (cff_face_init): Set default upem value in top + font dict also. + Handle font matrix settings in subfonts. + + * src/cff/cffgload.c (cff_slot_load): Use the correct font matrix + for CID-keyed fonts with subfonts. + + * docs/formats.txt: Updated. + +2005-04-14 Kirill Smelkov <[email protected]> + + * include/freetype/freetype.h (FT_Vector_Transform), + include/freetype/ftimage.h (FT_Raster_Params), + include/freetype/ftoutln.h, src/base/ftoutln.c (FT_Outline_Get_CBox, + FT_Outline_Copy, FT_Outline_Transform, FT_Vector_Transform, + FT_Outline_Get_Bitmap), src/raster/ftraster.c (ft_black_render), + src/smooth/ftgrays.c (gray_raster_render): Decorate parameters with + `const' where appropriate. + +2005-04-14 Werner Lemberg <[email protected]> + + * src/type1/t1load.c (parse_charstrings): Catch this non-standard + beginning of the /CharStrings dictionary: + + /CharStrings 118 dict def + Private begin + CharStrings begin + + * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix arguments + to call of tt_sbit_decoder_load_bitmap. + +2005-04-13 Werner Lemberg <[email protected]> + + * docs/TODO: Updated. + + * autogen.sh: Use `--force' for all commands. + +2005-04-09 Werner Lemberg <[email protected]> + + * src/pshinter/pshalgo.c (ps_hints_apply): Change scaling values + only if `fitted' is not zero. + +2005-04-06 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c (tt_face_get_metrics) [FT_OPTIMIZE_MEMORY]: + Fix typo which sometimes causes wrong metrics for the last glyph. + +2005-04-04 David Turner <[email protected]> + + * devel/ftoption.h, include/freetype/config/ftoption.h + (FT_OPTIMIZE_MEMORY): Comment out this macro for the upcoming 2.1.10 + release. + (*_CHESTER_*): Removed. No longer used. + + * src/autofit/afhints.c (af_axis_hints_new_segment, + af_axis_hints_new_edge): Small tweak to use less heap memory. + +2005-04-03 Werner Lemberg <[email protected]> + + * src/type1/t1parse.c (T1_New_Parser): Relax the check for a valid + first line in the font. + +2005-04-03 Werner Lemberg <[email protected]> + + * docs/CHANGES, include/freetype/freetype.h: Improve documentation + of FT_Set_Pixel_Sizes and FT_Set_Char_Size. + +2005-03-26 Detlef Würkner <[email protected]> + + * builds/amiga/src/base/ftsystem.c (ft_amiga_stream_io): Fix buffer + offsets after a large read. + +2005-03-26 Werner Lemberg <[email protected]> + + * src/autofit/afglobal.c (af_face_globals_get_metrics): + s/index/gidx/. + + * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix compiler + warnings. + + * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c. + + * src/sfnt/ttsbit0.h: Dummy file for build with `make'. + +2005-03-26 Detlef Würkner <[email protected]> + + Update of the Amiga port. + + * builds/amiga/makefile, builds/amiga/makefile.os4, + builds/amiga/smakefile: Included the base extension files + (ftbitmap.c, ftotval.c, ftpfr.c, ftstroke.c, ftxf86.c). + +2005-03-25 Detlef Würkner <[email protected]> + + Update of the Amiga port. + + * builds/amiga/makefile, builds/amiga/smakefile: Handle new modules. + + * builds/amiga/makefile.os4: Makefile for AmigaOS4 SDK. + + * builds/amiga/README: Updated. + + * builds/amiga/include/freetype/config/ftconfig.h: Handle gcc for + AmigaOS4. + + * builds/amiga/include/freetype/config/ftmodule.h: Handle new + modules. + + * builds/amiga/src/base/ftdebug.c: Updated to current version of + default ftdebug.c. + Add various include files and macros to have proper support for + both AmigaOS4 and older AmigaOS versions. + Don't declare KVPrintF explicitly. + Replace getenv with GetVar. + Actually enable debugging code. + + * builds/amiga/src/base/ftsystem.c: Major rewrite. + +2005-03-23 Werner Lemberg <[email protected]> + + * tests/*: Removed. + +2005-03-23 Werner Lemberg <[email protected]> + + * docs/CHANGES, docs/INSTALL.ANY: Updated. + + * include/freetype/ftmoderr.h: Replace `Autohint' with `Autofit'. + Add `OTvalid'. + + * src/autofit/aferrors.h: New file. + + * src/autofit/afglobal.c, src/autofit/afhints.c, + src/autofit/aflatin.c, src/autofit/afloader.c: s/FT_Err_/AF_Err_/. + Include aferrors.h. + + * src/autofit/rules.mk (AUTOF_DRV_H): Include aferrors.h. + + * src/otvalid/otverror.h: s/FT_Mod_Err_OTV/FT_Mod_Err_OTvalid/. + +2005-03-22 David Turner <[email protected]> + + * src/autohint/*: Removed. + * Jamfile: Updated. + +2005-03-15 David Turner <[email protected]> + + * src/bdf/bdflib.c: Remove compiler warnings. + (hash_rehash, hash_init): Don't call FT_MEM_ZERO. + (_bdf_list_t): Add `memory' field. + (_bdf_list_init, _bdf_list_done, _bdf_list_ensure): New functions. + (_bdf_shift, _bdf_join): Rename to... + (_bdf_list_shift, _bdf_list_join): This. + (_bdf_split): Renamed to... + (_bdf_list_split): This. Use new functions. + (bdf_internal_readstream): Removed. + (NO_SKIP): New macro. + (_bdf_readstream): Rewritten. + (bdf_create_property, _bdf_add_comment): Improve allocation. + (_bdf_set_default_spacing, _bdf_parse_glyphs): Updated. Improve + allocation. + (_bdf_parse_properties, _bdf_parse_start): Updated. + (bdf_load_font): Updated to use new functions. + + * src/type1/t1parse.c (check_type1_format): New function. + (T1_New_Parser): Use it to check font header before allocating + anything on the heap. + + * src/type42/t42parse.c (t42_parser_init): Modify functions to check + the font header before allocating anything on the heap. + + * include/freetype/internal/ftmemory.h (FT_ARRAY_MAX, + FT_ARRAY_CHECK): New macros. + + * src/base/ftstream.c (FT_Stream_TryRead): New function. + * include/freetype/internal/ftstream.h: Updated. + + * src/pcf/pcfread.c (pcf_read_TOC), src/pcf/pcfutil.c + (BitOrderInvert, TwoByteSwap, FourByteSwap): Minor fixes and + simplifications. Try to protect the PCF driver from doing stupid + things with broken fonts. + + * src/lzw/ftlzw.c (FT_Stream_OpenLZW): Check the LZW header before + doing anything else. This avoids unnecessary heap allocations + (400KByte of heap memory for the LZW decoder). + + * src/gzip/ftgzip.c (FT_Stream_OpenGZip): Ditto for the gzip + decoder, although the code savings are smaller. + + * docs/CHANGES: Updated. + +2005-03-10 David Turner <[email protected]> + + * src/tools/glnames.py: Add comment to explain the compression + being used for the Adobe Glyph List. + +2005-03-10 Werner Lemberg <[email protected]> + + * src/truetype/ttpload.c (tt_face_load_cvt, tt_face_load_fpgm): + Fix serious typo which prevented correct TT rendering. + + * include/freetype/internal/ftmemory.h: Undo change from 2005-03-03. + To suppress warnings it is sufficient to use `-fno-strict-aliasing'. + +2005-03-10 Werner Lemberg <[email protected]> + + * src/tools/glnames.py: Formatted. + Format output to be in sync with other FreeType code. + Import `re' and `os.path'. + (StringTable) <__init__>: Add parameter to initialize master table + name. + (StringTable) <dump>: Don't pass master table name. + (StringTable) <dump_sublist>: Emit explanatory comment. + Simplify and make output more human readable. + (t1_bias, glyph_list, adobe_glyph_names): Removed. Unused. + (main): Use `basename' for file name in header. + + * src/psnames/pstables.h: Regenerated. + +2005-03-09 David Turner <[email protected]> + + * src/tools/glnames.py: Rewrite the generator for the `pstables.h' + header file which contains various constant tables related to glyph + names. It now uses a different, more compact storage scheme that + saves about 20KB. This also closes Savannah bug #12262. + + * src/psnames/pstables.h: Regenerated. + + * src/psnames/psmodule.c (ps_unicode_value): Use + `ft_get_adobe_glyph_index', a new function defined in `pstables.h'. + (ps_get_macintosh_name, ps_get_standard_strings): Updated. + + * src/base/ftobjs.c (FT_Set_Char_Sizes): Handle fractional sizes + more carefully. This fixes Savannah bug #12263. + +2005-03-06 David Turner <[email protected]> + + * src/otvalid/otvgsub.c, src/otvalid/otvgpos.c: Make static tables + constant. + + * src/autofit/aflatin.c (af_latin_metrics_init): Fix Savannah bug + #12212 (auto-hinter refuses to work if no Unicode charmap in font). + +2005-03-05 Werner Lemberg <[email protected]> + + * autogen.sh: New script for bootstrapping. + + * README.CVS: New file which documents bootstrapping. + + * builds/unix/aclocal.m4, builds/unix/config.guess, + builds/unix/config.sub, builds/unix/configure, + builds/unix/ltmain.sh: Removed. + +2005-03-04 Werner Lemberg <[email protected]> + + * src/base/ftutil.c: Include FT_INTERNAL_OBJECTS_H. + +2005-03-03 Werner Lemberg <[email protected]> + + Various fixes for C and C++ compiling. + + * src/autofit/*: Add copyright messages. + + * src/autofit/afhints.c (af_glyph_hints_done): Don't use + `AF_Dimension' but `int' for loop counter. + + * src/autofit/aflatin.c (af_latin_metrics_init_widths): Don't use + `AF_Dimension' but `int' for loop counter. + Use proper enumeration value for `render_mode'. + (af_latin_metrics_scale_dim): Don't shadow variables. + (af_latin_hints_compute_segments): Use proper cast for `major_dir' + and `segment_dir'. + (af_latin_align_linked_edge, af_latin_hint_edges): Fix arguments of call to + `af_latin_compute_stem_width'. + (af_latin_hints_apply): Don't use `AF_Dimension' but `int' for loop + counter. + + * src/base/ftdbgmem.c (ft_mem_table_get_source, FT_DumpMemory): Use + proper cast for memory allocation. + + * src/cff/cffdrivr.c (cff_get_kerning): Use proper cast for + initialization of `sfnt'. + + * src/sfnt/sfdriver.c: Include `ttkern.h'. + + * src/sfnt/ttkern.c (tt_face_get_kerning): Don't shadow variables. + + * src/truetype/ttgload.c: Include `ttpload.h'. + +2005-03-03 David Turner <[email protected]> + + * include/freetype/internal/ftmemory.h (FT_ALLOC, FT_REALLOC, + FT_QALLOC, FT_QREALLOC) [gcc >= 3.3]: Provide macro versions which + avoid compiler warnings. + (FT_NEW, FT_NEW_ARRAY, FT_RENEW_ARRAY, FT_QNEW, FT_QNEW_ARRAY, + FT_QRENEW_ARRAY, FT_ALLOC_ARRAY, FT_REALLOC_ARRAY): Updated. + + * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE, + FT_FACE_FIND_GLOBAL_SERVICE, FT_FACE_LOOKUP_SERVICE) [__cplusplus]: + Provide macro versions which avoid compiler warnings. + + * src/base/ftutil.c (ft_highpow2): New utility function. + + * include/freetype/internal/ftobjs.h: Updated. + + * src/pfr/pfrload.c (pfr_get_gindex, pfr_compare_kern_pairs, + pfr_sort_kerning_pairs): Don't define if FT_OPTIMIZE_MEMORY is set. + (pfr_phy_font_done): Don't handle `kern_pairs' if FT_OPTIMIZE_MEMORY + is set. + (pfr_phy_font_load): Don't call `pfr_sort_kerning_pairs' if + FT_OPTIMIZE_MEMORY is set. + + * src/pfr/pfrobjs.c (pfr_slot_load): Comment out some code which + doesn't work with broken fonts. + (pfr_face_get_kerning) [FT_OPTIMIZE_MEMORY]: Implement. + + * src/pfr/pfrtypes.h (PFR_KernItemRec): Optimize member types. + (PFR_NEXT_KPAIR): New macro. + (PFR_PhyFontRec): Don't define `kern_pairs' if FT_OPTIMIZE_MEMORY is + set. + + * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Introduce + temporary variable to avoid gcc warning. + (tt_face_load_sbit_image): Mark unused variables with FT_UNUSED. + + * src/truetype/ttpload.c (tt_face_load_loca) [FT_OPTIMIZE_MEMORY]: + Remove redundant variable. + + * include/freetype/config/ftmodule.h: Moving the order of drivers to + speed up font loading. The PCF and BDF loaders are still slow and + consume far too much memory. + +2005-03-03 Werner Lemberg <[email protected]> + + * devel/ftoption.h: Updated to recent changes. + +2005-03-02 Werner Lemberg <[email protected]> + + * src/autofit/afdummy.c, src/autofit/afdummy.h + (af_dummy_script_class): Fix type. + + * src/autofit/aflatin.c, src/autofit/aflatin.h + (af_latin_script_class): Fix type. + + * src/autofit/rules.mk (AUTOF_DRV_SRC): Fix typo. + +2005-03-01 David Turner <[email protected]> + + * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning), + src/sfnt/ttsbit0.c (tt_face_load_sbit_strikes, + tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_compound, + tt_sbit_decoder_load_image), src/sfnt/ttload.c + (tt_face_load_metrics): Remove compiler warnings + -- redundant variables, missing initializations, etc. + + * src/sfnt/ttsbit.h: Handle FT_OPTIMIZE_MEMORY. + + * src/autofit/rules.mk, src/autofit/module.mk, + src/autofit/afangles.h: New files. + + * src/autofit/afhints.c (af_axis_hints_new_segment, + af_axis_hints_new_edge): New functions. + (af_glyph_hints_done): Do proper deallocation. + (af_glyph_hints_reload): Only reallocate points array. This + drastically reduces heap usage. + + * src/autofit/afhints.h (AF_PointRec, AF_SegmentRec): Optimize + member types and positions. + (AF_AxisHintsRec): Add `max_segments' and `max_edges'. + (af_axis_hints_new_segment, af_axis_hints_new_edge): New prototypes. + + * src/autofit/aflatin.c (af_latin_metricsc_scale): Don't call + AF_SCALER_EQUAL_SCALES. + (af_latin_hints_compute_segments): Change return type to FT_Error. + Update all callers. + Improve segment allocation. + (af_latin_hints_compute_edges): Change return type to FT_Error. + Update all callers. + Improve edge allocation and link handling. + (af_latin_hints_detect_features): Change return type to FT_Error. + Update all callers. + + * src/autofit/aflatin.h: Updated. + + * src/autofit/afloader.c (af_loader_load_g) + <FT_GLYPH_FORMAT_OUTLINE>: Assure axis->num_edges > 1. This fixes + a bug with certain fonts. + + * include/freetype/config/ftmodule.h: The auto-fitter is now the + only supported auto-hinting module. + + * include/freetype/config/ftstdlib.h (FT_INT_MAX): New macro. + +2005-02-28 Werner Lemberg <[email protected]> + + * src/truetype/ttpload.c (tt_face_load_loca): Fix typo. + + * src/sfnt/ttkern.c: Include `ttkern.h'. + (FT_COMPONENT): Updated. + + * include/freetype/internal/fttrace.h: Add entry for `ttkern'. + + * src/sfnt/ttsbit0.c: s/FT_Err_/SFNT_Err_/. + Decorate constants with `U' and `L' where necessary. + + * src/sfnt/ttcmap.c (tt_cmap4_next): Remove unused variable. + +2005-02-28 David Turner <[email protected]> + + * src/base/ftdbgmem.c (FT_DumpMemory): Added sorting of memory + sources according to decreasing maximum cumulative allocations. + (ft_mem_source_compare): New auxiliary function. + + * src/sfnt/ttsbit0.c: New file, implementing a heap-optimized + embedded bitmap loader. + + * src/sfnt/ttsbit.c: Include `ft2build.h', FT_INTERNAL_DEBUG_H, + FT_INTERNAL_STREAM_H, FT_TRUETYPE_TAGS_H. + Load `ttsbit0.c' if FT_OPTIMIZE_MEMORY is set, otherwise use + file contents. + (tt_face_load_sbit_strikes): Set up root fields to indicate the + strikes. This fixes Savannah bug #12107. + Use `static' keyword for `sbit_line_metrics_field', + `strike_start_fields', `strike_end_fields'. + + * include/freetype/internal/tttypes.h (TT_FaceRec): Define + `sbit_table', `sbit_table_size', `sbit_num_strikes' if + FT_OPTIMIZE_MEMORY is set. + Don't define `num_sbit_strikes' and `sbit_strikes' if + FT_OPTIMIZE_MEMORY is set. + + * src/cff/cffobjs.c (sbit_size_reset): Handle FT_OPTIMIZE_MEMORY. + + * src/sfnt/sfobjs.c (sfnt_load_face): Fixed bug that prevented + loading SFNT fonts without a `kern' table. + Properly pass root->face_flags. + Remove code for TT_CONFIG_OPTION_EMBEDDED_BITMAPS. + + * src/sfnt/sfdriver.c (sfnt_interface) + [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Don't use `tt_find_sbit_image' + and `tt_load_sbit_metrics'. + + * src/sfnt/ttcmap.c: Optimize linear charmap scanning for Format 4. + (OPT_CMAP4): New macro. + (TT_CMap4Rec) [OPT_CMAP4]: New structure. + (tt_cmap4_init, tt_cmap4_set_range, tt_cmap4_next, tt_cmap4_reset) + [OPT_CMAP4]: New functions. + (tt_cmap4_char_next) [OPT_CMAP4]: Use `tt_cmap4_next' and + `tt_cmap4_reset'. + (tt_cmap4_class_rec) [OPT_CMAP4]: Use `TT_CMap4Rec' and + `tt_cmap4_init'. + + * src/truetype/ttobjs.c (Reset_SBit_Size): Handle + FT_OPTIMIZE_MEMORY. + + * src/autofit/afhints.h (AF_PointRec, AF_SegmentRec, AF_EdgeRec): + Optimize member types. + + * src/autofit/afloader.c (af_loader_done): Call + `af_glyph_hints_done'. + +2005-02-27 David Turner <[email protected]> + + * src/sfnt/ttkern.c (tt_face_load_kern): Fix a small bug which + caused invalid (random) return values for the horizontal kerning. + +2005-02-25 David Turner <[email protected]> + + Implement several memory optimizations to drastically reduce the + heap usage of FreeType, especially in the case of memory-mapped + files. The idea is to avoid loading and decoding tables in the + heap, and instead access the raw data whenever possible (i.e., when + it doesn't compromise performance). + + This has several benefits: For example, opening vera.ttf now uses + just a small amount of memory (even when the FT_Library footprint is + accounted for), until you start loading glyphs. Even then, you save + at least 20KB compared to the non-optimized case. Performance of + various operations, including open and close, has also been + dramatically improved. + + More optimizations to come, especially for the auto-hinter. + + * include/freetype/internal/sfnt.h (TT_Face_GetKerningFunc): New + function type. + (SFNT_Interface): Add it. + + * include/freetype/internal/tttypes.h (TT_HdmxEntryRec, TT_HdmxRec, + TT_Kern0_PairRec): Don't define if FT_OPTIMIZE_MEMORY is set. + (TT_FaceRec): Define `horz_metrics', `horz_metrics_size', + `vert_metrics', `vert_metrics_size', `hdmx_table', + `hdmx_table_size', `hdmx_record_count', `hdmx_record_size', + `hdmx_record_sizes', `kern_table', `kern_table_size, + `num_kern_tables', `kern_avail_bits', `kern_order_bits' if + FT_OPTIMIZE_MEMORY is set. + Don't define `hdmx', `num_kern_pairs', `kern_table_index', + `kern_pairs' if FT_OPTIMIZE_MEMORY is set. + + * src/base/ftdbgmem.c (ft_mem_table_set): Don't shadow variable. + Fix compiler warning. + + * src/cff/cffdrivr.c (Get_Kerning): Renamed to... + (cff_get_kerning): This. Simplify. + (cff_driver_class): Updated. + + * src/sfnt/Jamfile (_sources): Add `ttkern'. + * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `ttkern.c'. + + * src/sfnt/sfdriver.c (sfnt_interface): Add `tt_face_get_kerning'. + + * src/sfnt/sfnt.c: Include `ttkern.c'. + + * src/sfnt/sfobjs.c: Include `ttkern.h'. + (sfnt_load_face): Consider the `kern' and `gasp' table as optional. + (sfnt_done_face): Call `tt_face_done_kern'. + Handle horizontal metrics for FT_OPTIMIZE_MEMORY. + + * src/sfnt/ttkern.c, src/sfnt/ttkern.h: New files. Code has been + taken from `ttload.c' and `ttload.h'. + Provide special versions of `tt_face_load_kern', + `tt_face_get_kerning', and `tt_face_done_kern' for + FT_OPTIMIZE_MEMORY. + + * src/sfnt/ttload.c (tt_face_load_metrics, tt_face_load_hdmx, + tt_face_free_hdmx): Provide version for FT_OPTIMIZE_MEMORY. + (tt_face_load_kern, tt_kern_pair_compare, TT_KERN_INDEX): Moved to + `ttkern.c'. + + * src/sfnt/ttload.h: Updated. + + * src/sfnt/ttsbit.c (sbit_metrics_field): Add `static' keyword. + + * src/truetype/ttdriver.c (Get_Kerning): Renamed to... + (tt_get_kerning): This. Simplify. + (tt_driver_class): Updated. + + * src/truetype/ttgload.c (TT_Get_Metrics): Renamed to... + (tt_face_get_metrics): This. Provide version for FT_OPTIMIZE_MEMORY. + Update all callers. + (Get_Advance_Widths): Replaced with... + (Get_Advance_WidthPtr): This. Provide version for + FT_OPTIMIZE_MEMORY. + Update all callers. + + * src/truetype/ttgload.h: Updated. + +2005-02-22 David Turner <[email protected]> + + * src/base/ftdbgmem.c: Partly rewritten. Added the ability to list + all allocation sites in the memory debugger. Also a new function + FT_DumpMemory() was added. It is only available in builds with + FT_DEBUG_MEMORY defined, and you must declare it in your own code to + use it, i.e., with something like: + + extern void FT_DumpMemory( FT_Memory ); + + ... + + FT_DumpMemory( memory ); + + * include/freetype/config/ftoption.h + (TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Comment out definition -- + again. + (FT_OPTIMIZE_MEMORY): New configuration macro to control various + optimizations for reducing the heap footprint of memory-mapped + TrueType files. + + * include/freetype/internal/ftmemory.h (FT_ARRAY_ZERO): New + convenience macro. + + * include/freetype/internal/tttypes.h (TT_FaceRec) + [FT_OPTIMIZE_MEMORY]: Use optimized types for `num_locations' and + `glyph_locations'. + + * src/truetype/ttgload.c (load_truetype_glyph): Call + `tt_face_get_location'. + + * src/truetype/ttobjs.c (tt_face_init) + [FT_CONFIG_OPTION_INCREMENTAL]: Improve error handling. + (tt_face_done): Call `tt_face_done_loca'. + + * src/truetype/ttpload.c (tt_face_get_location, tt_face_done_loca): + New functions. If FT_OPTIMIZE_MEMORY is set, the locations table is + read directly from memory-mapped streams, instead of being decoded + into the heap. + (tt_face_load_loca) [FT_OPTIMIZE_MEMORY]: New implementation. + (tt_face_load_cvt, tt_face_load_fpgm): Only load table if the + bytecode interpreter is compiled in. + + * src/truetype/ttpload.h: Updated. + + * src/autohint/ahglyph.c (ah_outline_load): Improve allocation + logic. + +2005-02-20 Werner Lemberg <[email protected]> + + * builds/unix/ltmain.sh: Regenerated with `libtoolize --force + --copy' from libtool 1.5.14. + * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from + automake 1.9.4. + + * builds/unix/config.guess, builds/unix/config.sub: Updated from + `config' CVS module at subversions.gnu.org. + + * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from + `texinfo' CVS module at subversions.gnu.org. + +2005-02-14 Werner Lemberg <[email protected]> + + * src/cff/cffcmap.c (cff_cmap_unicode_init): Don't try to build + a cmap for a CID-keyed font which doesn't have SIDs. + +2005-02-13 Werner Lemberg <[email protected]> + + * src/type1/t1load.c (read_binary_data): Return more meaningful + value. + (parse_encoding, parse_subrs, parse_charstrings, parse_dict): Check + parser error value after call to T1_Skip_PS_Token (where necessary). + + * src/type1/t1parse.c (T1_Get_Private_Dict): Check parser error + value after call to T1_Skip_PS_Token. + + * src/cid/cidparse.c (cid_parser_new): Check parser error value + after call to cid_parser_skip_PS_token. + + * src/type42/t42parse.c (t42_parse_encoding, t42_parse_sfnts, + t42_parse_charstrings, t42_parse_dict): Check parser error value + after call to T1_Skip_PS_Token (where necessary). + + * src/psaux/psobjc.c (skip_string, ps_parser_skip_PS_token, + ps_tobytes): Add error messages. + +2005-02-12 Werner Lemberg <[email protected]> + + * configure: Output more variables to the created Makefile so that + it can be used for ft2demos also (if the FT2DEMOS variable is + defined). + +2005-02-10 David Turner <[email protected]> + + * src/pfr/pfrgload.c (pfr_glyph_load): Fix an unbounded growing + dynamic array when loading a glyph from a PFR font (Savannah bug + #11921). + + * src/base/ftbitmap.c (FT_Bitmap_Convert): Small improvements to the + conversion function (mainly stupid optimization). + + * src/base/Jamfile: Adding ftbitmap.c to the list of compiled files. + +2005-02-10 Werner Lemberg <[email protected]> + + * builds/unix/freetype-config.in: Add new flag `--ftversion' to + return the FreeType version. Suggested by George Williams + <[email protected]>. + + * docs/CHANGES: Updated. + +2005-02-09 Werner Lemberg <[email protected]> + + * src/otvalid/otvmod.c (otv_validate): Deallocate arrays in case + of error. Reported by YAMANO-UCHI Hidetoshi <[email protected]>. + +2005-02-08 Werner Lemberg <[email protected]> + + * src/psaux/t1decode.c (t1_decoder_parse_charstrings) + <op_closepath>: Accept `T1_Parse_Have_Moveto' state also which can + happen in empty glyphs. Reported by Ian Brown + <[email protected]> (Savannah bug #11856). + +2005-02-04 Werner Lemberg <[email protected]> + + * src/otlayout/*: Removed. Obsolete. + +2004-12-28 Werner Lemberg <[email protected]> + + * builds/unix/ltmain.sh: Regenerated with `libtoolize --force + --copy' from libtool 1.5.10. + * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from + automake 1.9.4. + * builds/unix/configure: Regenerated with autoconf 2.59b. + + * builds/unix/config.guess, builds/unix/config.sub: Updated from + `config' CVS module at subversions.gnu.org. + + * builds/unix/install-sh: Updated from + `texinfo' CVS module at subversions.gnu.org. + + * builds/unix/ftsystem.c (FT_Stream_Open): Add proper cast for + ft_alloc. + Fix compiler warning. + +2004-12-27 Dirck Blaskey <[email protected]> + + * src/cff/cffobjs.c (cff_face_init): Improve computation of + FT_STYLE_BOLD_FLAG. + +2004-12-27 Werner Lemberg <[email protected]> + + * src/cff/cffobjs.c (cff_face_init): A CFF within an SFNT can have + only a single font. This is undocumented but has been verified on + the opentype list. + +2004-12-26 Werner Lemberg <[email protected]> + + * Jamfile (FT2_COMPONENTS): Add `otvalid'. + +2004-12-25 Werner Lemberg <[email protected]> + + * src/base/ftbitmap.c (FT_Bitmap_Convert): Fix compiler warning. + +2004-12-15 Werner Lemberg <[email protected]> + + * vms_make.com: Add ftbitmap.obj. + +2004-12-14 Werner Lemberg <[email protected]> + + * src/base/ftbitmap.c, include/freetype/ftbitmap.h: New files for + handling various bitmap formats. + + * include/freetype/config/ftheader.h (FT_BITMAP_H): New macro. + + * src/base/rules.mk (BASE_EXT_SRC): Add ftbitmap.c. + + * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Don't convert bitmaps to 8bpp + but return them as-is. + + * docs/CHANGES: Mention new bitmap API. + * include/freetype/ftchapter.s: Updated. + +2004-12-11 Robert Clark <[email protected]> + + * src/base/ftobjs.c (FT_Get_Kerning): Make kerning amount + dependent on ppem by scaling down for ppem < 25, then do normal + rounding. This gives slightly better results than rounding towards + zero. + +2004-12-09 Werner Lemberg <[email protected]> + + * src/base/ftobjs.c (FT_Get_Kerning): Always round towards zero + for FT_KERNING_DEFAULT. This greatly enhances the kerning for + small ppem values. + +2004-12-08 Werner Lemberg <[email protected]> + + * src/base/ftobjs.c (ft_glyphslot_clear): Reset `lsb_delta' and + `rsb_delta'. + +2004-12-05 Werner Lemberg <[email protected]> + + * builds/unix/install.mk (install): Use $(OBJ_BUILD) for ftconfig.h. + +2004-12-03 Antoine Leca <[email protected]> + + * include/freetype/ttnameid.h: Updated to latest + specifications from Microsoft. + +2004-11-26 Jouk Jansen <[email protected]> + + * vms_make.com: Include ftbbox.c. + Fix `ccopt'. + Handle `otvalid' module. + Update `vmslib.dat' default values. + Fixes to `libs.opt'. + +2004-11-23 Anders Kaseorg <[email protected]> + + * src/base/ftoutln.c (FT_OrientationExtremumRec, + ft_orientation_extremum_compute): Removed. + (FT_Outline_Get_Orientation): Rewritten, simplified. + + * src/autohint/ahglyph.c: Include FT_OUTLINE_H. + (ah_test_extremum, ah_get_orientation): Removed. + (ah_outline_load): Use FT_Outline_Get_Orientation. + + * src/base/ftsynth.c (ft_test_extrama, ft_get_orientation): Removed. + (FT_GlyphSlot_Embolden): Use FT_Outline_Get_Orientation. + +2004-11-23 Fernando Papa <[email protected]> + + * src/truetype/ttinterp.h: Fix typo. + +2004-11-22 Antoine Leca <[email protected]> + + * builds/win32/detect.mk: Corrected logic that detects Windows NT to + use the previous change even if win32 is forced. Corrected + detection of win32 on Win9X. + + * builds/dos/detect.mk: Added same correction as for win32 about + COPY on Windows NT. Detection of plain DOS 7.x. + +2004-11-22 Werner Lemberg <[email protected]> + + * builds/detect.mk: Undo change from 2004-11-20. + * builds/win32/detect.mk: If the `OS' environment variable contains + `Windows_NT', use `cmd.exe /c copy' for copying files. + +2004-11-20 Werner Lemberg <[email protected]> + + * builds/detect.mk (dos_setup): Use `cmd.exe' for copying + $(CONFIG_MK) to force lowercase file name under Windows. + +2004-11-19 Werner Lemberg <[email protected]> + + Fix a serious bug in the TT hinter. + + * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Don't shift + points vertically before hinting. + + * docs/CHANGES: Updated. + + * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily, + FTC_GCache_Lookup): A new try to fix comparison with zero. + +2004-11-16 Werner Lemberg <[email protected]> + + * builds/unix/configure.ac: Add `-fno-strict-aliasing' if gcc is + used. + * builds/unix/configure: Regenerated. + * builds/unix/config.guess, builds/unix/config.sub: Updated from + `config' CVS module at subversions.gnu.org. + +2004-11-16 Dr. Martin P.J. Zinser <[email protected]> + + * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily, + FTC_GCache_Lookup): Fix comparison with zero. + + * docs/INSTALL.VMS: Updated. + + * vms_make.com: Updated. All `descrip.mms' files are now created + automatically. + + * src/*/descrip.mms: Removed. + +2004-11-16 Owen Taylor <[email protected]> + + * builds/unix/freetype-config.in: Suppress -L$libdir for + /usr/lib64 as well as /usr/lib. (Reported by Dan Winship - + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=139199) + +2004-11-11 Werner Lemberg <[email protected]> + + * src/cff/cffdrivr.c (cff_service_ps_info): Updated. + * src/cid/cidriver.c (cid_service_ps_info): Updated. + * src/type42/t42drivr.c (t42_ps_get_font_private): New function. + (t42_service_ps_info): Updated. + + * src/type42/t42parse.c (t42_parse_dict): Remove compiler warning. + +2004-11-11 David Bevan <[email protected]> + + Add new function FT_Get_PS_Font_Private(). + + * include/freetype/internal/services/svpsinfo.h + (PS_GetFontPrivateFunc): New service function. + + * include/freetype/t1tables.h, src/base/fttype1.c + (FT_Get_PS_Font_Private): New function. + + * src/type1/t1driver.c (t1_ps_get_font_private): New function. + (t1_service_ps_info): Updated. + +2004-10-13 Werner Lemberg <[email protected]> + + * include/freetype/config/ftstdlib.h: Include `stddef.h'. + (ft_ptrdiff_t): Define. + + * include/freetype/fttypes.h (FT_PtrDist): Use `ft_ptrdiff_t'. + + * src/cid/cidload.c (cid_parse_dict), src/type1/t1load.c + (parse_dict): Fix compiler warning. + +2004-10-11 Joshua Neal <[email protected]> + + * src/sfnt/ttcmap.c (tt_face_build_cmaps): Check for pointer + overflow. + + * src/sfnt/ttload.c (tt_face_load_hdmx): Protect against bad input. + Don't use FT_QNEW_ARRAY but FT_NEW_ARRAY to make deallocation work + in case of failure. + + * src/sfnt/ttsbit.c (Load_SBit_Range): Check range intervals. + (tt_face_load_sbit_strikes): Allocate `strike_sbit_ranges' after + frame test. + + * src/truetype/ttgload.c (TTLoad_Simple_Glyph): Add assertion for + `flag'. + +2004-10-09 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2004-10-09 Boris Letocha <[email protected]> + + Fix handling of NPUSHW if skipped in data stream. + + * src/truetype/ttinterp.c (opcode_length): Set value for NPUSHW + to -2. + (SkipCode, TT_RunIns): Use opcode_length value for computation of + bytes to be skipped. + +2004-09-10 Jouk Jansen <[email protected]> + + * vms_make.com: Updated. + +2004-09-09 Werner Lemberg <[email protected]> + + Adding OpenType validation module. The code is based on the + (unfinished) `otlayout' module but has been heavily modified to make + it much more compact. + + * src/otvalid/*: New module. + + * include/freetype/ftotval.h, src/base/ftotval.c, + include/freetype/internal/services/svotval.h: New files. + + * include/freetype/config/ftmodule.h: Add otv_module_class. + * include/freetype/config/ftheader.h (FT_OPENTYPE_VALIDATE_H): New + macro. + * include/freetype/internal/ftserv.h + (FT_SERVICE_OPENTYPE_VALIDATE_H): New macro. + * include/freetype/internal/fttrace.h (otvmodule, otvcommon, + otvbase, otvgdef, otvgpos, otvgsub, otvjstf): New trace components. + + * include/freetype/ftchapters.h: Updated. + + * src/base/Jamfile (Library), src/base/descrip.mms (OBJS), + src/base/rules.mk (BASE_EXT_SRC): Updated. + + * docs/CHANGES: Updated. + +2004-09-08 Werner Lemberg <[email protected]> + + * src/tools/docmaker/sources.py (re_source_block_format2) <column>: + Use lookahead assertion to not match `*/'. This removes spurious + insertions of `/' in the HTML output. + +2004-09-07 Werner Lemberg <[email protected]> + + * src/truetype/ttgxvar.c (TT_Vary_Get_Glyph_Deltas): Fix call to + FT_NEW_ARRAY. + +2004-09-04 Werner Lemberg <[email protected]> + + * include/freetype/internal/ftobjs.h: Don't include + FT_CONFIG_STANDARD_LIBRARY_H. + (FT_Validator, FT_ValidationLevel, FT_ValidatorRec, FT_VALIDATOR, + ft_validator_init, ft_validator_run, ft_validator_error, FT_INVALID, + FT_INVALID_TOO_SHORT, FT_INVALID_OFFSET, FT_INVALID_FORMAT, + FT_INVALID_GLYPH_ID, FT_INVALID_DATA): Move to... + + * include/freetype/internal/ftvalid.h: New file. + Make FT_INVALID return module-specific error codes. + + * include/freetype/internal/internal.h (FT_INTERNAL_VALIDATE_H): New + macro. + + * include/freetype/fterrors.h: Undefine FT_ERR_PREFIX only if + FT_KEEP_ERR_PREFIX isn't defined. + + * src/base/ftobjs.c: Include FT_INTERNAL_VALIDATE_H. + + * src/sfnt/ttcmap.h: Don't include FT_INTERNAL_OBJECTS_H but + FT_INTERNAL_VALIDATE_H. + + * src/sfnt/ttcmap.c: Don't include FT_INTERNAL_OBJECTS_H but + FT_INTERNAL_VALIDATE_H. + Include sferrors.h before FT_INTERNAL_VALIDATE_H. + s/FT_Err_Ok/SFNT_Err_Ok/. + + * src/sfnt/sferrors.h: Define FT_KEEP_ERR_PREFIX. + + * src/type1/t1afm.c: Include t1errors.h. + +2004-09-03 Werner Lemberg <[email protected]> + + * src/base/ftdebug.c (ft_debug_init): Highest debug level is 7, + not 6. + * docs/DEBUG: Updated. + +2004-08-30 Werner Lemberg <[email protected]> + + * include/freetype/tttags.h (TTAG_BASE, TTAG_GDEF, TTAG_GPOS, + TTAG_JSTF): New tags. + + * include/freetype/fttypes.h (FT_Bytes, FT_Tag): New typedefs. + (FT_Int): Add `signed'. + +2004-08-29 Werner Lemberg <[email protected]> + + * src/otlayout/otlgpos.c (otl_gpos_subtable_validate): Add argument + to pass number of lookups. + Update all callers. + Don't call otl_lookup_list_validate but otl_lookup_validate. + (otl_gpos_validate): Call otl_lookup_list_validate instead of + otl_gpos_subtable_validate. + + * src/otlayout/otlgpos.h: Updated. + + * src/otlayout/otljstf.c (otl_jstf_max_validate): Add argument to + pass number of lookups. + Update all callers. + + + * src/cff/cffparse.c (cff_parse_real): s/exp/exponent/ to avoid + compiler warning. + + + * src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h: Renamed to... + * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: This. + * src/sfnt/Jamfile, src/sfnt/rules.mk, src/sfnt/sfdriver.c, + src/sfnt/sfnt.c, src/sfnt/sfobjs.c: Updated. + + + * builds/compiler/gcc-dev.mk (CFLAGS): Don't add `-Wnested-externs' + if compiler is g++ (v3.3.3 emits a warning otherwise). + +2004-08-28 Werner Lemberg <[email protected]> + + * src/otlayout/otlgpos.c (otl_value_length): Return number of bytes, + not number of 16bit entities. + (otl_gpos_lookup2_validate): Check class definition tables for + format 2. + Fix loop for format 2. + (otl_liga_mark2_validate): Fix offset for otl_anchor_validate. + +2004-08-27 Werner Lemberg <[email protected]> + + * src/base/ftmac.c: Don't include truetype/ttobjs.h. + Don't include type1/t1objs.h. + (FT_New_Face_From_FSSpec) [!__MWERKS__]: Remove compiler warnings. + +2004-08-27 Mathieu Malaterre <[email protected]> + + * src/base/ftmac.c: Handle OS_INLINE for xlc compiler also. + +2004-08-27 Werner Lemberg <[email protected]> + + * src/otlayout/otlayout.h: Add copyright. + (OTL_INVALID_OFFSET): Removed. + + * src/otlayout/otlgdef.h: Include otlayout.h. + Comment out inclusion of otltable.h. + + * src/otlayout/otlgpos.c (otl_gpos_lookup4_validate): Fix call + to otl_base_array_validate. + (otl_liga_mark2_validate): Fix `for' loop. + + * src/otlayout/otlgsub.c (otl_ligature_validate): Check `glyph_id', + not components array. + + * src/otlcommn.c (otl_lookup_get_count, otl_feature_get_count): + Comment out. + (otl_lookup_list_get_count, otl_feature_list_get_count): Activate. + (otl_feature_list_validate, otl_gsubgpos_get_lookup_count): + s/otl_lookup_get_count/otl_lookup_list_get_count/. + (otl_script_list_validate): + s/otl_feature_get_count/otl_feature_list_get_count/. + (otl_script_validate): Call otl_lang_validate for default language. + + * src/otlayout/otlcommn.h: Updated. + +2004-08-16 Werner Lemberg <[email protected]> + + * src/otlayout/otlgpos.c (otl_gpos_lookup1_validate, + otl_gpos_lookup2_validate, otl_gpos_lookup3_validate, + otl_gpos_lookup4_validate, otl_gpos_lookup5_validate, + otl_gpos_lookup6_validate, otl_gpos_lookup9_validate, + otl_gpos_validate): Update + function arguments. + (otl_gpos_lookup7_validate, otl_gpos_lookup8_validate): Update + function arguments. + Handle NULL offsets correctly. + Check sequence and lookup indices for format 3. + (otl_pos_rule_validate, otl_chain_pos_rule_validate): Add argument + to pass lookup count. + Check sequence and glyph indices. + (otl_gpos_subtable_validate): Update function arguments. + Update callers. + + * src/otlayout/otlgpos.h: Updated. + + * src/otlayout/otlgsub.c (otl_gsub_lookup1_validate, + otl_gsub_lookup3_validate, otl_gsub_lookup8_validate): Update + function arguments. + Add glyph index checks. + (otl_sequence_validate, otl_alternate_set_validate, + otl_ligature_validate): Add argument to pass glyph count. + Update callers. + Add glyph index check. + (otl_gsub_lookup2_validate, otl_gsub_lookup4_validate): Update + function arguments. + (otl_ligature_set_validate): Add argument to pass glyph count. + Update caller. + (otl_sub_class_rule_validate, + otl_sub_class_rule_set_validate): Removed. + (otl_sub_rule_validate, otl_chain_sub_rule_validate): Add argument + to pass lookup count. + Update callers. + Add lookup index check. + (otl_sub_rule_set_validate, otl_chain_sub_rule_set_validate): Add + argument to pass lookup count. + Update callers. + (otl_gsub_lookup5_validate): Update function arguments. + Handle NULL offsets correctly. + Don't call otl_sub_class_rule_set_validate but + otl_sub_rule_set_validate. + Check sequence and lookup indices for format 3. + (otl_gsub_lookup6_validate): Update function arguments. + Handle NULL offsets correctly. + Check sequence and lookup indices for format 3. + (otl_gsub_lookup7_validate, otl_gsub_validate): Update function + arguments. + + * src/otlayout/otlgsub.h: Updated. + + * src/otlayout/otlbase.c (otl_base_validate): Handle NULL offsets + correctly. + + * src/otlayout/otlcommn.c (otl_class_definition_validate): Fix + compiler warning. + (otl_coverage_get_first, otl_coverage_get_last): New functions. + (otl_lookup_validate): Add arguments to pass lookup and glyph + counts. + Update callers. + (otl_lookup_list_validate): Add argument to pass glyph count. + Update callers. + + * src/otlayout/otlcommn.h: Updated. + + * src/otlayout/otljstf.c (otl_jstf_extender_validate, + otl_jstf_max_validate, otl_jstf_script_validate, + otl_jstf_priority_validate, otl_jstf_lang_validate): Add parameter + to validate glyph indices. + Update callers. + (otl_jstf_validate): Add parameter which specifies number of glyphs + in font. + + * src/otlayout/otljstf.h: Updated. + +2004-08-15 Werner Lemberg <[email protected]> + + * src/otlayout/otlgpos.c (otl_liga_mark2_validate): Add parameter + to handle possible NULL values properly. + Update all callers. + +2004-08-15 Werner Lemberg <[email protected]> + + * src/otlayout/gpos.c: Rename counting variables to be more + meaningful. + Add copyright. + (otl_liga_attach_validate): Renamed to... + (otl_liga_mark2_validate): This. + Update all callers. + (otl_mark2_array_validate): Removed. + (otl_gpos_lookup6_validate): Call otl_liga_mark2_validate, not + otl_mark2_array_validate. + (otl_pos_class_set_validate, otl_pos_class_rule_validate): Removed. + (otl_gpos_lookup7_validate): Complete code for format 2. + (otl_chain_pos_class_rule_validate, + otl_chain_pos_class_set_validate): Removed. + (otl_gpos_lookup8_validate): Don't call + otl_chain_pos_class_set_validate but + otl_chain_pos_rule_set_validate. + Simplify some code. + + * src/otlayout/otlgpos.h: Add copyright. + +2004-08-14 Werner Lemberg <[email protected]> + + * src/otlayout/otljstf.c (otl_jstf_gsub_mods_validate): Removed. + (otl_jstf_gpos_mods_validate): Renamed to... + (otl_jstf_gsubgpos_mods_validate): This. + Test whether lookup_count is zero. + (otl_jstf_priority_validate): Use otl_jstf_gsubgpos_mods_validate. + (otl_jstf_validate): Initialize gsub_lookup_count and + gpos_lookup_count if gsub or gpos is zero. + + * src/otlayout/otlgsub.c: Rename counting variables to be more + meaningful. + Add copyright. + (otl_gsub_lookup1_validate): Simplify code. + (otl_gsub_lookup2_validate, otl_gsub_lookup3_validate, + otl_gsub_lookup4_validate, otl_gsub_lookup7_validate): Remove unused + variables. + (otl_gsub_lookup5_validate): Remove unused variable. + Fix call to otl_sub_rule_set_validate and + otl_sub_class_rule_set_validate. + (otl_chain_sub_class_rule_validate, + otl_chain_sub_class_set_validate): Removed. + (otl_gsub_lookup6_validate): Remove unused variable. + Fix call to otl_chain_sub_rule_set_validate. + (otl_gsub_lookup7_validate): Handle lookup type 8 also. + (otl_gsub_lookup8_validate: New function. + (otl_gsub_lookup1_apply, otl_gsub_lookup2_apply, + otl_gsub_lookup3_apply): Commented out. + (otl_gsub_validate_funcs): Add otl_gsub_lookup7_validate and + otl_gsub_lookup8_validate. + (otl_gsub_validate): Updated. + + * src/otlayout/otlgsub.h: Add copyright. + + * src/otlayout/otlcommn.c, src/otlayout/otlcommn.h + (otl_coverage_get_index): Comment out. + +2004-08-13 Werner Lemberg <[email protected]> + + * src/otlayout/otlcommn.c (otl_gsubgpos_get_lookup_count): New + function. + * src/otlayout/otlcommn.h: Updated. + + * src/otlayout/otlbase.c: Rename counting variables to be more + meaningful. + Add copyright message. + * src/otlayout/otlbase.h: Add copyright message. + + * src/otlayout/otlgdef.c: Rename counting variables to be more + meaningful. + Add copyright message. + Use OTL_CHECK everywhere. + (otl_caret_value_validate): Remove unused variable. + (otl_gdef_validate): All tables are optional. + * src/otlayout/otlgdef.h: Add copyright message. + + * src/otlayout/otljstf.c: Rename counting variables to be more + meaningful. + Add copyright message. + (otl_jstf_gsub_mods_validate, otl_jstf_gpos_mods_validate): Add + parameter to pass lookup count. + Update all callers. + Check lookup array. + (otl_jstf_max_validate): + s/otl_gpos_subtable_check/otl_gpos_subtable_validate/. + (otl_jstf_priority_validate, otl_jstf_lang_validate, + otl_jstf_script_validate): Add two parameters to pass lookup counts. + Update all callers. + (otl_jstf_validate): Add two parameters to pass GPOS and GSUB + table offsets; use otl_gsubgpos_get_lookup_count to convert extract + lookup counts. + Fix typo. + * src/otlayout/otljstf.h: Updated. + Add copyright message. + + * src/otlayout/otlgpos.c (otl_gpos_subtable_validate): New function. + (otl_gpos_validate): Use it. + * src/otlayout/otlgpos.h: Updated. + +2004-08-13 Werner Lemberg <[email protected]> + + * src/otlayout/otcommn.c: Use OTL_CHECK everywhere. + (otl_coverage_validate): Initialize `p', + s/count/num_glyphs/. + s/start_cover/start_coverage/. + (otl_coverage_get_index): Return OTL_Long, not OTL_Int. + Remove unused variables. + (otl_class_definition_validate): s/count/num_glyphs/. + Remove unused variables. + (otl_class_definition_get_value, otl_device_table_get_start, + otl_device_table_get_end, otl_device_table_get_delta, + otl_lookup_get_table, otl_lookup_list_get_count, + otl_lookup_list_get_lookup, otl_lookup_list_get_table, + otl_feature_get_lookups, otl_feature_list_get_count, + otl_feature_list_get_feature, otl_lang_get_count, + otl_lang_get_req_feature, otl_lang_get_features): Commented out + temporarily until we really need it. + (otl_lookup_validate): Removed. + (otl_lookup_table_validate): Renamed to ... + (otl_lookup_validate): This. Update callers. + (otl_lookup_list_validate): Remove already commented out definition + and move the other definition up. + (otl_feature_validate): Add parameter to pass number of lookups. + Update callers. + Check lookup indices. + (otl_feature_list_validate): Add parameter to pass lookup table. + Update callers. + (otl_lang_validate): Add parameter to pass number of features. + Update callers. + Handle req_feature and check feature indices. + (otl_script_validate): Add parameter to pass number of features. + Update callers. + (otl_script_list_validate): Add parameter to pass feature table. + Update callers. + + * src/otlayout/otcommn.h: s/LOCALDEF/LOCAL/. + Comment out the same functions as in otcommn.c. + (otl_script_list_get_script): Removed. + + * src/otlayout/otlgsub.c (otl_gsub_lookup1_apply): Change `index' to + type OTL_Long. + (otl_gsub_lookup2_apply, otl_gsub_lookup3_apply): Change `index' to + type OTL_Long. + Fix test. + (otl_gsub_validate): Fix order of validation. + + * src/otlayout/otlgpos.c (otl_gpos_validate): Fix order of + validation. + +2004-08-12 Werner Lemberg <[email protected]> + + Make otlayout module compile (without actually working). + + * src/otlayout/*: s/OTL_Valid/OTL_Validator/. + s/NULL/0/. + + * src/otlayout/otlayout.h: Fix various typos. + (OTL_Bool): New typedef. + (OTL_Int, OTL_Long, OTL_Int16, OTL_Int32): Use `signed' keyword. + (OTL_Err_InvalidArgument): Removed. + (OTL_Err_InvalidData, OTL_Err_InvalidSize): New enum values. + (OTL_MAKE_TAG): Add missing parenthesis. + (OTL_INVALID_DATA): Use OTL_Err_InvalidData. + (OTL_INVALID_TOO_SHORT): Use OTL_Err_InvalidSize. + (OTL_INVALID_FORMAT, OTL_INVALID_OFFSET): New macros. + + * src/otlayout/otlgpos.c: s/FT_/OTL_/. + s/OTL_Short/OTL_Int16/. + (otl_gpos_pairset_validate): Add return type. + (otl_base_array_validate): Fix call to otl_anchor_validate. + (otl_liga_array_validate): Fix call to otl_liga_attach_validate. + (otl_gpos_lookup5_validate): Fix typos. + (otl_gpos_lookup6_validate): Fix call to otl_mark2_array_validate. + (otl_gpos_lookup7_validate): Comment out unfinished code. + Fix typos. + + * src/otlayout/otlgsub.c: Add forward declaration for + otl_gsub_validate_funcs. + (otl_gsub_lookup1_apply, otl_gsub_lookup2_apply, + otl_gsub_lookup3_apply): Fix call to otl_parser_check_property. + s/otl_coverage_lookup/otl_coverage_get_index/. + (otl_ligature_validate): Add missing variable declaration. + (otl_sub_rule_validate): Fix typo. + (otl_sub_class_rule_validate): Add missing variable declaration. + Fix typo. + (otl_gsub_lookup5_validate): Fix typo. + (otl_gsub_lookup6_validate): Fix call to + otl_chain_sub_class_set_validate. + (otl_gsub_validate_funcs): Don't use `const'. + + * src/otlayout/otlcommn.c (otl_class_definition_get_value, + otl_device_table_validate, otl_device_table_get_delta, + otl_lookup_validate, otl_script_validate): Add missing + variable declarations. + (otl_lookup_list_validate): Comment out first definition. + (otl_lookup_list_foreach, otl_feature_list_foreach): Comment out. + (otl_feature_list_validate): + s/otl_feature_table_validate/otl_feature_validate/. + (otl_script_list_validate): + s/otl_script_table_validate/otl_script_validate/. + + * src/otlayout/otlcommn.h: Comment out first declaration. + (otl_lookup_list_foreach, otl_feature_list_foreach): Comment out. + + * src/otlayout/otlbase.c (otl_base_coord_validate): Fix call to + otl_device_table_validate. + (otl_base_script_validate): Add missing variable declarations. + (otl_base_script_list_validate): Fix call to + otl_base_script_validate. + (otl_axis_table_validate): Fix calls to otl_base_tag_list_validate + and otl_base_script_list_validate. + (otl_base_validate): Fix calls to otl_axis_table_validate. + + * src/otlayout/otlgdef.c (otl_attach_list_validate): Fix call to + otl_attach_point_validate. + (otl_caret_value_validate): Add missing variable declaration. + Fix call to otl_device_table_validate. + (otl_ligature_glyph_validate): Fix call to otl_caret_value_validate. + (otl_ligature_caret_list_validate): Fix call to + otl_ligature_glyph_validate. + (otl_gdef_validate): Fix calls to otl_class_definition_validate, + otl_attach_list_validate, otl_ligature_caret_list_validate, and + otl_class_definition_validate. + + * src/otlayout/otltable.h (otl_table_validate, otl_table_init, + otl_table_set_script): Comment out. + + * src/otlayout/otlparse.h (OTL_ParserRec): + s/OTL_Alternate/OTL_GSUB_Alternate/. + (OTL_ParseError): Add OTL_Err_Parser_Memory and + OTL_Err_Parser_Internal. + (otl_parser_error): Fix typo. + (otl_parser_check_property): Remove third argument. + + * src/otlayout/otlparse.c (otl_string_ensure): + s/OTL_Parse_Err_Memory/OTL_Err_Parser_Memory/. + (OTL_STRING_ENSURE, otl_parser_error, otl_parser_get_index, + otl_parser_replace_1, otl_parser_replace_n): Fix typos. + (OTL_PARSER_UNCOVERED): Removed. + (otl_parser_check_property): Remove third argument. + + * src/otlayout/otljstf.c (otl_jstf_priority_validate): Add missing + variable declaration. + + * src/otlayout/otlutils.h (OTL_MEM_REALLOC): Fix typo. + +2004-08-11 Danny <[email protected]> + + * src/base/ftstream.c (FT_Stream_Close): Don't reset stream->close + to NULL. This allows custom close functions to delete the FT_STREAM + object. + +2004-08-11 Werner Lemberg <[email protected]> + + Add API to get information about SFNT tables. + + * include/freetype/internal/services/svsfnt.h + (FT_SFNT_Table_Info_Func): New typedef. + (SFNT_Table): Add it. + + * src/base/ftobjs (FT_Sfnt_Table_Info): New function. + + * include/freetype/tttables.h: Updated. + + * src/sfnt/sfdriver.c (sfnt_table_info): New function. + (sfnt_service_sfnt_table): Add it. + + * docs/CHANGES: Updated. + + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10. + + * builds/unix/configure.ac (version_info): Set to 9:8:3. + * builds/unix/configure: Updated. + + * builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/. + + * builds/freetype.mk (refdoc), README, Jamfile (RefDoc): + s/2.1.9/2.1.10/. + + * docs/CHANGES, docs/VERSION.DLL: Updated. + +2004-08-11 Detlef Würkner <[email protected]> + + * src/base/ftrfork.c (FT_Raccess_Guess) + [!FT_CONFIG_OPTION_GUESSING_EMBEDDED_FORK]: Remove compiler + warnings. + +2004-08-06 Adam Piotrowski <[email protected]> + + * src/pfr/pfrload.c (pfr_sort_kerning_pairs): Single-byte + adjustments are unsigned, not signed. + +2004-08-05 David Turner <[email protected]> + + `Activate' gray-scale specifing hinting within the TrueType + bytecode interpreter. This is an experimental feature which + should probably be made optional. + + * src/truetype/ttgload.c (TT_Process_Simple_Glyph, + load_truetype_glyph): Move the code to set the pedantic_hinting flag + to... + (TT_Load_Glyph): Here. + Set `grayscale' flag except for `FT_LOAD_TARGET_MONO'. + + * src/truetyep/ttinterp.c (Ins_GETINFO): Return MS rasterizer + version 1.7. + Return rotation and stretching info only if glyph is rotated or + stretched, respectively. + Handle grayscale info. + + * src/truetype/ttinterp.h (TT_ExecContextRec): Add `grayscale' + member. + +2004-08-02 George Williams <[email protected]> + + * src/base/ftobjs.c (FT_Attach_File): Initialize `open.stream'. + +2004-08-01 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2004-08-01 George Williams <[email protected]> + + FreeType now can read kerning values from PFM files. + + * src/type1/t1afm.c (T1_Done_AFM): Renamed to... + (T1_Done_Metrics): This. + Update all callers. + (T1_Read_AFM): Make it static. + Don't enter and leave a frame. + (LITTLE_ENDIAN_USHORT, LITTLE_ENDIAN_UINT): New macros. + (T1_Read_PFM): New function. + (T1_Read_Metrics): New higher-level function to be used instead of + T1Read_AFM. + Update all callers. + +2004-07-31 Werner Lemberg <[email protected]> + + * src/pcf/pcfread (pcf_load_font), src/bdf/bdfdrivr.c + (BDF_Face_Init), src/truetype/ttgxvar (TT_Get_MM_Var, + tt_face_vary_cvt): Fix compiler warnings. + +2004-07-26 Søren Sandmann <[email protected]> + + * src/pcf/pcfread.c (pcf_interpret_style): Always allocate memory for + face->style_name. + * src/pcf/pcfdrivr.c (PCF_Face_Done): Free `style_name'. + +2004-07-26 Darren J Longhorn <[email protected]> + + * include/freetype/config/ftconfig.h (FT_SIZEOF_LONG): Recognize + five-byte `long' (which is avoided then). + +2004-07-25 Detlef Würkner <[email protected]> + + * src/pcf/pcfdrivr.c (PCF_Set_Pixel_Size): Compare heights, not + ppem values. + (PCF_Set_Point_Size): Don't call PCF_Set_Pixel_Size but provide own + code to compare ppem values. + * src/bdf/bdfdrivr.c (BDF_Set_Pixel_Size): Compare heights, not + ppem values. + (BDF_Set_Point_Size): Don't call BDF_Set_Pixel_Size but provide own + code to compare ppem values. + +2004-07-25 Kornfeld Eliyahu Peter <[email protected]> + + * src/sfnt/sfobjs.c (sfnt_load_face): Handle + TT_NAME_ID_PREFERRED_FAMILY and TT_NAME_ID_PREFERRED_SUBFAMILY. + +2004-07-24 Derek B. Noonburg <[email protected]> + + * src/cff/cffload.c (cff_font_load): Always create inverse mapping. + Even if the charstring count is the same as the CID count, it is + still possible that the font uses a different CID -> GID mapping. + +2004-07-23 Werner Lemberg <[email protected]> + + * src/truetype/ttobjs.c (tt_face_init): Accept 0x00020000 format tag + found in some Arphic fonts made for Chinese version of Windows 3.1. + +2004-07-17 David Turner <[email protected]> + + Fixed a dangling pointer bug in the cache code that happened in very + rare cases, i.e., when a new family object was destroyed by an + out-of-memory condition during a glyph node initialization. The + function FTC_Cache_Lookup would flush the cache and restart the + lookup with a bad pointer. + + * include/freetype/cache/ftcglyph.h (FTC_FAMILY_TREE): New macro. + (FTC_GCACHE_LOOKUP_CMP): Use it. + Handle reference count in `num_nodes' correctly. + + * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily): Use + FTC_FAMILY_FREE. + (FTC_GCache_Lookup): Handle reference count in `num_nodes' correctly. + + * src/cache/ftcmanag.c (FTC_Manager_FlushN): Fixed a cache flushing + bug. + + * src/truetype/ttinterp.c (Normalize): Fixed a bug that caused + long and unnecessary delays while normalizing huge vectors. + +2004-07-15 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + + * src/base/ftstroke.c (FT_Stroker_ParseOutline): Fix compiler + warning. + +2004-07-15 David Turner <[email protected]> + + * src/base/ftstroke.c (FT_Stroker_ParseOutline): Single points + are not stroked, preventing a bug with pala.ttf and other + fonts. + + * include/freetype/ftstroke.h: Updating documentation comments. + +2004-07-13 Werner Lemberg <[email protected]> + + * src/base/ftstroke.c (ft_stroke_border_reverse): Removed. Unused. + +2004-07-12 David Turner <[email protected]> + + * src/base/ftstroke.c (ft_stroke_border_close): Add second parameter + to indicate reversion of points. + Update all callers. + (ft_stroke_border_reverse): Fix initialization of `point1' and + `tag1'. + + * src/cache/ftcsbits.c (ftc_snode_load): Fixing advance computation + for transformed glyphs. + +2004-07-11 David Turner <[email protected]> + + Fix bugs that prevented the stroker to correctly generate stroked + paths from closed paths, i.e., nearly all glyphs in vectorial fonts. + + The code is still _very_ buggy though; treat with special care. + + * src/base/ftstroke.c (FT_STROKE_TAG_BEGIN_END): New macro. + (ft_stroke_border_reverse): New function. + (ft_stroker_inside): Remove local variable `sigma'; use different + threshold. + (ft_stroker_add_reverse_left): Switch begin/end tags if necessary. + (FT_Stroker_EndSubPath): Call ft_stroker_inside and + ft_stroke_border_reverse. + +2004-06-26 Peter Kovar <[email protected]> + + * src/truetype/ttgload.c (load_truetype_glyph): Fix typo. + +2004-06-25 Werner Lemberg <[email protected]> + + * src/type1/t1afm.c (afm_atoindex): Fix boundary test. Reported + by Dirck Blaskey. + +2004-06-24 David Turner <[email protected]> + + + * Version 2.1.9 released. + ========================= + + + * src/truetype/ttgload.c, src/truetype/ttxgvar.c: Removing + compiler warnings. + +2004-06-23 Werner Lemberg <[email protected]> + + * include/freetype/internal/ftmemory.h [FT_DEBUG_MEMORY]: Declare + FT_QAlloc_Debug and FT_QRealloc_Debug. + + * src/base/ftutil.c (FT_QAlloc): Fix error and debug messages. + (FT_QRealloc): Call FT_QAlloc if original pointer is NULL. + Fix error message. + +2004-06-23 David Turner <[email protected]> + + * include/freetype/internal/ftmemory.h, src/base/ftutil.c + (FT_QAlloc, FT_QRealloc), src/base/ftdbgmem.c (FT_QAlloc_Debug, + FT_QRealloc_Debug): New functions that perform allocation without + zero-ing out the corresponding blocks. + + * include/freetype/internal/ftmemory.h (FT_MEM_QALLOC, + FT_MEM_QREALLOC, FT_MEM_QNEW, FT_MEM_QNEW_ARRAY, + FT_MEM_QRENEW_ARRAY, FT_QALLOC, FT_QREALLOC, FT_QNEW, FT_QNEW_ARRAY, + FT_QRENEW_ARRAY): New macros. + + * src/base/ftstream.c (FT_Stream_EnterFrame): Use FT_QALLOC. + * src/gzip/ftgzip.c (FT_Stream_OpenGzip): Use FT_QNEW_ARRAY. + * src/sfnt/sfobjs.c (tt_face_get_name): Use FT_QNEW_ARRAY. + + * src/sfnt/ttload.c (tt_face_load_directory, tt_face_load_metrics, + tt_face_load_gasp): Use FT_QNEW_ARRAY. + (tt_face_load_kern): Use FT_QNEW_ARRAY. + Small optimization in the kerning table verifier; this speeds up + TrueType face opening by about 7%. + (tt_face_load_hdmx): Use FT_QNEW_ARRAY and FT_QALLOC. + + * include/freetype/config/ftmodule.h: Changed the order of modules, + putting TrueType and Type 1 first. This dramatically improves the + performance of face open/close operations. For example, putting the + TrueType driver first in the list results in a 5x speedup when + opening `Vera.ttf'. + + The very problem is that both the PCF and BDF drivers do a lot more + than necessary to detect that they cannot handle a font file. + +2004-06-22 Werner Lemberg <[email protected]> + + * src/pcf/pcfread.c (pcf_read_TOC, pcf_get_properties, + pcf_get_metrics, pcf_get_bitmaps, pcf_get_encodings): Improve + debugging messages. + + * src/pcf/pcfdrivr.c (FT_COMPOMENT): Move up. + (PCF_Face_Init): Simplify code. + + * src/bdf/bdfdrivr.h (BDF_FaceRec): New element `default_glyph'. + + * src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_start), + src/bdf/bdf.h (bdf_font_t): s/default_glyph/default_char/. + + * src/bdf/bdfdrivr.c (BDF_Face_Init): Fix number of glyphs. + Set `default_glyph'. + (BDF_Glyph_Load): Use `default_glyph' for undefined glyph. + + * docs/CHANGES: Updated. + +2004-06-21 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2004-06-21 David Turner <[email protected]> + + * src/truetype/ttgload.c (TT_Process_Simple_Glyph, + load_truetype_glyph): Don't access (unrounded) + `TT_Size.root.metrics' but (rounded) `TT_Size.metrics'. This fixes + a scaling bug that caused incorrect rendering when the bytecode + interpreter was enabled. + +2004-06-14 Huw D M Davies <[email protected]> + + * src/winfonts/winfnt.c (FNT_Face_Init): Set x_ppem and y_ppem + based on pixel_width and pixel_height. + (FNT_Size_Set_Pixels): Updated. + +2004-06-14 Werner Lemberg <[email protected]> + + * src/lzw/zopen.c: Comment out inclusion of signal.h and unistd.h. + Reported by Hyvärinen Jyrki Juhani. + +2004-06-11 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2004-06-10 David Turner <[email protected]> + + * src/base/ftobject.c, src/base/fthash.c, src/base/ftexcept.c, + src/base/ftsysio.c, src/base/ftsysmem.c, src/base/ftlist.c: Removed. + Obsolete. + + * src/raster/ftraster.c (Alignment, PAlignment): New union to fix + problems with 64bit systems. + (AlignProfileSize): Use it. + +2004-06-08 David Turner <[email protected]> + + * include/freetype/freetype.h (FT_GlyphMetrics): Move `lsb_delta' + and `rsb_delta' elements to... + (FT_GlyphSlotRec): Here to retain binary compatibility with older + FreeType versions. + Update all users. + + * src/sfnt/sfobjs.c (tt_face_get_name): Remove compiler warning. + + * src/winfonts/winfnt.c (FNT_Load_Glyph): Add missing initialization + of slot->metrics.width and slot->metrics.height when loading a + Windows FNT glyph. Thanks to Huw Davies. + + * include/freetype/cache/ftcmru.h (FTC_MruNode_CompareFunc): Change + return type to FT_Bool. + + * src/cache/ftbasic.c (ftc_basic_family_compare): Change return + type to FT_Bool. + + * src/cache/ftccache.c (FTC_Cache_Init, ftc_cache_init): Make + the former call the latter, not vice versa. + (FTC_Cache_Done, ftc_cache_done): Ditto. + + * src/cache/ftcglyph.c (FTC_GNode_Compare, ftc_gnode_compare): Make + the former call the latter, not vice versa. + (FTC_GCache_Init, ftc_gcache_init): Ditto. + (FTC_GCache_Done, ftc_gcache_done): Ditto. + + * src/cache/ftcimage.c (FTC_INode_Free, ftc_inode_free): Make the + former call the latter, not vice versa. + (FTC_INode_Weight, ftc_inode_weight): Ditto. + + * src/cache/ftcmanag.c (ftc_size_node_compare, + ftc_size_node_compare_faceid, ftc_face_node_compare): Change return + type to FT_Bool. + + * src/cache/ftcsbits.c (FTC_SNode_Free, ftc_snode_free): Make the + former call the latter, not vice versa. + (FTC_SNode_Weight, ftc_snode_weight): Ditto. + (FTC_SNode_Compare, ftc_snode_compare): Ditto. + + * src/cache/ftcsbits.c: Fix some bugs and inefficiencies in the cache + sub-system. + +2004-06-05 Werner Lemberg <[email protected]> + + * src/autofit/afloader.c (af_loader_load_g): Set `lsb_delta' and + `rsb_delta' in slot->metrics and tune side bearings slightly. + +2004-06-04 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2004-06-04 David Chester <[email protected]> + + Improve inter-letter spacing for autohinted glyphs. + + * include/freetype/freetype.h (FT_Glyph_Metrics): Add elements + `lsb_delta' and `rsb_delta'. + + * src/autohint/ahhint.c (ah_hinter_load): Set `lsb_delta' and + `rsb_delta' in slot->metrics and tune side bearings slightly. + +2004-06-04 David Turner <[email protected]> + + * src/autofit/*: Important fixes to the auto-fitter. The output + now seems to be 100% equivalent to the auto-hinter, while being + about 2% faster (which proves that script-specific algorithm + selection isn't a performance problem). + + To test it, change `autohint' to `autofit' in + <freetype/config/ftmodule.h> and recompile. + + A few more testing is needed before making this the official + auto-hinting module. + +2004-06-02 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c (compute_glyph_metrics): Fix compiler + warnings. + +2004-06-01 Werner Lemberg <[email protected]> + + * src/sfnt/sfobjs.c (tt_face_get_name): Make sure that an English + name record for the Apple platform is preferred to a non-English + entry for the Microsoft platform. Problem reported by HANDA + Ken'ichi. + +2004-05-19 George Williams <[email protected]> + + * src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): New + auxiliary functions. + (T1_Get_MM_Var): Provide axis tags. + Use mm_axis_unmap and mm_weights_unmap to provide default values + for design and normalized axis coordinates. + + * include/freetype/t1tables.h (PS_DesignMapRec): Change type of + `design_points' to FT_Long. + Update all users. + +2004-05-17 Werner Lemberg <[email protected]> + + * src/base/ftbbox.c (BBox_Conic_Check): Fix boundary cases. + Reported by Mikey Anbary <[email protected]>. + +2004-05-15 Werner Lemberg <[email protected]> + + * src/sfnt/sfobjs.c (sfnt_done_face): Free face->postscript_name. + +2004-05-15 George Williams <[email protected]> + + * src/sfnt/ttload.c (tt_face_load_max_profile): Always set + face->root.num_glyphs. + +2004-05-14 Masatake YAMATO <[email protected]> + George Williams <[email protected]> + + * src/sfnt/ttload.c (sfnt_dir_check): Handle `bhed' properly. + +2004-05-14 Werner Lemberg <[email protected]> + + * src/cache/ftcbasic.c (ftc_basic_family_compare, + ftc_basic_family_init, ftc_basic_family_get_count, + ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph, + ftc_basic_gnode_compare_faceid): Adjust parameters and return types + to prototypes given in header files from include/freetype/cache. + Use casts to proper types locally. + (ftc_basic_image_family_class, ftc_basic_image_cache_class, + ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class): Remove + casts. + + * src/cache/ftccback.h: Adjust parameters and return types to + prototypes given in header files from include/freetype/cache. + + * src/cache/ftcimage.c (ftc_inode_free, ftc_inode_new, + ftc_inode_weight): Adjust parameters and return types to prototypes + given in header files from include/freetype/cache. Use casts to + proper types locally. + + * src/cache/ftcsbits.c (ftc_snode_free, ftc_snode_new, + ftc_snode_weight, ftc_snode_compare): Adjust parameters and return + types to prototypes given in header files from + include/freetype/cache. Use casts to proper types locally. + + * src/cache/ftccmap.c (ftc_cmap_node_free, ftc_cmap_node_new, + ftc_cmap_node_weight, ftc_cmap_node_compare, + ftc_cmap_node_remove_faceid): Adjust parameters and return types to + prototypes given in header files from include/freetype/cache. Use + casts to proper types locally. + (ftc_cmap_cache_class): Remove casts. + + * src/cache/ftcglyph.c (ftc_gnode_compare, ftc_gcache_init, + ftc_gcache_done): Adjust parameters and return types to prototypes + given in header files from include/freetype/cache. Use casts to + proper types locally. + + * src/cache/ftcmanag.c (ftc_size_node_done, ftc_size_node_compare, + ftc_size_node_init, ftc_size_node_reset, + ftc_size_node_compare_faceid, ftc_face_node_init, + ftc_face_node_done, ftc_face_node_compare: Adjust parameters and + return types to prototypes given in header files from + include/freetype/cache. Use casts to proper types locally. + + (ftc_size_list_class, ftc_face_list_class): Remove casts. + +2004-05-13 Werner Lemberg <[email protected]> + + * src/autohint/ahmodule.c (ft_autohinter_init, ft_autohinter_done): + Use FT_Module as parameter and do a cast to FT_AutoHinter locally. + (autohint_module_class): Remove casts. + + * src/base/ftglyph.c (ft_bitmap_glyph_init, ft_bitmap_glyph_copy, + ft_bitmap_glyph_done, ft_bitmap_glyph_bbox, ft_outline_glyph_init, + ft_outline_glyph_done, ft_outline_glyph_copy, + ft_outline_glyph_transform, ft_outline_glyph_bbox, + ft_outline_glyph_prepare): Use FT_Glyph as parameter and do a cast + to FT_XXXGlyph locally. + Use FT_CALLBACK_DEF throughout. + (ft_bitmap_glyph_class, ft_outline_glyph_class): Remove casts. + + * src/bdf/bdfdrivr.c (bdf_cmap_init, bdf_cmap_done, + bdf_cmap_char_index, bdf_cmap_char_next): Use FT_CMap as parameter + and do a cast to BDF_CMap locally. + (bdf_cmap_class): Remove casts. + +2004-05-12 Werner Lemberg <[email protected]> + + * src/cff/cffgload.h (CFF_Builder): Remove `error'. + * src/cff/cffgload.c (cff_decoder_parse_charstrings): Replace + `Memory_Error' with `Fail' und update all users. + +2004-05-11 Werner Lemberg <[email protected]> + + * include/freetype/internal/psaux.h (T1_ParseState): New + enumeration. + (T1_BuilderRec): Replace `path_begun' with `parse_state'. + Remove `error'. + * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Replace + `Memory_Error' with `Fail' and update all users. + Don't use `builder->error'. + Replace `path_begun' with `parse_state' and check parsing states. + + * src/psaux/psobjs.c (t1_builder_init, t1_builder_start_point): + Replace `path_begun' with `parse_state' and check parsing states. + +2004-05-10 George Williams <[email protected]> + + * src/truetype/ttxgvar.c (ft_var_load_avar): Do free arrays in case + of error -- `avar' is optional so we can't rely on tt_done_blend + being called automatically. + +2004-05-09 George Williams <[email protected]> + + * src/truetype/ttxgvar.c (ft_var_load_avar, ft_var_load_gvar): Fix + error handling. + +2004-05-07 Werner Lemberg <[email protected]> + + * src/pfr/pfrobjs.c, src/pfr/pfrobjs.h (pfr_face_init, + pfr_face_done, pfr_face_get_kerning, pfr_slot_init, pfr_slot_done, + pfr_slot_load): Don't use PFR_XXX but FT_XXX arguments which are + typecast to the proper PFR_XXX types within the function. + Update code accordingly. + + * src/pfr/pfrdrivr.c (pfr_get_kerning, pfr_get_advance, + pfr_get_metrics, pfr_get_service): Don't use PFR_XXX but FT_XXX + arguments which are typecast to the proper PFR_XXX types within the + function. + Update code accordingly. + Use FT_CALLBACK_DEF throughout. + (pfr_metrics_service_rec, pfr_driver_class): Remove casts. + +2004-05-06 Masatake YAMATO <[email protected]> + + * src/truetype/ttgxvar.c (ft_var_load_gvar): Use FT_FACE_STREAM. + (*): Rename local variable OffsetToData to offsetToData. + +2004-05-06 Werner Lemberg <[email protected]> + + * src/cff/cffobjs.c (cff_size_done, cff_size_init, cff_size_reset, + cff_slot_done, cff_slot_init, cff_face_init, cff_face_done): Access + root fields directly. + * src/cff/cffdrivr.c (Load_Glyph): Access root fields directly. + + * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Save current + frame before calling TT_Vary_Get_Glyph_Deltas. + + * src/pcf/pcfdrivr.c (PCF_CMapRec): Rename `cmap' to `root' for + consistency. + (pcf_cmap_init, pcf_cmap_done, pcf_cmap_char_index, + pcf_cmap_char_next): Don't use PCF_XXX but FT_XXX arguments which + are typecast to the proper PCF_XXX types within the function. + Update code accordingly. + (pcf_cmap_class): Remove casts. + (PCF_Face_Done, PCF_Face_Init, PCF_Set_Pixel_Size): Don't use + PCF_XXX but FT_XXX arguments which are typecast to the proper + PCF_XXX types within the function. + Update code accordingly. + Use FT_CALLBACK_DEF throughout. + (PCF_Set_Point_Size): New wrapper function. + (PCF_Glyph_Load, pcf_driver_requester): Use FT_CALLBACK_DEF. + (pcf_driver_class): Remove casts. + +2004-05-04 Steve Hartwell <[email protected]> + + * src/truetype/ttobjs.c (tt_driver_done): Fix typo. + +2004-05-04 Werner Lemberg <[email protected]> + + * src/bdf/bdfdrivr.c (BDF_Face_Done, BDF_Face_Init, + BDF_Set_Pixel_Size): Don't use BDF_XXX but FT_XXX arguments which + are typecast to the proper BDF_XXX types within the function. + Update code accordingly. + Use FT_CALLBACK_DEF throughout. + (BDF_Set_Point_Size): New wrapper function. + (bdf_driver_class): Remove casts. + + * src/cff/cffdrivr.c (Get_Kerning, Load_Glyph, cff_get_interface): + Don't use CFF_XXX but FT_XXX arguments which are typecast to the + proper CFF_XXX types within the function. + Update code accordingly. + Use FT_CALLBACK_DEF throughout. + (cff_driver_class): Remove casts. + + * src/cff/cffobjs.h, src/cff/cffobjs.c (cff_size_done, + cff_size_init, cff_size_reset, cff_slot_done, cff_slot_init, + cff_face_init, cff_face_done, cff_driver_init, cff_driver_done): + Don't use CFF_XXX but FT_XXX arguments which are typecast to the + proper CFF_XXX types within the function. + Update code accordingly. + (cff_point_size_reset): New wrapper function. + + * src/cid/cidobjs.h, src/cid/cidobjs.c (cid_slot_done, + cid_slot_init, cid_size_done, cid_size_init, cid_size_reset, + cid_face_done, cid_face_init, cid_driver_init, cid_driver_done): + Don't use CID_XXX but FT_XXX arguments which are typecast to the + proper CID_XXX types within the function. + Update code accordingly. + (cid_point_size_reset): New wrapper function. + + * src/cid/cidgload.c, src/cid/cidgload.h (cid_slot_load_glyph): + Don't use CID_XXX but FT_XXX arguments which are typecast to the + proper CID_XXX types within the function. + Update code accordingly. + + * src/cid/cidriver.c (cid_get_interface): + Don't use CID_XXX but FT_XXX arguments which are typecast to the + proper CID_XXX types within the function. + Update code accordingly. + Use FT_CALLBACK_DEF. + (t1cid_driver_class): Remove casts. + + * src/truetype/ttdriver.c (tt_get_interface): Use FT_CALLBACK_DEF. + * src/truetype/ttgxvar.c (ft_var_load_avar): Don't free non-local + variables (this is done later). + (ft_var_load_avar): Fix call to FT_FRAME_ENTER. + (TT_Get_MM_Var): Fix size for `fvar_fields'. + (TT_Vary_Get_Glyph_Deltas): Handle deallocation of local variables + correctly. + + * src/base/ftdbgmem.c (ft_mem_debug_realloc): Don't abort if + current size is zero. + +2004-05-03 Steve Hartwell <[email protected]> + + * src/truetype/ttobjs.h, src/truetype/ttobjs.c (tt_face_init, + tt_face_done, tt_size_init, tt_size_done, tt_driver_init, + tt_driver_done): Don't use TT_XXX but FT_XXX arguments which are + typecast to the proper TT_XXX types within the function. + Update code accordingly. + + * src/truetype/ttdriver.c (Get_Kerning, Set_Char_Sizes, + Set_Pixel_Sizes, Load_Glyph, tt_get_interface): Don't use TT_XXX but + FT_XXX arguments which are typecast to the proper TT_XXX types + within the function. + Update code accordingly. + (tt_driver_class): Remove casts. + +2004-05-02 Werner Lemberg <[email protected]> + + * src/sfnt/ttload.c (tt_face_free_names): Check that `table->names' + is not NULL. Reported by Gordon Childs <[email protected]>. + +2004-04-29 Werner Lemberg <[email protected]> + + * docs/formats.txt: Add more information on PFR format. + +2004-04-28 Werner Lemberg <[email protected]> + + * docs/formats.txt: New file. + * docs/CHANGES: Updated. + +2004-04-28 Masatake YAMATO <[email protected]> + + * include/freetype/internal/tttypes.h (GX_BlendRec_) + [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Fix a typo. + + * src/truetype/ttgxvar.h (GX_BlendRec_): Fix a typo. + +2004-04-27 Masatake YAMATO <[email protected]> + + * src/truetype/ttgxvar.h: Use FT_LOCAL instead of FT_LOCAL_DEF + for function declarations. + +2004-04-25 George Williams <[email protected]> + + * src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix typo. + +2004-04-25 Werner Lemberg <[email protected]> + + * src/truetype/Jamfile, docs/CHANGES: Updated. + +2004-04-24 Werner Lemberg <[email protected]> + + * src/pcf/pcfdrivr.c: Revert change from 2004-04-17. + * src/pcf/pcfutil.c: Use FT_LOCAL_DEF. + * src/pcf/pcfutil.h: Include FT_CONFIG_CONFIG_H. + Use FT_BEGIN_HEADER and FT_END_HEADER. + Use FT_LOCAL. + +2004-04-24 George Williams <[email protected]> + + Add support for Apple's distortable font technology (in GX fonts). + + * devel/ftoption.h, include/freetype/config/ftoption.h + (TT_CONFIG_OPTION_GX_VAR_SUPPORT): New macro. + + * include/freetype/ftmm.h (FT_Var_Axis, FT_Var_Named_Style, + FT_MM_Var): New structures. + (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates, + FT_Set_Var_Blend_Coordinates): New function declarations. + + * include/freetype/internal/services/svmm.h (FT_Get_MM_Var_Func, + FT_Set_Var_Design_Func): New typedefs. + Update MultiMasters service. + + * include/freetype/internal/tttypes.h + [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include FT_MULTIPLE_MASTERS_H. + (GX_Blend) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New typedef. + (TT_Face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New members `doblend' + and `blend'. + + * include/freetype/tttags.h (TTAG_avar, TTAG_cvar, TTAG_gvar): New + macros. + + * include/freetype/internal/fttrace.h: Add `ttgxvar'. + + * src/base/ftmm.c (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates, + FT_Set_Var_Blend_Coordinates): New functions. + + * src/sfnt/sfobjs.c (sfnt_load_face) + [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Set FT_FACE_FLAG_MULTIPLE_MASTERS + flag for GX var fonts. + + * src/truetype/ttgxvar.c, src/truetype/ttgxvar.h: New files. + + * src/truetype/truetype.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include + ttgxvar.c. + + * src/truetype/ttdriver.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include + FT_MULTIPLE_MASTERS_H, FT_SERVICE_MULTIPLE_MASTERS_H, and ttgxvar.h. + (tt_service_gx_multi_masters) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: + New service. + (tt_services) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Updated. + + * src/truetype/ttgload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include + ttgxvar.h. + (TT_Process_Simple_Glyph, load_truetype_glyph) + [TT_CONFIG_OPTION_GX_VAR_SUPPORT] :Support GX var fonts. + + * src/truetype/ttobjs.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include + ttgxvar.h. + (tt_done_face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call + tt_done_blend. + + * src/truetype/ttpload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include + ttgxvar.h. + (tt_face_load_cvt) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call + tt_face_vary_cvt. + + * src/truetype/rules.mk (TT_DRV_SRC): Add ttgxvar.c. + + * src/type1/t1driver.c (t1_service_multi_masters): Add T1_Get_MM_Var + and T1_Set_Var_Design. + + * src/type1/t1load.c (FT_INT_TO_FIXED, FT_FIXED_TO_INT): New macros. + (T1_Get_MM_Var, T1_Set_Var_Design): New functions. + + * src/type1/t1load.h (T1_Get_MM_Var, T1_Set_Var_Design): New + function declarations. + +2004-04-23 Werner Lemberg <[email protected]> + + * include/freetype/ftcache.h (FT_Get_CharMap_Index): Rename + declaration and move to... + * include/freetype/freetype.h (FT_Get_Charmap_Index): Here. + (FREETYPE_PATCH): Set to 9. + + * src/base/ftobjs.c (FT_Get_Charmap_Index): New function. + + * builds/unix/configure.ac (version_info): Set to 9:7:3. + * builds/unix/configure: Updated. + + * builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj: s/218/219/. + + * builds/freetype.mk (refdoc), README, Jamfile (RefDoc): + s/2.1.8/2.1.9/. + + * docs/CHANGES, docs/VERSION.DLL: Updated. + +2004-04-21 Werner Lemberg <[email protected]> + + * src/cff/cffparse.c (cff_parser_run), src/psaux/psobjs.c + (ps_parser_load_field): Use FT_CHAR_BIT. + +2004-04-21 David Turner <[email protected]> + + + * Version 2.1.8 released. + ========================= + + + * src/cff/cffobjs.c (cff_face_init): Fix a small memory leak. + + * src/autofit/afloader.c (af_loader_load_g), src/autofit/afmodule.c + (af_autofitter_load_glyph), src/base/ftdebug.c (FT_Trace_Get_Name): + Remove compiler warnings. + + * src/autofit/aftypes.h: Undefine AF_DEBUG. + + * src/lzw/zopen.c (rmask), src/pcf/pcfdrivr.c (pcf_service_bdf, + pcf_services), src/pcf/pcfread.c (tableNames), src/psaux/psobjs.c + (ft_char_table), src/type42/t42drivr.c (t42_service_glyph_dict, + t42_service_ps_font_name): Decorate data arrays with `const' to + avoid populating the `.data' segment. + + * src/lzw/Jamfile: New file. + +2004-04-20 Werner Lemberg <[email protected]> + + * src/psaux/psobjs.c (T1Radix): Renamed to... + (ps_radix): This. + Update current cursor position. + + * docs/CHANGES: Updated. + +2004-04-18 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph), + src/ttdriver.c (Load_Glyph): Change type of `glyph_index' to + FT_UInt. From Lex Warners. + +2004-04-17 Chisato Yamauchi <[email protected]> + + * src/sfnt/ttload.c (tt_face_load_sfnt_header): Really fix change + from 2004-03-19. + + * src/bdf/bdfdrivr.c (BDF_Face_Init): Use `ft_strlen'. + + * src/pcf/pcfutil.c, src/pcf/pcfutil.h: Decorate functions with + `static'. + Remove unused function `RepadBitmap'. + * src/pcf/pcfdrivr.c: Don't include pcfutil.h. + +2004-04-16 Werner Lemberg <[email protected]> + + * builds/unix/freetype-config.in (usage): Fix and improve usage + information. + +2004-04-15 Werner Lemberg <[email protected]> + + * builds/unix/ftconfig.in, builds/vms/ftconfig.h: Define + FT_CHAR_BIT. + + * src/base/ftobjs.c (FT_Load_Glyph): Don't apply autohinting if + glyph is vertically distorted or mirrored. + + * src/cff/cffgload.c (cff_slot_load): Handle zero `size' properly + for embedded bitmaps. + + * docs/CHANGES: Updated. + +2004-04-15 bytesoftware <[email protected]> + + * include/freetype/config/ftconfig.h, src/base/ftstream.c + (FT_Stream_ReadFields): More fixes using FT_CHAR_BIT. + +2004-04-14 Werner Lemberg <[email protected]> + + * include/freetype/config/ftconfig.h (FT_CHAR_BIT): New macro. + +2004-04-14 Alex Strelnikov <[email protected]> + + * src/cache/ftcsbits.c (ftc_snode_load): Initialize `*asize' in case + of error. + +2004-04-14 Werner Lemberg <[email protected]> + + * src/base/ftmac.c [__GNUC__]: Define OS_INLINE. + * builds/unix/configure.ac: Don't try to remove `-ansi' compilation + switch on the Mac. + + * builds/unix/ltmain.sh: Regenerated with `libtoolize --force + --copy' from libtool 1.5.6. + * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from + automake 1.8a. + * builds/unix/configure: Regenerated with autoconf 2.59a. + +2004-04-13 Werner Lemberg <[email protected]> + + * include/freetype/config/ftconfig.h: Use CHAR_BIT to define + size of FT_SIZEOF_xxx. + +2004-04-12 Chisato Yamauchi <[email protected]> + + * include/freetype/internal/sfnt.h (TT_Find_SBit_Image_Func, + TT_Load_SBit_Metrics_Func): New typedefs. + (SFNT_Interface): Add find_sbit_image and load_sbit_metrics. + + * src/sfnt/sfdriver.c (sfnt_interface): Updated. + * src/sfnt/ttsbit.h (tt_find_sbit_image, tt_load_sbit_metrics): New + declarations. + * src/sfnt/ttsbit.c (find_sbit_image): Renamed to... + (tt_find_sbit_image): This. + Updated all callers. + (load_sbit_metrics): Renamed to... + (tt_load_sbit_metrics): This. + Updated all callers. + +2004-04-12 Werner Lemberg <[email protected]> + + * configure: Accept makepp also. + + * builds/unix/detect.mk: Use proper path to unix-def.mk. + * builds/unix/unix-def.in (BUILD_DIR, PLATFORM): Remove. + * builds/unix/unix.mk (BUILD_DIR, PLATFORM): Define. + Use BUILD_DIR. + + * docs/INSTALL, docs/INSTALL.GNU, docs/INSTALL.UNX: Update + documentation on makepp. + +2004-04-11 Werner Lemberg <[email protected]> + + * src/lzw/zopen.c: Don't include sys/param.h and sys/stat.h. + +2004-04-10 Werner Lemberg <[email protected]> + + * src/lzw/ftlzw.c: Include zopen.h dependent on + FT_CONFIG_OPTION_USE_LZW. + + * src/base/ftdebug.c: s/index/idx/ to avoid compiler warnings. + +2004-04-02 Werner Lemberg <[email protected]> + + * builds/unix/ltmain.sh: Regenerated with `libtoolize --force + --copy' from libtool 1.5.2. + * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from + automake 1.8a. + * builds/unix/configure: Regenerated with autoconf 2.59a. + +2004-04-01 Werner Lemberg <[email protected]> + + * builds/unix/ft-munmap.m4 (FT_MUNMAP_PARAM): Fix arguments of + AC_COMPILE_IFELSE. + * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from + automake 1.8a. + * builds/unix/configure: Regenerated with autoconf 2.59a. + * builds/unix/config.guess, builds/unix/config.sub: Updated from + `config' CVS module at subversions.gnu.org. + * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from + `texinfo' CVS module at subversions.gnu.org. + * builds/freetype.mk (refdoc): Updated. + +2004-03-31 Werner Lemberg <[email protected]> + + Handle broken FNT files which don't have a trailing NULL byte + in the face name string. + + * src/winfonts/winfnt.h (FNT_FontRec): New member `family_name'. + * src/winfonts/winfnt.c (fnt_font_done): Free font->family_name. + (FNT_Face_Init): Append a final zero byte to the font face name. + +2004-03-30 Werner Lemberg <[email protected]> + + * src/sfnt/ttload.c (tt_face_load_sfnt_header): Fix change from + 2004-03-19. + +2004-03-27 Werner Lemberg <[email protected]> + + * src/base/descrip.mms (OBJS): Add ftbbox.obj. + +2004-03-26 George Williams <[email protected]> + + Add vertical phantom points. + + * include/freetype/internal/tttypes.h (TT_LoaderRec): Add + `top_bearing', `vadvance', `pp3', and `pp4'. + + * src/autofit/afloader.c (af_loader_load_g): Handle two more points. + + * src/autohint/ahhint.c (ah_hinter_load): Handle two more points. + * src/truetype/ttgload.c (Get_VMetrics): New function. + (TT_Load_Simple_Glyph, TT_Process_Simple_Glyph): Handle two more + points. + (load_truetype_glyph): Use Get_VMetrics. + Handle two more points. + (compute_glyph_metrics): Thanks to vertical phantom points we now + can always compute `advance_height' and `top_bearing'. + * src/truetype/ttobjs.h (TT_SubglyphRec): Add vertical phantom + points. + + + * src/autohint/ahglyph.c (ah_outline_load): Fix allocation of + `news'. + +2004-03-21 Werner Lemberg <[email protected]> + + * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Fix left side bearing. + +2004-03-20 Steve Hartwell <[email protected]> + + * src/cache/ftcmru.c (FTC_MruList_RemoveSelection): Handle a NULL + value for `selection' as `select all'. + +2004-03-19 Steve Hartwell <[email protected]> + + * src/sfnt/ttload.c (tt_face_load_sfnt_header): Reject face_index + values > 0 if loading non-TTC fonts. + + * src/base/ftmac.c (open_face_from_buffer): Set positive face_index + to zero before calling FT_Open_Face. + + * docs/CHANGES: Updated. + +2004-03-04 Werner Lemberg <[email protected]> + + * Jamfile, vms_make.com, builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype/vcproj, include/freetype/ftmoderr.h: + Add LZW module. + + * Jamfile.in: Removed. + + * docs/CHANGES: Updated. + + * include/freetype/internal/ftobjs.h: s/MIN/FT_MIN/, s/MAX/FT_MAX/, + s/ABS/FT_ABS/. Updated all callers. + + * src/type1/t1load.c (parse_dict), src/pcf/pcfdrivr.c + (PCF_Face_Init): Use FT_ERROR_BASE. + +2004-03-04 Albert Chin <[email protected]> + + Add support for PCF fonts compressed with LZW (extension .pcf.Z, + created with `compress'). + + * include/freetype/config/ftoption.h, devel/ftoption.h + (FT_CONFIG_OPTION_USE_LZW): New macro. + + * include/freetype/ftlzw.h: New file. + * include/freetype/config/ftheader.h (FT_LZW_H): New macro for + ftlzw.h. + + * src/lzw/*: New files. + + * src/pcf/pcfdrivr.c: Include FT_LZW_H. + (PCF_Face_Init): Try LZW also. + + * src/gzip/ftgzip.c: s/0/Gzip_Err_Ok/ where appropriate. + Beautify. + +2004-03-03 Werner Lemberg <[email protected]> + + * src/pshinter/pshalgo.c (psh_hint_table_init): Simplify code. + +2004-03-02 Werner Lemberg <[email protected]> + + Add embedded bitmap support to CFF driver. + + * src/cff/cffobjs.h (CFF_SizeRec): New structure. + + * src/cff/cffgload.c (cff_builder_init): Updated. + (cff_slot_load): Updated. + [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Load sbit. + + * src/cff/cffobjs.c (sbit_size_reset) + [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: New function. + (cff_size_get_globals_funcs, cff_size_done, cff_size_init): Updated. + (cff_size_reset): Updated. + [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Call sbit_size_reset. + + * src/cff/cffdrivr.c (Load_Glyph): Updated. + (cff_driver_class): Use CFF_SizeRec. + + * docs/CHANGES: Updated. + +2004-03-01 Werner Lemberg <[email protected]> + + * src/pshinter/pshglob.c (psh_globals_scale_widths): Don't use + FT_RoundFix but FT_PIX_ROUND. + (psh_blues_snap_stem): Don't use blue_shift but blue_threshold. + + * src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD_MAXIMUM): New macro. + (psh_glyph_find_string_points): Use PSH_STRONG_THRESHOLD_MAXIMUM. + (psh_glyph_find_blue_points): New function. Needed for fonts like + p052003l.pfb (URW Palladio L Roman) which have flex curves at the + base line within blue zones, but the flex curves aren't covered by + hints. + (ps_hints_apply): Use psh_glyph_find_blue_points. + +2004-02-27 Garrick Meeker <[email protected]> + + * builds/unix/configure.ac: Fix compiler flags for + `--with-old-mac-fonts'. + * builds/unix/configure: Regenerated. + + * src/base/ftmac.c: s/TARGET_API_MAC_CARBON/!TARGET_API_MAC_OS8/. + (FT_New_Face_From_Resource): New function. + (FT_New_Face): Use FT_New_Face_From_Resource. + (FT_New_Face_From_FSSpec): Use FT_New_Face_From_Resource. + [__MWERKS__]: Don't include FSp_fopen.h. + +2004-02-26 Werner Lemberg <[email protected]> + + * src/pshinter/pshglob.c (psh_globals_new): Fix value of + `dim->stdw.count'. + Don't assign default values to blue scale and blue shift. + +2004-02-25 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2004-02-25 Garrick Meeker <[email protected]> + Steve Hartwell <[email protected]> + + Improve MacOS fond support. Provide a new API + `FT_New_Face_From_FSSpec' similar to `FT_New_Face'. + + * src/base/ftmac.c [__MWERKS__]: Include FSp_fpopen.h. + STREAM_FILE [__MWERKS__]: New macro. + (ft_FSp_stream_close, ft_FSp_stream_io) [__MWERKS__]: New functions. + (file_spec_from_path) [__MWERKS__]: Updated #if statement. + (get_file_type, make_lwfn_spec): Use `const' for argument. + (is_dfont) [TARGET_API_MAC_CARBON]: Removed. + (count_face_sfnt, count_faces): New functions. + (parse_fond): Do some range checking. + (read_lwfn): Change type of second argument. + No longer call FSpOpenResFile. + (OpenFileAsResource): New function. + (FT_New_Face_From_LWFN): Use `const' for second argument. + Use OpenFileAsResource. + (FT_New_Face_From_Suitcase): Change type of second argument. + No longer call FSpOpenResFile. + Loop over all resource indices. + (FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Removed. + (FT_GetFile_From_Mac_Name): Use `const' for first argument. + (ResourceForkSize): Removed. + (FT_New_Face): Updated to use new functions. + (FT_New_Face_From_FSSpec): New function. + + * include/freetype/ftmac.h: Updated. + +2004-02-24 Malcolm Taylor <[email protected]> + + * src/autohint/ahhint.c (ah_hinter_load) <FT_GLYPH_FORMAT_OUTLINE>: + Handle case where outline->num_vedges is zero while computing hinted + metrics. + +2004-02-24 Gordon Childs <[email protected]> + + * src/cff/cffcmap.c (cff_cmap_unicode_init): Provide correct value + for `count'. + +2004-02-24 Werner Lemberg <[email protected]> + + * include/freetype/t1tables.h (PS_PrivateRec): Add + `expansion_factor'. + + * src/pshinter/pshglob (psh_blues_scale_zones): Fix computation + of blues->no_overshoots -- `blues_scale' is stored with a + magnification of 1000, and `scale' returns fractional pixels. + + * src/type1/t1load.c (T1_Open_Face): Initialize `blue_shift', + `blue_fuzz', `expansion_factor', and `blue_scale' according to the + Type 1 specification. + + * src/type1/t1tokens.h: Handle `ExpansionFactor'. + + * docs/CHANGES: Updated. + +2004-02-24 Masatake YAMATO <[email protected]> + + Provide generic access to MacOS resource forks. + + * src/base/ftrfork.c, include/freetype/internal/ftrfork.h: New + files. + + * src/base/ftobjs.c: Include FT_INTERNAL_RFORK_H. + (Mac_Read_POST_Resource, Mac_Read_sfnt_Resource): Remove arguments + `resource_listoffset' and `resource_data' and adapt code + accordingly. These values are calculated outside of the function + now. + Add new argument `offsets'. + (IsMacResource): Use `FT_Raccess_Get_HeaderInfo' and + `FT_Raccess_Get_DataOffsets'. + (load_face_in_embedded_rfork): New function. + (load_mac_face): Use load_face_in_embedded_rfork. + (ft_input_stream_new): Renamed to... + (FT_Stream_New): This. Use FT_BASE_DEF. Updated all callers. + (ft_input_stream_free): Renamed to... + (FT_Stream_Free): This. Use FT_BASE_DEF. Updated all callers. + + * src/base/ftbase.c: Include ftrfork.c. + + * src/base/rules.mk (BASE_SRC), src/base/Jamfile: Updated. + + * include/freetype/internal/internal.h (FT_INTERNAL_RFORK_H): + New macro. + + * include/freetype/internal/fttrace.h: Added `rfork' as a new + trace definition. + + * include/freetype/internal/ftstream.h: Declare FT_Stream_New and + FT_Stream_Free. + + * include/freetype/config/ftoption.h, devel/ftoption.h + (FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK): New option. + + * include/freetype/config/ftstdlib.h (ft_strrchr): New macro. + +2004-02-23 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + + * include/freetype/internal/ftdebug.h: Include FT_FREETYPE_H. + +2004-02-23 Masatake YAMATO <[email protected]> + + Provide a simple API to control FreeType's tracing levels. + + * include/freetype/internal/ftdebug.h (FT_Trace_Get_Count, + FT_Trace_Get_Name): New declarations. + + * src/base/ftdebug.c (FT_Trace_Get_Count, FT_Trace_Get_Name): New + functions. + +2004-02-23 David Turner <[email protected]> + + * src/autofit/afhints.c, src/autofit/afhints.h, + src/autofit/aflatin.c, src/autofit/afloader.c, src/types.h: Grave + bugs have been fixed. The auto-fitter works, doesn't crash, but + still produces unexpected results... + +2004-02-21 Werner Lemberg <[email protected]> + + * src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD): Changed to hold + the accepted shift for strong points in fractional pixels (which + is a heuristic value). + (psh_glyph_find_strong_points): Compute threshold for + psh_hint_table_find_strong_points. + (psh_hint_table_find_strong_point): Add parameter to pass threshold. + +2004-02-20 Werner Lemberg <[email protected]> + + * src/pshinter/pshrec.c (ps_mask_table_set_bits): Don't call + ps_mask_table_alloc but ps_mask_table_last. + (ps_hints_t2mask): Use correct position and number for vertical + and horizontal hinter mask bits. + + * docs/CHANGES: Updated. + +2004-02-19 Werner Lemberg <[email protected]> + + * src/base/ftstroke.c (FT_Glyph_StrokeBorder): Fix enum handling. + * src/cff/cffdrivr.c (cff_get_cmap_info): Remove compiler warning. + +2004-02-18 Werner Lemberg <[email protected]> + + * include/freetype/freetype.h: Document FT_LOAD_TARGET_XXX properly. + + * src/base/ftglyph.c (ft_bitmap_glyph_class, + ft_outline_glyph_class): Tag with FT_CALLBACK_TABLE_DEF. + + * src/smooth/ftsmooth.c (ft_smooth_render): Handle + FT_RENDER_MODE_LIGHT. + +2004-02-17 Werner Lemberg <[email protected]> + + Fix callback functions in cache module. + + * src/cache/ftccback.h: New file for callback declarations. + + * src/cache/ftcbasic.c (ftc_basic_family_compare, + ftc_basic_family_init, ftc_basic_family_get_count, + ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph, + ftc_basic_gnode_compare_faceid): Use FT_CALLBACK_DEF. + (ftc_basic_image_family_class, ftc_basic_image_cache_class, + ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class): + Use FT_CALLBACK_TABLE_DEF and local wrapper functions. + + * src/cache/ftccache.c: Include ftccback.h. + (ftc_cache_init, ftc_cache_done): New wrapper functions which use + FT_LOCAL_DEF. + + * src/cache/ftccmap.c: Include ftccback.h. + (ftc_cmap_cache_class): Use local wrapper functions. + + * src/cache/ftcglyph.c: Include ftccback.h. + (ftc_gnode_compare, ftc_gcache_init, ftc_gcache_done): New wrapper + functions which use FT_LOCAL_DEF. + + * src/cache/ftcimage.c: Include ftccback.h. + (ftc_inode_free, ftc_inode_new, ftc_inode_weight): New wrapper + functions which use FT_LOCAL_DEF. + + * src/cache/ftcmanag.c (ftc_size_list_class, ftc_face_list_class): + Use FT_CALLBACK_TABLE_DEF. + + * src/cache;/ftcsbits.c: Include ftccback.h. + (ftc_snode_free, ftc_snode_new, ftc_snode_weight, + ftc_snode_compare): New wrapper functions which use FT_LOCAL_DEF. + + * src/cache/rules.mk (CACHE_DRV_H): Add ftccback.h. + +2004-02-17 Masatake YAMATO <[email protected]> + + * include/freetype/ftmac.h (FT_GetFile_From_Mac_Name): Fix a typo + (FT_EXPORT_DEF -> FT_EXPORT). + + * include/freetype/ftxf86.h (FT_Get_X11_Font_Format): Ditto. + +2004-02-15 Werner Lemberg <[email protected]> + + * src/base/ftobjs.c (FT_Set_Char_Size): Fix typo. + +2004-02-14 Masatake YAMATO <[email protected]> + + * builds/unix/ftsystem.c: Include errno.h. + (ft_close_stream): Renamed to... + (ft_close_stream_by_munmap): This. + (ft_close_stream_by_free): New function. + (FT_Stream_Open): Use fallback method if mmap fails. + Use proper function for closing the stream. + +2004-02-14 Werner Lemberg <[email protected]> + + * src/type1/t1load.c (parse_dict): Initialize `start_binary'. + +2004-02-13 Robert Etheridge <[email protected]> + + * src/type42/t42objs.c (T42_Face_Init), src/type1/t1objs.c + (T1_Face_Init), src/cid/cidobjs.c (cid_face_init): Fix computation + of underline_position and underline_thickness. + +2004-02-12 Werner Lemberg <[email protected]> + + * src/base/ftobjs.c (FT_Set_Char_Size): Return immediately if + ppem values don't change. Suggested by Graham Asher. + +2004-02-11 Werner Lemberg <[email protected]> + + * src/cid/cidload.c (cid_face_open): Always allocate + face->cid_stream so that we can deallocate it safely. + +2004-02-10 Werner Lemberg <[email protected]> + + Make the PS parser more tolerant w.r.t. non-standard font data. In + general, an error is only reported in case of a syntax error; a + wrong type is now simply ignored (if possible). To be independent + of the order of various MM-specific keywords, the parse_shared_dict + routine has been removed -- the PS parser is now capable to skip + this data. It no longer fails on parsing e.g. + + dup /WeightVector exch def + + Since the token following /WeightVector isn't `[' (starting an + array) it is simply ignored. + + * include/freetype/fterrdef.h: Define `FT_Err_Ignore' (0xA2) as a + new internal error value. + + * src/type1/t1load.c (parse_blend_axis_types, + parse_blend_design_positions, parse_blend_design_map): Return + T1_Err_Ignore if no proper array is following the keyword. + (parse_weight_vector): Use T1_ToTokenArray, initializing `blend' + structure, if necessary. + Return T1_Err_Ignore if no proper array is following the keyword. + (parse_shared_dict): Removed. + (parse_encoding): Set parser->root.error to return T1_Err_Ignore + if no result can be obtained. + Check for errors before accessing `elements' array. + (t1_keywords): Remove /shareddict. + (parse_dict): Reset error if t1_load_keyword returns T1_Err_Ignore. + Set keyword_flag only in case of success. + Check error code if skipping an unrecognized token. + (T1_Open_Face) [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: Call T1_Done_Blend + if blend commands haven't set up a proper MM font. + + * src/psaux/psobjs.c (ps_parser_load_field_table): Remove special + code for synthetic fonts. + Return PSaux_Err_Ignore if no proper value has been found. + +2004-02-09 Werner Lemberg <[email protected]> + + * src/cff/cffgload.c (cff_decoder_parse_charstrings) + <cff_op_endchar>: Preserve glyph width before calling + cff_operator_seac. + +2004-02-09 Martin Muskens <[email protected]> + + * src/cff/cffgload.c (cff_decoder_parse_charstrings): Handle special + first argument for `hintmask' and `cntrmask' operators also. + +2004-02-08 Werner Lemberg <[email protected]> + + * builds/unix/configure.in: Call AC_SUBST for `enable_shared', + `hardcode_libdir_flag_spec', and `wl'. + * builds/unix/configure: Regenerated. + + * builds/unix/freetype-config.in: Make --prefix and --exec-prefix + actually work. + Report a proper --rpath (or -R) value for --libs argument if a + shared library has been built. + + * docs/CHANGES: Updated. + +2004-02-07 Keith Packard <[email protected]> + + * src/bdf/bdfdrivr.c (BDF_Face_Init, BDF_Set_Pixel_Size): Fix + computation of various vertical and horizontal metric values. + + * src/pcfdrivr.c (PCF_Set_Pixel_Size), src/pcfread (pcf_load_font): + Ditto. + +2004-02-07 Werner Lemberg <[email protected]> + + * builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.dsw, docs/CHANGES: Updated. + +2004-02-07 Vitaliy Pasternak <[email protected]> + + * builds/win32/visualc/freetype.sln, + builds/win32/visualc/freetype.vcproj: New files for VS.NET 2003. + +2004-02-03 Werner Lemberg <[email protected]> + + * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): + Initialize `node'. + * src/type1/t1load.c (parse_dict): Initialize `have_integer'. + +2004-02-02 Werner Lemberg <[email protected]> + + * src/type1/t1load.c (parse_dict): Handle `RD' and `-|' commands + outside of /Subrs or /CharStrings. This can happen if there is + additional code manipulating those two arrays so that FreeType + doesn't recognize them properly. + (T1_Open_Face): Improve an error message. + +2004-02-01 Werner Lemberg <[email protected]> + + * src/type1/t1load.c (parse_charstrings): Exit immediately if + there are no elements in /CharStrings. This is needed for fonts + like Optima-Oblique which not only define /CharStrings but access it + also. + +2004-02-01 David Turner <[email protected]> + + * src/sfnt/Jamfile: Removing `ttcmap' from the list of sources. + + * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP) + <FTC_INLINE>: Provide macro version which doesn't use inline code. + * include/freetype/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP) + <FTC_INLINE>: Ditto. + Use FTC_MRULIST_LOOKUP_CMP. + * include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): New + macro. + (FTC_MRULIST_LOOKUP): Use it. + + * src/cache/Jamfile (_sources), src/cache/descrip.mms: Updated. + * src/cache/ftcbasic.c: Fix compiler warnings. + * src/cache/ftcmanag.c (FTC_Manager_LookupSize, + FTC_Manager_LookupFace) <FTC_INLINE>: Use FTC_MRULIST_LOOKUP_CMP. + * src/cache/ftcmru.c (FTC_MruList_Find): Fix a bug (found after + heavy testing). + + * Jamfile: Updating `refdoc' target, and adding `autohint' to the + list of modules to build. Both the autohinter and autofitter will + be built by default. But which one will be used is determined by + the content of `ftmodule.h'. + + * src/autofit/*: Many updates, but the code is still buggy... + +2004-01-31 Werner Lemberg <[email protected]> + + * src/cff/cffgload.c (cff_operator_seac): Fix magnitude of + accent offset. + Update code similarly to the seac support for Type 1 fonts. + (cff_decoder_parse_charstrings) <cff_op_endchar>: Fix magnitude + of accent offset. + Don't hint glyphs twice if seac is emulated. + <cff_op_flex>: Assign correct point tags. + * docs/CHANGES: Updated. + +2004-01-30 Werner Lemberg <[email protected]> + + * src/type1/t1parse.c (T1_Get_Private_Dict): Use FT_MEM_MOVE, not + FT_MEM_COPY, for copying the private dict. + + * src/type1/t1load.c (parse_subrs): Assign number of subrs only + in first run. + (parse_charstrings): Parse /CharStrings in second run without + assigning values. + (parse_dict): Skip all /CharStrings arrays but the first. We need + this for non-standard fonts like `Optima' which have different + outlines depending on the resolution. Note that there is no + guarantee that we get fitting /Subrs and /CharStrings arrays; this + can only be done by a real PS interpreter. + +2004-01-29 Antoine Leca <[email protected]> + + * builds/win32/visualc/index.html: New file, giving detailed + explanations about forcing CR+LF line endings for the VC++ project + files. + +2004-01-22 Garrick Meeker <[email protected]> + + * src/cff/cffload.c (cff_subfont_load): Initialize `dict'. + +2004-01-22 Werner Lemberg <[email protected]> + + Add support for the hexadecimal representation of binary data + started with `StartData' in CID-keyed Type 1 fonts. + + * include/freetype/internal/t1types.h (CID_FaceRec): Add new + members `binary_data' and `cid_stream'. + + * src/cid/cidload.c (cid_read_subrs): Use `face->cid_stream'. + (cid_hex_to_binary): New auxiliary function. + (cid_face_open): Add new argument `face_index' to return quickly + if less than zero. Updated all callers. + Call `cid_hex_to_binary', then open and assign memory stream to + `face->cid_stream' if `parser->binary_length' is non-zero. + * src/cid/cidload.h: Updated. + + * src/cid/cidobjs.c (cid_face_done): Free `binary_data' and + `cid_stream'. + + * src/cid/cidparse.c (cid_parser_new): Check arguments to + `StartData' and set parser->binary_length accordingly. + * src/cid/cidparse.h (CID_Parser): New member `binary_length'. + + * src/cid/cidgload.c (cid_load_glyph): Use `face->cid_stream'. + + * docs/CHANGES: Updated. + +2004-01-21 Werner Lemberg <[email protected]> + + include/freetype/config/ftstdlib.h (ft_atoi): Replaced with... + (ft_atol): This. + * src/base/ftdbgmem.c: s/atol/ft_atol/. + * src/type42/t42drivr.c: s/ft_atoi/ft_atol/. + +2004-01-20 Masatake YAMATO <[email protected]> + + * include/freetype/ftcache.h: Delete duplicated definition of + FTC_FaceID. + + * src/cff/cffdrivr.c (cff_get_cmap_info): Call sfnt module's TT CMap + Info service function if the cmap comes from sfnt. Return 0 if the + cmap is sythesized in cff module. + +2004-01-20 David Turner <[email protected]> + + * src/cache/ftcmanag.c (ftc_size_node_compare): Call + FT_Activate_Size. + +2004-01-20 Werner Lemberg <[email protected]> + + * src/type1/t1parse.c (T1_Get_Private_Dict): Skip exactly one + CR, LF, or CR/LF after `eexec'. + +2004-01-18 David Turner <[email protected]> + + * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Remove compiler + warning. + + * src/tools/docmaker/*: Updating beautifier tool. + +2004-01-15 David Turner <[email protected]> + + * src/base/ftoutln.c (ft_orientation_extremum_compute): Fix + infinite loop bug. + + * include/freetype/ftstroke.h: Include FT_GLYPH_H. + (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_Glyph_StrokeBorder): New + declarations. + + * src/base/ftstroke.c: Include FT_INTERNAL_OBJECTS_H. + (FT_Outline_GetOutsideBorder): Inverse result. + (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_GlyphStrokeBorder): New + functions. + (FT_Stroker_EndSubPath): Close path if needed. + (FT_Stroker_Set, FT_Stroker_ParseOutline): Use FT_Stroker_Rewind. + + * include/freetype/cache/ftcmanag.h (FTC_ScalerRec, + FTC_Manager_LookupSize): Moved to... + * include/freetype/ftcache.h (FTC_ScalerRec, + FTC_Manager_LookupSize): Here. + + * src/tools/docmaker/docbeauty.py: New file to beautify the + documentation comments (e.g., to convert them to single block border + mode). + * src/tools/docmaker/docmaker.py (file_exists, make_file_list): + Moved to... + * src/tools/docmaker/utils.py (file_exists, make_file_list): Here. + +2004-01-14 David Turner <[email protected]> + + * include/freetype/internal/ftmemory.h (FT_ARRAY_COPY, + FT_ARRAY_MOVE): New macros to make copying arrays easier. + Updated all relevant code to use them. + +2004-01-14 Werner Lemberg <[email protected]> + + * src/cff/cffload.c (cff_font_load): Load charstrings_index earlier. + Use number of charstrings as argument to CFF_Load_FD_Select (as + documented in the CFF specs). + +2004-01-13 Graham Asher <[email protected]> + + * src/pshinter/pshalgo.c (psh_glyph_init): Move assignment of + `glyph->memory' up to free arrays properly in case of failure. + +2004-01-10 Masatake YAMATO <[email protected]> + + Make `FT_Get_CMap_Language_ID' work with CFF. Bug reported by + Steve Hartwell <[email protected]>. + + * src/cff/cffdrivr.c: Include FT_SERVICE_TT_CMAP_H. + (cff_services): Added an entry for FT_SERVICE_ID_TT_CMAP. + (cff_get_cmap_info): New function. + (cff_service_get_cmap_info) New entry for cff_services. + + * src/sfnt/ttcmap0.c: Exit loop after a format match has been found. + Suggested by Steve Hartwell <[email protected]>. + +2004-01-03 Masatake YAMATO <[email protected]> + + * src/base/ftobjs.c (destroy_charmaps): New function. + (destroy_face, open_face): Use `destroy_charmaps'. + +2004-01-01 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2004-01-01 Michael Jansson <[email protected]> + + * src/winfonts/winfnt.c (FNT_Size_Set_Pixels): Fix sign of + size->metrics.descender. + +2003-12-31 Wolfgang Domröse <[email protected]> + + * src/cff/cffgload.c (cff_decoder_parse_charstrings) + [FT_DEBUG_LEVEL_TRACE]: Use `%ld' in FT_TRACE4. + <cff_op_flex1>: Change type of dx and dy to FT_Pos and remove + cast for accessing arguments. + +2003-12-31 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Revert previous + change. It's not necessary. + +2003-12-29 Smith Charles <[email protected]> + + * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle `repeated + flags set' correctly. + +2003-12-29 Werner Lemberg <[email protected]> + + * src/cff/cffobjs.c (cff_face_init): Fix memory leak by deallocating + `full' and `weight' properly. + * src/cff/cffgload.c (cff_decoder_parse_charstrings) + <cff_op_hintmask> [FT_DEBUG_LEVEL_TRACE]: Use `0x' as prefix for + tracing output. + +2003-12-26 Werner Lemberg <[email protected]> + + * include/freetype/internal/sfnt.h (TT_Set_SBit_Strike_Func): + Use FT_UInt for ppem values. + * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Use FT_UInt for + ppem values. + * src/sfnt/ttsbit.h: Updated. + + * src/base/ftobjs.c (FT_Set_Pixel_Sizes): Don't allow ppem values + larger than -0FFFF. + +2003-12-25 Werner Lemberg <[email protected]> + + * src/base/fttrigon.c, src/base/ftgloadr.c: Inlude + FT_INTERNAL_OBJECTS_H. + + * src/base/ftstroke.c (FT_Outline_GetInsideBorder, + FT_Outline_GetOutsideBorder): s/or/o/ to make it compile with + C++ compilers. + + * src/cache/ftcmru.c, include/freetype/cache/ftcmru.h: + s/select/selection/ to avoid compiler warning. + * src/cff/cffload.h: s/select/ftselect/ to avoid potential + compiler warning. + +2003-12-24 Werner Lemberg <[email protected]> + + * src/cache/ftcsbits.c (FTC_SNode_Weight): + s/FTC_SBIT_ITEM_PER_NODE/FTC_SBIT_ITEMS_PER_NODE/. + +2003-12-24 David Turner <[email protected]> + + * Fixed compilation problems in the cache sub-system. + + * Partial updates to src/autofit. + + * Jamfile (FT2_COMPONENTS): Add autofit module. + +2003-12-23 Werner Lemberg <[email protected]> + + * src/cff/cffgload.c (cff_lookup_glyph_by_stdcharcode): Handle + CID-keyed fonts. + +2003-12-23 David Turner <[email protected]> + + * include/freetype/internal/ftobjs.h (FT_PAD_FLOOR, FT_PAD_ROUND, + FT_PAD_CEIL, FT_PIX_FLOOR, FT_PIX_ROUND, FT_CEIL): New macros. They + are used to avoid compiler warnings with very pedantic compilers. + Note that `(x) & -64' causes a warning if (x) is not signed. Use + `(x) & ~63' instead! + Updated all related code. + + Add support for extraction of `inside' and `outside' borders. + + * src/base/ftstroke.c (FT_StrokerBorder): New enumeration. + (FT_Outline_GetInsideBorder, FT_Outline_GetOutsideBorder, + FT_Stroker_GetBorderCounts, FT_Stroker_ExportBorder): New functions. + (FT_StrokeBorderRec): New boolean member `valid'. + (ft_stroke_border_get_counts): Updated. + * include/freetype/ftstroke.h: Updated. + +2003-12-22 Werner Lemberg <[email protected]> + + * include/freetype/ftwinfnt.h (FT_WinFNT_ID_*): New definitions + to describe the `charset' field in FT_WinFNT_HeaderRec. + * src/winfonts/winfnt.c (FNT_Face_Init): Set encoding to + FT_ENCODING_NONE except for FT_WinFNT_ID_MAC. + + * include/freetype/freetype.h (FT_Encoding): Improve comment, + based on work by Detlef Würkner <[email protected]>. + + * docs/CHANGES: Updated. + +2003-12-22 David Turner <[email protected]> + + * include/freetype/ftcache.h, + include/freetype/cache/ftcmanag.h, + include/freetype/cache/ftccache.h, + include/freetype/cache/ftcmanag.h, + include/freetype/cache/ftcmru.h (added), + include/freetype/cache/ftlru.h (removed), + include/freetype/cache/ftcsbits.h, + include/freetype/cache/ftcimage.h, + include/freetype/cache/ftcglyph.h, + src/cache/ftcmru.c, + src/cache/ftcmanag.c, + src/cache/ftccache.c, + src/cache/ftcglyph.c, + src/cache/ftcimage.c, + src/cache/ftcsbits.c, + src/cache/ftccmap.c, + src/cache/ftcbasic.c (added), + src/cache/ftclru.c (removed): + + *Complete* rewrite of the cache sub-system to `solve' the + following points: + + - all public APIs have been moved to FT_CACHE_H, everything + under `include/freetype/cache' is only needed by client + applications that want to implement their own caches + + - a new function named FTC_Manager_RemoveFaceID to deal + with the uninstallation of FaceIDs + + - the image and sbit cache are now abstract classes, that + can be extended much more easily by client applications + + - better performance in certain areas. Further optimizations + to come shortly anyway... + + - the FTC_CMapCache_Lookup function has changed its signature, + charmaps can now only be retrieved by index + + - FTC_Manager_Lookup_Face => FTC_Manager_LookupFace + FTC_Manager_Lookup_Size => FTC_Manager_LookupSize (still in + private header for the moment) + +2003-12-21 Werner Lemberg <[email protected]> + + * src/type1/t1load.c (parse_dict): Stop parsing if `eexec' keyword + is encountered. + +2003-12-19 Werner Lemberg <[email protected]> + + * src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 32. For + example, the Japanese Hiragino font already contains 15 subfonts. + + * src/cff/cffload.c (cff_font_load): Deallocate `sids' array for + CID-keyed fonts. + + * devel/ftoption.h: Define FT_DEBUG_MEMORY. + +2003-12-18 Werner Lemberg <[email protected]> + + * include/freetype/ttnameid.h (TT_ADOBE_ID_LATIN_1): New macro. + * src/type1/t1objs.c (T1_Face_Init): Use TT_ADOBE_ID* values. + +2003-12-18 Werner Lemberg <[email protected]> + + * src/cff/cfftypes.h (CFF_FontRecDictRec): Change type of + `cid_count' to `FT_ULong'. + + * src/cff/cffgload.c (cff_slot_load): Take care of empty `cids' + array. + + * src/cff/cffload.c (cff_charset_done): Free `cids' array. + (cff_font_load): Create cids array only for CID-keyed fonts which + are subsetted. + + * src/cff/cffobjs.c (cff_face_init): Check the availability of + the PSNames modules for non-pure CFFs also. + Set FT_FACE_FLAG_GLYPH_NAMES for a non-pure CFF also if it isn't + CID-keyed. + + * src/cff/rules.mk (CFF_DRV_H): Add cfftypes.h. + +2003-12-17 Werner Lemberg <[email protected]> + + * src/sfnt/sfobjs.c (sfnt_init_face): Don't set + FT_FACE_FLAG_GLYPH_NAMES if the font contains a version 3.0 `post' + table. + + * docs/CHANGES: Updated. + +2003-12-17 Masatake YAMATO <[email protected]> + + Add new function FT_Get_CMap_Language_ID to extract the language ID + for TrueType/sfnt fonts. + + * include/freetype/internal/services/svttcmap.h: New file. + * include/freetype/internal/ftserv.h (FT_SERVICE_TT_CMAP_H): Add + svttcmap.h. + + * src/sfnt/sfdriver.c: Include ttcmap0.h. + (tt_service_get_cmap_info): New service. + (sfnt_services): Updated. + + * src/sfnt/ttcmap0.c (tt_cmap*_get_info): New functions. + (tt_cmap*_class_rec): Add tt_cmap*_get_info members. + (tt_get_cmap_info): New function. + * src/sfnt/ttcmap0.h: Include FT_SERVICE_TT_CMAP_H. + (TT_CMap_ClassRec): New field `get_cmap_info'. + (tt_get_cmap_info): New declaration. + + * src/base/ftobjs.c: Include FT_SERVICE_TT_CMAP_H. + (FT_Get_CMap_Language_ID): New function implementation. + * include/freetype/tttables.h (FT_Get_CMap_Language_ID): New + function declaration. + +2003-12-16 Werner Lemberg <[email protected]> + + * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: Removed. Obsolete. + + * include/freetype/internal/sfnt.h (SFNT_Interface): Remove + obsolete fields `load_charmap' and `free_charmap'. + (TT_CharMap_Load_Func, TT_CharMap_Free_Func): Removed. + * src/sfnt/sfnt.c: Don't include ttcmap.c. + * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttcmap.c. + * src/sfnt/ttload.c: Don't include ttcmap.h. + * src/sfnt/sfdriver.c: Don't include ttcmap.h. + (sfnt_interface): Updated. + + * include/freetype/internal/tttypes.h (TT_TableDirRec, + TT_CMapDirRec, TT_CMapDirEntryRec, TT_CMap0, TT_CMap2SubHeaderRec, + TT_CMap2Rec, TT_CMap4Segment, TT_CMap4Rec, TT_CMap6, + TT_CMapGroupRec, TT_CMap8_12Rec, TT_CMap10Rec, TT_CharMap_Func, + TT_CharNext_Func, TT_CMapTableRec, TT_CharMapRec): Removed. + Obsolete. + * src/cff/cffobjs.h (CFF_CharMapRec): Removed. Obsolete. + +2003-12-15 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2003-12-15 Wolfgang Domröse <[email protected]> + + * builds/atari/*: New directory for building FreeType 2 on Atari + with the PureC compiler. + +2003-12-12 Wolfgang Domröse <[email protected]> + + * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add + cast. + * src/cff/cffdrivr.c (cff_ps_has_glyph_names): Assure that return + value is either 0 or 1. + +2003-12-12 Werner Lemberg <[email protected]> + + * src/cff/cffdrivr.c (cff_get_glyph_name): Improve error message. + (cff_get_name_index): Return if no PSNames service is available. + (cff_ps_has_glyph_names): Handle CID-keyed fonts correctly. + * src/cff/cfftypes.h (CFF_CharsetRec): New field `cids', used for + CID-keyed fonts. This is the inverse mapping of `sids'. + * src/cff/cffload.c (cff_charset_load): New argument `invert'. + Initialize charset->cids if `invert' is set. + (cff_font_load): In call to cff_charset_load, set `invert' to true + for CID-keyed fonts. + * src/cff/cffgload.c (cff_slot_load): Handle glyph index as CID + and map it to the real glyph index. + + * docs/CHANGES: Updated. + +2003-12-11 Werner Lemberg <[email protected]> + + * src/cff/cffobjs.c (cff_face_init): Don't set + FT_FACE_FLAG_GLYPH_NAMES for CID-keyed fonts. + Don't construct a cmap for CID-keyed fonts. + +2003-12-10 Werner Lemberg <[email protected]> + + Use implementation specific SID value 0xFFFF to indicate that + a dictionary element is missing. + + * src/cff/cffload.c (cff_subfont_load): Initialize all fields + which hold SIDs to 0xFFFF. + (cff_index_get_sid_string): Handle SID value 0xFFFF. + Handle case where `psnames' is zero. + (cff_font_load): Updated. + Don't load encoding for CID-keyed CFFs. + + * src/cff/cffobjs.c (cff_face_init): Updated. + Don't check for PSNames module if font is CID-keyed. + Compute style name properly (using the same algorithm as in the + CID driver). + Fix computation of style flags. + + * src/cff/cfftoken.h: Comment out handling of base_font_name. + Rename `postscript' field to `embedded_postscript' + * src/cff/cfftypes.h (CFF_FontRecDictRec): Remove `base_font_name' + and `postscript'. + +2003-12-10 Detlef Würkner <[email protected]> + + * src/pcf/pcfdrivr.c (pcf_get_charset_id): New function (a clone + of the similar BDF function). + (pcf_service_bdf): Use it. + +2003-12-09 Werner Lemberg <[email protected]> + + * src/sfnt/sfobjs.c (sfnt_load_face): Set FT_FACE_FLAG_GLYPH_NAMES + only if a `post' table is present. + +2003-12-09 George Williams <[email protected]> + + * src/base/ftobjs.c (load_mac_face): Recent versions of Linux + support Mac's HFS+ file system, thus enable code to read /rsrc on + non-Macintosh platforms also. + +2003-12-08 Werner Lemberg <[email protected]> + + * include/freetype/internal/psaux.h (PS_TableRec): Change type + of `lengths' to FT_PtrDist. + (T1_DecoderRec): Change type of `subrs_len' to FT_PtrDist. + * include/freetype/internal/t1types.h (T1_FontRec): Change type + of `subrs_len' and `charstrings_len' to FT_PtrDist. + + * src/base/ftobjs.c (Mac_Read_POST_Resource): Replace `junk' + variable with better solution. + (IsMacResource): Remove unused variable `map_len'. + Replace `junk' variable with better solution. + (FT_Open_Face) [!FT_MACINTOSH]: Add conditional + FT_CONFIG_OPTION_MAC_FONTS. + +2003-12-08 Wolfgang Domröse <[email protected]> + + * src/autohint/ahhint.c (ah_hinter_hint_edges, + ah_hinter_align_strong_points): Add some casts. + + * src/base/ftoutln.c (FT_OrientationExtremumRec): Change type + of `pos' to FT_Long. + + * src/base/ftobjs.c (Mac_Read_POST_Resource, + Mac_Read_sfnt_Resource): Change type of `len' to FT_Long. + + * src/type42/t42parse.c (t42_parse_dict): Add cast for `n_keywords'. + +2003-12-07 Werner Lemberg <[email protected]> + + * docs/raster.txt: New file, taken from FreeType 1 and completely + revised. + +2003-12-04 Masatake YAMATO <[email protected]> + + * src/type1/t1driver.c (Get_Interface): Remove FT_UNUSED for + t1_interface. t1_interface is used. + +2003-11-27 David Turner <[email protected]> + + * src/pfr/pfrdrivr.c (pfr_get_metrics): Revert incorrect change of + 2003-11-23: For PFR fonts, metrics->x_scale and metrics->y_scale are + the scaling values for outline units, not for metric units. + +2003-11-25 Werner Lemberg <[email protected]> + + * src/base/ftcalc.c, include/freetype/internal/ftcalc.h + (FT_MulDiv_No_Round): Surround code with `#ifdef + TT_CONFIG_OPTION_BYTECODE_INTERPRETER ... #endif'. + +2003-11-23 Werner Lemberg <[email protected]> + + * src/base/ftcalc.c (FT_MulDiv_No_Round): New function (32 and + 64 bit version). + * include/freetype/internal/ftcalc.h: Updated. + + * src/truetype/ttinterp.c (TT_MULDIV_NO_ROUND): New macro. + (TT_INT64): Removed. + (DO_DIV): Use TT_MULDIV_NO_ROUND. + + * src/pfr/pfrdrivr.c (pfr_get_metrics): Directly use + metrics->x_scale and metrics->y_scale. + +2003-11-22 Rogier van Dalen <[email protected]> + + * src/truetype/ttinterp.c (CUR_Func_move_orig): New macro. + (Direct_Move_Orig, Direct_Move_Orig_X, Direct_Move_Orig_Y): New + functions. Similar to Direct_Move, Direct_Move_X, and + Direct_Move_Y but without touching. + (Compute_Funcs): Use new functions. + + (Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid, + Round_Up_To_Grid, Round_To_Double_Grid, Round_Super, + Round_Super_45): Fix rounding of value zero. + + (DO_DIV): Don't use TT_MULDIV. + + (Ins_SHC): This instruction actually touches the points. + (Ins_MSIRP): Fix undocumented behaviour. + + * src/truetype/ttinterp.h (TT_ExecContextRec): Updated. + +2003-11-22 Werner Lemberg <[email protected]> + + * docs/VERSION.DLL, docs/CHANGES: Updated. + + * src/base/ftobjs.c (FT_Set_Char_Size): Make metrics->x_scale and + metrics->y_scale really precise. + + (FT_Load_Glyph): Update computation of linearHoriAdvance and + linearVertAdvance. + + * src/truetype/ttinterp.c (Update_Max): Use FT_REALLOC. + +2003-11-22 David Turner <[email protected]> + + * src/autofit/*: More updates. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8. + * builds/unix/configure.ac (version_info): Set to 9:6:3. + * README: Updated. + +2003-11-13 John A. Boyd Jr. <[email protected]> + + * src/bdf/bdfdrivr.c (bdf_interpret_style), src/pcf/pcfread.c + (pcf_interpret_style): Replace spaces with dashes in properties + SETWIDTH_NAME and ADD_STYLE_NAME to simplify parsing. + +2003-11-11 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2003-11-11 John A. Boyd Jr. <[email protected]> + + Handle SETWIDTH_NAME and ADD_STYLE_NAME properties for BDF and PCF + fonts. + + * src/bdf/bdfdrivr.c (bdf_interpret_style): New auxiliary function. + (BDF_Face_Init): Don't handle style properties but call + bdf_interpret_style. + + * src/pcf/pcfread.c (pcf_interpret_style): New auxiliary function. + (pcf_load_font): Don't handle style properties but call + pcf_interpret_style. + +2003-11-07 Werner Lemberg <[email protected]> + + + * Version 2.1.7 released. + ========================= + + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7. + + * builds/unix/ft2unix.h: Fix comments. + + * builds/unix/ftconfig.in: Synchronized with ANSI version. + Use `#undef' in templates as recommended in the autoconf + documentation. + Since real `#undef' lines don't survive during configuration, use + `/undef' instead; the postprocessing facility of the + AC_CONFIG_HEADERS autoconf macro converts them to `#undef'. + + * builds/unix/install.mk (install): Install Unix version of + `ftconfig.h'. + + * builds/unix/unix-cc.in (CFLAGS): Set FT_CONFIG_CONFIG_H macro + to include the correct `ftconfig.h' file. + + * builds/unix/ft-munmap.m4 (FT_MUNMAP_DECL): Removed. + (FT_MUNMAP_PARAM): Updated syntax to autoconf 2.59. + + * builds/unix/freetype2.m4: Updated syntax to autoconf 2.59. + + * builds/unix/configure.ac: Use AC_CONFIG_HEADERS instead of + AC_CONFIG_HEADER to create ftconfig.h, and use second argument + to replace `/undef' with `#undef'. + Don't use FT_MUNMAP_DECL but AC_CHECK_DECLS to check for munmap. + Use AS_HELP_STRING in AC_ARG_WITH. + Update syntax to autoconf 2.59. + + * builds/unix/ltmain.sh: Regenerated with `libtoolize --force + --copy' from libtool 1.5. + * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from + automake 1.7.8. + * builds/unix/configure: Regenerated with autoconf 2.59. + * builds/unix/config.guess, builds/unix/config.sub: Updated from + `config' CVS module at subversions.gnu.org + * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from + `texinfo' CVS module at subversions.gnu.org. + + * builds/vms/ftconfig.h: Synchronized with ANSI version. + + * docs/CUSTOMIZE: Fix documentation error. + * docs/CHANGES, docs/VERSION.DLL, docs/release: Updated. + + * builds/freetype.mk (refdoc): Updated --title. + +2003-11-07 David Turner <[email protected]> + + + * Version 2.1.6 released. + ========================= + + + * install: Removed. Obsolete. + +2003-11-04 Werner Lemberg <[email protected]> + + * src/sfnt/sfdriver.c: Include FT_SERVICE_SFNT_H. + (sfnt_service_sfnt_table): New service. + (sfnt_services): Updated. + + * docs/license.txt: Reworded. + +2003-11-03 Werner Lemberg <[email protected]> + + * include/freetype/*: Add a guard to all public header files which + load FT_FREETYPE_H to reject freetype.h from FreeType 1. + +2003-11-02 Patrick Welche <[email protected]> + + * builds/unix/freetype2.m4, builds/unix/ft-munmap.m4: Protect + first argument of AC_DEFUN with brackets to avoid possible + expansion. + +2003-11-02 Werner Lemberg <[email protected]> + + * include/freetype/cache/ftcglyph.h: Don't include stddef.h. + + * include/freetype/freetype.h: Fix check for ft2build.h. + +2003-11-01 Werner Lemberg <[email protected]> + + * include/freetype/freetype.h: Check that ft2build.h has been + loaded first. + + * src/base/fttype1.c (FT_Get_PS_Font_Info): Fix incorrectly applied + patch. + +2003-10-31 Detlef Würkner <[email protected]> + + * src/base/fttype1.c (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names): + Fix parameter order in calls to FT_FACE_FIND_SERVICE. + +2003-10-31 Werner Lemberg <[email protected]> + + * include/freetype/internal/ftserv.h + (FT_SERVICE_POSTSCRIPT_NAMES_H): Removed. Unused. + + * src/type42/t42drivr.c (t42_services): Updated. + +2003-10-29 David Turner <[email protected]> + + * include/freetype/internal/bdftypes.h: Removed. Obsolete. + * src/base/ftbdf.c: Updated. + + * include/freetype/internal/cfftypes.h: Moved to... + * src/cff/cfftypes.h: This place since no other module needs to + know about those types. + + * include/freetype/internal/t42types.h: Moved to... + * src/type42/t42types.h: This place since no other module needs to + know about those types. + + * include/freetype/internal/services/svbdf.h: Include FT_BDF_H. + + * include/freetype/internal/services/svpsname.h: Renamed to... + * include/freetype/internal/services/svpscmap.h: This. + Updated `FT_Service_PsNames' -> `FT_Service_PsCMaps' and + `POSTSCRIPT_NAMES' -> `POSTSCRIPT_CMAPS' everywhere. + + * include/freetype/internal/services/svpsinfo.h: New file, providing + PostScript info service. + + * include/freetype/internal/ftserv.h (FT_SERVICE_POSTSCRIPT_CMAPS_H, + FT_SERVICE_POSTSCRIPT_INFO_H): New macros for svpscmap.h and + svpsinfo.h. + * include/freetype/internal/internal.h (FT_INTERNAL_TYPE42_TYPES_H, + FT_INTERNAL_CFF_TYPES_H, FT_INTERNAL_BDF_TYPES_H): Removed. + + * src/base/fttype1.c: Don't include FT_INTERNAL_TYPE1_TYPES_H and + FT_INTERNAL_TYPE42_TYPES_H but FT_INTERNAL_SERVICE_H and + FT_SERVICE_POSTSCRIPT_INFO_H. + (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names): Use new + POSTSCRIPT_INFO service. + + * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. + (cff_ps_has_glyph_names): New function. + (cff_service_ps_info): New service. + (cff_services): Updated. + + * src/cff/cffload.h, src/cff/cffobjs.h, src/cff/cffparse.h: Don't + include FT_INTERNAL_CFF_TYPES_H but cfftypes.h directly. + + * src/cif/cidriver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. + (cid_ps_get_font_info): New function. + (cid_service_ps_info): New service. + (cid_services): Updated. + + * src/type1/t1driver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. + (t1_ps_get_font_info, t1_ps_has_glyph_names): New functions. + (t1_service_ps_info): New service. + (t1_services): Updated. + + * src/type42/t42drivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. + (t42_ps_get_font_info, t42_ps_has_glyph_names): New functions. + (t42_service_ps_info): New service. + + * src/type42/t42objs.h: Don't include FT_INTERNAL_TYPE42_TYPES_H + but t42types.h directly. + + * src/psnames/psmodule.c (psnames_interface, psnames_services): + Renamed to... + (pscmaps_interface, pscmaps_services): This. + Updated all users. + + + * src/gzip/infblock.c (inflate_blocks): Remove compiler warning. + +2003-10-22 Werner Lemberg <[email protected]> + + * src/type1/t1load.c (parse_encoding): Handle `/Encoding [ ... ]'. + + * src/type1/t1parse.c (T1_Get_Private_Dict): Test whether `eexec' + is real. + + * src/type42/t42parse.c (t42_parse_encoding): Improve boundary + checking while parsing. + + * docs/CHANGES: Updated. + +2003-10-21 Josselin Mouette <[email protected]> + + * include/freetype/internal/t1types.h (T1_FontRec): `paint_type' + and `stroke_width' aren't pointers. + + * src/type42/t42objs.c (T42_Face_Done), src/type1/t1objs.c + (T1_Face_Done): Don't free `paint_type' and `stroke_width'. + +2003-10-20 Graham Asher <[email protected]> + + * src/winfonts/winfnt.c (fnt_cmap_class): Fix position of `const'. + +2003-10-19 Werner Lemberg <[email protected]> + + * src/autohint/ahhint.c (ah_hinter_load_glyph): Patch from + 2003-08-18 introduced a severe bug (FT_Render_Glyph was called + twice under some circumstances, causing strange results). This + is fixed now by clearing the FT_LOAD_RENDER bit of `load_flags'. + + * src/base/ftpfr.c (FT_Get_PFR_Metrics): Initialize `error'. + * src/psaux/psobjs.c (ps_tobytes): Initialize `n'. + * src/type42/t42parse.c (t42_parse_sfnts): Initialize `string_size'. + +2003-10-16 Werner Lemberg <[email protected]> + + Completely revised Type 42 parser. It now handles both fonts + produced with ttftot42 (tested version 0.3.1) and + TrueTypeToType42.ps (tested version May 2001; it is necessary to + fix the broken header comment to be `%!PS-TrueTypeFont...'). + + * src/type42/t42objs.c (T42_GlyphSlot_Load): Change fourth + parameter to `FT_UInt'. + * src/type42/t42objs.h: Updated. + + * src/type42/t42parse.h (T42_ParserRec): Change type of `in_memory' + to FT_Bool. + (T42_Loader): Change type of `num_chars' and `num_glyphs' to + FT_UInt. + Add `swap_table' element. + * src/type42/t42parse.c (T42_KEYWORD_COUNT, T1_ToFixed, + T1_ToCoordArray, T1_ToTokenArray): Removed. + (T1_ToBytes): New macro. + (t42_is_alpha, t42_hexval): Removed. + (t42_is_space): Handle `\0'. + (t42_parse_encoding): Updated to use new PostScript parser routines + from psaux. + Handle `/Encoding [ ... ]' also. + (T42_Load_Status): New enumeration. + (t42_parse_sfnts): Updated to use new PostScript parser routines + from psaux. + (t42_parse_charstrings): Updated to use new PostScript parser + routines from psaux. + Handle `/CharStrings << ... >>' also. + Don't expect that /.notdef is the first element in dictionary. Copy + code from type1 module to handle this. + (t42_parse_dict): Updated to use new PostScript parser routines + from psaux. + Remove code for synthetic fonts (which can't occur in Type 42 + fonts). + (t42_loader_done): Release `swap_table'. + + * src/psaux/psobjs.c (skip_string): Increase `cur' properly. + + * src/type1/t1load.c (parse_charstrings): Make test for `.notdef' + faster. + +2003-10-15 Graham Asher <[email protected]> + + * src/autohint/ahglobal.c (blue_chars), src/winfonts/winfnt.c + (fnt_cmap_class_rec, fnt_cmap_class), src/bdf/bdflib.c (empty, + _num_bdf_properties), src/gzip/infutil.c (inflate_mask), + src/gzip/inffixed.h (fixed_bl, fixed_bd, fixed_tl, fixed_td), + src/gzip/inftrees.h (inflate_trees_fixed), srf/gzip/inftrees.c + (inflate_trees_fixed): Decorate with more `const' to avoid + writable global variables which are disallowed on ARM. + +2003-10-08 Werner Lemberg <[email protected]> + + * src/type1/t1load.c (parse_font_matrix, parse_charstrings): Remove + code specially for synthetic fonts; this is handled elsewhere. + (parse_encoding): Remove code specially for synthetic fonts; this is + handled elsewhere. + Improve boundary checking while parsing. + (parse_dict): Improve boundary checking while parsing. + Use ft_memcmp to simplify code. + +2003-10-07 Werner Lemberg <[email protected]> + + * src/type1/t1load.c (parse_subrs, parse_dict): Handle synthetic + fonts properly. + (parse_charstrings): Copy correct number of characters into + `name_table'. + +2003-10-06 Werner Lemberg <[email protected]> + + Heavy modification of the PS parser to handle comments and strings + correctly. This doesn't slow down the loading of PS fonts + significantly since charstrings aren't affected. + + * include/freetype/config/ftstdlib.h (ft_xdigit): Renamed to... + (ft_isxdigit): This. Updated all callers. + (ft_isdigit): New alias to `isdigit'. + + * include/freetype/internal/psaux.h (PS_Parser_FuncsRec): Renamed + `skip_alpha' to `skip_PS_token'. + Add parameter to `to_bytes' and change some argument types. + + * src/psaux/psauxmod.c (ps_parser_funcs): Updated. + * src/psaux/psobjs.c (ft_char_table): New array to map character + codes (ASCII and EBCDIC) of digits to numbers. + (OP): New auxiliary macro holding either `>=' or `<' depending on + the character encoding. + (skip_comment): New function. + (skip_spaces): Use it. + (skip_alpha): Removed. + (skip_literal_string, skip_string): New functions. + (ps_parser_skip_PS_token): New function. This is a better + replacement of... + (ps_parser_skip_alpha): Removed. + (ps_parser_to_token, ps_parser_to_token_array): Updated. + (T1Radix): Rewritten, using `ft_char_table'. + (t1_toint): Renamed to... + (ps_toint): This. Update all callers. + Use `ft_char_table'. + (ps_tobytes): Add parameter to handle delimiters and change some + argument types. + Use `ft_char_table'. + (t1_tofixed): Renamed to... + (ps_tofixed): This. Update all callers. + Use `ft_char_table'. + (t1_tocoordarray): Renamed and updated to... + (ps_tocoordarray): This. Update all callers. + (t1_tofixedarray): Renamed and updated to... + (ps_tofixedarray): This. Update all callers. + (t1_tobool): Renamed to... + (ps_tobool): This. Update all callers. + (ps_parser_load_field): Updated. + (ps_parser_load_field_table): Use `T1_MAX_TABLE_ELEMENTS' + everywhere. + (ps_parser_to_int, ps_parser_to_fixed, ps_parser_to_coord_array, + ps_parser_to_fixed_array): Skip spaces. Updated. + (ps_parser_to_bytes): Add parameter to handle delimiters and change + some argument types. Updated. + * src/psaux/psobjs.h: Updated. + + * src/cid/cidload.c (cid_parse_dict): Updated. + * src/cid/cidparse.c (cid_parser_new): Check whether the `StartData' + token was really found. + * src/cid/cidparse.h (cid_parser_skip_alpha): Updated and renamed + to... + (cid_parser_skip_PS_token): This. + + * src/type1/t1parse.h (T1_ParserRec): Use `FT_Bool' for boolean + fields. + (T1_Skip_Alpha): Replaced with... + (T1_Skip_PS_Token): This new macro. + * src/type1/t1parse.c (hexa_value): Removed. + (T1_Get_Private_Dict): Use `ft_isxdigit' and + `psaux->ps_parser_funcs_to_bytes' for handling ASCII hexadecimal + encoding. + After decrypting, replace the four random bytes at the beginning + with whitespace. + * src/type1/t1load.c (t1_allocate_blend): Use proper error values. + (parser_blend_design_positions, parse_blend_design_map, + parse_weight_vector): Updated. + (is_space): Handle `\f' also. + (is_name_char): Removed. + (read_binary_data): Updated. + (parse_encoding): Use `ft_isdigit'. + Updated. + (parse_subrs): Updated. + (TABLE_EXTEND): New macro. + (parse_charstrings): Updated. + Provide a workaround for buggy fonts which have more entries in the + /CharStrings dictionary then expected; the function now adds some + slots and skips entries which still exceed the new limit. + (parse_dict): Updated. + Terminate on the token `closefile'. + + * src/type42/t42parse.c (T1_Skip_Alpha): Replaced with... + (T1_Skip_PS_Token): This new macro. Updated all callers. + (t42_parse_encoding): Use `ft_isdigit'. + + + * src/base/ftmm.c (ft_face_get_mm_service): Return FT_Err_OK if + success. + +2003-10-05 Werner Lemberg <[email protected]> + + * include/freetype/ftmodule.h: Renamed to... + * include/freetype/ftmodapi.h: This to avoid duplicate file names. + * include/freetype/config/ftheader.h (FT_MODULE_H): Updated. + +2003-10-04 Werner Lemberg <[email protected]> + + * src/base/ftoutln.c (FT_OrientationExtremumRec, + FT_Outline_Get_Orientation): Trivial typo fixes to make it compile. + +2003-10-02 Markus F.X.J. Oberhumer <[email protected]> + + * src/winfonts/winfnt.c (FT_WinFNT_HeaderRec): `color_table_offset' + has four bytes, not two. + Fix all users. + (fnt_font_load, FNT_Load_Glyph): Add more font validity tests. + +2003-10-01 David Turner <[email protected]> + + * src/autofit/*: Adding first source files of the new multi-script + `auto-fitter'. + + * include/freetype/ftoutln.h (FT_Orientation): New enumeration. + (FT_Outline_Get_Orientation): New declaration. + + * src/base/ftoutln.c (FT_OrientationExtremumRec): New structure. + (ft_orientation_extremum_compute): New auxiliary function. + (FT_Outline_Get_Orientation): New function to compute the fill + orientation of a given glyph outline. + + * include/freetype/internal/ftserv.h (FT_FACE_LOOKUP_SERVICE): Fixed + trivial bug which could crash the font engine when a cached service + pointer was retrieved. + +2003-09-30 Werner Lemberg <[email protected]> + + * src/cid/cidload.c (cid_parse_dict): Skip token if no keyword is + found. + + * src/type1/t1parse.c (IS_T1_WHITESPACE, IS_T1_LINESPACE, + IS_T1_SPACE): Removed. + (PFB_Tag): Removed. + (read_pfb_tag): Don't use PFB_Tag. + + * src/type42/t42parse.c (t42_is_space): Handle `\f' also. + (t42_parse_encoding): Handle synthetic fonts. + +2003-09-29 Werner Lemberg <[email protected]> + + * include/freetype/internal/t1types.h: Don't include + FT_INTERNAL_OBJECTS_H but FT_INTERNAL_SERVICE_H. + * src/truetype/ttobjs.c: Don't include + FT_SERVICE_POSTSCRIPT_NAMES_H. + +2003-09-29 David Turner <[email protected]> + + Added new service to handle glyph name dictionaries, replacing the + old internal header named `psnames.h' by `services/svpsname.h'. + Note that this is different from `services/svpostnm.h' which only + handles the retrieval of PostScript font names for a given face. + (Should we merge these two services into a single header?) + + * include/freetype/internal/psnames.h: Removed. Most of its + contents is moved to... + * include/freetype/internal/services/svpsname.h: New file. + + * include/freetype/internal/services/svpostnm.h + (FT_SERVICE_ID_POSTSCRIPT_NAME): Replaced with... + (FT_SERVICE_ID_POSTSCRIPT_FONT_NAME): New macro. + (PsName): Service named changed to... + (PsFontName): This. + Updated `FT_Service_PsName' -> `FT_Service_PsFontName' and + `POSTSCRIPT_NAME' -> `POSTSCRIPT_FONT_NAME' everywhere. + + * include/freetype/internal/internal.h + (FT_INTERNAL_POSTSCRIPT_NAMES_H): Removed. + * include/freetype/internal/psaux.h: Include + FT_SERVICE_POSTSCRIPT_NAMES_H. + (T1_DecoderRec): Updated type of `psnames'. + * include/freetype/internal/t1types.h: Don't include + FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. + Include FT_INTERNAL_OBJECTS_H. + * include/freetype/internal/t42types.h: Don't include + FT_INTERNAL_POSTSCRIPT_NAMES_H. + * include/freetype/internal/tttypes.h (TT_FaceRec): Updated. + + * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE): Changed + order of parameters. All callers updated. + (FT_FACE_FIND_GLOBAL_SERVICE): New macro to look up a service + globally, checking all modules. + (FT_ServiceCacheRec): Updated. + (FT_SERVICE_POSTSCRIPT_NAMES_H): New macro for accessing + `svpsname.h'. + + * include/freetype/internal/ftobjs.h, src/base/ftobjs.c + (ft_module_get_service): New function. + + * src/cff/cffdrivr.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H + but FT_SERVICE_POSTSCRIPT_NAMES_H. + (cff_get_glyph_name, cff_get_name_index): Use new POSTSCRIPT_NAMES + service. + * src/cff/cffcmap.c (cff_cmap_unicode_init): Updated. + * src/cff/cffload.c, src/cff/cffload.h: Don't include + FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. + (cff_index_get_sid_string): Updated. + * src/cff/cffobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H + but FT_SERVICE_POSTSCRIPT_NAMES_H. + (cff_face_init): Use new POSTSCRIPT_NAMES service. + * src/cff/cffobjs.h: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H + but FT_SERVICE_POSTSCRIPT_NAMES_H. + + * src/cid/cidobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H + but FT_SERVICE_POSTSCRIPT_NAMES_H. + (cid_face_init): Use new POSTSCRIPT_NAMES service. + * src/cid/cidriver.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H. + + * src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Use + new POSTSCRIPT_NAMES service. + * src/psaux/t1decode.h (t1_lookup_glyph_by_stdcharcode, + t1_decode_init): Use new POSTSCRIPT_NAMES service. + * src/psaux/t1cmap.h, src/psaux/t1decode.h: Dont' include + FT_INTERNAL_POSTSCRIPT_NAMES_H. + + * src/psnames/psmodule.c: Don't include + FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. + (ps_build_unicode_table): Renamed to... + (ps_unicodes_init): This. + (ps_lookup_unicode): Renamed to... + (ps_unicodes_char_index): This. + (ps_next_unicode): Renamed to... + (ps_unicodes_char_next): This. + (psnames_interface): Updated. + (psnames_services): New services list. + (psnames_get_service): New function. + (psnames_module_class): Updated. + + * src/sfnt/sfobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H + but FT_SERVICE_POSTSCRIPT_NAMES_H. + (sfnt_init_face): Use new POSTSCRIPT_NAMES service. + * src/sfnt/ttpost.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H + but FT_SERVICE_POSTSCRIPT_NAMES_H. + (tt_face_get_ps_name): Updated. + + * src/truetype/ttobjs.c: Don't include + FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. + + * src/type1/t1driver.c: Don't include + FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. + * src/type1/t1objs.c: Don't include + FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. + (T1_Face_Init): Use new POSTSCRIPT_NAMES service. + + * src/type42/t42drivr.c (t42_get_ps_name): Renamed to... + (t42_get_ps_font_name): This. + (t42_service_ps_name): Renamed to... + (t42_service_ps_font_name): This. + (t42_services): Updated. + * src/type42/t42objs.c (T42_Face_Init): Use new POSTSCRIPT_NAMES + service. + * src/type42/t42objs.h: Don't include + FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. + + + * src/base/ftglyph.c (FT_Get_Glyph): Don't access `slot' before + testing its validity. Reported by Henry Maddocks + <[email protected]>. + +2003-09-21 Werner Lemberg <[email protected]> + + * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE): + Fix compilation warning (s/pptr/Pptr/). + + * include/freetype/internal/internal.h (FT_INTERNAL_PFR_H, + FT_INTERNAL_FNT_TYPES_H): Removed. + +2003-09-21 David Turner <[email protected]> + + Migrating the PFR and WINFNT drivers to the new service-based + internal API. + + * include/freetype/internal/fnttypes.h: Removed. Most of its data + are moved to winfnt.h and... + * include/freetype/internal/services/svwinfnt.h: New file. + + * include/freetype/internal/pfr.h: Removed. Most of its data are + moved to... + * include/freetype/internal/services/svpfr.h: New file. + + * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE, + FT_FACE_LOOKUP_SERVICE): Simplify fix of 2003-09-16 by removing + pointer type argument. + Updated all callers. + Update macro names of services header files. + + * src/base/ftobjs.c (FT_Get_Name_Index): Simplified code. + + * src/base/ftpfr.c: Include FT_SERVICE_PFR_H instead of + FT_INTERNAL_PFR_H. + (ft_pfr_check, FT_Get_PFR_Metrics, FT_Get_PFR_Kerning, + FT_Get_PFR_Advance): Use services provided in `PFR_METRICS'. + + * src/base/ftwinfnt.c: Include FT_SERVICE_WINFNT_H instead of + FT_INTERNAL_FNT_TYPES_H. + (FT_Get_WinFNT_Header): Use service provided in `WINFNT'. + + * src/pfr/pfrdrivr.c: Include FT_SERVICE_PFR_H and + FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_PFR_H. + (pfr_service_bdf): Updated. + (pfr_services): New services list. + (pfr_get_service): New function. + (pfr_driver_class): Updated. + + * src/winfonts/winfnt.c: Include FT_SERVICE_WINFNT_H and + FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_FNT_TYPES_H. + (winfnt_get_header, winfnt_get_service): New functions. + (winfnt_service_rec): New structure providing WINFNT services. + (winfnt_services): New services list. + (winfnt_driver_class): Updated. + * src/winfonts/winfnt.h: Add most of the removed fnttypes.h data. + + * src/sfnt/sfdriver.c (sfnt_service_ps_name): Fix typo. + + * src/type1/t1driver.c (t1_service_ps_name): Fix typo. + + * src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrsbit.c, + src/psaux/psobjs.c, src/sfnt/sfobjs.c, src/truetype/ttobjs.c, + src/type1/t1objs.c, src/type42/t42objs.c: Removing various compiler + warnings. + +2003-09-19 David Bevan <[email protected]> + + * src/type1/t1parse.c (pfb_tag_fields): Removed. + (read_pfb_tag): Fix code so that it doesn't fail on end-of-file + indicator (0x8003). + * docs/CHANGES: Updated. + +2003-09-16 Werner Lemberg <[email protected]> + + * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE, + FT_FACE_LOOKUP_SERVICE): Add parameter to pass pointer type. + Ugly, I know, but this is needed for compilation with C++ -- + maybe someone knows a better solution? + Updated all callers. + + * src/base/ftobjs.c (FT_Get_Name_Index, FT_Get_Glyph_Name): Remove + C++ compiler warnings. + + * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): + Fix order of arguments passed to FT_FACE_FIND_SERVICE. + +2003-09-15 Werner Lemberg <[email protected]> + + Avoid header files with identical names. + + * include/freetype/internal/services/bdf.h: Renamed to... + * include/freetype/internal/services/svbdf.h: This. + Add copyright notice. + * include/freetype/internal/services/glyfdict.h: Renamed to... + * include/freetype/internal/services/svgldict.h: This. + Add copyright notice. + * include/freetype/internal/services/multmast.h: Renamed to... + * include/freetype/internal/services/svmm.h: This. + Add copyright notice. + Add FT_BEGIN_HEADER and FT_END_HEADER. + * include/freetype/internal/services/sfnt.h: Renamed to... + * include/freetype/internal/services/svsfnt.h: This. + Add copyright notice. + * include/freetype/internal/services/postname.h: Renamed to... + * include/freetype/internal/services/svpostnm.h: This. + Add copyright notice. + * include/freetype/internal/services/xf86name.h: Renamed to... + * include/freetype/internal/services/svxf86nm.h: This. + Add copyright notice. + + * include/freetype/internal/ftserv.h: Add FT_BEGIN_HEADER and + FT_END_HEADER. + Add copyright notice. + Update macro names of services header files. + + * builds/freetype.mk (SERVICES_DIR): New variable. + (BASE_H): Add services header files. + +2003-09-11 Werner Lemberg <[email protected]> + + * builds/toplevel.mk (distclean): Remove `builds/unix/freetype2.pc'. + + * src/cff/cffdrivr.c: Don't load headers twice. + + * include/freetype/internal/ftserv.h (FT_SERVICE_SFNT_H): New macro. + * src/base/ftobjs.c: Include FT_SERVICE_SFNT_H. + + * src/cff/cffcmap.c: Include `cfferrs.h'. + * src/pfr/pfrdrivr.c: Include `pfrerror.h'. + * src/sfnt/sfdriver.c: Include `sferrors.h'. + * src/psaux/psobjs.h: Add declaration for `ps_parser_to_bytes'. + +2003-09-11 David Turner <[email protected]> + + Introducing the concept of `module services'. This is the first + step towards a massive simplification of the engine's internals, in + order to get rid of various numbers of hacks. + + Note that these changes will break source & binary compatibility for + authors of external font drivers. + + * include/freetype/config/ftconfig.h (FT_BEGIN_STMNT, FT_END_STMNT, + FT_DUMMY_STMNT): New macros. + + * include/freetype/internal/ftserv.h: New file, containing the new + structures and macros to provide `services'. + + * include/freetype/internal/internal.h (FT_INTERNAL_EXTENSION_H, + FT_INTERNAL_EXTEND_H, FT_INTERNAL_HASH_H, FT_INTERNAL_OBJECT_H): + Removed, obsolete. + (FT_INTERNAL_SERVICE_H): New macro for `ftserv.h'. + + * include/freetype/internal/services/bdf.h, + include/freetype/internal/services/glyfdict.h, + include/freetype/internal/services/postname.h, + include/freetype/internal/services/xf86name.h: New files. + + * include/freetype/ftmm.h (FT_Get_MM_Func, FT_Set_MM_Design_Func, + FT_Set_MM_Blend_Func): Function pointers moved (in modified form) + to... + * include/freetype/internal/services/multmast.h: New file. + + * include/freetype/internal/sfnt.h (SFNT_Interface): `get_interface' + is now of type `FT_Module_Requester'. + (SFNT_Get_Interface_Func, SFNT_Load_Table_Func): Function pointers + moved (in modified form) to... + * include/freetype/internal/services/sfnt.h: New file. + + * include/freetype/tttables.h (FT_Get_Sfnt_Table_Func): Function + pointer moved (in modified form) to `services/sfnt.h'. + + * include/freetype/ftmodule.h (FT_Module_Interface): Make it a + a typedef to `FT_Pointer'. + + * include/freetype/internal/tttypes.h (TT_FaceRec): Add + `postscript_name'. + * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove + `postscript_name'. + Add `services' element. + (FT_LibraryRec): Remove `meta_class'. + + * src/base/ftbdf.c: Include FT_SERVICE_BDF_H. + (test_font_type): Removed. + (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Use services + provided in `FT_SERVICE_ID_BDF'. + + * src/base/ftmm.c: Include FT_SERVICE_MULTIPLE_MASTERS_H. + (ft_face_get_mm_service): New auxiliary function to get services + from `FT_SERVICE_ID_MULTI_MASTERS'. + (FT_Get_Multi_Master, FT_Set_MM_Design_Coordinates, + FT_Set_MM_Blend_Coordinates): Use `ft_face_get_mm_service'. + + * src/base/ftobjs.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and + FT_SERVICE_GLYPH_DICT_H. + (ft_service_list_lookup): New function to get a specific service. + (destroy_face): Updated. + (Mac_Read_POST_Resource): Simplify some code. + (IsMacResource): Fix warnings. + (FT_Get_Name_Index, FT_Get_Glyph_Name): Use services provided in + `FT_SERVICE_ID_GLYPH_DICT'. + (FT_Get_Postscript_Name): Use service provided in + `FT_SERVICE_ID_POSTSCRIPT_NAME'. + (FT_Get_Sfnt_Table, FT_Load_Sfnt_Table): Use services provided in + `FT_SERVICE_ID_SFNT_TABLE'. + + * src/base/ftxf86.c: Include FT_SERVICE_XFREE86_NAME_H. + (FT_Get_X11_Font_Format): Use service provided in + `FT_SERVICE_ID_XF86_NAME'. + + * src/bdf/bdfdrivr.c: Include FT_SERVICE_BDF_H and + FT_SERVICE_XFREE86_NAME_H. + (bdf_get_charset_id): New function. + (bdf_service_bdf): New structure providing BDF services. + (bdf_services): New services list. + (bdf_driver_requester): Use `ft_service_list_lookup'. + + * src/cff/cffdrivr.c: Include FT_SERVICE_XFREE86_NAME_H and + FT_SERVICE_GLYPH_DICT_H. + (cff_service_glyph_dict): New structure providing CFF services. + (cff_services): New services list. + (cff_get_interface): Use `ft_service_list_lookup'. + + * src/cid/cidriver.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and + FT_SERVICE_XFREE86_NAME_H. + (cid_service_ps_name): New structure providing CID services. + (cid_services): New services list. + (cid_get_interface): Use `ft_service_list_lookup'. + + * src/pcf/pcfdrivr.c: Include FT_SERVICE_BDF_H and + FT_SERVICE_XFREE86_NAME_H. + (pcf_service_bdf): New structure providing PCF services. + (pcf_services): New services list. + (pcf_driver_requester): Use `ft_service_list_lookup'. + + * src/sfnt/sfdriver.c: Include FT_SERVICE_GLYPH_DICT_H and + FT_SERVICE_POSTSCRIPT_NAME_H. + (get_sfnt_glyph_name): Renamed to... + (sfnt_get_glyph_name): This. + (get_sfnt_postscript_name): Renamed to... + (sfnt_get_ps_name): This. + Updated. + (sfnt_service_glyph_dict, sfnt_service_ps_name): New structures + providing services. + (sfnt_services): New services list. + (sfnt_get_interface): Use `ft_service_list_lookup'. + + * src/truetype/ttdriver.c: Include FT_SERVICE_XFREE86_NAME_H. + (tt_services): New services list. + (tt_get_interface): Use `ft_service_list_lookup'. + + * src/type1/t1driver.c: Include FT_SERVICE_MULTIPLE_MASTERS_H, + FT_SERVICE_GLYPH_DICT_H, FT_SERVICE_XFREE86_NAME_H, and + FT_SERVICE_POSTSCRIPT_NAME_H. + (t1_service_glyph_dict, t1_service_ps_name, + t1_service_multi_masters): New structures providing Type 1 services. + (t1_services): New services list. + (Get_Interface): Use `ft_service_list_lookup'. + + * src/type42/t42drivr.c: Include FT_SERVICE_XFREE86_NAME_H, + FT_SERVICE_GLYPH_DICT_H, and FT_SERVICE_POSTSCRIPT_NAME_H. + (t42_service_glyph_dict, t42_service_ps_name): New strucures + providing Type 42 services. + (t42_services): New services list. + (T42_Get_Interface): Use `ft_service_list_lookup'. + + + * README, docs/CHANGES: Updating version numbers for 2.1.6, and + removing obsolete warnings in the documentation. + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6. + * builds/unix/configure.ac (version_info): Set to 9:5:3. + * builds/unix/configure: Regenerated. + + * include/freetype/internal/ftcore.h, + include/freetype/internal/ftexcept.h, + include/freetype/internal/fthash.h, + include/freetype/internal/ftobject.h: Removed. Obsolete. + +2003-09-09 David Turner <[email protected]> + + Fixing PFR kerning support. The tables within the font file contain + (charcode,charcode) kerning pairs, we need to convert them to + (gindex,gindex). + + * src/base/ftpfr.c (ft_pfr_check): Fix serious typo. + * src/pfr/prfload.c: Remove dead code. + (pfr_get_gindex, pfr_compare_kern_pairs, pfr_sort_kerning_pairs): + New functions. + (pfr_phy_font_done): Free `kern_pairs'. + (pfr_phy_font_load): Call `pfr_sort_kerning_pairs'. + * src/pfr/pfrobjs.c (pfr_face_get_kerning): Fix kerning extraction. + * src/pfr/pfrtypes.h (PFR_KERN_PAIR_INDEX): New macro. + (PFR_KernPairRec): Make `kerning' an FT_Int. + (PFR_PhyFontRec): New element `kern_pairs'. + (PFR_KernFlags): Values of PFR_KERN_2BYTE_CHAR and + PFR_KERN_2BYTE_ADJ were erroneously reversed. + + * include/freetype/ftoption.h: Commenting out the macro + TT_CONFIG_OPTION_BYTECODE_INTERPRETER. + +2003-09-02 David Turner <[email protected]> + + + * Version 2.1.5 released. + ========================= + + +2003-08-31 Manish Singh <[email protected]> + + * src/bdf/bdflib.c (_bdf_readstream): Don't use FT_MEM_COPY but + FT_MEM_MOVE. + +2003-08-30 Werner Lemberg <[email protected]> + + * include/freetype/freetype.h (FT_ENCODING_SJIS, FT_ENCODING_GB2312, + FT_ENCODING_BIG5, FT_ENCODING_WANSUNG, FT_ENCODING_JOHAB): New + enumerations of FT_Encoding. The FT_ENCODING_MS_* variants except + FT_ENCODING_MS_SYMBOL are now deprecated. + Updated all users. + * docs/CHANGES: Document it. + +2003-08-27 Werner Lemberg <[email protected]> + + * src/bdf/bdfdrivr.c (BDF_Face_Init): Accept lowercase characters + for spacing. + +2003-08-27 Mike FABIAN <[email protected]> + + * src/pcf/pcfread.c (pcf_load_font), src/bdf/bdfdrivr.c + (BDF_Face_Init): Accept lowercase characters for slant and weight. + +2003-08-18 David Turner <[email protected]> + + * include/freetype/config/ftoption.h: Disabling TrueType bytecode + interpreter until the UNPATENTED_HINTING works as advertised. + + * src/autohint/ahhint.c (ah_hinter_load_glyph): Use `|' for + setting `load_flags'. + + * Jamfile: Adding the `refdoc' target to the Jamfile in order to + build the API Reference in `docs/reference' automatically. + + * include/freetype/t1tables.h (PS_FontInfoRec), src/cid/cidtoken.h, + src/type1/t1tokens.h, src/type42/t42parse.c: Resetting the types of + `italic_angle', `underline_position', and `underline_thickness' to + their previous values (i.e., long, short, and ushort) in order to + avoid breaking binary compatibility. + + * include/freetype/ttunpat.h: Fixing documentation comment. + + * include/freetype/config/ftoption.h, devel/ftoption.h + (TT_CONFIG_OPTION_OPTION_COMPILE_UNPATENTED_HINTING): Replaced + with... + (TT_CONFIG_OPTION_UNPATENTED_HINTING): This. Updated all users. + (TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): Removed. + + * include/freetype/internal/ftobjs.h (FT_DEBUG_HOOK_TYPE1): Removed. + (FT_DEBUG_HOOK_UNPATENTED_HINTING): New macro. Use this with + `FT_Set_Debug_Hook' to get the same effect as the removed + TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING. + + * src/truetype/ttobjs.c (tt_face_init): Use + `FT_DEBUG_HOOK_UNPATENTED_HINTING'. + +2003-08-06 Werner Lemberg <[email protected]> + + * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c + (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Fix + previous change. + +2003-08-05 Werner Lemberg <[email protected]> + + * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c + (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Apply + font matrix to advance width also. + * docs/CHANGES: Updated. + +2003-07-26 Werner Lemberg <[email protected]> + + * builds/unix/configure.ac (version_info): Set to 9:4:3. + * builds/unix/configure: Updated. + * docs/CHANGES, docs/VERSION.DLL: Updated. + + * include/freetype/freetype.h (FT_GlyphSlot): Change 2003-06-16 + also breaks binary compatibility. Reintroduce an unsigned integer + at the old position of `flags' called `reserved'. + +2003-07-25 Werner Lemberg <[email protected]> + + Make API reference valid HTML 4.01 transitional. + + * src/tools/docmaker/tohtml.py (html_header_1): Add doctype + and charset. + (html_header_2): Fix style elements and add some more. + Fix syntax. + (block_header, block_footer, description_header, description_footer, + marker_header, marker_footer, source_header, source_footer, + chapter_header): Don't use <center>...</center> but `align=center' + table attribute. + (chapter_inter, chapter_footer): Add <li> and use special <ul> + class. + Use double quotes around table widths given in percent. + (keyword_prefix, keyword_suffix): Don't change font colour directly + but use a new <span> class. + (section_synopsis_header, section_synopsis_footer): Don't change + colour. + (code_header, code_footer): Don't change font colour directly but + use a special <pre> class. + (print_html_field): <tr> gets the `valign' attribute, not <table>. + (print_html_field_list): Ditto. + (index_exit): Don't use <center>...</center> but `align=center' + table attribute. + (section_enter): Ditto. + (toc_exit): Don't emit </table>. + (block_enter): Use <h4><a>, not <a><h4>. + (__init__): Fix tag order in self.html_footer. + +2003-07-25 David Turner <[email protected]> + + This change reimplements fix from 2003-05-30 without breaking + binary compatibility. + + * include/freetype/t1tables.h (PS_FontInfoRec): `italic_angle', + `is_fixed_pitch', `underline_position', `underline_thickness' are + reverted to be normal values. + + * include/freetype/internal/psaux.h (T1_FieldType): Remove + `T1_FIELD_TYPE_BOOL_P', `T1_FIELD_TYPE_INTEGER_P', + `T1_FIELD_TYPE_FIXED_P', `T1_FIELD_TYPE_FIXED_1000_P'. + (T1_FIELD_TYPE_BOOL_P, T1_FIELD_NUM_P, T1_FIELD_FIXED_P, + T1_FIELD_FIXED_1000_P): Removed. + (T1_FIELD_TYPE_BOOL): Renamed to... + (T1_FIELD_BOOL): New macro. Updated all callers. + + * src/type42/t42parse.c: `italic_angle', `is_fixed_pitch', + `underline_position', `underline_thickness', `paint_type', + `stroke_width' are reverted to be normal values. + (T42_KEYWORD_COUNT): New macro. + (t42_parse_dict): New array `keyword_flags' to mark that a value has + already been assigned to a dictionary entry. + * src/type42/t42objs.c (T42_Face_Init, T42_Face_Done): Updated. + + * src/cid/cidtoken.h: `italic_angle', `is_fixed_pitch', + `underline_position', `underline_thickness' are reverted to be + normal values. + * src/cid/cidobjs.c (cid_face_done, cid_face_init): Updated. + + * src/psaux/psobjs.c (ps_parser_load_field): Updated. + + * src/type1/t1tokens.h: `italic_angle', `is_fixed_pitch', + `underline_position', `underline_thickness', `paint_type', + `stroke_width' are reverted to be normal values. + * src/type1/t1objs.c (T1_Face_Done, T1_Face_Init): Updated. + * src/type1/t1load.c (T1_FIELD_COUNT): New macro. + (parse_dict): Add parameter for keyword flags. + Record only first instance of a field. + (T1_Open_Face): New array `keyword_flags'. + +2003-07-24 Werner Lemberg <[email protected]> + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5. + * builds/unix/configure.ac (version_info): Set to 10:0:3. + * builds/unix/configure: Updated. + * builds/freetype.mk (refdoc): Fix --title. + + * docs/CHANGES, docs/VERSION.DLL, README: Updated. + + * src/tools/docmaker/sources.py (re_crossref): Fix regular + expression to handle trailing punctuation characters. + * src/tools/docmaker/tohtml.py (make_html_word): Updated. + + * docs/release: New file. + +2003-07-23 YAMANO-UCHI Hidetoshi <[email protected]> + + * include/freetype/internal/psaux.h (PS_Parser_FuncsRec): New + member function `to_bytes'. + + * src/psaux/psauxmod.c (ps_parser_funcs): New member + `ps_parser_to_bytes'. + (psaux_module_class): Increase version to 0x20000L. + + * src/psaux/psobjs.c (IS_T1_LINESPACE): Add \f. + (IS_T1_NULLSPACE): New macro. + (IS_T1_SPACE): Add it. + (skip_spaces, skip_alpha): New functions. + (ps_parser_skip_spaces, ps_parser_skip_alpha): Use them. + (ps_tobytes, ps_parser_to_bytes): New functions. + +2003-07-07 Werner Lemberg <[email protected]> + + * builds/freetype.mk (DOC_DIR): New variable. + (refdoc): Use *_DIR variables. + (distclean): Remove documentation files. + + * builds/detect.mk (std_setup, dos_setup): Mention `make refdoc'. + + * configure: Set DOC_DIR variable. + +2003-07-07 Patrik Hägglund <[email protected]> + + * builds/freetype.mk (refdoc): New target to build the + documentation. + (.PHONY): Updated. + + * include/freetype/freetype.h: Improve documentation of FT_CharMap. + * include/freetype/ftimage,h: Fix documentation of FT_OUTLINE_FLAGS. + * include/freetype/tttables.h: Document FT_Sfnt_Tag. + +2003-07-06 Werner Lemberg <[email protected]> + + * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfread.c + (pcf_load_font): Fix computation of height if PIXEL_SIZE property is + missing. + +2003-07-01 Werner Lemberg <[email protected]> + + * src/cache/ftcsbits.c (ftc_sbit_node_compare): Only add `size' if + there is no error. Reported by Knut St. Osmundsen + <[email protected]>. + +2003-06-30 Werner Lemberg <[email protected]> + + A new try to synchronize bitmap font access. + + * include/freetype/freetype.h (FT_Bitmap_Size): `height' is now + defined to return the baseline-to-baseline distance. This was + already the value returned by the BDF and PCF drivers. + + The `width' field now gives the average width. I wasn't able to + find something better. It should be taken as informative only. + + New fields `size', `x_ppem', and `y_ppem'. + + * src/pcf/pcfread.c (pcf_load_font): Updated to properly fill + FT_Bitmap_Size. + Do proper rounding and conversion from 72.27 to 72 points. + + * src/bdf/bdfdrivr.c (BDF_Face_Init): Updated to properly fill + FT_Bitmap_Size. + Do proper rounding and conversion from 72.27 to 72 points. + + * src/sfnt/sfobjs.c (sfnt_load_face): Updated to properly fill + FT_Bitmap_Size. + + * src/winfonts/winfnt.c (FNT_Face_Init): Updated to properly fill + FT_Bitmap_Size. + +2003-06-29 Werner Lemberg <[email protected]> + + Redesigning the FNT driver to return multiple faces, not multiple + strikes. At least one font (app850.fon from WinME) contains + different FNT charmaps for its subfonts. Consequently, the previous + design of having multiple bitmap strikes in a single font face fails + since we have only one charmap per face. + + * include/freetype/internal/fnttypes.h (FNT_Size_Rec): Removed. + (FNT_FaceRec): Remove `num_fonts' field and replace `fonts' with + `font'. + + * src/base/ftwinfnt.c (FT_Get_WinFNT_Header): Updated. + + * src/winfonts/winfnt.c (fnt_font_load): Don't set pixel_width equal + to pixel_height. + (fnt_face_done_fonts): Removed. + (fnt_face_get_dll_fonts): Renamed to... + (fnt_face_get_dll_font): This. Add second function argument to + select face index. + Updated to load just one subfont. + (fnt_font_done, FNT_Face_Done): Updated. + (FNT_Face_Init): Handle `face_index'. + Updated. + (FNT_Size_Set_Pixels): Simplified; similar to BDF and PCF, the + bitmap width is now ignored. + (FNT_Load_Glyph): Updated. + Fix glyph index computation. + (winfnt_driver_class): Updated. + +2003-06-25 Owen Taylor <[email protected]> + + * src/sfnt/ttload.c (tt_face_load_hdmx): Don't assign + num_records until we actually decide to load the table, + otherwise, we'll segfault in tt_face_free_hdmx. + +2003-06-24 Werner Lemberg <[email protected]> + + * src/cff/cffdrivr.c (cff_get_glyph_name): Protect against zero + glyph name pointer. Reported by Mikey Anbary <[email protected]>. + +2003-06-23 Werner Lemberg <[email protected]> + + * src/tools/glnames.py: Updated to AGL 2.0. + * src/psnames/pstables.h: Regenerated. + +2003-06-22 Werner Lemberg <[email protected]> + + * include/freetype/cache/ftcglyph.h, include/freetype/ttnameid.h, + src/base/ftcalc.c, src/base/fttrigon.c, src/cff/cffgload.c, + src/otlayout/otlgsub.c, src/pshinter/pshrec.c, + src/psnames/psmodule.c, src/sfnt/sfobjs.c, src/truetype/ttdriver.c: + Decorate constants with `U' and `L' if appropriate. + + * include/freetype/ftmoderr.h: Updated to include recent module + additions. + + * src/pshinter/pshnterr.h (FT_ERR_BASE): Define as + `FT_Mod_Err_PShinter'. + * src/type42/t42error.h (FT_ERR_BASE): Define as + `FT_Mod_Err_Type42'. + + * src/pshinter/pshrec.h (PS_HINTS_MAGIC): Removed. Not used. + + * include/freetype/config/ftconfig.h [__MWERKS__]: Define FT_LONG64 + and FT_INT64. + +2003-06-21 Werner Lemberg <[email protected]> + + * src/winfonts/winfnt.c (FNT_Load_Glyph): Use first_char in + computation of glyph_index. + (FNT_Size_Set_Pixels): To find a strike, first check pixel_height + only, then try to find a better hit by comparing pixel_width also. + Without this fix it isn't possible to access all strikes. + Also compute metrics.max_advance to be in sync with other bitmap + drivers. + + * src/base/ftobjs.c (FT_Set_Char_Size): Remove redundant code. + (FT_Set_Pixel_Size): Assign value to `metrics' after validation of + arguments. + +2003-06-20 Werner Lemberg <[email protected]> + + Synchronize computation of height and width for bitmap strikes. The + `width' field in the FT_Bitmap_Size structure is now only useful to + enumerate different strikes. The `max_advance' field of the + FT_Size_Metrics structure should be used to get the (maximum) width + of a strike. + + * src/bdf/bdfdrivr.c (BDF_Face_Init): Don't use AVERAGE_WIDTH for + computing `available_sizes->width' but make it always equal to + `available_sizes->height'. + + * src/pcf/pcfread.c (pcf_load_font): Don't use RESOLUTION_X for + computing `available_sizes->width' but make it always equal to + `available_sizes->height'. + + * src/truetype/ttdriver.c (Set_Pixel_Sizes): Pass only single + argument to function. + + * src/psnames/psmodule.c (ps_unicode_value): Handle `.' after + `uniXXXX' and `uXXXX[X[X]]'. + +2003-06-19 Werner Lemberg <[email protected]> + + * src/bdf/bdfdrivr.c: s/FT_Err_/BDF_Err/. + * src/cache/ftccache.c, src/cache/ftcsbits.c, src/cache/ftlru.c: + s/FT_Err_/FTC_Err_/. + * src/cff/cffcmap.c: s/FT_Err_/CFF_Err_/. + * src/pcf/pcfdrivr.c: s/FT_Err_/PCF_Err_/. + * src/psaux/t1cmap.c: Include psauxerr.h. + s/FT_Err_/PSaux_Err_/. + * src/pshinter/pshnterr.h: New file. + * src/pshinter/rules.mk: Updated. + * src/pshinter/pshalgo.c, src/pshinter/pshrec.c: Include pshnterr.h. + s/FT_Err_/PSH_Err_/. + * src/pfr/pfrdrivr.c, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c: + s/FT_Err_/PFR_Err_/. + * src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c, + src/sfnt/ttload.c: s/FT_Err_/SFNT_Err_/. + * src/truetype/ttgload.c: s/FT_Err_/TT_Err_/. + * src/gzip/ftgzip.c: Load FT_MODULE_ERRORS_H and define + FT_ERR_PREFIX and FT_ERR_BASE. + s/FT_Err_/Gzip_Err_/. + +2003-06-19 Dirck Blaskey <[email protected]> + + * src/cff/cffload (cff_encoding_load): `nleft' must be FT_UInt, + otherwise adding 1 might wrap the result. + +2003-06-18 Werner Lemberg <[email protected]> + + * src/psnames/psmodule.c (ps_unicode_value): Add support to + recognize `uXXXX[X[X]]' glyph names. + Don't handle glyph names starting with `uni' which have more than + four digits. + +2003-06-16 Werner Lemberg <[email protected]> + + * include/freetype/freetype.h (FT_Open_Flags): Replaced with + #defines for the constants. + (FT_Open_Args): Change type of `flags' to FT_UInt. + (FT_GlyphSlot): Move `flags' to FT_Slot_Internal. + + * include/freetype/ftimage.h (FT_Outline_Flags, FT_Raster_Flag): + Replaced with #defines for the constants. + + * include/freetype/internal/ftobjs.h (FT_Slot_Internal): New + field `flags' (from FT_GlyphSlot). + Updated all affected source files. + (FT_GLYPH_OWN_BITMAP): New macro (from ftgloadr.h). + + * include/freetype/internal/ftgloadr.h (FT_GLYPH_OWN_BITMAP): Moved + to ftobjs.h. + + * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Use dummy + FT_GlyphSlot_Internal object. + +2003-06-15 Werner Lemberg <[email protected]> + + * builds/compiler/gcc.mk, builds/compiler/gcc-dev.mk (CFLAGS): + Add -fno-strict-aliasing to get rid of zillion warnings from gcc + version 3.3. + +2003-06-14 Werner Lemberg <[email protected]> + + * include/freetype/ftglyph.h (ft_glyph_bbox_unscaled, + ft_glyph_bbox_subpixels, ft_glyph_bbox_gridfit, + ft_glyph_bbox_truncate, ft_glyph_bbox_pixels): Replaced with + FT_GLYPH_BBOX_UNSCALED, FT_GLYPH_BBOX_SUBPIXELS, + FT_GLYPH_BBIX_GRIDFIT, FT_GLYPH_BBOX_TRUNCATE, FT_GLYPH_BBOX_PIXELS. + The lowercase variants are now (deprecated aliases) to the uppercase + versions. + Updated all other files. + + * include/freetype/ftmodule.h (ft_module_font_driver, + ft_module_renderer, ft_module_hinter, ft_module_styler, + ft_module_driver_scalable, ft_module_driver_no_outlines, + ft_module_driver_has_hinter): Replaced with FT_MODULE_FONT_DRIVER, + FT_MODULE_RENDERER, FT_MODULE_HINTER, FT_MODULE_STYLER, + FT_MODULE_DRIVER_SCALABLE, FT_MODULE_DRIVER_NO_OUTLINES, + FT_MODULE_DRIVER_HAS_HINTER. + The lowercase variants are now (deprecated aliases) to the uppercase + versions. + Updated all other files. + + * src/base/ftglyph.c (FT_Glyph_Get_CBox): Handle bbox_mode better + as enumeration. + + * src/pcf/pcfdrivr.c (pcf_driver_class), src/winfonts/winfnt.c + (winfnt_driver_class), src/bdf/bdfdrivr.c (bdf_driver_class): Add + the FT_MODULE_DRIVER_NO_OUTLINES flag. + +2003-06-13 Detlef Würkner <[email protected]> + + * src/pfr/pfrobjs.c (pfr_slot_load): Apply font matrix. + +2003-06-13 Werner Lemberg <[email protected]> + + * builds/dos/detect.mk: Test not only for `Dos' but for `DOS' also. + + * builds/dos/dos-emx.mk, builds/compiler/emx.mk: New files for + EMX gcc compiler. + * builds/dos/detect.mk: Add target `emx'. + + * builds/compiler/watcom.mk (LINK_LIBRARY): GNU Make for DOS doesn't + like a trailing semicolon; add a dummy command. + + * src/cid/cidload.c: Remove parse_font_bbox code (already enclosed + with #if 0 ... #endif). + + * src/type1/t1tokens.h: Handle /FontName. + * src/type1/t1load.c (parse_font_name): Removed. + Remove parse_font_bbox code (already enclosed with #if 0 ... + #endif). + + * src/type42/t42parse.c (t42_parse_font_name): Removed. + Remove t42_parse_font_bbox code (already enclosed with #if 0 ... + #endif). + (t42_keywords): Handle /FontName with T1_FIELD_KEY. + +2003-06-12 Werner Lemberg <[email protected]> + + * include/freetype/internal/psaux.h (T1_FieldType): Add + T1_FIELD_TYPE_KEY. + (T1_FIELD_KEY): New macro. + * src/psaux/psobjs.c (ps_parser_load_field): Handle + T1_FIELD_TYPE_KEY. + + * src/cid/cidtoken.h: Use T1_FIELD_KEY for /CIDFontName. + +2003-06-11 Alexander Malmberg <[email protected]> + + * src/cache/ftlru.c (FT_LruList_Remove_Selection): Decrease + number of nodes. + (FT_LruList_Lookup): Fix assertion for out-of-memory case. + +2003-06-11 Werner Lemberg <[email protected]> + + * src/cid/cidload.c (cid_decrypt): Removed. + (cid_read_subrs): Use t1_decrypt from psaux module. + * src/cid/cidload.h: Updated. + * src/cid/cidgload.c (cid_load_glyph): Use t1_decrypt from psaux + module. + +2003-06-10 Werner Lemberg <[email protected]> + + * src/cid/cidobjs.c: Apply change 2003-05-31 from <[email protected]>. + Compute style flags. + Fix computation of root->height. + * src/cid/cidtoken.h: Handle FontBBox. + * src/cid/cidload.c (cid_load_keyword): Handle + T1_FIELD_LOCATION_BBOX. + (parse_font_bbox): Commented out. + (cid_field_record): Comment out element for parsing FontBBox. + + * src/type42/t42parse.c (t42_parse_font_bbox): Commented out. + (t42_keywords): Handle FontBBox with T1_FIELD_BBOX, not with + T1_FIELD_CALLBACK. + (t42_parse_font_bbox): Commented out. + (t42_load_keyword): Handle T1_FIELD_LOCATION_BBOX. + * src/type42/t42objs.c (T42_Face_Init): Apply change 2003-05-31 + from <[email protected]>. + +2003-06-09 George Williams <[email protected]> + + * src/truetype/ttinterp.c (SetSuperRound) <0x30>: Follow Apple's + TrueType specification. + (Ins_MDRP, Ins_MIRP): Fix single width cut-in test. + +2003-06-09 Detlef Würkner <[email protected]> + + * src/gzip/ftgzip.c: (inflate_mask): Replaced with... + (NO_INFLATE_MASK): This. + * src/gzip/infutil.h: Declare `inflate_mask' conditionally by + NO_INFLATE_MASK. + +2003-06-09 Alexis S. L. Carvalho <[email protected]> + + * src/gzip/ftgzip.c (ft_gzip_file_fill_output): Handle Z_STREAM_END + correctly. + +2003-06-09 Wolfgang Domröse <[email protected]> + + * src/pshinter/pshglob.c (psh_globals_new): Change calculation of + dim->stdw.count to avoid compiler problem. + + * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Move the block + variables to the beginning of the function to avoid compiler + problems. + Add casts necessary for 16bit compilers. + +2003-06-09 Werner Lemberg <[email protected]> + + * src/pfr/rules.mk (PFR_DRV_SRC): Add pfrsbit.c. + (PFR_DRV_H): Add pfrtypes.h. + + * include/freetype/config/ftconfig.h: s/__MWKS__/__MWERKS__/. + +2003-06-08 Karl Schultz <[email protected]> + + * src/pfr/pfrsbit.c (pfr_bitwriter_init): Change type of third + argument to FT_Bool. + (pfr_lookup_bitmap_data): Change type of third and fourth argument + to FT_UInt. Updated caller. + (pfr_load_bitmap_bits): Change type of fourth argument to FT_Bool. + +2003-06-08 Werner Lemberg <[email protected]> + + Completely revised FreeType's make management. + + . In all makefiles `/' is used as the path separator. The + conversion to the real path separators is done as late as + possible using $(subst ...). + + . $(HOSTSEP) no longer exists. Now, $(SEP) gives the path separator + for the operating system, and the new $(COMPILER_SEP) the path + separator for the compiler tools. + + . $(BUILD) has been renamed to $(BUILD_DIR). In general, all + directory variables end with `_DIR'. The variants ending in `_' + (like `BASE_' have been removed). + + The following ChangeLog entries only describe changes which are + not related to the redesign. + + * builds/beos/beos-def.mk (BUILD_DIR): Fix typo. + * builds/compiler/watcom.mk (LINK_LIBRARY): Fix linker call to avoid + overlong arguments as suggested by J. Ali Harlow + <[email protected]>. + * builds/dos/dos-wat.mk: New file. + * builds/freetype.mk (FREETYPE_H): Include header files from the + `devel' subdirectory. + + * builds/os2/os2-dev.mk, builds/unix/unixddef.mk, + builds/unix/unixddef.mk, builds/win32/w32-bccd.mk, + builds/win32/w32-dev.mk (BUILD_DIR): Fix path. + + * builds/unix/configure.ac, builds/unix/configure: Updated. + * builds/unix/unix-def.in (DISTCLEAN): Add `freetype2.pc'. + +2003-06-07 Werner Lemberg <[email protected]> + + * src/base/ftmac.c (FT_New_Face_From_SFNT): s/rlen/sfnt_size/ to + make it compile. + + * devel/ftoption.h: Updated. + +2003-06-07 Detlef Würkner <[email protected]> + + * include/freetype/internal/psaux.h, src/truetype/ttgload.h: + s/index/idx/ to fix compiler warnings. + + * src/sfnt/ttcmap0.c (tt_face_build_cmaps): Use more `volatile' to + fix compiler warning. + + * src/gzip/ftgzip.c (BUILDFIXED): Removed. + * src/gzip/inftrees.c (inflate_trees_fixed) [!BUILDFIXED]: Use + FT_UNUSED to remove compiler warning. + +2003-06-06 Werner Lemberg <[email protected]> + + * include/freetype/ftstroker.h: Renamed to... + * include/freetype/ftstroke.h: This. + + * src/base/ftstroker.c: Renamed to... + * src/base/ftstroke.c: This. + + * include/freetype/config/ftheader.h (FT_STROKER_H): Updated. + + * src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk: + Updated. + + * src/pcf/pcfdriver.c: Renamed to... + * src/pcf/pcfdrivr.c: This. + * src/pcf/pcfdriver.h: Renamed to... + * src/pcf/pcfdrivr.h: This. + + * src/pcf/Jamfile, src/pcf/rules.mk: Updated. + +2003-06-05 Wenlin Institute (Tom Bishop) <[email protected]> + + * src/base/ftmac.c (file_spec_from_path) [TARGET_API_MAC_CARBON]: + Add `#if !defined(__MWERKS__)'. + +2003-06-05 Werner Lemberg <[email protected]> + + * include/freetype/internal/psaux.h (T1_FieldType): Add + T1_FIELD_TYPE_FIXED_1000 and T1_FIELD_TYPE_FIXED_1000_P. + (T1_FIELD_FIXED_1000, T1_FIELD_FIXED_1000_P): New macros. + * src/psaux/psobjs.c (ps_parser_load_field): Handle + T1_FIELD_TYPE_FIXED_1000 and T1_FIELD_TYPE_FIXED_1000_P. + + * src/cff/cffparse.c (cff_kind_fixed_thousand): New enumeration. + (CFF_FIELD_FIXED_1000): New macro. + (cff_parser_run): Handle cff_kind_fixed_thousand. + * src/cff/cfftoken.h: Use CFF_FIELD_FIXED_1000 for blue_scale. + * src/cff/cffload (cff_subfont_load): Fix default values of + expansion_factor and blue_scale. + + * src/cif/cidtoken.h, src/type1/t1tokens.h: Use T1_FIELD_FIXED_1000 + for blue_scale. + + * src/pshinter/pshglob.c (psh_globals_new): Fix default value of + blue_scale. + +2003-06-04 Wolfgang Domröse <[email protected]> + + * include/freetype/internal/ftdriver.h, + include/freetype/internal/ftobjs.h, + include/freetype/internal/psaux.h, src/cid/cidgload.c, + src/psaux/psobjs.c, src/psaux/t1decode.c, src/psaux/psobjs.h, + src/pshinter/pshrec.c, src/pshinter/pshalgo.c, + src/psnames/psmodule.c, src/raster/ftraster.c, src/sfnt/sfobjs.c, + src/smooth/ftgrays.c, src/smooth/ftsmooth.c, src/truetype/ttobjs.c, + src/truetype/ttdriver.c, src/truetype/ttgload.c, src/type1/t1afm.c, + src/type1/t1gload.c, src/type1/t1gload.h, src/type1/t1load.c, + src/type1/t1objs.c, src/type42/t42parse.c, src/type42/t42parse.h: + Many casts and slight argument type changes to make it work with + a 16bit compiler. + +2003-06-04 Werner Lemberg <[email protected]> + + * include/freetype/config/ftoption.h: Defining + TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING by default is a bad idea + since some fonts (e.g. Arial) produce worse results than without + hinting. Reverted. + +2003-06-04 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c (load_truetype_glyph) + [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Call + FT_GlyphLoader_CheckPoints before adding phantom points. This fixes + a segfault bug with fonts (e.g. htst3.ttf) which have nested + subglyphs more than one level deep. Reported by Anthony Fok. + + * include/freetype/config/ftoption.h: Define + TT_CONFIG_OPTION_BYTECODE_INTERPRETER, + TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING, and + TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING to make it the new + default. + +2003-06-03 Werner Lemberg <[email protected]> + + * src/autohint/ahhint.c (ah_hinter_hint_edges): Removed. Just a + wrapper for ah_hint_edges. + (ah_hint_edges): Renamed to... + (ah_hinter_hint_edges): This. + + * src/base/ftobjs.c (FT_Set_Hint_Flags): Removed. Unused. + + * include/freetype/internal/ftobjs.h (FT_Face_InternalRec), + include/freetype/internal/psaux.h (T1_DecoderRec), + src/cff/cffgload.h (CFF_Builder): Remove `hint_flags' field. + Unused. + + * src/cff/cffgload.c (cff_builder_init): Updated. + (cff_decoder_parse_charstrings) <cff_op_endchar>: Call hinter->apply + with decoder->hint_mode instead of builder->hint_flags. + * src/psaux/t1decode.c (t1_decoder_init): Updated. + + * src/base/ftstroker.c (ft_stroke_border_export): s/index/idx/. + + * src/sfnt/sfobjs.c (sfnt_load_face): Commented out code which + increased root->height by 15% if the line gap was zero. There exist + fonts (containing e.g. form drawing characters) which intentionally + have a zero line gap value. + + * src/truetype/ttinterp.c (Free_Project, CUR_Func_freeProj): + Removed. Unused. + Updated all callers. + +2003-06-02 Werner Lemberg <[email protected]> + + * src/cff/cffobjs.c (cff_face_init): Use symbolic names for + Adobe specific encoding IDs (there was a wrong EID value for custom + encoding). + + * src/cff/cffcmap.h (CFF_CMapStdRec): Remove `count'. + * src/cff/cffcmap.c (cff_cmap_encoding_init, + cff_cmap_encoding_done): Updated. + (cff_cmap_encoding_char_index, cff_cmap_encoding_char_next): Use + 256 as limit for character code. + +2003-06-01 Werner Lemberg <[email protected]> + + * src/winfonts/winfnt.c (FNT_Load_Glyph): Revert change from + 2003-03-20. + +2003-05-31 Werner Lemberg <[email protected]> + + * include/freetype/fttrigon.h (FT_Vector_Normalize): Removed. + +2003-05-31 <[email protected]> + + * src/type1/t1objs.c (T1_Face_Init): Improve algorithm for guessing + the font style by ignoring spaces and hyphens. + + * builds/unix/freetype2.in: Fix `Version' field. + +2003-05-30 Werner Lemberg <[email protected]> + + Avoid overwriting of numeric font dictionary entries for synthetic + fonts. Additionally, some entries were handled as `integer' instead + of `number'. + + * include/freetype/internal/psaux.h (T1_FieldType): Add + T1_FIELD_TYPE_BOOL_P, T1_FIELD_TYPE_INTEGER_P, and + T1_FIELD_TYPE_FIXED_P. + (T1_FIELD_BOOL_P, T1_FIELD_NUM_P, T1_FIELD_FIXED_P): New macros. + * src/psaux/psobjs.c (ps_parser_load_field): Handle new field types. + + * include/freetype/internal/cfftypes.h (CFF_FontRecDict), + src/cff/cfftoken.h: Change type of underline_position and + underline_thickness to FT_Fixed. + * src/cff/cffload.c (cff_subfont_load): Fix default values of + underline_position and underline_thickness. + * src/cff/cffobjs.c (cff_face_init): Set underline_position + and underline_thickness in `root'. + + * include/freetype/internal/t1types.h (T1_Font): Change point_type + and stroke_width to pointers. + * include/freetype/t1tables.h (PS_FontInfo): Change italic_angle, + is_fixed_pitch, underline_position, and underline_thickness to + pointers. + * src/type1/t1tokens.h: Change italic_angle, is_fixed_pitch, + underline_position, and underline_thickness to pointers. Change + the type of the latter two to `fixed'. + Change type of stroke_width to `fixed' and make it a pointer. + Change paint_type to pointer. + * src/type1/t1objs.c (T1_Face_Done): Updated. + (T1_Face_Init): Updated. + Fix assignment of underline_position and underline_thickness. + + * src/cid/cidtoken.h: Change italic_angle, is_fixed_pitch, + underline_position, and underline_thickness to pointers. Change + the type of the latter two to `fixed'. + Change type of stroke_width to `fixed'. + * src/cid/cidobjs.c (cid_face_done): Updated. + (cid_face_init): Updated. + Fix assignment of underline_position and underline_thickness. + + * src/type42/t42parse.c: Change italic_angle, is_fixed_pitch, + underline_position, and underline_thickness to pointers. Change the + type of the latter two to `fixed'. + Change type of stroke_width to `fixed' and make it a pointer. + Change paint_type to pointer. + * src/type42/t42objs.c (T42_Face_Init): Updated. + Fix assignment of underline_position and underline_thickness. + (T42_Face_Done): Updated. + + * src/base/ftobjs.c (open_face_from_buffer): Fix compiler warning. + * src/pshinter/pshglob.c, src/pshinter/pshglob.h + (psh_globals_set_scale): Make it a local function. + + * test/gview.c: Fix renaming ps3->ps typo. + Formatting. + +2003-05-29 Werner Lemberg <[email protected]> + + * src/pshinter/pshalgo1.[ch], src/pshinter/pshalgo2.[ch]: Removed. + * src/pshinter/pshalgo.h: Removed. + + * src/pshinter/pshalgo3.[ch]: Renamed to... + * src/pshinter/pshalgo.[ch]: New files. + s/PSH3/PSH/. + s/psh3/psh/. + s/ps3/ps/. + + * src/pshinter/pshrec.c, src/pshinter/pshinter.c: Updated. + * src/pshinter/rules.mk, src/pshinter/Jamfile: Updated. + + * src/pshinter/pshglob.[ch] (psh_dimension_snap_width): Commented + out. + + * tests/gview.c: Remove code for pshalgo1 and pshalgo2. + Updated. + +2003-05-28 Martin Zinser <[email protected]> + + * vms_make.com: Reworked support for shareable images on VMS. The + first version was kind of a hack; the current implementation of the + procedure to extract the required symbols is much cleaner. + + Reworked creation of MMS files, avoiding a number of temporary files + which were created in the previous version. + + Further work on creating descrip.mms files on the fly. + + * builds/vms/descrip.mms, src/autohint/descrip.mms, + src/type1/descrip.mms: Removed. + +2003-05-28 Werner Lemberg <[email protected]> + + * src/pshinter/pshalgo3.c (psh3_glyph_compute_extrema): Skip + contours with only a single point to avoid segfault. + + * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Activate code for + handling `origin'. + +2003-05-24 Werner Lemberg <[email protected]> + + * src/autohint/ahtypes.h (AH_OPTION_NO_STRONG_INTERPOLATION): + Removed since unused. + +2003-05-21 Werner Lemberg <[email protected]> + + * include/freetype/config/ftstdlib.h (ft_strcat): New wrapper macro + for strcat. + + * src/base/ftmac.c (create_lwfn_name): s/isupper/ft_isupper/. + (parse_font): s/memcpy/ft_memcpy/. + (is_dfont) [TARGET_API_MAC_CARBON]: s/memcmp/ft_memcmp/. + * src/base/ftobjs.c (load_mac_face) [FT_MACINTOSH]: + s/strlen/ft_strlen/. + s/strcat/ft_strcat/. + s/strcpy/ft_strcpy/. + * src/gzip/zutil.h: s/memset/ft_memset/. + s/memcmp/ft_memcmp/. + + * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c + (PCF_Face_Init): Test for charset registry case-insensitively. + + * src/gzip/ftgzip.c (ft_gzip_fil_io): Revert change from yesterday; + it has already been fixed differently. + + * src/truetype/ttinterp.c (DO_SFVTL): Add missing braces around + if-clause. + +2003-05-21 Martin Zinser <[email protected]> + + * t1load.c (parse_blend_axis_types): Fix compiler warning. + + * descrip.mms: Removed. Now created by... + + * vms_make.com: New file. + +2003-05-21 Weiqi Gao <[email protected]> + + * src/gzip/ftgzip.c (ft_gzip_file_io): Avoid zero value of `delta' + to prevent infinite loop. + +2003-05-21 Lars Clausen <[email protected]> + + * docs/VERSION.DLL: Provide better autoconf snippet to check + FreeType version. + +2003-05-21 Werner Lemberg <[email protected]> + + * src/base/ftobjs.c (open_face): Free `internal' not + `face->internal' in case of error to avoid possible segfault. + + * src/pshinter/pshalgo3.c (ps3_hints_apply): Check whether we + actually have an outline. + +2003-05-20 David Chester <[email protected]> + + * src/pshinter/pshalgo3.c (ps3_hints_apply): Try to optimize + y_scale so that the top of non-capital letters is aligned on a pixel + boundary whenever possible. + + * src/autohint/ahhint.c (ah_hint_edges): Make sure that lowercase + m's maintain their symmetry. + +2003-05-20 Werner Lemberg <[email protected]> + + * src/autohint/ahhint.c (ah_hinter_load_glyph): Oops! David's + patch from yesterday has been resolved already in a different + way. Reverted. + +2003-05-19 David Chester <[email protected]> + + * src/autohint/ahhint.c (ah_hinter_load_glyph): Don't scale + y_scale locally but face->size->metrics.y_scale. + +2003-05-19 David Turner <[email protected]> + + * src/sfnt/ttcmap0.c (tt_cmap4_char_next): Select proper start + value for `hi' to avoid infinite loop. + +2003-05-18 Yong Sun <[email protected]> + + * src/raster/ftraster.c (Insert_Y_Turn): Fix overflow test. + +2003-05-18 Werner Lemberg <[email protected]> + + * include/freetype/config/ftoption.h [FT_CONFIG_OPTION_MAC_FONTS]: + New macro. + * src/base/ftobjs.c: Use it to control mac font support on non-mac + platforms. + +2003-05-17 George Williams <[email protected]> + + Implement partial support of Mac fonts on non-Mac platforms. + + * src/base/ftobjs.c (memory_stream_close, new_memory_stream, + open_face_from_buffer, Mac_Read_POST_Resource, + Mac_Read_sfnt_Resource, IsMacResource, IsMacBinary, load_mac_face) + [!FT_MACINTOSH]: New functions. + (FT_Open_Face) [!FT_MACINTOSH]: Use load_mac_face. + +2003-05-17 Werner Lemberg <[email protected]> + + * src/base/ftobjs.c (FT_Load_Glyph): Scale linear advance width only + if FT_FACE_FLAG_SCALABLE is set (otherwise we have a division by + zero since FNT and friends don't define `face->units_per_EM'). + +2003-05-15 David Turner <[email protected]> + + * src/base/fttrigon.c (FT_Vector_Rotate): Avoid rounding errors + for small values. + +2003-05-15 Werner Lemberg <[email protected]> + + * src/autohint/ahtypes.h (AH_PointRec): Remove unused `in_angle' + and `out_angle' fields. + +2003-05-14 George Williams <[email protected]> + + * src/base/ftmac.c (FT_New_Face_From_SFNT): Handle CFF files also. + +2003-05-14 Werner Lemberg <[email protected]> + + * include/freetype/freetype.h: Fix typo in comment + (FT_HAS_FIXED_SIZES). + +2003-05-10 Dan Williams <[email protected]> + + * builds/unix/aclocal.m4: Comment out definition of + `allow_undefined_flag' for Darwin 1.3. + * builds/unix/configure.ac: Add option --with-old-mac-fonts. + * builds/unix/ltmain.sh: Fix version numbering for Darwin 1.3. + * builds/unix/configure: Regenerated. + + * include/freetype/config/ftconfig.h: Fix conditions for defining + `FT_MACINTOSH'. + * src/base/ftbase.c: Include `ftmac.c' conditionally. + * src/base/ftmac.c: Handle __GNUC__. + +2003-05-07 YAMANO-UCHI Hidetoshi <[email protected]> + + * src/cid/cidload.c (is_alpha): Removed. + (cid_parse_dict): Use `cid_parser_skip_alpha' instead of `is_alpha'. + +2003-05-07 Werner Lemberg <[email protected]> + + * src/autohint/ahoptim.c, src/autohint/ahoptim.h: Obsolete, removed. + +2003-05-07 David Turner <[email protected]> + + * src/autohint/ahglyph.c (ah_setup_uv): Exchange `for' loop and + `switch' statement to make it run faster. + (ah_outline_compute_segments): Reset `segment->score' and + `segment->link'. + (ah_outline_link_segments): Provide alternative code which does + the same but runs much faster. + Handle major direction also. + (ah_outline_compute_edges): Scale `edge_distance_threshold' down + after rounding instead of scaling comparison value in loop. + + * src/autohint/ahhint.c (ah_hinter_align_stong_points): Provide + alternative code which runs faster. + Handle `before->scale == 0'. + + * src/autohint/ahtypes.h (AH_SegmentRec): Move some fields down. + (AH_EdgeRec): Move some fields in structure. + New field `scale'. + + * src/sfnt/ttcmap0.c (tt_cmap4_char_next): Use binary search. + +2003-05-02 Werner Lemberg <[email protected]> + + * src/autohint/ahoptim.c (LOG): Renamed to... + (AH_OPTIM_LOG): This. + (AH_Dump_Springs): Fix log message format. + + * src/autohint/ahhint.c (ah_hint_edges_3): Renamed to... + (ah_hint_edges): This. + +2002-05-02 Keith Packard <[email protected]> + + * src/bdf/bdfdrivr.c (BDF_Set_Pixel_Size): Initialize `max_advance'. + +2003-05-01 Werner Lemberg <[email protected]> + + * src/autohint/ahglyph.c (ah_test_extrema): Renamed to... + (ah_test_extremum): This. + +2003-04-28 Werner Lemberg <[email protected]> + + * builds/unix/configure.ac: Generate `freetype.pc' from + `freetype.in'. + * builds/unix/configure: Regenerated. + * builds/unix/install.mk (install, uninstall): Handle `freetype.pc'. + +2003-04-28 Gustavo J. A. M. Carneiro <[email protected]> + + * builds/unix/freetype2.in: New file. Contains building information + for the `pkg-config' package. + +2003-04-28 David Turner <[email protected]> + + * src/base/ftobjs.c (FT_Load_Glyph): Fix boundary check for + `glyph_index'. + +2003-04-25: Graham Asher <[email protected]> + + Added the optional unpatented hinting system for TrueType. It + allows typefaces which need hinting to produce correct glyph forms + (e.g., Chinese typefaces from Dynalab) to work acceptably without + infringing Apple patents. This system is compiled only if + TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING is defined in + ftoption.h. + + * include/freetype/ttunpat.h: New file. Defines + FT_PARAM_TAG_UNPATENTED_HINTING. + + * include/freetype/config/ftheader.h (FT_TRUETYPE_UNPATENTED_H): New + macro to use when including ttunpat.h. + + * include/freetype/config/ftoption.h + (TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING, + TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): New configuration macros + (not defined, but in comments) for the unpatented hinting system. + + * include/freetype/internal/tttypes.h (TT_FaceRec) + [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: New element `FT_Bool + unpatented_hinting'. + + * src/truetype/ttinterp.c (NO_APPLE_PATENT, APPLE_THRESHOLD): + Removed. + (GUESS_VECTOR): New macro. + (TT_Run_Context) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: + Set `both_x_axis'. + (tt_default_graphics_state) + [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Updated. + (Current_Ratio) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: + Handle `unpatented_hinting'. + (Direct_Move) [NO_APPLE_PATENT]: Removed. + [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Insert assertion. + (Project, FreeProject) + [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Insert assertion. + (Compute_Funcs) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: + Implement unpatented hinting. + (DO_SPVTCA, DO_SFVTCA, DO_SPVTL, DO_SFVTL, DO_SPVFS, DO_SFVFS, + Ins_SDPVTL): Call `GUESS_VECTOR'. + (DO_GPV, DO_GFV) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: + Handle `unpatented_hinting'. + (Compute_Point_Displacement) [NO_APPLE_PATENT]: Removed. + [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Implement unpatented + hinting. + (Move_Zp2_Point, Ins_SHPIX, Ins_DELTAP, Ins_DELTAC) + [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Implement unpatented + hinting. + (TT_RunIns): Updated. + + * src/truetype/ttobjs.c + [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Include + FT_TRUETYPE_UNPATENTED_H. + (tt_face_init) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING, + TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING]: Check + FT_PARAM_TAG_UNPATENTED_HINTING. + + * src/truetype/ttobjs.h (TT_GraphicsState) + [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Add `both_x_axis'. + +2003-04-25 Werner Lemberg <[email protected]> + + * src/bdf/bdflib.c (hash_bucket, hash_lookup): Use `const' for first + argument. + (bdf_get_font_property): Use `const' for third argument. + Updated all callers. + * src/bdf/bdfdrivr.c (BDF_Face_Init): Set pixel width and height + similar to the PCF driver. + * src/bdf/bdf.h (_hashnode): Use `const' for `key'. + Updated. + + * src/gzip/ftgzip.c: C++ doesn't like that the array `inflate_mask' + is declared twice. It is perhaps better to modify the zlib source + files directly instead of this hack. + (zcalloc, zfree, ft_gzip_stream_close, ft_gzip_stream_io): Add casts + to make build with g++ successful. + +2003-04-24 Manish Singh <[email protected]> + + * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c + (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Split on `-' + also for searching the style name. + +2003-04-24 David Turner <[email protected]> + + * src/pcf/pcfread.c (pcf_load_font): Fixed the computation of + face->num_glyphs. We must increase the value by 1 to respect the + convention that glyph index 0 always corresponds to the `missing + glyph'. + +2003-04-24 Werner Lemberg <[email protected]> + + * builds/unix/unix-cc.in (CFLAGS): Add @CPPFLAGS@. + +2003-04-24 Dieter Baron <[email protected]> + + * builds/unix/freetype-config.in (cflags): Emit FreeType 2's include + files first. Otherwise there are conflicts with FreeType 1 + installed simultaneously. + +2003-04-23 Werner Lemberg <[email protected]> + + Fixing bugs reported by Nelson Beebe. + + * src/base/ftstroker.c (FT_Stroker_ParseOutline): Remove unused + variable `in_path'. + + * src/base/ftobjs (ft_glyphslot_set_bitmap): Change type of + second argument to `FT_Byte*'. + * include/freetype/internal/ftobjs.h: Updated. + + * src/bdf/bdflib.c (_bdf_readstream): Remove unused variable `res'. + (_bdf_parse_glyphs): Remove unused variable `next'. + Mark `call_data' as unused. + + * src/cache/ftlru.c (FT_LruList_Lookup): Remove unused variable + `plast'. + + * src/pcf/pcfread.c (pcf_seek_to_table_type): Slight recoding to + actually use `error'. + (pcf_load_font): Remove unused variable `avgw'. + + * src/pfr/pfrobjs.c (pfr_face_get_kerning): Change return type + to `void'. + Mark `error' as unused. + * src/pfr/pfrobjs.h: Updated. + * src/pfr/pfrdrivr.c (pfr_get_kerning): Updated. + + * src/sfnt/ttload.c (sfnt_dir_check): Remove unused variable + `format_tag'. + + * src/sfnt/ttcmap0.c (tt_cmap6_validate, tt_cmap10_validate): Remove + unused variable `start'. + (tt_cmap10_char_next): Remove unused variable `result' + + * src/sfnt/sfobjs.c (tt_face_get_name): Mark `error' as unused. + + * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Mark `error' as + unused. + + * src/type1/t1objs.c (T1_Face_Init): Remove unused variable + `pshinter'. + + * src/type1/t1gload.c (T1_Load_Glyph): Use `glyph_data_loaded' + only for FT_CONFIG_OPTION_INCREMENTAL. + +2003-04-23 Akito Hirai <[email protected]> + + * src/sfnt/ttcmap0.c (tt_cmap4_validate): Provide a weak variant + of the glyph ID bounding check if FT_VALIDATE_TIGHT is not active. + Without this change, many CJK fonts from Dynalab are rejected. + +2003-04-23 Joe Marcus Clarke <[email protected]> + + * src/base/ftbdf.c (FT_Get_BDF_Property): Check for valid + `get_interface'. + +2003-04-23 Paul Miller <[email protected]> + + * src/base/ftmac.c (parse_fond): Fix handling of style names. + +2003-04-23 Werner Lemberg <[email protected]> + + * src/pfr/pfrload.c (pfr_extra_item_load_font_id): Use FT_PtrDist + instead of FT_Uint for `len'. + +2003-04-22 Werner Lemberg <[email protected]> + + * src/gzip/ftgzip.c (zcalloc) [!FT_CONFIG_OPTION_SYSTEM_ZLIB]: + Convert K&R format to modern C usage. + (FT_Stream_OpenGzip): Use long constant. + +2003-04-21 Werner Lemberg <[email protected]> + + * src/cache/ftccache.c (ftc_cache_lookup): Remove shadow declaration + of `manager'. + +2003-04-20 Werner Lemberg <[email protected]> + + * doc/INSTALL.UNX: Cleaned up. + +2003-04-09 Torrey Lyons <[email protected]> + + * src/base/ftmac.c (open_face_from_buffer): Removed a double-free + bug that had nasty consequences when trying to open an `invalid' + font on a Mac. + +2003-04-09 Mike Fabian <[email protected]> + + * src/bdf/bdfdrivr.h (BDF_encoding_el), src/pcf/pcf.h + (PCF_EncodingRec): Changed FT_Short to FT_UShort in order to be able + to access more than 32768 glyphs in fonts. + +2003-04-08 David Turner <[email protected]> + + + * Version 2.1.4 released. + ========================= + + +2003-04-03 Martin Muskens <[email protected]> + + * src/type1/t1load.c (T1_Open_Face): Fixed the code to make it + handle special cases where a font only contains a `.notdef' glyph + (happens in PDF-embedded fonts). Otherwise, FT_Panic was called. + +2003-03-27 David Turner <[email protected]> + + * README: Udpated. + + * README.UNX: Removed (now replaced by docs/INSTALL.UNX). + + * src/pshinter/pshalgo3.c: The hinter now performs as in 2.1.3 and + will ignore stem quantization only when FT_LOAD_TARGET_SMOOTH is + used. + (psh3_dimension_quantize_len): Enabled. + (psh3_hint_align): Enable commented code. + (psh3_hint_align_light): Commented out. + + * src/base/ftobjs.c (FT_Set_Char_Size): Changed the default + computations to include rounding in all cases; this is required to + provide accurate kerning data when native TrueType hinting is + enabled. + + * src/type1/t1load.c (is_name_char): The Type 1 loader now accepts + more general names according to the PostScript specification (the + previous one was too restrictive). + (parse_font_name, parse_encoding, parse_charstrings, parse_dict): + Use `is_name_char'. + (parse_subrs): Handle empty arrays. + +2003-03-20 David Turner <[email protected]> + + Serious rewriting of the documentation. + + * docs/BUGS, docs/BUILD: Removed. + * docs/DEBUG.TXT: Renamed to... + * docs/DEBUG: This. + * docs/CUSTOMIZE, docs/TRUETYPE, docs/UPGRADE.UNX: New files. + * docs/INSTALL.ANY, docs/INSTALL.UNX, docs/INSTALL.GNU New files, + containing platform specific information previously in INSTALL. + * docs/readme.vms: Renamed to... + * docs/INSTALL.VMS: This. + + * docs/*: Updated. + + Introduced three new functions to deal with glyph bitmaps within + FT_GlyphSlot objects: + + ft_glyphslot_free_bitmap + ft_glyphslot_alloc_bitmap + ft_glyphslot_set_bitmap + + These functions are much more convenient to use than managing the + FT_GLYPH_OWN_BITMAP flag manually. + + * include/freetype/internal/ftobjs.h (ft_glyphslot_free_bitmap, + ft_glyphslot_alloc_bitmap, ft_glyphslot_set_bitmap): New functions. + * src/base/ftobjs.c: Implement them. + (ft_glyphslot_done): Use ft_glyphslot_free_bitmap. + + * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdriver.c + (PCF_Glyph_Load): Remove unused variable `memory'. + Use `ft_glyphslot_*' functions. + Don't set `FT_GLYPH_OWN_BITMAP'. + + * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Use + `ft_glyphslot_alloc_bitmap'. + + * src/sfnt/ttsbit.c (Load_SBit_Image): Change 5th argument to type + `FT_GlyphSlot'. + Adding argument `depth' to handle recursive calls. + Use `ft_glyphslot_alloc_bitmap'. + (tt_face_load_sbit_image): Remove unused variable `memory'. + Don't handle `FT_GLYPH_OWN_BITMAP'. + Update call to Load_SBit_Image. + + * src/type42/t42objs.c (ft_glyphslot_clear): Renamed to... + (t42_glyphslot_clear): This. Updated caller. + Call `ft_glyphslot_free_bitmap'. + + * src/winfonts/winfnt.c (FNT_Load_Glyph): Use + `ft_glyphslot_set_bitmap'. + Don't handle `FT_GLYPH_OWN_BITMAP'. + + * src/cache/ftlru.c (FT_LruList_Lookup): Fixed an invalid assertion + check. + + * src/autohint/ahglyph.c (ah_outline_load): Add two scaling + arguments. + * src/autohint/ahglyph.h: Updated. + * src/autohint/ahhint.c (ah_hinter_load): Updated. + * src/autohint/ahglobal.c (ah_hinter_compute_widths): Updated. + + * src/cache/ftccache.c (ftc_family_done): Fixed small bug that could + crash the cache in rare circumstances (mostly with broken fonts). + +2003-03-15 David Turner <[email protected]> + + * src/truetype/ttdriver.c (Set_Char_Sizes): Fixed a small rounding + bug. Actually, it seems that previous versions of FreeType didn't + perform TrueType rounding exactly as appropriate. + +2003-03-14 David Turner <[email protected]> + + * src/truetype/ttdriver.c (Set_Char_Sizes): Fixing the small + TrueType native rendering glitches; they came from a small rounding + error. + +2003-03-13 David Turner <[email protected]> + + Added new environment variables to control memory debugging with + FreeType. See the description of `FT2_DEBUG_MEMORY', + `FT2_ALLOC_TOTAL_MAX' and `FT2_ALLOC_COUNT_MAX' in DEBUG.TXT. + + * src/base/ftdbgmem.c (FT_MemTableRec): Add `alloc_count', + `bound_total', `alloc_total_max', `bound_count', `alloc_count_max'. + (ft_mem_debug_alloc): Handle new variables. + (ft_mem_debug_init): s/FT_DEBUG_MEMORY/FT2_DEBUG_MEMORY/. + Handle new environment variables. + * docs/DEBUG.TXT: Updated. + + Fixed the cache sub-system to correctly deal with out-of-memory + conditions. + + * src/cache/ftccache.c (ftc_node_destroy): Comment out generic + check. + (ftc_cache_lookup): Implement loop. + * src/cache/ftccmap.c: Define FT_COMPONENT. + * src/cache/ftcsbits.c (ftc_sbit_node_load): Handle + FT_Err_Out_Of_Memory. + * src/cache/ftlru.c: Include FT_INTERNAL_DEBUG_H. + (FT_LruList_Lookup): Implement loop. + + * src/pfr/pfrobjs.c (pfr_face_done): Fix memory leak. + (pfr_face_init): Fixing compiler warnings. + + * src/psaux/psobjs.c (reallocate_t1_table): Fixed a bug (memory + leak) that only happened when a try to resize an array would end in + an out-of-memory condition. + + * src/smooth/ftgrays.c (gray_convert_glyph): Removed compiler + warnings / volatile bug. + + * src/truetype/ttobjs.c (tt_glyphzone_done): Removed segmentation + fault that happened in tight memory environments. + +2003-02-28 Pixel <[email protected]> + + * src/gzip/ftgzip.c (ft_gzip_file_done): Fixed memory leak: The ZLib + stream was not properly finalized. + +2003-02-25 Anthony Fok <[email protected]> + + * src/cache/ftccmap.c: Include FT_TRUETYPE_IDS_H. + (ftc_cmap_family_init): The cmap cache now + supports UCS-4 charmaps when available in Asian fonts. + + * src/sfnt/ttload.c, src/base/ftobjs.c: Changed `asian' to `Asian' + in comments. + +2003-02-25 David Turner <[email protected]> + + * src/gzip/ftgzip.c (ft_gzip_file_fill_output): Fixed a bug that + caused FreeType to loop endlessly when trying to read certain + compressed gzip files. The following test reveals the bug: + + touch 0123456789 ; gzip 0123456789 ; ftdump 0123456789.gz + + Several fixes to the PFR font driver: + + - The list of available embedded bitmaps was not correctly set in + the root FT_FaceRec structure describing the face. + + - The glyph loader always tried to load the outlines when + FT_LOAD_SBITS_ONLY was specified. + + - The table loaded now scans for *undocumented* elements of a + physical font's auxiliary data record. This is necessary to + retrieve the `real' family and style names. + + NOTE THAT THESE CHANGES THE FAMILY NAME OF MANY PFR FONTS! + + * src/pfr/pfrload.c (pfr_aux_name_load): New function. + (pfr_phy_font_done): Free `family_name' and `style_name' also. + Remove unused variables. + (pfr_phy_font_load): Extract useful information from the auxiliary + bytes. + + * src/pfr/pfrobjs.c (pfr_face_done): Set pointers to NULL. + (pfr_face_init): Provide fallback values for `family_name' and + `style_name'. + Handle strikes. + (pfr_slot_load): Handle FT_LOAD_SBITS_ONLY. + * src/pfr/pfrtypes.h (PFR_PhyFontRec): Add fields `ascent', + `descent', `leading', `family_name', and `style_name'. + + * src/truetype/ttdriver.c (Set_Char_Sizes): Fixed a rounding bug + when computing the scale factors for a given character size in + points with resolution. + + * devel/ft2build.h, devel/ftoption.h: New files (in a new directory) + which are special development versions of include/ft2build.h and + include/freetype/config/ftoption.h, respectively. + +2003-02-18 David Turner <[email protected]> + + Fixing the slight distortion problem that occurred due to the latest + auto-hinter changes. + + * src/base/ftobjs.c (ft_recompute_scaled_metrics): Fix rounding. + + * src/truetype/ttdriver.c (Set_Char_Sizes): New variable `metrics2'. + [!TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Removed. + + * src/truetype/ttobjs.h (TT_SizeRec): New field `metrics'. + * src/truetype/ttobjs.c (Reset_Outline_Size): Fix initialization of + `metrics'. + [FT_CONFIG_CHESTER_ASCENDER]: Code removed. + (Reset_SBit_Size): Fix initialization of `metrics'. + + * src/truetype/ttinterp.c (TT_Load_Context): Fix initialization of + `exec->metrics'. + + * src/autohint/ahhint.c (ah_hinter_load): Disabled the advance width + `correction' which seemed to provide more trouble than benefits. + +2003-02-13 Graham Asher <[email protected]> + + Changed the incremental loading interface in a way that makes it + simpler and allows glyph metrics to be changed (e.g., by adding a + constant, as required by CFF fonts) rather than just overridden. + This was required to make the GhostScript-to-FreeType bridge work. + + * src/cff/cffgload.c (cff_slot_load) [FT_CONFIG_OPTION_INCREMENTAL]: + Allow metrics to be overridden. + * src/cid/cidgload.c (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL]: + Ditto. + + * src/truetype/ttgload.c (load_truetype_glyph) + [FT_CONFIG_OPTION_INCREMENTAL]: Simplify. + (compute_glyph_metrics) [FT_CONFIG_OPTION_INCREMENTAL]: Code block + moved down. + + * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String) + [FT_CONFIG_OPTION_INCREMENTAL]: Updated. + + * include/freetype/ftincrem.h: Updated. + +2003-01-31 David Turner <[email protected]> + + * docs/CHANGES, docs/VERSION.DLL, docs/TODO: Updating documentation + for the 2.1.4 release. + + * builds/win32/visualc/freetype.dsp, + builds/win32/visualc/index.html: Updating the project file for + 2.1.4. + + * src/gzip/adler32.c, src/gzip/ftgzip.c, src/gzip/infblock.c, + src/gzip/infcodes.c, src/gzip/inflate.c, src/gzip/inftrees.c, + src/gzip/infutil.c: Removed old-style (K&R)function definitions. + This avoids warnings with Visual C++ at its most pedantic mode. + + * src/pfr/pfrsbit.c: Removed compiler warnings. + + * src/cache/ftccmap.c (ftc_cmap_family_init): Changed an FT_ERROR + into an FT_TRACE1 since it caused `ftview' and others to dump too + much junk when trying to display a waterfall with a font without a + Unicode charmap (e.g. SYMBOL.TTF). + + Implemented FT_CONFIG_CHESTER_BLUE_SCALE, corresponding to the last + patch from David Chester, but with a much simpler (and saner) + implementation. + + * src/autohint/ahhint.c (ah_hinter_load_glyph) + [FT_CONFIG_CHESTER_BLUE_SCALE]: Try to optimize the y_scale so that + the top of non-capital letters is aligned on a pixel boundary + whenever possible. + + * src/base/ftobjs.c (FT_Set_Char_Size) + [FT_CONFIG_CHESTER_BLUE_SCALE]: Round differently. + * src/truetype/ttdriver.c (Set_Char_Sizes) + [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Do some rounding only + if this macro is defined. + + * src/truetype/ttobjs.c (Reset_Outline_Size) + [FT_CONFIG_CHESTER_ASCENDER]: Round differently. + + * src/pshinter/pshalgo3.c: Improved the Postscript hinter. Getting + rid of stem snapping seems to work well here (though the stems are + still slightly moved to increase contrast). + (psh3_dimension_quantize_len): Commented out. + (psh3_hint_align_light): New function. + (psh3_hint_align): Comment out some code. + + THIS IMPROVES ANTI-ALIASED RENDERING, BUT MONOCHROME AND LCD MODES + STILL SUCK. + +2003-01-22 David Chester <[email protected]> + + * src/autohint/ahhint.c (ah_compute_stem_width): Small fix to the + stem width optimization. + +2003-01-22 David Turner <[email protected]> + + Adding a new API `FT_Get_BDF_Property' to retrieve the BDF + properties of a given PCF or BDF font. + + * include/freetype/ftbdf.h (FT_PropertyType): New enumeration. + (BDF_Property, BDF_PropertyRec): New structure. + FT_Get_BDF_Property): New function. + * include/freetype/internal/bdftypes.h: Include FT_BDF_H. + (BDF_GetPropertyFunc): New function pointer. + + * src/base/ftbdf.c (test_font_type): New helper function. + (FT_Get_BDF_Charset_ID): Use `test_font_type'. + (FT_Get_BDF_Property): New function. + + * src/bdf/bdfdrivr.c: Include FT_BDF_H. + (bdf_get_bdf_property, bdf_driver_requester): New functions. + (bdf_driver_class): Use `bdf_driver_requester'. + + * src/pcf/pcfdrivr.c: Include FT_BDF_H. + (pcf_get_bdf_property, pdc_driver_requester): New functions + (pcf_driver_class): Use `pcf_driver_requester'. + + * src/pcf/pcfread.c: Include `pcfread.h'. + (pcf_find_property): Decorate it with FT_LOCAL_DEF. + * src/pcf/pcfread.h: New file, providing `pcf_find_property'. + + * src/sfnt/ttload.c (sfnt_dir_check): Relaxed the `head' table size + verification to accept a few broken fonts who pad the size + incorrectly (the table should be padded, but its `size' field + shouldn't according to the specification). + +2003-01-18 Werner Lemberg <[email protected]> + + * builds/unix/ltmain.sh: Regenerated with `libtoolize --force + --copy' from libtool 1.4.3. + * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from + automake 1.7.1. + * builds/unix/configure: Regenerated with autoconf 2.54. + * builds/unix/config.guess, builds/unix/config.sub: Updated from + `config' CVS module at subversions.gnu.org. + * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from + `automake' CVS module at subversions.gnu.org. + +2003-01-15 David Turner <[email protected]> + + * include/freetype/freetype.h: Fixed documentation for + FT_Size_Metrics. + +2003-01-15 James Su <[email protected]> + + * src/gzip/ftgzip.c (ft_gzip_check_header): Bugfix: couldn't read + certain gzip-ed font files (typo: `&&' -> `&'). + +2003-01-15 Huw D M Davies <[email protected]> + + Added a Windows .FNT specific API (mostly for Wine). Also fixed a + nasty bug in the header loader which would cause invalid memory + overwrites. + + * include/freetype/config/ftheader.h (FT_WINFONTS_H): New macro + for ftwinfnt.h. + * include/freetype/internal/fnttypes.h: Include FT_WINFONTS_H. + (FNT_FontRec): Updated. + Move Windows FNT definition to... + * include/freetype/ftwinfnt.h: This new file. + (FT_WinFNT_HeaderRec): Rename `reserved2' to `reserved1'. + * src/base/ftwinfnt.c: New file, providing `FT_Get_WinFNT_Header'. + * src/winfonts/winfnt.c (winfnt_header_fields): Updated. + Rename `reserved2' to `reserved1'. + (fnt_font_load): Updated. + + * src/base/Jamfile, src/base/descrip.mms, src/base/rules.mk: + Updated. + +2003-01-14 Graham Asher <[email protected]> + + * include/freetype/ftglyph.h, src/base/ftglyph.c: Added `const' to + the type of the first argument to FT_Matrix_Multiply, which isn't + changed -- this adds documentation and convenience. + +2003-01-13 Graham Asher <[email protected]> + + * src/sfnt/ttload.c (tt_face_load_metrics) + [FT_CONFIG_OPTION_INCREMENTAL]: TrueType typefaces without + horizontal metrics (without the `hmtx' table) are now tolerated if + an incremental interface has been specified that has a + get_glyph_metrics function, implying that metrics will be supplied + from outside. This happens for certain Type 42 fonts passed from + GhostScript. + +2003-01-11 David Chester <[email protected]> + + Patches to the auto-hinter in order to slightly improve the output. + Note that everything is controlled through the new + FT_CONFIG_OPTION_CHESTER_HINTS defined in `ftoption.h'. There are + also individual FT_CONFIG_CHESTER_XXX macros to control individual + `features'. + + Note that all improvements are enabled by default, but can be + tweaked for optimization and testing purposes. The configuration + macros will most likely disappear in the short future. + + * include/freetype/config/ftoption.h + (FT_CONFIG_OPTION_CHESTER_HINTS): New macro. + (FT_CONFIG_CHESTER_{SMALL_F,ASCENDER,SERIF,STEM,BLUE_SCALE}) + [FT_CONFIG_OPTION_CHESTER_HINTS]: New macros to control individual + features. + + * src/autohint/ahglobal.c (blue_chars) [FT_CONFIG_CHESTER_SMALL_F]: + Add blue zone for `fijkdbh'. + * src/autohint/ahglobal.h (AH_IS_TOP_BLUE) + [FT_CONFIG_CHESTER_SMALL_F]: Use `AH_BLUE_SMALL_F_TOP'. + * src/autohint/ahglyph.c (ah_outline_compute_edges) + [FT_CONFIG_CHESTER_SERIF]: Use `AH_EDGE_SERIF'. + (ah_outline_compute_blue_edges) [FT_CONFIG_CHESTER_SMALL_F]: + Increase threshold for `best_dist'. + * src/autohint/ahhint.c (ah_compute_stem_width) + [FT_CONFIG_CHESTER_SERIF]: Provide new version for improved serif + handling. + (ah_align_linked_edge) [FT_CONFIG_CHESTER_SERIF]: Use special + version of `ah_compute_stem_width'. + (ah_hint_edges_3) [FT_CONFIG_CHESTER_STEM]: A new algorithm for stem + alignment when stem widths are less than 1.5 pixels wide centers the + stem slightly off-center of the center of a pixel (this increases + sharpness and consistency). + [FT_CONFIG_CHESTER_SERIF]: Use special version of + `ah_compute_stem_width'. + * src/autohint/ahtypes.h [FT_CONFIG_CHESTER_SMALL_F]: Add + `AH_BLUE_SMALL_F_TOP'. + +2003-01-11 David Turner <[email protected]> + + * include/freetype/internal/fnttypes.h (WinFNT_HeaderRec): Increase + size of `reserved2' to avoid memory overwrites. + +2003-01-08 Huw Davies <[email protected]> + + * src/winfonts/winfnt.c (winfnt_header_fields): Read 16 bytes into + `reserved2', not `reserved'. + + * src/base/ftobjs.c (find_unicode_charmap): Fixed the error code + returned when the font doesn't contain a Unicode charmap. This + allows FT2 to load `symbol.ttf' and a few others correctly since the + last release. + (open_face): Fix return value. + +2003-01-08 Owen Taylor <[email protected]> + + Implemented the FT_RENDER_MODE_LIGHT hinting mode in the auto and + postscript hinters. + + * src/autohint/ahtypes.h (AH_HinterRec): Add `do_stem_adjust'. + * src/autohint/ahhint.c (ah_compute_stem_width): Handle + hinter->do_stem_adjust. + (ah_hinter_load_glyph): Set hinter->do_stem_adjust. + + * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add `do_stem_adjust'. + * src/pshinter/pshalgo3.c (psh3_hint_align): Use `do_stem_adjust'. + (ps3_hints_apply): Handle FT_RENDER_MODE_LIGHT. + + * include/freetype/freetype.h (FT_Render_Mode): Add + FT_RENDER_MODE_LIGHT. + + * src/truetype/ttgload.c: Fixing the TrueType loader to handle + invalid composites correctly by limiting the recursion depth. + (TT_MAX_COMPOSITE_RECURSE): New macro. + (load_truetype_glyph): Add argument `recurse_count'. + Load a composite only if the numbers of contours is -1, emit error + otherwise. + (TT_Load_Glyph): Updated. + +2003-01-08 David Turner <[email protected]> + + * Jamrules, Jamfile, Jamfile.in, src/*/Jamfile: Small changes to + support the compilation of FreeType 2 as part of larger projects + with their own configuration options (only with Jam). + +2003-01-07 David Turner <[email protected]> + + * src/base/ftstroker.c: Probably the last bug-fixes to the stroker; + the API is likely to change, however. + (ft_stroke_border_close): Don't record empty paths. + (ft_stroke_border_get_counts): Increase `num_points' also in for loop. + (ft_stroke_border_export): Don't increase `write' twice in for loops. + (ft_stroker_outside): Handle `phi' together with `theta'. + (FT_Stroker_ParseOutline): New function. + + * src/base/fttrigon.c (FT_Angle_Diff): Fixing function: It returned + invalid values for large negative angle differences (resulting in + incorrect stroker computations, among other things). + + * src/cache/ftccache.c (ftc_node_hash_unlink): Removing incorrect + assertion, and changing code to avoid hash table size contraction. + + * src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms: Adding + `ftstroker' to default build, as optional component. + +2002-12-26 David Turner <[email protected]> + + * src/gzip/adler32.c, src/gzip/infblock.c, src/gzip/inflate.c, + src/gzip/inftrees.c, src/gzip/zconf.h, src/gzip/zlib.h, + src/gzip/zutil.h: Updates to allow compilation without compiler + warnings with LCC-Win32. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4. + * builds/unix/configure.ac (version_info): Increased to 9:3:3. + * builds/unix/configure: Regenerated. + * docs/VERSION.DLL: Updated. + +2002-12-23 Anthony Fok <[email protected]> + + * builds/unix/configure.ac, builds/unix/unix-cc.in (LINK_LIBRARY), + builds/unix/unix-def.in (SYSTEM_ZLIB): Small fix to configure + sub-system on Unix to allow other programs to correctly link with + zlib when needed. + +2002-12-19 David Turner <[email protected]> + + * include/freetype/internal/sfnt.h (SFNT_Load_Table_Func): New + function pointer. + + * include/freetype/tttables.h (FT_Load_Sfnt_Table): New function. + * src/base/ftobjs.c: Implement it. + + * src/sfnt/sfdriver.c (sfnt_get_interface): Handle `load_sfnt' + module request. + +2002-12-17 David Turner <[email protected]> + + * src/base/ftobjs.c (find_unicode_charmap): Added some comments to + better explain what's happening there. + (open_face): Included Graham Asher's fix to prevent faces without + Unicode charmaps from loading. + + * src/winfonts/winfnt.c: Included George Williams's fix to support + version 2 fonts correctly. + (winfnt_header_fields): Updated. + (fnt_font_load): Handle version 2 fonts. + (FNT_Load_Glyph): Updated. + +2002-12-16 David Turner <[email protected]> + + * docs/VERSION.DLL: Updating document to better explain the + differences between the three version numbers being used on Unix, as + well as providing an autoconf fragment provided by Lars Clausen. + + * src/smooth/ftgrays.c (gray_render_conic): Fixed small bug that + prevented Bézier arcs with negative vertical coordinates to be + rendered appropriately. + +2002-12-02 Antoine Leca <[email protected]> + + * src/base/ftobjs.c: Modified the logic to get Unicode charmaps. + Now it loads UCS-4 charmaps when there is one. + (find_unicode_charmap): New function. + (open_face): Refer to the above one. + (FT_Select_Charmap): Idem. + +2002-11-29 Antoine Leca <[email protected]> + + * include/freetype/ftgzip.h: Correct the name of the controlling + macro (was __FTXF86_H__ ...). + +2002-11-27 Vincent Caron <[email protected]> + + * builds/unix/unix-def.in, builds/unix/freetype-config.in, + builds/unix/configure.ac, src/gzip/rules.mk, src/gzip/ftgzip.c + [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Adding support for system zlib + installations if available on the target platform (Unix only). + +2002-11-23 David Turner <[email protected]> + + * src/cff/cffload.c (cff_charset_load, cff_encoding_load): Modified + charset loader to accept pre-defined charsets, even when the font + contains fewer glyphs. Also enforced more checks to ensure that we + never overflow the character codes array in the encoding. + +2002-11-22 Antoine Leca <[email protected]> + + * include/freetype/ttnameid.h: Updated to latest OpenType + specification. + +2002-11-18 David Turner <[email protected]> + + + * Version 2.1.3 released. + ========================= + + +2002-11-07 David Turner <[email protected]> + + * src/cache/ftcsbit.c (ftc_sbit_node_load): Fixed a small bug that + caused problems with embedded bitmaps. + + * src/otlayout/otlayout.h, src/otlyaout/otlconf.h, + src/otlayout/otlgsub.c, src/otlayout/otlgsub.h, + src/otlayout/otlparse.c, src/otlayout/otlparse.h, + src/otlayout/otlutils.h: Updating the OpenType Layout code, adding + support for the first GSUB lookups. Nothing that really compiles + for now though. + + * src/autohint/ahhint.c (ah_align_serif_edge): Disabled serif stem + width quantization. It produces slightly better shapes though this + is not distinguishable with many fonts. + Remove other dead code. + + * src/Jamfile, src/*/Jamfile: Simplified. + Use $(FT2_SRC_DIR). + +2002-11-06 David Turner <[email protected]> + + * include/freetype/freetype.h (FT_LOAD_TARGET_LIGHT): New macro. + (FT_LOAD_TARGET, FT_LOAD_TARGET_MODE): Use `& 15' instead of `& 7'. + +2002-11-05 David Turner <[email protected]> + + * include/freetype/config/ftoption.h, src/gzip/ftgzip.c: Added + support for the FT_CONFIG_OPTION_SYSTEM_ZLIB option, used to specify + the use of system-wide zlib. + + Note that this macro, as well as + TT_CONFIG_OPTION_BYTECODE_INTERPRETER, is not #undef-ed anymore. + This allows the build system to define them depending on the + configuration (typically by adding -D flags at compile time). + + * src/sfnt/ttcmap0.c (tt_face_build_cmaps): Removed compiler + warnings in optimized mode relative to the `volatile' local + variables. This was not a compiler bug after all, but the fact that + a pointer to a volatile variable is not the same as a volatile + pointer to a variable :-) + + The fix was to change + `volatile FT_Byte* p' + into + `FT_Byte* volatile p'. + + * src/pfr/pfrload.c (pfr_phy_font_load), src/pfr/pfrdrivr.c + (pfr_get_metrics), src/gzip/inftrees.c: Removed compiler warnings in + optimized modes. + + * src/gzip/*.[hc]: Modified our zlib copy in order to prevent + exporting any zlib function names outside of the component. This + prevents linking problems on some platforms, when applications want + to link FreeType _and_ zlib together. + +2002-11-05 Juliusz <[email protected]> + + * src/psaux/psobjs.c (ps_table_add): Modified increment loop in + order to implement exponential behaviour. + +2002-11-01 David Turner <[email protected]> + + Added PFR-specific public API. Fixed the kerning retrievel routine + (it returned invalid values when the outline and metrics resolution + differ). + + * include/freetype/ftpfr.h, include/freetype/internal/pfr.h: New + files. + + * include/freetype/internal/internal.h (FT_INTERNAL_PFR_H): New + macro for pfr.h. + + * src/base/ftpfr.c: New file. + * src/base/Jamfile, src/base/descrip.mms: Updated. + + * src/pfr/pfrdrivr.c: Include FT_INTERNAL_PFR_H. + (pfr_get_kerning, pfr_get_advance, pfr_get_metrics): New functions. + (pfr_service_rec): New format interface. + (pfr_driver_class): Use `pfr_service_rec'. + Replace `pfr_face_get_kerning' with `pfr_get_kerning'. + * src/pfr/pfrobjs.c: Remove dead code. + + * src/base/ftobjs.c (ft_glyphslot_clear): Small internal fix to + better support bitmap-based font formats. + + * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Fix handling of + `scale'. + Fix arguments to `FT_Vector_From_Polar'. + +2002-10-31 David Turner <[email protected]> + + Add support for automatic handling of gzip-compressed PCF files. + + * src/gzip/*: New files, taken from the zlib package (except + ftgzip.c). + + * include/freetype/ftgzip.h, src/gzip/ftgzip.c: New files. + * include/freetype/config/ftheader.h (FT_GZIP_H): New macro for + `ftgzip.h'. + + * src/pcf/pcfdriver.c: Include FT_GZIP_H and FT_ERRORS_H. + (PCF_Face_Init): If normal open fails, try to open gzip stream. + (PCF_Face_Done): Close gzip stream. + + * include/freetype/internal/pcftypes.h (PCF_Public_FaceRec), + src/pcf/pcf.h (PCF_FaceRec): Add `gzip_stream' and `gzip_source'. + + * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_USE_ZLIB): + New macro. + (T1_CONFIG_OPTION_DISABLE_HINTER, FT_CONFIG_OPTION_USE_CMAPS + FT_CONFIG_OPTION_NO_CONVENIENCE_FUNCS, + FT_CONFIG_OPTION_ALTERNATE_GLYPH_FORMATS): Removed. + + (FT_EXPORT, FT_EXPORT_DEF, FT_DEBUG_LEVEL_ERROR, + FT_DEBUG_LEVEL_TRACE, FT_DEBUG_MEMORY): Comment out definitions so + that platform specific configuration file can override. + + * include/freetype/internal/ftstream.h: Include FT_SYSTEM_H. + +2002-10-30 David Turner <[email protected]> + + * FreeType 2.1.3rc3 released. + +2002-10-25 David Turner <[email protected]> + + * include/freetype/ftcache.h (FT_POINTER_TO_ULONG): New macro. + (FTC_FACE_ID_HASH): Rewritten, using FT_POINTER_TO_ULONG. + +2002-10-22 Giuseppe Ghibò <[email protected]> + + * include/freetype/freetype.h (FT_Encoding): Fix entry for latin-2. + +2002-10-07 Werner Lemberg <[email protected]> + + * include/freetype/freetype.h (FT_Open_Face): Use `const' for `args' + (suggested by Graham). + * src/base/ftobjs.c (FT_Open_Face): Updated. + (ft_input_stream_new): Ditto. + +2002-10-05 David Turner <[email protected]> + + Adding support for embedded bitmaps to the PFR driver, and rewriting + its kerning loader/handler to use all kerning pairs in a physical + font (and not just the first item). + + * src/pfr/pfr.c: Include `pfrsbit.c'. + * src/pfr/pfrgload.c: Include `pfrsbit.h'. + * src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): Rewritten. + (pfr_phy_font_done, pfr_phy_font_load): Updated. + * src/pfr/pfrobks.c: Include `pfrsbit.h'. + (pfr_face_init): Handle kerning and embedded bitmaps. + (pfr_slot_load): Load embedded bitmaps. + (PFR_KERN_INDEX): Removed. + (pfr_face_get_kerning): Rewritten. + * src/pfr/pfrsbit.c, src/pfr/pfrsbit.h: New files. + * src/pfr/pfrtypes.h (PFR_KernItemRec): New structure. + (PFR_KERN_INDEX): New macro. + (PFR_PhyFontRec): Add items for kerning and embedded bitmaps. + * src/pfr/Jamfile (_sources) [FT2_MULTI]: Add `pfrsbit'. + + * src/base/ftobjs.c (FT_Load_Glyph): Don't load bitmap fonts if + FT_LOAD_NO_RECURSE is set. + Load embedded bitmaps only if FT_LOAD_NO_BITMAP isn't set. + + * src/tools/docmaker/content.py, src/tools/docmaker/sources.py, + src/tools/docmaker/tohtml.py: Fixing a few nasty bugs. + + * src/sfnt/ttcmap0.c (tt_cmap4_validate): The validator for format 4 + sub-tables is now capable of dealing with invalid `length' fields at + the start of the sub-table. This allows fonts like `mg______.ttf' + (i.e. Marriage) to return accurate charmaps. + + * docs/CHANGES: Updated. + +2002-10-05 Werner Lemberg <[email protected]> + + * src/smooth/ftgrays.c (SUBPIXELS): Add cast to `TPos'. + Update all callers. + (TRUNC): Add cast to `TCoord'. + Update all callers. + (TRaster): Use `TPos' for min_ex, max_ex, min_ey, max_ey, and + last_ey. + Update all casts. + (gray_render_line): Fix casts for `p' and `first'. + +2002-10-02 Detlef Würkner <[email protected]> + + * src/bdf/bdflib.c (bdf_load_font): Allocate the _bdf_parse_t + structure with FT_ALLOC instead of using the stack. + +2002-09-27 Werner Lemberg <[email protected]> + + * src/include/freetype/internal/tttypes.h (num_sbit_strikes, + num_sbit_scales): Use `FT_ULong'. + * src/sfnt/sfobjs.c (sfnt_load_face): Updated accordingly. + * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Ditto. + (find_sbit_image): Remove cast. + * src/raster/ftrend1.c (ft_raster1_render): Fix cast. + +2002-09-27 Wolfgang Domröse <[email protected]> + + * src/sfnt/ttload.c (tt_face_load_names): Use cast. + * src/sfnt/ttcmap.c (code_to_next2): Use long constant. + (code_to_index4): Use cast. + (code_to_index8_12): Fix cast. + * src/sfnt/ttcmap0.c (tt_cmap4_char_next, tt_cmap8_char_index, + tt_cmap12_char_index): Use cast for `result'. + (tt_face_build_cmaps): Use cast. + * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_ucs4): Use cast for + `code'. + (sfnt_load_face): Use FT_Int32 for `flags'. + + * src/smooth/ftgrays.c (gray_render_scanline, gray_render_line, + gray_compute_cbox, gray_convert_glyph, gray_raster_reset): Add casts + to `TCoord' and `int'. + More 16bit fixes. + s/FT_Pos/TPos/. + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Add casts. + +2002-09-26 Werner Lemberg <[email protected]> + + * src/sfnt/ttpost.c (load_post_names, tt_face_free_ps_names, + tt_face_get_ps_name): Replace switch statement with if clauses to + make it more portable. + + * src/cff/cffobjs.c (cff_face_init): Ditto. + + * include/freetype/ftmodule.h (FT_Module_Class): Use `FT_Long' for + `module_size'. + * include/freetype/ftrender.h (FT_Glyph_Class_): Use `FT_Long' for + `glyph_size'. + + * src/base/ftobjs.c (FT_Render_Glyph): Change second parameter to + `FT_Render_Mode'. + (FT_Render_Glyph_Internal): Change third parameter to + `FT_Render_Mode'. + * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Change second parameter + to `FT_Render_Mode'. + + * src/raster/ftrend1.c (ft_raster1_render): Change third parameter + to `FT_Render_Mode'. + * src/smooth/ftsmooth.c (ft_smooth_render, ft_smooth_render_lcd, + ft_smooth_render_lcd_v): Ditto. + (ft_smooth_render_generic): Change third and fifth parameter to + `FT_Render_Mode'. + + * include/freetype/freetype.h, include/freetype/internal/ftobjs.h, + include/freetype/ftglyph.h: Updated. + + * src/cff/cffdrivr.c (Load_Glyph), src/pcf/pcfdriver.c + (PCF_Glyph_Load), src/pfr/pfrobjs.c (pfr_slot_load), + src/winfonts/winfnt.c (FNT_Load_Glyph), src/t42/t42objs.c + (T42_GlyphSlot_Load), src/bdf/bdfdrivr.c (BDF_Glyph_Load): Change + fourth parameter to `FT_Int32'. + + * src/pfr/pfrobjs.c (pfr_face_init): Add two missing parameters + and declare them as unused. + + * src/cid/cidparse.h (CID_Parser): Use FT_Long for `postscript_len'. + + * src/psnames/psnames.h (PS_Unicode_Value_Func): Change return + value to FT_UInt32. + * src/psnames/psmodule.c (ps_unicode_value, ps_build_unicode_table): + Updated accordingly. + +2002-09-26 Wolfgang Domröse <[email protected]> + + * src/cff/cffdrivr.c (Get_Kerning): Use FT_Long for `middle'. + (cff_get_glyph_name): Use cast for result of ft_strlen. + * src/cff/cffparse.c (cff_parse_real): User cast for assigning + `exp'. + * src/cff/cffload.c (cff_index_get_pointers): Use FT_ULong for + some local variables. + (cff_charset_load, cff_encoding_load): Use casts to FT_UInt for some + switch statements. + (cff_font_load): Use cast in call to CFF_Load_FD_Select. + * src/cff/cffobjs.c (cff_size_init): Use more casts. + (cff_face_init): Use FT_Int32 for `flags'. + * src/cff/cffgload.c (cff_operator_seac): Use cast for assigning + `adx' and `ady'. + (cff_decoder_parse_charstrings): Use FT_ULong for third parameter. + Use more casts. + * src/cff/cffcmap.c (cff_cmap_unicode_init): Use cast for `count'. + + * src/cid/cidload.c (cid_read_subrs): Use FT_ULong for `len'. + * src/cid/cidgload.c (cid_load_glyph): Add missing cast for + `cid_get_offset'. + + * src/psaux/t1decode.c (t1_decoder_parse_charstrings) <18>: Use + cast for `num_points'. + (t1_decoder_init): Use cast for assigning `decoder->num_glyphs'. + + * src/base/ftdebug.c (ft_debug_init): Use FT_Int. + * include/freetype/internal/ftdriver.h (FT_Slot_LoadFunc): Use + `FT_Int32' for fourth parameter. + * src/base/ftobjs.c (open_face): Use cast for calling + clazz->init_face. + + * src/raster/ftraster.c (Set_High_Precision): Use `1' instead of + `1L'. + (Finalize_Profile_Table, Line_Up, ft_black_init): Use casts. + * src/raster/ftrend1.c (ft_raster1_render): Ditto. + + * src/sfnt/sfnt_dir_check: Compare `magic' with unsigned long + constant. + +2002-09-26 Detlef Würkner <[email protected]> + + * builds/amiga/include/freetype/config/ftmodule.h: Updated. + +2002-09-25 David Turner <[email protected]> + + * src/autohint/ahtypes.h (AH_HINT_METRICS): Disabling metrics + hinting in the auto-hinter. This produces much better anti-aliased + text. + + * docs/CHANGES: Updating the changes documentation. + +2002-09-25 Anthony Fok <[email protected]> + + * src/sfnt/ttcmap0.c (tt_cmap4_validate, tt_cmap4_char_index, + tt_cmap4_char_next): Added support for opens___.ttf (it contains a + charmap that uses offset=0xFFFFU instead of 0x0000 to indicate a + missing glyph). + +2002-09-21 Wolfgang Domröse <[email protected]> + + * src/truetype/ttdriver.c (Load_Glyph): Fourth parameter must be + FT_Int32. + * src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph): + Ditto. + +2002-09-19 Wolfgang Domröse <[email protected]> + + More 16bit fixes. + + * src/autohint/ahglobal.c (sort_values): Use FT_Pos for `swap'. + (ah_hinter_compute_widths): Use FT_Pos for `dist'. + Use AH_MAX_WIDTHS. + * src/autohint/ahglyph.c (ah_outline_scale_blue_edges): Use FT_Pos + for `delta'. + (ah_outline_compute_edges): Replace some ints with FT_Int and + FT_Pos. + (ah_test_extrema): Clean up code. + (ah_get_orientation): Use 4 FT_Int variables instead of FT_BBox to + hold indices. + * src/autohint/ahtypes.h (AH_SegmentRec): Change type of `score' + to FT_Pos. + +2002-09-19 Werner Lemberg <[email protected]> + + * builds/unix/config.guess, builds/unix/config.sub: Updated to + recent versions. + +2002-09-18 David Turner <[email protected]> + + * src/base/ftobjs.c (FT_Library_Version): Bugfix. + + * FreeType 2.1.3rc2 (release candidate 2) is released! + +2002-09-17 David Turner <[email protected]> + + * include/freetype/freetype.h, include/freetype/ftimage.h, + include/freetype/ftstroker.h, include/freetype/ftsysio.h, + include/freetype/ftsysmem.h, include/freetype/ttnameid.h: Updating + the in-source documentation. + + * src/tools/docmaker/tohtml.py: Updating the HTML formatter in the + DocMaker tool. + + * src/tools/docmaker.py: Removed. + +2002-09-17 Werner Lemberg <[email protected]> + + More 16bit fixes. + + * src/psaux/psobjs.c (reallocate_t1_table): Use FT_Long for + second parameter. + +2002-09-16 Werner Lemberg <[email protected]> + + 16bit fixes from Wolfgang Domröse. + + * src/type1/t1parse.h (T1_ParserRec): Change type of `base_len' + and `private_len' to FT_Long. + * src/type1/t1parse.c (T1_Get_Private_Dict): Remove cast for + `private_len'. + * src/type1/t1load.c: Use FT_Int cast for most calls of T1_ToInt. + Use FT_PtrDist where appropriate. + (parse_encoding): Use FT_Long for `count' and `n'. + (read_binary_data): Use FT_Long* for second parameter. + * src/type1/t1afm.c (afm_atoindex): Use FT_PtrDist. + + * src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused label. + * src/pshinter/pshalgo3.c (psh3_hint_align): Remove unused variable. + +2002-09-14 Werner Lemberg <[email protected]> + + Making ftgrays.c compile stand-alone again. + + * include/freetype/ftimage.h: Include ft2build.h only if _STANDALONE_ + isn't defined. + * src/smooth/ftgrays.c [_STANDALONE_]: Define ft_memset, + FT_BEGIN_HEADER, FT_END_HEADER. + (FT_MEM_ZERO): Define. + (TRaster) [GRAYS_USE_GAMMA]: Use `unsigned char' instead of FT_Byte. + (gray_render_span, gray_init_gamma): Don't use `FT_UInt'. + Don't cast with `FT_Byte'. + (grays_init_gamma): Don't use `FT_UInt'. + +2002-09-14 Werner Lemberg <[email protected]> + + * src/base/ftinit.c (FT_Add_Default_Modules): Improve error message. + * src/pcf/pcfdriver.c (PCF_Face_Done): Improve tracing message. + * include/freetype/config/ftoption.h (FT_MAX_MODULES): Increased + to 32. + +2002-09-10 Werner Lemberg <[email protected]> + + * builds/unix/configure.ac (version_info): Set to 9:2:3. + * builds/unix/configure: Regenerated. + * docs/VERSION.DLL: Updated. + +2002-09-09 David Turner <[email protected]> + + * src/pshinter/pshalgo2.c (psh2_glyph_find_strong_points), + src/pshinter/pshalgo3.c (psh3_glyph_find_strong_points): Adding fix + to prevent seg fault when hints are provided in an empty glyph. + + * src/cache/ftccache.i (GEN_CACHE_LOOKUP) [FT_DEBUG_LEVEL_ERROR]: + Removed conditional code. This fixes a bug that prevented + compilation in debug mode of template instantiation. + + * include/freetype/ftimage.h: Removed incorrect `zft_' definitions + and updated constants documentation comments. + + * src/cff/cffparse.c (cff_parser_run): Fixed the CFF table loader. + It didn't accept empty arrays, and this prevented the loading of + certain fonts. + + * include/freetype/freetype.h (FT_FaceRec): Updating documentation + comment. The `descender' value is always *negative*, not positive. + +2002-09-09 Owen Taylor <[email protected]> + + * src/pcf/pcfdriver.c (PCF_Glyph_Load): Fixing incorrect computation + of bitmap metrics. + +2002-09-08 David Turner <[email protected]> + + Various updates to correctly support sub-pixel rendering. + + * include/freetype/config/ftmodule.h: Add two renderers for LCD. + + * src/base/ftobjs.c (FT_Load_Glyph): Updated. + + * src/smooth/ftsmooth.c (ft_smooth_render_lcd, + ft_smooth_render_lcd_v): Set FT_PIXEL_MODE_LCD and + FT_PIXEL_MODE_LCD_V, respectively. + + * include/freetype/cache/ftcimage.h (FTC_ImageTypeRec): New + structure. + Updated all users. + (FTC_ImageDesc): Removed. + (FTC_ImageCache_Lookup): Second parameter is now of type + `FTC_ImageType'. + Updated all users. + (FTC_IMAGE_DESC_COMPARE): Updated and renamed to... + (FTC_IMAGE_TYPE_COMPARE): This. + (FTC_IMAGE_DESC_HASH): Updated and renamed to... + (FTC_IMAGE_TYPE_HASH): This. + + * include/freetype/cache/ftcsbits.h (FTC_SBitRec): Field `num_grays' + replaced with `max_grays'. + `pitch' is now FT_Short. + (FTC_SBitCache_Lookup): Second parameter is now of type + `FTC_ImageType'. + Updated all users. + + * src/cache/ftcimage.c (FTC_ImageQueryRec, FTC_ImageFamilyRec): + Updated. + (ftc_image_node_init): Updated. + Moved code to convert type flags to load flags to... + (FTC_Image_Cache_Lookup): This function. + (ftc_image_family_init): Updated. + + * src/cache/ftcsbit.c (FTC_SBitQueryRec, FTC_SBitFamilyRec): + Updated. + (ftc_sbit_node_load): Updated. + Moved code to convert type flags to load flags to... + (FTC_SBitCache_Lookup): This function. + + * src/autohint/ahtypes.h (AH_HinterRec): Replace `no_*_hints' with + `do_*_snapping'. + Update all users (with negation). + * src/autohint/ahhint.c (ah_compute_stem_width): Fix threshold for + `dist' for `delta' < 40. + + * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Replace `no_*_hints' with + `do_*_snapping'. + Update all users (with negation). + * src/pshinter/pshalgo3.c (psh3_dimension_quantize_len): New + function. + (psh3_hint_align): Use it. + Improve hinting code. + [STRONGER]: Removed. + (STRONGER): Removed. + + * include/freetype/freetype.h (FT_Set_Hint_Flags, FT_HINT_*): + Removed. + +2002-09-05 Werner Lemberg <[email protected]> + + * src/cid/cidobjs.c (CID_Size_Init): Renamed to... + (cid_size_init): This. + * src/psaux/psobjs.c (T1_Builder_Add_Point1): Renamed to... + (t1_builder_add_point1): This. + + Updated all affected code. + + * src/pshinter/pshalgo3.c (psh3_hint_align): Fix compiler warnings. + * src/type1/t1gload.c (T1_Compute_Max_Advance): Ditto. + +2002-09-04 David Turner <[email protected]> + + * include/freetype/freetype.h: Corrected the definition of + ft_encoding_symbol to be FT_ENCODING_MS_SYMBOL (instead of + the erroneous FT_ENCODING_SYMBOL). + + * builds/unix/unix-def.in (datadir): Initialize it (thanks to + Anthony Fok). + +2002-08-29 David Turner <[email protected]> + + Slight modification to the Postscript hinter to slightly increase + the contrast of smooth hinting. This is very similar to what the + auto-hinter does when it comes to stem width computations. However, + it produces better results with well-hinted fonts. + + * include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Add hint + mode to `init' member function. + (T1_DecoderRec): Add hint mode. + * include/freetype/internal/pshints (T1_Hints_ApplyFunc, + T2_Hints_ApplyFunc): Pass `hint_mode', not `hint_flags'. + * src/psaux/t1decode.c (t1_decoder_init): Add hint mode argument. + * src/pshinter/pshalgo1.c (ps1_hints_apply): Pass hint mode, not + hint flags. + * src/pshinter/pshalgo2.c (ps2_hints_apply): Ditto. + * src/pshinter/pshalgo3.c (ps3_hints_apply): Ditto. + (STRONGER): New macro. + (psh3_hint_align, psh3_hint_table_align_hints): Pass `glyph' instead + of `hint_flags'. + Implement announced changes. + * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add flags to control + vertical and horizontal hints and snapping. + + * README, docs/CHANGES: Updating for the 2.1.3 release. + +2002-08-27 David Turner <[email protected]> + + * Massive re-formatting changes to many, many source files. I don't + want to list them all here. The operations performed were all + logical transformations of the sources: + + - trying to convert all enums and constants to CAPITALIZED_STYLE, + #with define definitions like + + #define my_old_constants MY_NEW_CONSTANT + + - big, big update of the documentation comments + + * include/freetype/freetype.h, src/base/ftobjs.c, + src/smooth/ftsmooth.c, include/freetype/ftimage.h: Adding support + for LCD-optimized rendering though the new constants/enums: + + FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V + FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V + + This is still work in progress, don't expect everything to work + correctly though most of the features have been implemented. + + * Adding new FT_LOAD_XXX flags, used to specify both hinting and + rendering targets: + + FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering + FT_LOAD_TARGET_MONO :: monochrome bitmaps + FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated + hinting & rendering + FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated + hinting & rendering + + Note that FT_LOAD_TARGET_NORMAL is 0, which means that the default + behaviour of the font engine is _unchanged_. + + * include/freetype/ftimage.h + (FT_Outline_{Move,Line,Conic,Cubic}To_Func): Renamed to... + (FT_Outline_{Move,Line,Conic,Cubic}ToFunc): This. + (FT_Raster_Span_Func): Renamed to ... + (FT_SpanFunc): This. + (FT_Raster_{New,Done,Reset,Set_Mode,Render}_Func): Renamed to ... + (FT_Raster_{New,Done,Reset,SetMode,Render}Func}: This. + + Updated all affected code. + + * include/freetype/ftrender.h + (FT_Glyph_{Init,Done,Transform,BBox,Copy,Prepare}_Func): Renamed + to ... + (FT_Glyph_{Init,Done,Transform,GetBBox,Copy,Prepare}Func): This. + (FTRenderer_{render,transform,getCBox,setMode}): Renamed to ... + (FT_Renderer_{RenderFunc,TransformFunc,GetCBoxFunc,SeteModeFunc}): + This. + + Updated all affected code. + + * src/autohint/ahtypes.h (AH_Point, AH_Segment, AH_Edge, AH_Globals, + AH_Face_Globals, AH_Outline, AH_Hinter): These typedefs are now + pointers to the corresponding `*Rec' structures. All source files + have been updated accordingly. + + * src/cff/cffgload.c (cff_decoder_init): Add hint mode as parameter. + * src/cff/cffgload.h (CFF_Decoder): Add `hint_mode' element. + + * src/cid/cidgload.c (CID_Compute_Max_Advance): Renamed to... + (cid_face_compute_max_advance): This. + (CID_Load_Glyph): Renamed to... + (cid_slot_load_glyph): This. + * src/cid/cidload.c (CID_Open_Face): Renamed to... + (cid_face_open): This. + * src/cid/cidobjs.c (CID_GlyphSlot_{Done,Init}): Renamed to... + (cid_slot_{done,init}): This. + (CID_Size_{Get_Globals_Funcs,Done,Reset): Renamed to... + (cid_size_{get_globals_funcs,done,reset): This. + (CID_Face_{Done,Init}): Renamed to... + (cid_face_{done,init}): This. + (CID_Driver_{Done,Init}: Renamed to... + (cid_driver_{done,init}: This. + * src/cid/cidparse.c (CID_{New,Done}_Parser): Renamed to... + (cid_parser_{new,done}): This. + * src/cid/cidparse.h (CID_Skip_{Spaces,Alpha}): Renamed to... + (cid_parser_skip_{spaces,alpha}): This. + (CID_To{Int,Fixed,CoordArray,FixedArray,Token,TokenArray}): Renamed + to... + (cid_parser_to_{int,fixed,coord_array,fixed_array,token,token_array}): + This. + (CID_Load_{Field,Field_Table): Renamed to... + (cid_parser_load_{field,field_table}): This. + * src/cid/cidriver.c (CID_Get_Interface): Renamed to... + (cid_get_interface): This. + + Updated all affected code. + + * src/psaux/psobjs.c (PS_Table_*): Renamed to... + (ps_table_*): This. + (T1_Builder_*): Renamed to... + (t1_builder_*): This. + * src/psaux/t1decode.c (T1_Decoder_*): Renamed to... + (t1_decoder_*): This. + + * src/psnames/psmodule.c (PS_*): Renamed to... + (ps_*): This. + + Updated all affected code. + + * src/sfnt/sfdriver (SFNT_Get_Interface): Renamed to... + (sfnt_get_interface): This. + * src/sfnt/sfobjs.c (SFNT_*): Renamed to... + (sfnt_*): This. + * src/sfnt/ttcmap.c (TT_CharMap_{Load,Free}): Renamed to... + (tt_face_{load,free}_charmap): This. + * src/sfnt/ttcmap0.c (TT_Build_CMaps): Renamed to... + (tt_face_build_cmaps): This. + * src/sfnt/ttload.c (TT_*): Renamed to... + (tt_face_*): This. + * src/sfnt/ttpost.c (TT_Post_Default_Names): Renamed to... + (tt_post_default_names): This. + (Load_*): Renamed to... + (load_*): This. + (TT_*): Renamed to... + (tt_face_*): This. + * src/sfnt/ttsbit.c (TT_*): Renamed to... + (tt_face_*): This. + ({Find,Load,Crop}_*): Renamed to... + ({find,load,crop}_*): This. + + Updated all affected code. + + * src/smooth/ftsmooth.c (ft_smooth_render): Renamed to... + (ft_smooth_render_generic): This. + Make function more generic by adding vertical and horizontal scaling + factors. + (ft_smooth_render, ft_smooth_render_lcd, ft_smooth_render_lcd_v): + New functions. + + (ft_smooth_locd_renderer_class, ft_smooth_lcdv_renderer_class): New + classes. + + * src/truetype/ttobjs.c (TT_{Done,New}_GlyphZone): Renamed to... + (tt_glyphzone_{done,new}): This. + (TT_{Face,Size,Driver}_*): Renamed to... + (tt_{face,size,driver}_*): This. + * src/truetype/ttpload.c (TT_Load_Locations): Renamed to... + (tt_face_load_loca): This. + (TT_Load_Programs): Renamed to... + (tt_face_load_fpgm): This. + (TT_*): Renamed to... + (tt_face_*): This. + +2002-08-27 Werner Lemberg <[email protected]> + + * docs/VERSION.DLL: New file. + +2002-08-23 Graham Asher <[email protected]> + + * src/cff/cffgload.c (cff_operator_seac) + [FT_CONFIG_OPTION_INCREMENTAL]: Incremental fonts (actually not + incremental in the case of CFF but just using callbacks to get glyph + recipes) pass the character code, not the glyph index, to the + get_glyph_data function; they have no valid charset table. + + * src/cff/cffload.c (cff_font_load): Removed special cases for + FT_CONFIG_OPTION_INCREMENTAL, which are no longer necessary; CFF + fonts provided via the incremental interface now have to conform + more closely to the CFF font format. + + * src/cff/cffload.h (cff_font_load): Removed argument now unneeded. + + * src/cff/cffobjs.c (cff_face_init): Changed call to cff_font_load + to conform with new signature. + +2002-08-22 David Turner <[email protected]> + + * src/base/ftobject.c, src/base/ftsynth.c, src/base/ftstroker.c, + src/bdf/bdfdrivr.c: Removed compiler warnings. + +2002-08-21 Werner Lemberg <[email protected]> + + * src/pshinter/pshalgo3.c (psh3_glyph_compute_inflections, + psh3_glyph_compute_extrema, psh3_hint_table_find_strong_point): Fix + compiler warnings and resolve shadowing of local variables. + +2002-08-21 David Turner <[email protected]> + + The automatic and Postscript hinter now automatically detect + inflection points in glyph outlines and treats them specially. This + is very useful to prevent nasty effect like the disappearing + diagonals of `S' and `s' in many, many fonts. + + * src/autohint/ahtypes.h (ah_flag_inflection): New macro. + * src/autohint/ahangles.c (ah_angle_diff): New function. + * src/autohint/ahangles.h: Updated. + * src/autohint/ahglyph.c (ah_outline_compute_inflections): New + function. + (ah_outline_detect_features): Use it. + * src/autohint/ahhint.c (ah_hinter_align_strong_points) + [!AH_OPTION_NO_WEAK_INTERPOLATION]: Handle inflection. + + * src/tools/docmaker/docmaker.py, src/tools/docmaker/utils.py, + src/tools/docmaker/tohtml.py: Updating the DocMaker tool. + + * include/freetype/freetype.h: Changing the type of the `load_flags' + parameter from `FT_Int' to `FT_Int32', this in order to support more + options. This should only break binary and/or source compatibility + on 16-bit platforms (Atari?). + (FT_LOAD_NO_AUTOHINT): New macro. + + * src/base/ftobjs.c (FT_Load_Glyph): Updated. + Handle FT_LOAD_NO_AUTOHINT. + (FT_Load_Char): Updated. + + * src/pshinter/pshalgo3.c, src/base/ftobjs.c, src/base/ftobject.c, + src/autohint/ahglyph.c, include/freetype/freetype.h: Fixing typos + and removing compiler warnings. + +2002-08-20 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c (TT_Get_Metrics): Add guard for k = 0. + +2002-08-20 David Turner <[email protected]> + + * src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c, + src/pshinter/pshglob.c, src/pshinter/pshrec.c, + src/autohint/ahmodule.c [DEBUG_HINTER]: Removing compiler warnings + (only used in development builds anyway). + + Improve support of local extrema and stem edge points. + + * src/pshinter/pshalgo3.h (PSH3_Hint_TableRec): Use PSH3_ZoneRec + for `zones'. + (PSH3_DIR_UP, PSH3_DIR_DOWN): Exchange values. + (PSH3_DIR_HORIZONTAL, PSH3_DIR_VERTICAL): New macros. + (PSH3_DIR_COMPARE, PSH3_DIR_IS_HORIZONTAL, PSH3_IS_VERTICAL): New + macros. + (PSH3_POINT_INFLEX): New enum. + (psh3_point_{is,set}_{off,inflex}): New macros. + (PSH3_POINT_{EXTREMUM,POSITIVE,NEGATIVE,EDGE_MIN,EDGE_MAX): New + enum values. + (psh3_point_{is,set}_{extremum,positive,negative,edge_min,edge_max}): + New macros. + (PSH3_PointRec): New members `flags2' and `org_v'. + (PSH3_POINT_EQUAL_ARG, PSH3_POINT_ANGLE): New macros. + + * src/pshinter/pshalgo3.c [DEBUG_HINTER]: Removing compiler + warnings. + (COMPUTE_INFLEXS): New macro. + (psh3_hint_align): Simplify some basic arithmetic computations. + (psh3_point_is_extremum): Removed. + (psh3_glyph_compute_inflections) [COMPUTE_INFLEXS]: New function. + (psh3_glyph_init) [COMPUTE_INFLEXS]: Use it. + (psh3_glyph_compute_extrema): New function. + (PSH3_STRONG_THRESHOLD): Increased to 30. + (psh3_hint_table_find_strong_point): Improved. + (psh3_glyph_find_strong_points, + psh3_glyph_interpolate_strong_points): Updated. + (psh3_hints_apply): Use psh3_glyph_compute_extrema. + + * test/gview.c (draw_ps3_hint, ps3_draw_control_points): New + functions. + Other small updates. + + * Jamfile: Small updates. + +2002-08-18 Arkadiusz Miskiewicz <[email protected]> + + * builds/unix/install.mk (install, uninstall): Add $(DESTDIR) to + make life easier for package maintainers. + +2002-08-18 Werner Lemberg <[email protected]> + + * src/pcf/pcfdriver.c (PCF_Glyph_Load): Fix computation of + horiBearingX. + * src/bdf/bdfdrivr.c (BDF_GlyphLoad): Fix computation of + horiBearingY. + +2002-08-16 George Williams <[email protected]> + + Add support for Apple composite glyphs. + + * include/freetype/config/ftoption.h + (TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED): New macro. + + * src/truetype/ttgload.c (OVERLAP_COMPOUND, SCALED_COMPONENT_OFFSET, + UNSCALED_COMPONENT_OFFSET): New macros for additional OpenType + glyph loading flags. + (load_truetype_glyph): Implement it. + +2002-08-16 Werner Lemberg <[email protected]> + + * src/cff/cffgload.c (cff_free_glyph_data), + src/cff/cffload.c (cff_font_load): Use FT_UNUSED. + +2002-08-15 Werner Lemberg <[email protected]> + + * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Initialize `error'. + * src/sfnt/sfobjs.c (SFNT_Load_Face): Fix compiler warning. + +2002-08-15 Graham Asher <[email protected]> + + Implemented the incremental font loading system for the CFF driver. + Tested using the GhostScript-to-FreeType bridge (under development). + + * src/cff/cffgload.c (cff_get_glyph_data, cff_free_glyph_data): New + functions. + (cff_operator_seac, cff_compute_max_advance, cff_slot_load): Use + them. + * src/cff/cffload.c (cff_font_load): Add `face' parameter. + Load charset and encoding only if there are glyphs. + [FT_CONFIG_OPTION_INCREMENTAL]: Incremental fonts don't need + character recipes. + * src/cff/cffload.h, src/cff/cffobjs.c: Updated. + + * src/cid/cidgload.c (cid_load_glyph) + [FT_CONFIG_OPTION_INCREMENTAL]: Corrected the incremental font + loading implementation to use the new system introduced on + 2002-08-01. + +2002-08-06 Werner Lemberg <[email protected]> + + * src/cff/cffcmap.c: Remove compiler warnings. + * src/cache/ftccache.c, src/cache/ftccache.i, + src/pfr/pfrload.c, src/pfr/pfrgload.c: s/index/idx/. + * src/cff/cffload.c: s/select/fdselect/. + * src/raster/ftraster.c: s/wait/waiting/. + +2002-08-01 Graham Asher <[email protected]> + + * src/type1/t1load.c (T1_Open_Face): Tolerate a face with no + charstrings if there is an incremental loading interface. Type 1 + faces supplied by PostScript interpreters like GhostScript will + typically not provide any charstrings at load time, so this is + essential if they are to work. + +2002-08-01 Graham Asher <[email protected]> + + Modified incremental loading interface to be closer to David's + preferences. The header freetype.h is not now affected, the + interface is specified via an FT_Parameter, the pointer to the + interface is hidden in an internal part of the face record, and all + the definitions are in ftincrem.h. + + * include/freetype/freetype.h [FT_CONFIG_OPTION_INCREMENTAL]: + Removed. + * include/freetype/internal/ftobjs.h [FT_CONFIG_OPTION_INCREMENTAL]: + Include FT_INCREMENTAL_H. + (FT_Face_InternalRec) [FT_CONFIG_OPTION_INCREMENTAL]: Add + `incremental_interface'. + + * src/base/ftobjs.c (open_face, FT_Open_Face) + [FT_CONFIG_OPTION_INCREMENTAL]: Updated. + * src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]: + Updated. + + * src/truetype/ttgload.c (load_truetype_glyph) + [FT_CONFIG_OPTION_INCREMENTAL]: Updated. + Free loaded glyph data properly. + (compute_glyph_metrics, TT_Load_Glyph) + [FT_CONFIG_OPTION_INCREMENTAL]: Updated. + * src/truetype/ttobjs.c (TT_Face_Init) + [FT_CONFIG_OPTION_INCREMENTAL]: Updated. + + * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String) + [FT_CONFIG_OPTION_INCREMENTAL]: Updated. + (T1_Parse_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Updated. + Free loaded glyph data properly. + (T1_Load_Glyph): Updated. + [FT_CONFIG_OPTION_INCREMENTAL]: Free loaded glyph data properly. + +2002-07-30 David Turner <[email protected]> + + * include/freetype/ftincrem.h: Adding new experimental header file + to demonstrate a `cleaner' API to support incremental font loading. + + * include/freetype/config/ftheader.h (FT_INCREMENTAL_H): New macro. + + * src/tools/docmaker/*: Adding new (more advanced) version of + the DocMaker tool, using Python's sophisticated regexps. + +2002-07-28 Werner Lemberg <[email protected]> + + s/ft_memset/FT_MEM_SET/. + s/FT_MEM_SET/FT_MEM_ZERO/ where appropriate. + +2002-07-27 Werner Lemberg <[email protected]> + + * src/sfnt/ttload.c (sfnt_dir_check): Make it work with TTCs. + +2002-07-26 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c (load_truetype_glyph) + [FT_CONFIG_OPTION_INCREMENTAL]: s/memset/ft_memset/. + + * src/autohint/ahhint.c (ah_hint_edges_3): Fix compiler warning. + * src/cff/cffload.c (cff_encoding_load): Remove `memory' variable. + * src/cff/cffcmap.c (cff_cmap_encoding_init): Remove `psnames' + variable. + * src/truetype/ttgload.c (load_truetype_glyph): Remove statement + without effect. + * src/truetype/ttdriver (Get_Char_Index, Get_Next_Char): Removed. + + * src/pshinter/pshalgo3.c (psh3_hint_table_record, + psh3_hint_table_init, psh3_hint_table_activate_mask): Fix error + message. + +2002-07-24 Graham Asher <[email protected]> + + * src/truetype/ttobjs.c: Fix for bug reported by Sven Neumann + [[email protected]] on the FreeType development forum: `If + FT_CONFIG_OPTION_INCREMENTAL is undefined (this is the default), the + TrueType loader crashes in line 852 of src/truetype/ttgload.c when + it tries to access face->glyph_locations.' + +2002-07-18 Graham Asher <[email protected]> + + Added types and structures to support incremental typeface loading. + The FT_Incremental_Interface structure, defined in freetype.h, is + designed to be passed to FT_Open_Face to provide callback functions + to obtain glyph recipes and metrics, for fonts like those passed + from PostScript that do not necessarily provide all, or any, glyph + information, when first opened. + + * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL): + New configuration macro to enable incremental face loading. By + default it is not defined. + + * include/freetype/freetype.h (FT_Basic_Glyph_Metrics, + FT_Get_Glyph_Data_Func, FT_Get_Glyph_Metrics_Func, + FT_Incremental_Interface_Funcs, FT_Incremental_Interface) + [FT_CONFIG_OPTION_INCREMENTAL]: New. + (FT_Open_Args, FT_FaceRec) [FT_CONFIG_OPTION_INCREMENTAL]: New field + `incremental_interface'. + (FT_Open_Flags) [FT_CONFIG_OPTION_INCREMENTAL]: New enum + `ft_open_incremental'. + + * include/freetype/fttypes.h: Include FT_CONFIG_CONFIG_H. + (FT_Data): New structure to represent binary data. + + * src/base/ftobjs.c (open_face) [FT_CONFIG_OPTION_INCREMENTAL]: + Add parameter for incremental loading. + (FT_Open_Face) [FT_CONFIG_OPTION_INCREMENTAL]: Use incremental + interface. + + * src/truetype/ttgload.c (load_truetype_glyph) + [FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system + for the TrueType driver. + (compute_glyph_metrics): Return FT_Error. + [FT_CONFIG_OPTION_INCREMENTAL]: Check for overriding metrics. + (TT_Load_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Don't look for + the glyph table while handling an incremental font. + Get glyph offset. + + * src/truetype/ttobjs.c (TT_Face_Init) + [FT_CONFIG_OPTION_INCOREMENTAL]: Added the incremental loading + system for the TrueType driver. + + * src/cid/cidgload.c (cid_load_glyph) + [FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system + for the CID driver. + + * src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]: + Changes to support incremental Type 42 fonts: Assume a font has + glyphs if it has an incremental interface object. + + * src/type1/t1gload.c (T1_Parse_Glyph): Renamed to... + (T1_Parse_Glyph_And_Get_Char_String): This. + [FT_CONFIG_OPTION_INCREMENTAL]: Added support for incrementally + loaded Type 1 faces. + (T1_Parse_Glyph): New function. + (T1_Load_Glyph): Updated. + +2002-07-17 David Turner <[email protected]> + + Cleaning up the cache sub-system code; linear hashing is now the + default. + + * include/freetype/cache/ftccache.h, src/cache/ftccache.i, + src/cache/ftccache.c [!FTC_CACHE_USE_LINEAR_HASHING]: Removed. + (FTC_CACHE_USE_LINEAR_HASHING: Removed also. + + FT_CONFIG_OPTION_USE_CMAPS is now the default. + + * include/freetype/internal/ftdriver.h (FT_Driver_ClassRec): Remove + `get_char_index' and `get_next_char'. + + * include/freetype/config/ftoption.h, + include/freetype/internal/tttypes.h, src/base/ftobjs.c, + src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/pcf/pcfdrivr.c, + src/pfr/pfrdrivr.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c, + src/sfnt/ttcmap0.h, src/sfnt/ttload.c, src/type1/t1objs.c, + src/type42/t42objs.c, src/winfonts/winfnt.c + [!FT_CONFIG_OPTION_USE_CMAPS]: Removed. The new cmap code is now + the default. + + * src/type42/t42objs.c (T42_CMap_CharIndex, T42_CMap_CharNext): + Removed. + * src/type42/t42objs.h: Updated. + + * src/cid/cidriver.c (Cid_Get_Char_Index, Cid_Get_Next_Char): + Removed. + (t1_cid_driver_class): Updated. + * src/truetype/ttdriver.c (tt_driver_class): Updated. + * src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Removed + (t1_driver_class): Updated. + * src/type42/t42drivr.c (t42_driver_class): Updated. + + * src/base/ftobjs.c (open_face): Select Unicode cmap by default. + + * src/sfnt/ttload.c (TT_Load_SFNT_Header): Fixed a recent bug that + prevented OpenType fonts to be recognized by FreeType. + +2002-07-11 David Turner <[email protected]> + + Changing the SFNT loader to check for SFNT-based font files + differently. We now ignore the range `helper' fields and check the + `head' table's magic number instead. + + * include/freetype/internal/tttypes.h (SFNT_HeaderRec): Add `offset' + field. + + * src/sfnt/ttload.c (sfnt_dir_check): New function. + (TT_Load_SFNT_HeaderRec): Renamed to... + (TT_Load_SFNT_Header): This. + Implement new functionality. + * src/sfnt/ttload.h: Updated. + * src/sfnt/sfdriver.c (sfnt_interface): Updated. + + * src/base/ftobject.c, src/base/fthash.c: Updated object sub-system + and dynamic hash table implementation (still experimental, don't + use). + * include/freetype/internal/fthash.h: Updated. + * include/freetype/internal/ftobjs.h (FT_LibraryRec): New member + `meta_class'. + + Fixing a bug in the Type 1 loader that prevented valid font bounding + boxes to be loaded from multiple master fonts. + + * include/freetype/t1tables.h (PS_BlendRec): Add `bboxes' field. + + * include/freetype/internal/psaux.h (T1_FieldType): Add + `T1_FIELD_TYPE_BBOX'. + (T1_FieldLocation): Add `T1_FIELD_LOCATION_BBOX'. + (T1_FIELD_BBOX): New macro. + + * src/psaux/psobjs.c (PS_Parser_LoadField): Handle T1_FIELD_TYPE_BBOX. + * src/type1/t1load.c (t1_allocate_blend): Create blend->bboxes. + (T1_Done_Blend): Free blend->bboxes. + (t1_load_keyword): Handle T1_FIELD_LOCATION_BBOX. + (parse_font_bbox): Commented out. + (t1_keywords): Comment out `parse_font_bbox'. + * src/type1/t1tokens.h: Define `FontBBox' field. + +2002-07-10 David Turner <[email protected]> + + * src/cff/cffobjs.c: Small fix to select the Unicode charmap by + default when needed. + Small fix to allow OpenType fonts to support Adobe charmaps when + needed. + + * src/cff/cffcmap.c, src/cff/cffcmap.h: New files to support + charmaps for CFF fonts. + + * src/cff/cff.c, src/cff/Jamfile, src/cff/rules.mk: Updated. + + * include/freetype/internal/cfftypes.h (CFF_EncodingRec): Use + fixed-length arrays for `sids' and `codes'. Add `count' member. + (CFF_FontRec): Add `psnames' member. + + * src/cff/cffdrivr.c, src/cff/cffload.c, src/cff/cffload.h, + src/cff/cffobjs.c, src/cff/cffobjs.h, src/cff/cffparse.c, + src/cffparse.h, src/cff/cffgload.c, src/cff/cffgload.h: Adding + support for CFF charmaps, reformatting the sources, and removing + some bugs in the Encoding and Charset loaders. + Many fonts renamed to use lowercase only: + + CFF_Builder_Init -> cff_builder_init + CFF_Builder_Done -> cff_builder_done + CFF_Init_Decoder -> cff_decoder_init + CFF_Parse_CharStrings -> cff_decoder_parse_charstrings + CFF_Load_Glyph -> cff_slot_load + CFF_Init_Decoder -> cff_decoder_init + CFF_Prepare_Decoder -> cff_decoder_prepare + CFF_Get_Standard_Encoding -> cff_get_standard_encoding + CFF_Access_Element -> cff_index_access_element + CFF_Forget_Element -> cff_index_forget_element + CFF_Get_Name -> cff_index_get_name + CFF_Get_String -> cff_index_get_sid_string + CFF_Get_FD -> cff_fd_select_get + CFF_Done_Charset -> cff_charset_done + CFF_Load_Charset -> cff_charset_load + CFF_Done_Encoding -> cff_encoding_done + CFF_Load_Encoding -> cff_encoding_load + CFF_Done_SubFont -> cff_subfont_done + CFF_Load_Font -> cff_font_load + CFF_Done_Font -> cff_font_done + CFF_Size_Get_Global_Funcs -> cff_size_get_global_funcs + CFF_Size_Done -> cff_size_done + CFF_Size_Init -> cff_size_init + CFF_Size_Reset -> cff_size_reset + CFF_GlyphSlot_Done -> cff_slot_done + CFF_GlyphSlot_Init -> cff_slot_init + CFF_StrCopy -> cff_strcpy + CFF_Face_Init -> cff_face_init + CFF_Face_Done -> cff_face_done + CFF_Driver_Init -> cff_driver_init + CFF_Driver_Done -> cff_driver_done + CFF_Parser_Init -> cff_parser_init + CFF_Parser_Run -> cff_parser_run + + add_point -> cff_builder_add_point + add_point1 -> cff_builder_add_point1 + add_contour -> cff_builder_add_contour + close_contour -> cff_builder_close_contour + cff_explicit_index -> cff_index_get_pointers + +2002-07-09 Owen Taylor <[email protected]> + + * src/pshinter/pshglob.c (psh_globals_new): Fixed a bug that + prevented the hinter from using correct standard width and height + values, resulting in hinting bugs with certain fonts (e.g. Utopia). + +2002-07-07 David Turner <[email protected]> + + * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Added code to return + successfully when the function is called with a bitmap glyph (the + previous code simply returned with an error). + + * docs/DEBUG.TXT: Adding debugging support documentation. + + * src/base/ftdebug.c (ft_debug_init), builds/win32/ftdebug.c + (ft_debug_init), builds/amiga/src/ftdebug.c (ft_debug_init): Changed + the syntax of the FT2_DEBUG environment variable used to control + debugging output (i.e. logging and error messages). It must now + look like: + + any:6 memory:4 io:3 or + any:6,memory:4,io:3 or + any:6;memory:4;io:3 + +2002-07-07 Owen Taylor <[email protected]> + + * src/pshinter/pshglob.c (psh_blues_snap_stem): Adding support for + blue fuzz. + * src/pshinter/pshglob.h (PSH_BluesRec): Add `blue_fuzz' field. + * src/type1/t1load.c (T1_Open_Face): Initialize `blue_fuzz'. + + Adding support for hinter-specific bit flags, and the new + FT_Set_Hint_Flags high-level API. + + * include/freetype/freetype.h (FT_Set_Hint_Flags): New function. + (FT_HINT_NO_INTEGER_STEM, FT_HINT_NO_HSTEM_ALIGN, + FT_HINT_NO_VSTEM_ALIGN): New macros. + + * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Add + `hint_flags' member. + + * src/base/ftobjs.c (FT_Set_Hint_Flags): New function. + + * include/freetype/internal/psaux.h (T1_DecoderRec): Add `hint_flags' + member. + + * include/freetype/internal/pshints.h (T1_Hints_ApplyFunc, + T2_Hints_ApplyFunc): Add parameter to pass hint flags. + + * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings, + T1_Decoder_Init): Use decoder->hint_flags. + * src/cff/cffgload.h (CFF_Builder): Add `hint_flags' field. + * src/cff/cffgload.c (CFF_Builder_Init): Set builder->hint_flags. + (CFF_Parse_CharStrings): Updated. + * src/pshinter/pshalgo1.c (ps1_hints_apply): Add parameter to handle + hint flags (unused). + * src/pshinter/pshalgo1.h: Updated. + * src/pshinter/pshalgo2.c (ps2_hints_apply): Add parameter to handle + hint flags (unused). + * src/pshinter/pshalgo2.h: Updated. + * src/pshinter/pshalgo3.c (ps3_hints_apply): Add parameter to handle + hint flags. + * src/pshinter/pshalgo3.h: Updated. + +2002-07-04 David Turner <[email protected]> + + * src/pfr/pfrobjs.c (pfr_slot_load): Fixed a small bug that returned + incorrect advances when the outline resolution was different from + the metrics resolution. + + * src/autohint/ahhint.c: Removing compiler warnings. + + * src/autohint/ahglyph.c: s/FT_MEM_SET/FT_ZERO/ where appropriate. + (ah_outline_link_segments): Slight improvements to the serif + detection code. More work is needed though. + +2002-07-03 David Turner <[email protected]> + + Small improvements to the automatic hinter. Uneven stem-widths have + now disappeared and everything looks much better, even if there are + still issues with serifed fonts. + + * src/autohint/ahtypes.h (AH_Globals): Added `stds' array. + * src/autohint/ahhint.c (OPTIM_STEM_SNAP): New #define. + (ah_snap_width): Commented out. + (ah_align_linked_edge): Renamed to... + (ah_compute_stem_width): This. + Don't allow uneven stem-widths. + (ah_align_linked_edge): New function. + (ah_align_serifed_edge): Don't strengthen serifs. + (ah_hint_edges_3, ah_hinter_scale_globals): Updated. + +2002-07-03 Owen Taylor <[email protected]> + + Adding new algorithm based on Owen Taylor's recent work. + + * src/pshinter/pshalgo3.c, src/pshinter/pshalgo3.h: New files. + * src/pshinter/pshalgo.h: Updated. + Use pshalgo3 by default. + * src/pshinter/pshinter.c: Include pshalgo3.c. + + * src/pshinter/Jamfile, src/pshinter/rules.mk: Updated. + +2002-07-01 Owen Taylor <[email protected]> + + * src/pshinter/pshalgo2.c (psh2_glyph_find_strong_points): Fix a bug + where, if a glyph has more than hint mask, the second mask gets + applied to points that should have been covered by the first mask. + +2002-07-01 Keith Packard <[email protected]> + + * src/sfnt/ttcmap0.c (tt_cmap8_char_next, tt_cmap12_char_next): + Fixing the cmap 8 and 12 parsing routines. + +2002-07-01 David Turner <[email protected]> + + * src/base/ftsynth.c: Include FT_TRIGONOMETRY_H. + (FT_Outline_Embolden): Renamed to... + (FT_GlyphSlot_Embolden): This. + Updated to new trigonometric functions. + (FT_Outline_Oblique): Renamed to... + (FT_GlyphSlot_Oblique): This. + (ft_norm): Removed. + * include/freetype/ftsynth.h: Updated. + +2002-06-26 David Turner <[email protected]> + + * include/freetype/internal/ftobject.h: Updating the object + sub-system definitions (still experimental). + + * src/base/fthash.c (ft_hash_remove): Fixing a small reallocation + bug. + + * src/base/fttrigon.c (FT_Vector_From_Polar, FT_Angle_Diff): New + functions. + * include/freetype/fttrigon.h: Updated. + + + Adding path stroker component (work in progress). + + * include/freetype/ftstroker.h, src/base/ftstroker.c: New files. + * src/base/Jamfile: Updated. + + * include/freetype/config/ftheader.h (FT_STROKER_H): New macro. + + + * src/truetype/ttgload.c (TT_Load_Composite_Glyph), + src/base/ftoutln.c (FT_Vector_Transform): Fixed Werner's latest fix. + FT_Vector_Transform wasn't buggy, the TrueType composite loader was. + +2002-06-24 Werner Lemberg <[email protected]> + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3. + +2002-06-21 David Turner <[email protected]> + + + * Version 2.1.2 released. + ========================= + + +2002-06-21 Roberto Alameda <[email protected]>. + + * include/freetype/internal/t42types.h (T42_Font): Removed since + it is already in t42objs.h. + (T42_Face): Use T1_FontRec. + + * src/base/fttype1.c (FT_Get_PS_Font_Info): Updated. + (FT_Has_PS_Glyph_Names): Check for type42 driver name also. + * src/type42/t42objs.h: Include FT_INTERNAL_TYPE42_TYPES_H. + (T42_Face): Removed since it is already in t42types.h. + +2002-06-21 Detlef Würkner <[email protected]> + + * src/pfrgload.c (pfr_glyph_load_compound): Fix loading of composite + glyphs. + +2002-06-21 Sven Neumann <[email protected]> + + * src/prf/pfrtypes.h (PFR_KernPair): New structure. + (PFR_PhyFont): Use it. + (PFR_KernFlags): New enumeration. + * src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): New + function. + (pfr_phy_font_extra_items): Use it. + (pfr_phy_font_done): Updated. + * src/pfr/pfrobjs.c (pfr_face_init): Set kerning flag conditionally. + (pfr_face_get_kerning): New function. + * src/pfr/pfrobjs.h: Updated. + * src/pfr/pfrdrivr.c (pfr_driver_class): Updated. + +2002-06-21 David Turner <[email protected]> + + * README, docs/CHANGES: Preparing the 2.1.2 release. + +2002-06-19 Detlef Würkner <[email protected]> + + * src/base/fttype1.c: Include FT_INTERNAL_TYPE42_TYPES_H. + (t1_face_check_cast): Removed. + (FT_Get_PS_Font_Info): Make it work with CID and Type 42 drivers + also. + +2002-06-19 Sebastien BARRE <http://barre.nom.fr/contact.html#email> + + * src/type42/t42parse.c (t42_parse_sfnts): Fix compiler warning. + +2002-06-19 Werner Lemberg <[email protected]> + + * src/base/ftoutln.c (FT_Vector_Transform): Fix serious typo + (xy <-> yx). + * src/truetype/ttgload.c (load_truetype_glyph): Replace `|' with + `||' to make code easier to read. + +2002-06-18 Roberto Alameda <[email protected]>. + + * src/type42/t42objs.c (t42_check_size_change): Removed. + (T42_Size_SetChars, T42_Size_SetPixels): Use FT_Activate_Size + instead. + (T42_GlyphSlot_Load): Remove call to t42_check_size_change. + +2002-06-18 Detlef Würkner <[email protected]> + + * src/psaux/t1cmap.c (t1_cmap_custom_char_index, + t1_cmap_custom_char_next): Fix index computation -- indices start + with 0 and not with cmap->first. + + Provide default charmaps. + + * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c + (PCF_Face_Init), src/pfr/pfrobjs.c (pfr_face_init), + src/type1/t1objs (T1_Face_Init), src/winfonts/winfnt.c + (FNT_Face_Init): Implement it. + +2002-06-17 Sven Neumann <[email protected]> + + * src/pfr/pfrobjs.c (pfr_face_init): Fix typo. + +2002-06-16 Leonard Rosenthol <[email protected]> + + Updated Win32/VC++ projects to include the new PFR driver. + + * builds/win32/visualc/freetype.dsp: Updated. + +2002-06-16 Anthony Fok <[email protected]> + + Install freetype2.m4. + + * builds/unix/install.mk (install, uninstall): Handle it. + +2002-06-16 Detlef Würkner <[email protected]> + + Same fix for PFR driver. + + * src/pfr/pfrcmap.c (pfr_cmap_char_index, pfr_cmap_char_next): + Increase return value by 1. + * src/pfr/pfrobjs.c (pfr_slot_load): Decrease index by 1. + +2002-06-15 Detlef Würkner <[email protected]> + + Fix glyph indices to make index zero always the undefined glyph. + + * src/bdf/bdfdrivr.c (bdf_cmap_init): Don't decrease + cmap->num_encodings. + (bdf_cmap_char_index, bdf_cmap_char_next, BDF_Get_Char_Index): + Increase result by 1 for normal cases. + (BDF_Glyph_Load): Decrease index by 1. + + * src/pcf/pcfdriver.c (pcf_cmap_char_index, pcf_cmap_char_next, + PCF_Char_Get_Index): Increase result by 1 for normal cases. + (PCF_Glyph_Load): Decrease index by 1. + * src/pcf/pcfread.c (pcf_get_encodings): Don't decrease j for + allocating `encoding'. + + * src/base/ftobjs.c (FT_Load_Glyph, FT_Get_Glyph_Name): Fix + bounding tests. + +2002-06-14 Detlef Würkner <[email protected]> + + Add new cmap support to BDF driver. + + * src/bdf/bdfdrivr.c (BDF_CMapRec) [FT_CONFIG_OPTION_USE_CMAPS]: + New structure. + (bdf_cmap_init, bdf_cmap_done, bdf_cmap_char_index, + bdf_cmap_char_next) [FT_CONFIG_OPTION_USE_CMAPS]: New functions. + (BDF_Get_Char_Index) [!FT_CONFIG_OPTION_USE_CMAPS]: Use only + conditionally. + (BDF_Face_Init): Handle `AVERAGE_WIDTH' and `POINT_SIZE' keywords. + Implement new cmap handling. + (bdf_driver_class): Updated. + +2002-06-14 Werner Lemberg <[email protected]> + + * Makefile, configure, */*.mk, builds/unix/unix-def.in, + docs/CHANGES, docs/INSTALL: s/TOP/TOP_DIR/. + +2002-06-12 Werner Lemberg <[email protected]> + + * src/bdf/bdflib.c: s/FT_Short/short/ for consistency. + +2002-06-11 David Turner <[email protected]> + + * builds/win32/ftdebug.c: Added a missing #endif. + + * src/sfnt/ttload.c, src/bdf/bdflib.c: Removing compiler warnings. + + Removed the bug in Type 42 driver that prevented un-hinted outlines + to be loaded. + + * src/type42/t42objs.c (T42_Face_Init): Call FT_Done_Size. + (T42_Size_Init): Call FT_Activate_Size. + (t42_check_size_change): New function. + (T42_Size_SetChars, T42_Size_SetPixels): Use it. + (ft_glyphslot_clear): Replace FT_MEM_SET with FT_ZERO. + (T42_GlyphSlot_Load): Use t42_check_size_change. + Initialize more fields of `glyph'. + + * builds/win32/visualc/freetype.dsp: Updated. + +2002-06-09 David Turner <[email protected]> + + + * Version 2.1.1 released. + ========================= + + +2002-06-08 Juliusz Chroboczek <[email protected]> + + * include/freetype/internal/ftobjs.h, src/autohint/ahglyph.c, + src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/smooth/ftgrays.c: Don't + use `setjmp', `longjmp', and `jmp_buf' but `ft_setjmp', `ft_longjmp', + and `ft_jmp_buf'. + Removed direct references to <stdio.h> and <setjmp.h> when + appropriate, to eventually replace them with a + FT_CONFIG_STANDARD_LIBRARY_H. Useful for the XFree86 Font Server + backend based on FT2. + + * src/base/fttype1.c (FT_Has_PS_Glyph_Names): Fix return value. + +2002-06-08 David Turner <[email protected]> + + * src/pcf/pcfdriver.c (pcf_cmap_char_next): Fixed a bug that caused + the function to return invalid values. + + * src/cache/ftccache.i: Removing a typo that prevented + the source's compilation. + + * src/cache/ftccache.c (ftc_node_hash_unlink): Fixed a + bug that caused nasty memory overwrites. The hash table's + buckets array wasn't correctly resized when shrunk. + +2002-06-08 Detlef Würkner <[email protected]> + + * builds/amiga/smakefile, builds/amiga/makefile: Updated. + +2002-06-08 Werner Lemberg <[email protected]> + + * src/cache/ftccache.c (ftc_node_hash_unlink, ftc_node_hash_link) + [FTC_CACHE_USE_LINEAR_HASHING]: Fix returned error code. + Fix debugging messages. + * src/cache/ftccache.i (GEN_CACHE_LOOKUP): Move declaration of + `family' and `hash' up to make it compilable with g++. + + * src/type42/t42error.h: New file. + * src/type42/t42drivr.c, src/type42/t42objs.c, + src/type42/t42parse.c: Use t42 error codes. + * src/type42/rules.mk: Updated. + + * src/base/ftnames.c: Include FT_INTERNAL_STREAM_H. + +2002-06-08 David Turner <[email protected]> + + * src/cache/ftccmap.c: GEN_CACHE_FAMILY_COMPARE, + GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]: + New macros. + (ftc_cmap_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to + ftc_cache_lookup. + (FTC_CMapCache_Lookup): Updated. + + Adding various experimental optimizations to the cache manager. + + * include/freetype/cache/ftccache.h (FTC_CACHE_USE_INLINE, + FTC_CACHE_USE_LINEAR_HASHING): New options. + (FTC_CacheRec) [FTC_CACHE_USE_LINEAR_HASHING]: New elements `p', + `mask', and `slack'. + + * src/cache/ftccache.c (FTC_HASH_MAX_LOAD, FTC_HASH_MIN_LOAD, + FTC_HASH_SUB_LOAD) [FTC_CACHE_USE_LINEAR_HASHING, + FTC_HASH_INITIAL_SIZE]: New macros. + (ftc_node_mru_link, ftc_node_mru_up): Optimized. + (ftc_node_hash_unlink, ftc_node_hash_link) + [FTC_CACHE_USE_LINEAR_HASHING]: New variants. + (FTC_PRIMES_MIN, FTC_PRIMES_MAX, ftc_primes, ftc_prime_closest, + FTC_CACHE_RESIZE_TEST, ftc_cache_resize) + [!FTC_CACHE_USE_LINEAR_HASHING]: Define it conditionally. + (ftc_cache_init, ftc_cache_clear) [FTC_CACHE_USE_LINEAR_HASHING]: + Updated. + (ftc_cache_lookup) [FTC_CACHE_USE_LINEAR_HASHING]: Implement it. + + * src/cache/ftccache.i: New file. + + * src/cache/ftcsbits.c (GEN_CACHE_FAMILY_COMPARE, + GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]: + New macros. + (ftc_sbit_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to + ftc_cache_lookup. + (FTC_SBitCache_Lookup): Updated. + + * src/type42/t42parse.c: Removing duplicate function. + +2002-06-07 Graham Asher <[email protected]> + + * src/base/ftobjs.c (FT_Render_Glyph_Internal): Changed definition + from FT_EXPORT_DEF to FT_BASE_DEF. + +2002-06-07 David Turner <[email protected]> + + Fixed the bug that prevented the correct display of fonts with + `ftview'. + + * src/type42/t42drivr.c: Split into... + * src/type42/t42drivr.h, src/type42/t42parse.c, + src/type42/t42parse.h, src/type42/t42objs.h, src/type42/t42objs.c, + src/type42/type42.c: New files. + + (t42_get_glyph_name, t42_get_ps_name, t42_get_name_index): Use + `face->type1'. + + (Get_Interface): Renamed to... + (T42_Get_Interface): This. + Updated. + (T42_Open_Face, T42_Face_Done): Updated. + (T42_Face_Init): Add new cmap support. + Updated. + (T42_Driver_Init, T42_Driver_Done, T42_Size_Init, T42_Size_Done, + T42_GlyphSlot_Init, T42_GlyphSlot_Done): Updated. + (Get_Char_Index, Get_Next_Char): Renamed to... + (T42_CMap_CharIndex, T42_CMap_CharNext): This. + Updated. + (T42_Char_Size, T42_Pixel_Size): Renamed to... + (T42_Size_SetChars, T42_Size_SetPixels): This. + (T42_Load_Glyph): Renamed to... + (T42_GlyphSlot_Load): This. + + (t42_init_loader, t42_done_loader): Renamed to... + (t42_loader_init, t42_loader_done): This. + (T42_New_Parser, T42_Finalize_Parser): Renamed to... + (t42_parser_init, t42_parser_done): This. + (parse_dict): Renamed to... + (t42_parse_dict): This. + (is_alpha, is_space, hexval): Renamed to... + (t42_is_alpha, t42_is_space, t42_hexval): This. + (parse_font_name, parse_font_bbox, parse_font_matrix, + parse_encoding, parse_sfnts, parse_charstrings, parse_dict): + Renamed to... + (t42_parse_font_name, t42_parse_font_bbox, t42_parse_font_matrix, + t42_parse_encoding, t42_parse_sfnts, t42_parse_charstrings, + t42_parse_dict): This. + Updated. + + (t42_keywords): Updated. + + * src/type42/Jamfile, src/type42/descrip.mms: Updated. + +2002-06-03 Werner Lemberg <[email protected]> + + Add 8bpp support to BDF driver. + + * src/bdf/bdflib.c (_bdf_parse_start): Handle 8bpp. + * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Ditto. + * src/bdf/README: Updated. + +2002-06-02 Detlef Würkner <[email protected]> + + * src/pfr/pfrload.c (pfr_phy_font_done): Free `blue_values' array. + +2002-05-29 Detlef Würkner <[email protected]> + + * src/bdf/bdflib.c (_bdf_readstream): Allocate `buf' dynamically. + (_bdf_parse_glyphs): Use correct size for allocating + `font->unencoded'. + (bdf_load_font): Free array conditionally. + Return proper error code in case of failure. + * src/bdf/bdfdrivr.c (BDF_Face_Init): Make it more robust against + unusual fonts. + +2002-05-29 Werner Lemberg <[email protected]> + + * src/bdf/descrip.mms, src/type42/descrip.mms: New files. + * descrip.mms (all): Updated. + + * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix typo which prevented + compilation. + * src/pshglob.c (psh_blues_scale_zones): Fix compiler warning. + +2002-05-28 Detlef Würkner <[email protected]> + + * builds/amiga/makefile, builds/amiga/smakefile, + amiga/include/freetype/config/ftmodule.h: Updated to include + support for BDF and Type42 drivers. + + * docs/modules.txt: Updated. + +2005-05-28 David Turner <[email protected]> + + * docs/CHANGES: Updating file for next release (2.1.1). + + * src/bdf/bdflib.c: Removing compiler warnings. + + * include/freetype/ftxf86.h, src/base/ftxf86.c: New files. + They provide a new API (FT_Get_X11_Font_Format) to retrieve an + X11-compatible string describing the font format of a given face. + This was put in a new optional base source file, corresponding to a + new public header (named FT_XFREE86_H since this function should + only be used within the XFree86 font server IMO). + + * include/freetype/config/ftheader.h (FT_XFREE86_H): New macro (not + documented yet). + + * src/base/fttype1.c: New file, providing two new API functions + (FT_Get_PS_Font_Info and FT_Has_PS_Glyph_Names). + * include/freetype/t1tables.h: Updated. + + * src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms: + Updating build control files for the new files `ftxf86.c' and + `fttype1.c' in src/base. + + * src/pshinter/pshglob.c (psh_blues_scale_zones): Fixed a bug that + prevented family blue zones substitution from hapenning correctly. + + * include/freetype/ftbdf.h FT_Get_BDF_Charset_ID): Adding + documentation comment. + +2002-05-28 Werner Lemberg <[email protected]> + + * src/base/ftnames.c (FT_Get_Sfnt_Name): Don't use FT_STREAM_READ_AT + but FT_STREAM_READ. + Declare `stream' variable. + + * src/bdf/bdflib.c (_bdf_parse_glyphs): Replace floating point math + with calls to `FT_MulDiv'. + +2002-05-28 David Turner <[email protected]> + + Fixing the SFNT name table loader to support various buggy fonts. + It now ignores empty name entries, entries with invalid pointer + Offsets and certain fonts containing tables with broken + `storageOffset' fields. + + Name strings are now loaded on demand, which reduces the memory + requirements for a given FT_Face tremendously (for example, the name + table of Arial.ttf is about 10Kb and contains 70 names). + + This is a temporary fix. The whole name table loader and interface + will be rewritten in a much more cleanly way shortly, once CSEH have + been introduced in the sources. + + * include/freetype/internal/tttypes.h (TT_NameEntryRec): Change + type of `stringOffset' to FT_ULong. + (TT_NameTableRec): Change type of `numNameRecords' and + `storageOffset' to FT_UInt. + Replace `storage' with `stream'. + * src/base/ftnames.c (FT_Get_Sfnt_Name): Load name on demand. + * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Ditto. + Make code more robust. + * src/sfnt/sfobjs.c (TT_NameEntry_ConvertFunc): New typedef. + (tt_face_get_name): Use it. + Make code more robust. + * src/sfnt/ttload.c (TT_Load_Names): Use `static' for arrays. + Handle invalid `storageOffset' data better. + Set length fields to zero for invalid or ignored data. + Remove code within FT_DEBUG_LEVEL_TRACE. + (TT_Free_Names): Updated. + +2002-05-24 Tim Mooney <[email protected]> + + * builds/unix/ft-munmap.m4: New file, extracted FT_MUNMAP_DECL and + FT_MUNMAP_PARAM from aclocal.m4 into here, so aclocal.m4 can be + rebuilt from sources. Set macro serial to 1, and use third argument + to AC_DEFINE for our two custom symbols, so ftconfig.in could one day + be rebuilt with autoheader (not recommended now, ftconfig.in is a + custom source file) + +2002-05-22 Werner Lemberg <[email protected]> + + * include/freetype/config/ftheader.h (FT_BEZIER_H): Removed. + (FT_BDF_H): New macro for accessing `ftbdf.h'. + + * src/type42/t42drivr.c (hexval): Fix typo. + +2002-05-21 Martin Muskens <[email protected]> + + * src/psaux/psobjs.c (T1Radix): New function. + (t1_toint): Use it to handle numbers in radix format. + + * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Add dummy + for undocumented, obsolete opcode 15. + +2002-05-21 David Turner <[email protected]> + + * src/bdf/bdflib.c: Removed compiler warning, and changed all tables + to the `static const' storage specifier (instead of simply + `static'). + + * src/type42/t42drivr.c (hexval): Use more efficient code. + Removing compiler warnings. + * src/bdf/bdfdrivr.c: Removing compiler warnings. + + * include/freetype/internal/ftbdf.h, src/base/ftbdf.c, + src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk + (FT_Get_BDF_Charset_ID): New API to retrieve BDF-specific strings + from a face. This is much cleaner than accessing the internal types + `BDF_Public_Face' defined in FT_INTERNAL_BDF_TYPES_H. + +2002-05-21 Werner Lemberg <[email protected]> + + * src/bdf/README: Mention Microsoft's SBIT tool. + + * src/cff/cffdrivr.c, src/cid/cidriver.c, src/pcf/pcfdriver.c, + src/truetype/ttdriver.c, src/type1/t1driver.c, + src/winfonts/winfnt.c, src/type42/t42drivr.c, src/bdf/bdfdrivr.c + [FT_CONFIG_OPTION_DYNAMIC_DRIVERS]: Completely removed. It has + been never used. + +2002-05-21 Roberto Alameda <[email protected]>. + + * src/type42/t42drivr.c: s/T42_ENCODING_TYPE_/T1_ENCODING_TYPE_/. + (parse_font_matrix): Remove unnecessary code. + (parse_sfnts): Initialize some variables. + (t42_driver_class) [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Use + ft_module_driver_has_hinter conditionally. + Moved some type 42 specific structure definitions to... + * include/freetype/internal/t42types.h: New file. + * include/freetype/internal/internal.h (FT_INTERNAL_T42_TYPES_H): + New macro. + +2002-05-20 Werner Lemberg <[email protected]> + + * include/freetype/cache/ftcsbits.h (FTC_SBit): Added a new field + `num_grays' for specifying the number of used gray levels. + * src/cache/ftcsbits.c (ftc_sbit_node_load): Initialize it. + +2002-05-19 Werner Lemberg <[email protected]> + + Adding a driver for BDF fonts written by Francesco Zappa Nardelli + <[email protected]>. Heavily modified by me to + better adapt it to FreeType, removing unneeded stuff. Additionally, + it now supports Mark Leisher's BDF extension for anti-aliased + bitmap glyphs with 2 and 4 bpp. + + * src/bdf/*: New driver. + * include/freetype/internal/bdftypes.h: New file. + * include/freetype/internal/fttrace.h: Added BDF driver components. + * include/freetype/fterrdef.h: Added error codes for BDF driver. + * include/freetype/config/ftmodule.h, src/Jamfile: Updated. + * include/freetype/internal/internal.h (FT_INTERNAL_BDF_TYPES_H): + New macro. + + * include/freetype/config/ftstdlib.h (ft_sprintf): New alias for + sprintf. + +2002-05-18 Werner Lemberg <[email protected]> + + * include/freetype/internal/fttrace.h: Added Type 42 driver + component. + * src/type42/t42drivr.c: Use it. + + * include/freetype/internal/internal.h (FT_INTERNAL_PCF_TYPES_H): + New macro. + +2002-05-17 Werner Lemberg <[email protected]> + + * src/type42/Jamfile: New file. + +2002-05-14 Werner Lemberg <[email protected]> + + Adding a driver for Type42 fonts written by Roberto Alameda + <[email protected]>. + + * src/type42/*: New driver. + * include/freetype/config/ftmodule.h, src/Jamfile: Updated. + * include/freetype/config/ftstdlib.h (ft_xdigit, ft_memcmp, + ft_atoi): New aliases for xdigit, memcmp, and atoi, respectively. + +2002-05-12 Owen Taylor <[email protected]> + + * src/sfnt/ttload.c (TT_LookUp_Table): Protect against tables + with a zero length value. + +2002-05-12 Michael Pfeiffer <[email protected]> + + * builds/beos/beos.mk: Include `link-std.mk'. + +2002-05-12 Werner Lemberg <[email protected]> + + * src/type1/t1load.h (T1_Loader): Renamed to... + (T1_LoaderRec): This. + (T1_Loader): Now pointer to T1_LoaderRec. + * src/type1/t1load.c: Updated. + + * include/freetype/internal/t1types.h, src/type1/t1load.c, + src/type1/t1objs.c: + s/T1_ENCODING_TYPE_EXPORT/T1_ENCODING_TYPE_EXPERT/. + +2002-05-06 Werner Lemberg <[email protected]> + + * README: Add a note regarding libttf vs. libfreetype. + +2002-05-05 Werner Lemberg <[email protected]> + + FreeType 2 can now be built in an external directory with the + configure script also. + + * builds/freetype.mk (INCLUDES): Add `OBJ_DIR'. + + * builds/unix/detect.mk (have_mk): New variable to test for + external build. + (unix-def.mk): Defined according to value of `have_mk'. + * builds/unix/unix.mk (have_mk): New variable to test for + external build. + Select include paths for unix-def.mk and unix-cc.mk according + to value of `have_mk'. + * builds/unix/unix-def.in (OBJ_BUILD): New variable. + (DISTCLEAN): Use it. + * builds/unix/unix-cc.in (LIBTOOL): Define default value only + if not yet defined. + * builds/unix/install.mk (install): Use `OBJ_BUILD' for installing + freetype-config. + + * configure: Don't depend on bash features. + (ft2_dir, abs_curr_dir, abs_ft2_dir): New variables (code + partially taken from Autoconf). + Build a dummy Makefile if not building in source tree. + + * docs/INSTALL: Document it. + +2002-05-04 David Turner <[email protected]> + + * src/truetype/ttgload.c (TT_Load_Glyph): Finally fixing the last + bug that prevented FreeType 2.x and FreeType 1.x to produce + bit-by-bit identical monochrome glyph bitmaps with native TrueType + hinting. The culprit was a single-bit flag that wasn't set + correctly by the TrueType glyph loader. + + * src/otlayout/otlayout.h, src/otlayout/otlbase.c, + src/otlayout/otlbase.h, src/otlayout/otlconf.h, + src/otlayout/otlgdef.c, src/otlayout/otlgdef.h, + src/otlayout/otlgpos.c, src/otlayout/otlgpos.h, + src/otlayout/otlgsub.c, src/otlayout/otlgsub.h, + src/otlayout/otljstf.c, src/otlayout/otljstf.h, + src/otlayout/otltable.c, src/otlayout/otltable.h, + src/otlayout/otltags.h: New OpenType Layout source files. The + module is still incomplete. + +2002-05-02 Werner Lemberg <[email protected]> + + * src/sfnt/ttcmap0.c (tt_cmap4_char_index): Fix serious typo + (0xFFFU -> 0xFFFFU). + +2002-05-01 Werner Lemberg <[email protected]> + + * docs/INSTALL: Fix URL of makepp. + +2002-05-01 David Turner <[email protected]> + + * src/sfnt/sfobjs.c (tt_face_get_name): Fixing a bug that caused + FreeType to crash when certain broken fonts (e.g. `hya6gb.ttf') + were opened. + + * src/sfnt/ttload.c (TT_Load_Names): Applied a small work-around to + manage fonts containing a broken name table (e.g. `hya6gb.ttf'). + + * src/sfnt/ttcmap0.c (tt_cmap4_validate): Fixed over-restrictive + validation test. The charmap validator now accepts overlapping + ranges in format 4 charmaps. + + * src/sfnt/ttcmap0.c (tt_cmap4_char_index): Switched to a binary + search algorithm. Certain fonts contain more than 170 distinct + segments! + + * include/freetype/config/ftstdlib.h: Adding an alias for the `exit' + function. This will be used in the near future to panic in case of + unexpected exception (which shouldn't happen in theory). + + * include/freetype/internal/fthash.h, src/base/fthash.c: New files. + This is generic implementation of dynamic hash tables using a linear + algorithm (to get rid of `stalls' during resizes). In the future + this will be used in at least three parts of the library: the cache + sub-system, the object sub-system, and the memory debugger. + + * src/base/Jamfile: Updated. + + * include/freetype/internal/internal.h (FT_INTERNAL_HASH_H, + FT_INTERNAL_OBJECT_H): New macros. + + * include/freetype/internal/ftcore.h: New file to group all new + definitions related to exception handling and memory management. It + is very likely that this file will disappear or be renamed in the + future. + + * include/freetype/internal/ftobject.h, include/freetype/ftsysmem.h: + Adding comments to better explain the object sub-system as well as + the new memory manager interface. + +2002-04-30 Wenlin Institute (Tom Bishop) <[email protected]> + + * src/base/ftmac.c (p2c_str): Removed. + (file_spec_from_path) [TARGET_API_MAC_CARBON]: Added support for + OS X. + (is_dfont) [TARGET_API_MAC_CARBON]: Define only for OS X. + Handle `nameLen' <= 6 also. + (parse_fond): Remove unused variable `name_table'. + Use functionality of old p2c_str directly. + Add safety checks. + (read_lwfn): Initialize `size_p'. + Check for size_p == NULL. + (new_memory_stream, open_face_from_buffer): Updated to FreeType 2.1. + (FT_New_Face_From_LWFN): Remove unused variable `memory'. + Remove some dead code. + (FT_New_Face_From_SFNT): Remove unused variable `stream'. + (FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Define only for + OS X. + (FT_New_Face_From_FOND): Remove unused variable `error'. + (ResourceForkSize): New function. + (FT_New_Face): Use it. + Handle empty resource forks. + Conditionalize some code for OS X. + Add code to call normal loader as a fallback. + +2002-04-30 Werner Lemberg <[email protected]> + + `interface' is reserved on the Mac. + + * include/freetype/ftoutln.h, include/freetype/internal/sfnt.h, + src/base/ftoutln.c: s/interface/func_interface/. + * src/base/ftbbox.c (FT_Outline_Get_BBox): + s/interface/bbox_interface/. + * src/cff/cffdrivr.c: s/interface/module_interface/. + * src/cff/cffload.c, src/cff/cffload.h: + s/interface/psnames_interface/. + * src/cid/cidriver.c: s/interface/cid_interface/. + * src/sfnt/sfdriver.c: s/interface/module_interface/. + * src/smooth/ftgrays.c: s/interface/func_interface/. + * src/truetype/ttdriver.c: s/interface/tt_interface/. + * src/type1/t1driver.c: s/interface/t1_interface/. + + Some more variable renames to avoid troubles on the Mac. + + * src/raster/ftraster.c: + s/Unknown|Ascending|Descending|Flat/\1_State/. + * src/smooth/ftgrays.c: s/TScan/TCoord/. + + Other changes for the Mac. + + * include/freetype/config/ftconfig.h: Define FT_MACINTOSH for + Mac platforms. + * src/base/ftobjs.c: s/macintosh/FT_MACINTOSH/. + + * src/raster/ftrend1.c (ft_raster1_render): Make `pitch' always + an even number. + +2002-04-29 Jouk Jansen <[email protected]> + + * descrip.mms (all): Add pfr driver. + +2002-04-28 Werner Lemberg <[email protected]> + + * src/pfr/pfrerror.h: New file. + * include/freetype/ftmoderr.h: Add PFR error codes. + * src/pfr/pfrgload.c: Include pfrerror.h. + Use PCF error codes. + (pfr_extra_item_load_stem_snaps): Fix debug message. + * src/pfr/pfrgload.c: Include pfrerror.h. + Use PCF error codes. + (pfr_extra_item_load_bitmap_info, pfr_glyph_load_simple, + pfr_glyph_load_compound): Fix debug message. + * src/pfr/pfrobjs.c: Include pfrerror.h. + Use PCF error codes. + (pfr_face_init): Return PFR_Err_Unknown_File_Format. + * src/pfr/rules.mk (PFR_DRV_H): Include pfrerror.h. + + * src/pcf/pcfdriver.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_CMAPS]: + `root' -> `face->root'. + * src/sfnt/ttcmap0.c (TT_Build_CMaps) [!FT_CONFIG_OPTION_USE_CMAPS]: + Removed. + * src/sfnt/ttcmap0.c: Declare TT_Build_CMaps only for + FT_CONFIG_OPTION_USE_CMAPS. + +2002-04-27 Werner Lemberg <[email protected]> + + * src/cache/ftccache.c (ftc_cache_lookup), + src/cache/ftccmap.c (ftc_cmap_family_init), + src/cache/ftcmanag.c (ftc_family_table_alloc), + src/cache/ftcsbits.c (FTC_SBit_Cache_Lookup): Use FTC_Err_*. + src/cache/ftcimage.c (FTC_Image_Cache_Lookup): Use FTC_Err_*. + (FTC_ImageCache_Lookup): Fix handling of invalid arguments. + +2002-04-22 Werner Lemberg <[email protected]> + + * builds/unix/configure.ac: Set `version_info' to 9:1:3 (FT2 + version 2.0.9 has 9:0:3). + * builds/unix/configure: Regenerated (using autoconf 2.53). + +2002-04-19 Werner Lemberg <[email protected]> + + * src/pfr/pfrload.c (pfr_extra_items_farse): Fix debug message. + (pfr_phy_font_load): s/size/Size/ for local variable to avoid + compiler warning. + * src/pfr/pfrobjs.c (pfr_face_init): Fix debug message. + (pfr_slot_load): Remove redundant local variable. + +2002-04-19 David Turner <[email protected]> + + Adding a PFR font driver to the FreeType sources. Note that it + doesn't support embedded bitmaps or kerning tables yet. + + src/pfr/*: New files. + + * include/freetype/config/ftmodule.h, + include/freetype/internal/fttrace.h, src/Jamefile: Updated. + + * src/type1/t1gload.h (T1_Load_Glyph), src/type1/t1gload.c + (T1_Load_Glyph): Fixed incorrect parameter sign-ness in callback + function. + + * include/freetype/internal/ftmemory.h (FT_MEM_ZERO, FT_ZERO): New + macros. + + * include/freetype/internal/ftstream.h (FT_NEXT_OFF3, FT_NEXT_UOFF3, + FT_NEXT_OFF3_LE, FT_NEXT_UOFF3_LE): New macros to parse in-memory + 24-bit integers. + +2002-04-18 David Turner <[email protected]> + + * src/base/ftobjs.c, builds/win32/ftdebug.c, + builds/amiga/src/base/ftdebug.c: Version 2.1.0 couldn't be linked + against applications in Win32 and Amiga builds due to changes to + `src/base/ftdebug.c' that were not properly propagated to + `builds/win32' and `builds/amiga'. This has been fixed. + + * include/freetype/internal/ftobject.h, + include/freetype/internal/ftexcept.h, include/freetype/ftsysmem.h, + include/freetype/ftsysio.h, src/base/ftsysmem.c, src/base/ftsysio.c: + New experimental files. + +2002-04-17 David Turner <[email protected]> + + + * Version 2.1.0 released. + ========================= + + +2002-04-17 Michael Jansson <[email protected]> + + * src/type1/t1gload.c (T1_Compute_Max_Advance): Fixed a small bug + that prevented the function to return the correct value. + +2002-04-16 Francesco Zappa Nardelli <[email protected]> + + * src/pcf/pcfread (pcf_get_accell): Fix parsing of accelerator + tables. + +2002-04-15 David Turner <[email protected]> + + * docs/FTL.txt: Formatting. + + * include/freetype/config/ftoption.h: Reduce the size of the + render pool from 32kByte to 16kByte. + + * src/pcf/pcfread.c (pcf_seek_to_table_type): Remove compiler + warning. + + * include/freetype/config/ftoption.h (FT_MAX_EXTENSIONS): Removed. + + * docs/CHANGES: Preparing 2.1.0 release. + +2002-04-13 Werner LEMBERG <[email protected]> + + * src/cff/cffgload.c (CFF_Parse_CharStrings): s/rand/Rand/ to avoid + compiler warning. + +2002-04-12 David Turner <[email protected]> + + * README.UNX: Updated the Unix-specific quick-compilation guide to + warn about the GNU Make requirement at compile time. + + * include/freetype/config/ftstdlib.h, + include/freetype/config/ftconfig.h, + include/freetype/config/ftheader.h, + include/freetype/internal/ftmemory.h, + include/freetype/internal/ftobjs.h, + + src/autohint/ahoptim.c, + + src/base/ftdbgmem.c, src/base/ftdebug.c, src/base/ftmac.c, + src/base/ftobjs.c, src/base/ftsystem.c, + + src/cache/ftcimage.c, src/cache/ftcsbits.c, + + src/cff/cffdriver.c, src/cff/cffload.c, src/cff/cffobjs.c, + + src/cid/cidload.c, src/cid/cidparse.c, src/cid/cidriver.c, + + src/pcf/pcfdriver.c, src/pcf/pcfread.c, + + src/psaux/t1cmap.c, src/psaux/t1decode.c, + + src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c, + src/pshinter/pshrec.c, + + src/psnames/psmodule.c, + + src/raster/ftraster.c, + + src/sfnt/sfdriver.c, src/sfnt/ttload.c, + + src/smooth/ftgrays.c, + + src/type1/t1afm.c, src/type1/t1driver.c, src/type1/t1gload.c, + src/type1/t1load.c, src/type1/t1objs.c, src/type1/t1parse.c, + + builds/unix/ftconfig.in, builds/vms/ftconfig.h, + + builds/amiga/src/base/ftdebug.c: + + Added the new configuration file `ftstdlib.h' used to define + aliases for all ISO C library functions used by the engine + (e.g. strlen, qsort, setjmp, etc.). + + This eases the porting of FreeType 2 to environments like + XFree86 modules/extensions. + + Also removed many #include <string.h>, #include <stdlib.h>, etc. + from the engine's sources where they are not needed. + + * src/sfnt/ttpost.c: Use macro name for psnames.h. + +2002-04-12 Vincent Caron <[email protected]> + + * configure, builds/detect.mk: Updated the build system to print + a warning message in case GNU Make isn't used to build the library. + +2002-04-11 David Turner <[email protected]> + + * README, docs/CHANGES, Jamfile.in: Updates for the 2.1.0 release. + + * docs/FTL.txt: Updated license text to provide a preferred + disclaimer and adjust copyright dates/extents. + + * include/freetype/cache/ftcglyph.h: Removing obsolete (and + confusing) comment. + + * Jamfile.in: New file. + +2002-04-11 Maxim Shemanarev <[email protected]> + + * src/smooth/ftgrays.c (gray_hline): Minor optimization. + +2002-04-02 Werner Lemberg <[email protected]> + + Fixes from the stable branch: + + * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_OLD_CALCS): + Removed. + [FT_CONFIG_OPTION_OLD_CALCS]: Removed. + * include/freetype/internal/ftcalc.h, src/base/ftcalc.c + [FT_CONFIG_OPTION_OLD_CALCS]: Removed. + + * src/base/fttrigon.c (FT_Vector_Length): Change algorithm to match + output of FreeType 1. + + * src/pshinter/pshglob.c (psh_globals_scale_widths): Fixed a small + bug that created un-even stem widths when hinting Postscript fonts. + + * src/type1/t1driver.c, src/type1/t1parse.c: 16bit fixes. + +2002-04-01 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c: 16bit fixes. + (TT_Load_Simple_Glyph): Improve debug messages. + (load_truetype_glyph): Remove dead code. + * src/truetype/ttinterp.c: 16bit fixes. + * src/truetype/ttobjs.c: Ditto. + + * include/freetype/ftsnames.h, include/freetype/internal/sfnt.h, + src/cff/cffload.h, src/psaux/psobjs.h, src/truetype/ttinterp.[ch], + src/sfnt/ttpost.h: s/index/idx/. + +2002-03-31 Yao Zhang <[email protected]> + + * src/truetype/ttobjs.c (TT_Size_Init): Fix typo. + +2002-03-31 Werner Lemberg <[email protected]> + + * src/otlayout/otlcommn.c, src/otlayout/otlcommn.h: s/index/idx/. + * src/psaux/t1cmap.c: Ditto. + * src/sfnt/ttcmap0.c: Ditto. + + * include/freetype/internal/tttypes.h, + include/freetype/internal/sfnt.h (TT_Goto_Table_Func): Renamed to ... + (TT_Loader_GotoTableFunc): This. + * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix debug + messages. + * src/psnames/psmodule.c (psnames_interface) + [!FT_CONFIG_OPTION_ADOBE_GLYPH_LIST]: Fix typo. + * src/sfnt/sfdriver.c (get_sfnt_table): 16bit fix. + * src/sfnt/ttcmap.c: 16bit fixes (0xFFFF -> 0xFFFFU). + * src/sfnt/ttcmap0.c: 16bit fixes. + (TT_Build_CMaps): Simplify debug messages. + (tt_cmap12_char_next): Fix offset. + * src/sfnt/ttload.c (TT_Load_Names, TT_Load_CMap): Fix debug + messages. + (TT_Load_OS2): 16bit fix. + +2002-03-30 David Turner <[email protected]> + + * include/freetype/internal/tttypes.h: Adding comments to some of + the TT_FaceRec fields. + + * src/sfnt/ttcmap0.c (TT_Build_CMaps): Removed compiler warnings. + + * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_{utf16,ucs4,other}: + New functions. + (tt_face_get_name): Use them to properly extract an ascii font name. + +2002-03-30 Werner Lemberg <[email protected]> + + * include/freetype/t1tables.h (t1_blend_max): Fix typo. + * src/base/ftstream.c: Simplify FT_ERROR calls. + * src/cff/cffdrivr.c (cff_get_glyph_name): Fix debug message. + + * src/cff/cffobjs.c (CFF_Driver_Init, CFF_Driver_Done) + [TT_CONFIG_OPTION_EXTEND_ENGINE]: Removed. + * src/cff/sfobjs.c (SFNT_Load_Face) + [TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto. + * src/truetype/ttobjs.c (TT_Init_Driver, TT_Done_Driver) + [TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto. + + * src/truetype/ttdriver.c, src/truetype/ttobjs.c, + src/truetype/ttobjs.h: Renaming driver functions to the + FT_<Subject>_<Action> scheme: + + TT_Init_Driver => TT_Driver_Init + TT_Done_Driver => TT_Driver_Done + TT_Init_Face => TT_Face_Init + TT_Done_Face => TT_Face_Done + TT_Init_Size => TT_Size_Init + TT_Done_Size => TT_Size_Done + TT_Reset_Size => TT_Size_Reset + +2002-03-29 Werner Lemberg <[email protected]> + + * builds/vms/ftconfig.h: Rename LOCAL_DEF and LOCAL_FUNC to + FT_LOCAL and FT_LOCAL_DEF, respectively, as with other ftconfig.h + files. + * builds/unix/ftconfig.in: Add argument to FT_LOCAL and + FT_LOCAL_DEF. + * src/truetype/ttinterp.c: s/FT_Assert/FT_ASSERT/. + * builds/unix/configure.ac: Temporarily deactivate creation of + ../../Jamfile. + * builds/unix/configure: Updated. + +2002-03-28 KUSANO Takayuki <[email protected]> + + * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fix serious typos. + +2002-03-28 Werner Lemberg <[email protected]> + + * include/freetype/internal/psaux.h (PSAux_ServiceRec): Fix + compiler warnings. + * include/freetype/internal/t1types.h (T1_FaceRec): Use `const' for + some members. + * src/base/ftapi.c (FT_New_Memory_Stream): Fix typos. + * src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Add + cast. + (t1_cmap_{standard,expert,custom,unicode}_class_rec): Use + `FT_CALLBACK_TABLE_DEF'. + * src/psaux/t1cmap.h: Updated. + * src/sfnt/ttcmap0.c (TT_Build_CMaps): Use `ft_encoding_none' + instead of zero. + * src/type1/t1objs.c (T1_Face_Init): Use casts. + +2002-03-26 David Turner <[email protected]> + + * src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c: + Fixed a small bug in the FT_CMaps support code. + +2002-03-25 David Turner <[email protected]> + + * src/truetype/ttinterp.c (Norm): Replaced with... + (TT_VecLen): This. + (TT_MulFix14, TT_DotFix14): New functions. + (Project, Dual_Project, Free_Project, Compute_Point_Displacement, + Ins_SHPIX, Ins_MIAP, Ins_MIRP): Use them. + [FT_CONFIG_OPTION_OLD_CALCS]: Removed all code. + +2002-03-22 David Turner <[email protected]> + + * src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/type1/t1objs.c: + Various fixes to make the FT_CMaps support work correctly (more + tests are still needed). + + * include/freetype/internal/ftobjs.h, src/sfnt/Jamfile, + src/sfnt/rules.mk, src/sfnt/sfnt.c, src/sfnt/sfobjs.c, + src/sfnt/ttload.c, src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h: Updated + the SFNT charmap support to use FT_CMaps. + + * include/freetype/fterrdef.h: New file. + * include/freetype/fterrors.h: Include it. It contains all error + codes. + * include/freetype/config/ftheader.h (FT_ERROR_DEFINITIONS_H): New + macro. + + * include/freetype/internal/ftmemory.h, and a lot of other files: + Changed the names of memory macros. Examples: + + MEM_Set => FT_MEM_SET + MEM_Copy => FT_MEM_COPY + MEM_Move => FT_MEM_MOVE + + ALLOC => FT_ALLOC + FREE => FT_FREE + REALLOC = >FT_REALLOC + + FT_NEW was introduced to allocate a new object from a _typed_ + pointer. + + Note that ALLOC_ARRAY and REALLOC_ARRAY have been replaced by + FT_NEW_ARRAY and FT_RENEW_ARRAY which take _typed_ pointer + arguments. + + This results in _lots_ of sources being changed, but makes the code + more generic and less error-prone. + + * include/freetype/internal/ftstream.h, src/base/ftstream.c, + src/cff/cffload.c, src/pcf/pcfread.c, src/sfnt/ttcmap.c, + src/sfnt/ttcmap0.c, src/sfnt/ttload.c, src/sfnt/ttpost.c, + src/sfnt/ttsbit.c, src/truetype/ttgload.c, src/truetype/ttpload.c, + src/winfonts/winfnt.c: Changed the definitions of stream macros. + Examples: + + NEXT_Byte => FT_NEXT_BYTE + NEXT_Short => FT_NEXT_SHORT + NEXT_UShortLE => FT_NEXT_USHORT_LE + READ_Short => FT_READ_SHORT + GET_Long => FT_GET_LONG + etc. + + Also introduced the FT_PEEK_XXXX functions. + + * src/cff/cffobjs.c (CFF_Build_Unicode_Charmap): Removed commented + out function. + (find_encoding): Removed. + (CFF_Face_Init): Remove charmap support. + + * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_USE_CMAPS, + TT_CONFIG_CMAP_FORMAT{0,2,4,6,8,10,12}): New macros to fine-tune + support of cmaps. + +2002-03-21 David Turner <[email protected]> + + * src/base/ftobjs.c, src/pcf/pcfdriver.c, src/pcf/pcfread.c: Updated + to new FT_CMap definitions. + + * src/psaux/t1cmap.h, src/psaux/t1cmap.c, src/type1/t1cmap.h, + src/type1/t1cmap.c: Updating and moving the Type 1 FT_CMap support + from `src/type1' to `src/psaux' since it is going to be shared by + the Type 1 and CID font drivers. + + * src/psaux/Jamfile, src/psaux/psaux.c, src/psaux/psauxmod.c, + src/psaux/rules.mk, include/freetype/internal/psaux.h: Added support + for Type 1 FT_CMaps. + +2002-03-20 David Turner <[email protected]> + + * src/base/ftgloadr.c (FT_GlyphLoader_CheckSubGlyphs): Fixed a + memory allocation bug that was due to un-careful renaming of the + FT_SubGlyph type. + + * src/base/ftdbgmem.c (ft_mem_table_destroy): Fixed a small bug that + caused the library to crash with Electric Fence when memory + debugging is used. + + * Renaming stream macros. Examples: + + FILE_Skip => FT_STREAM_SKIP + FILE_Read => FT_STREAM_READ + ACCESS_Frame => FT_FRAME_ENTER + FORGET_Frame => FT_FRAME_EXIT + etc. + + * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed memory leak. + + * include/freetype/internal/ftobjs.h: Changing the definition of + FT_CMap_CharNextFunc slightly. + + * src/cff/*.c: Updating CFF type definitions. + +2002-03-14 David Turner <[email protected]> + + * include/freetype/internal/autohint.h, src/autohint/ahmodule.c, + src/base/ftapi.c, src/base/ftobjs.c: Updating the type definitions + for the auto-hinter module. + + FT_AutoHinter_Interface => FT_AutoHinter_ServiceRec + FT_AutoHinter_Interface* => FT_AutoHinter_Service + etc. + + FT_AutoHinter_Get_Global_Func => FT_AutoHinter_GlobalGetFunc + FT_AutoHinter_Done_Global_Func => FT_AutoHinter_GlobalDoneFunc + etc. + + * ahloader.h [_STANDALONE_]: Removed all conditional code. + + * include/freetype/internal/cfftypes.h, src/cff/*.c: Updating the + type definitions of the CFF font driver. + + CFF_Font => CFF_FontRec + CFF_Font* => CFF_Font + etc. + + * include/freetype/internal/fnttypes.h, src/winfonts/*.c: Updating + type definitions of the Windows FNT font driver. + + * include/freetype/internal/ftdriver.h, + include/freetype/internal/ftobjs.h, src/base/ftapi.c, + src/base/ftobjs.c, src/cff/cffdrivr.c, src/cff/cffdrivr.h, + src/cid/cidriver.c, src/cid/cidriver.h, src/pcf/pcfdriver.c, + src/pcf/pcfdriver.h, src/truetype/ttdriver.c, + src/truetype/ttdriver.h, src/type1/t1driver.c, src/type1/t1driver.h, + src/winfonts/winfnt.c, src/winfonts/winfnt.h: Updating type + definitions for font drivers. + + FTDriver_initFace => FT_Face_InitFunc + FTDriver_initGlyphSlot => FT_Slot_InitFunc + etc. + + * src/cid/cidobjs.c (CID_Face_Init): Remove dead code. + + * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: Updated a + few face method definitions: + + FT_PSName_Requester => FT_Face_GetPostscriptNameFunc + FT_Glyph_Name_Requester => FT_Face_GetGlyphNameFunc + FT_Name_Index_Requester => FT_Face_GetGlyphNameIndexFunc + + * src/base/ftapi.c: New file. It contains backwards compatibility + functions. + + * include/freetype/internal/psaux.h, src/cid/cidload.c, + src/cidtoken.h, src/psaux/psobjs.c, src/psaux/psobjs.h, + src/psaux/t1decode.c, stc/type1/t1load.c, src/type1/t1tokens.h: + Updated common PostScript type definitions. + Renamed all enumeration values like to uppercase variants: + + t1_token_any => T1_TOKEN_TYPE_ANY + t1_field_cid_info => T1_FIELD_LOCATION_CID_INFO + etc. + + * include/freetype/internal/psglobals.h: Removed. + * include/freetype/internal/pshints.h, src/pshinter/pshglob.h: + Updated. + + * include/freetype/internal/tttypes.h, + include/freetype/internal/sfnt.h, src/base/ftnames.c, + src/cff/cffdrivr.c, src/sfnt/*.c, src/truetype/*.c: Updated + SFNT/TrueType type definitions. + + * include/freetype/freetype.h, include/freetype/internal/ftgloadr.h: + Updating type definitions for the glyph loader. + +2002-03-13 Antoine Leca <[email protected]> + + * include/freetype/config/ftoption.h: Changed the automatic + detection of Microsoft C compilers to automatically support 64-bit + integers only since revision 9.00 (i.e. >= Visual C++ 2.0). + +2002-03-08 Werner Lemberg <[email protected]> + + * src/base/ftutil.c (FT_Realloc): Use MEM_Set instead of memset. + +2002-03-07 Werner Lemberg <[email protected]> + + * src/base/ftdbgmem.c (ft_mem_table_resize, ft_mem_table_new, + ft_mem_table_set, ft_mem_debug_alloc, ft_mem_debug_free, + ft_mem_debug_realloc, ft_mem_debug_done, FT_Alloc_Debug, + FT_Realloc_Debug, FT_Free_Debug): Fix compiler warnings. + * src/base/ftcalc.c (FT_MulFix): Ditto. + * src/cff/cffdrivr.c (cff_get_name_index): Ditto. + * src/cff/cffobjs.c (CFF_Size_Get_Global_Funcs, CFF_Size_Init, + CFF_GlyphSlot_Init): Ditto. + * src/cid/cidobjs.c (CID_GlyphSlot_Init, + CID_Size_Get_Globals_Funcs): Ditto. + * src/type1/t1objs.c (T1_Size_Get_Globals_Funcs, T1_GlyphSlot_Init): + Ditto. + * src/pshinter/pshmod.c (pshinter_interface): Use `static const'. + * src/winfonts/winfnt.c (FNT_Get_Next_Char): Remove unused + variables. + + * include/freetype/internal/psaux.h (T1_Builder_Funcs): Renamed + to... + (T1_Builder_FuncsRec): This. + (T1_Builder_Funcs): New typedef. + (PSAux_Interface): Remove compiler warnings. + * src/psaux/psauxmod.c (t1_builder_funcs), src/psaux/psobjs.h + (t1_builder_funcs): Updated. + + * src/pshinter/pshglob.h (PSH_Blue_Align): Replaced with ... + (PSH_BLUE_ALIGN_{NONE,TOP,BOT}): New defines. + (PSH_AlignmentRec): Updated. + + * include/freetype/internal/ftstream.h (GET_Char, GET_Byte): Fix + typo. + * include/freetype/internal/ftgloadr.h (FT_SubGlyph): Ditto. + * src/base/ftstream (FT_Get_Char): Rename to... + (FT_Stream_Get_Char): This. + + * src/base/ftnames.c (FT_Get_Sfnt_Name): s/index/idx/ -- `index' is + a built-in function in gcc, causing warning messages with gcc 3.0. + * src/autohint/ahglyph.c (ah_outline_load): Ditto. + * src/autohint/ahglobal.c (ah_hinter_compute_blues): Ditto. + * src/cache/ftcmanag.c (ftc_family_table_alloc, + ftc_family_table_free, FTC_Manager_Done, FTC_Manager_Register_Cache): + Ditto. + * src/cff/cffload.c (cff_new_index, cff_done_index, + cff_explicit_index, CFF_Access_Element, CFF_Forget_Element, + CFF_Get_Name, CFF_Get_String, CFF_Load_SubFont, CFF_Load_Font, + CFF_Done_Font): Ditto. + * src/psaux/psobjs.c (PS_Table_Add, PS_Parser_LoadField): Ditto. + * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Ditto. + * src/pshinter/pshrec.c (ps_mask_test_bit, ps_mask_clear_bit, + ps_mask_set_bit, ps_dimension_add_t1stem, ps_hints_t1stem3, + * src/pshinter/pshalgo1.c (psh1_hint_table_record, + psh1_hint_table_record_mask, psh1_hint_table_activate_mask): Ditto. + * src/pshinter/pshalgo2.c (psh2_hint_table_record, + psh2_hint_table_record_mask, psh2_hint_table_activate_mask): Ditto. + * src/sfnt/ttpost.c (Load_Format_20, Load_Format_25, + TT_Get_PS_Name): Ditto. + * src/truetype/ttgload.c (TT_Get_Metrics, Get_HMetrics, + load_truetype_glyph): Ditto. + * src/type1/t1load.c (parse_subrs, T1_Open_Face): Ditto. + * src/type1/t1afm.c (T1_Get_Kerning): Ditto. + * include/freetype/cache/ftcmanag.h (ftc_family_table_free): Ditto. + +2002-03-06 David Turner <[email protected]> + + * src/type1/t1objs.c (T1_Face_Init), src/cid/cidobjs.c + (CID_Face_Init): Fixed another bug related to the + ascender/descender/text height of Postscript fonts. + + * src/pshinter/pshalgo2.c (print_zone): Renamed to ... + (psh2_print_zone): This. + * src/pshinter/pshalgo1.c (print_zone): Renamed to ... + (psh1_print_zone): This. + + * include/freetype/freetype.h, include/freetype/internal/ftobjs.h, + src/base/ftobjs.c: Adding the new FT_Library_Version API to return + the library's current version in dynamic links. + * src/base/ftinit.c (FT_Init_FreeType): Updated. + +2002-03-06 Werner Lemberg <[email protected]> + + * src/pshinter/pshglob.h (PSH_DimensionRec): s/std/stdw/. + * src/pshinter/pshglob.c (psh_global_scale_widths, + psh_dimension_snap_width, psh_globals_destroy, psh_globals_new): + Ditto. + +2002-03-05 David Turner <[email protected]> + + * src/type1/t1objs.c (T1_Face_Init), src/cff/cffobjs.c + (CFF_Face_Init), src/cid/cidobjs.c (CID_Face_Init): Removing the bug + that returned global BBox values in 16.16 fixed format (instead of + integer font units). + + * src/cid/cidriver.c (cid_get_postscript_name): Fixed a bug that + caused the CID driver to return Postscript font names with a leading + slash (`/') as in `/MOEKai-Regular'. + + * src/sfnt/ttload.c (TT_Load_Names), src/sfnt/sfobjs.c (Get_Name), + src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed the loader so + that it accepts broken fonts like `foxjump.ttf', which made FreeType + crash when trying to load them. + + Also improved the name table parser to be able to load + Windows-encoded entries before Macintosh or Unicode ones, since it + seems some fonts don't have reliable values here anyway. + + * include/freetype/internal/psnames.h: Add typedef for + `PSNames_Service'. + +2002-03-05 Werner Lemberg <[email protected]> + + * builds/unix/aclocal.m4, builds/unix/ltmain.sh: Update to libtool + 1.4.2. + Apply a small patch for AIX to make shared libraries work (this + patch is already in the CVS version of libtool). + + * builds/unix/config.sub, builds/unix/config.guess: Updated to + recent versions. + + * builds/unix/configure.ac: Fix typo + (AC_CONFIG_FILE->AC_CONFIG_FILES). + + * builds/unix/configure: Regenerated. + +2002-02-28 David Turner <[email protected]> + + * include/freetype/ftconfig.h: Changed `FT_LOCAL xxxx' to + `FT_LOCAL( xxxx )' everywhere in the source. The same goes for + `FT_LOCAL_DEF xxxx' which is translated to `FT_LOCAL_DEF( xxxxx )'. + + * include/freetype/freetype.h (FREETYPE_MINOR, FREETYPE_PATCH): + Changing version to 2.1.0 to indicate an unstable branch. + Added the declarations of FT_Get_First_Char and FT_Get_Next_Char. + + * src/base/ftobjs.c: Implement FT_Get_First_Char and + FT_Get_Next_Char. + + * include/freetype/t1tables.h: Renaming structure types. This + + typedef T1_Struct_ + { + } T1_Struct; + + becomes + + typedef PS_StructRec_ + { + } PS_StructRec, *PS_Struct; + + typedef PS_StructRec T1_Struct; /* backwards-compatibility */ + + Hence, we increase the coherency of the source code by effectively + using the `Rec' prefix for structure types. + +2002-02-27 David Turner <[email protected]> + + * src/sfnt/ttload.c (TT_Load_Names): Simplifying and securing the + names table loader. Invalid individual name entries are now handled + correctly. This allows the loading of very buggy fonts like + `foxjump.ttf' without allocating tons of memory and causing crashes. + + * src/otlayout/otlcommon.h, src/otlayout/otlcommon.c: Adding (still + experimental) code for OpenType Layout tables validation and + parsing. + + * src/type1/t1cmap.h, src/type1/t1cmap.c: Adding (still + experimental) code for Type 1 charmap processing. + + * src/sfnt/ttcmap0.c: New file. It contains a new, still + experimental SFNT charmap processing support. + + * include/freetype/internal/ftobjs.h: Adding validation support as + well as internal charmap object definitions (FT_CMap != FT_CharMap). + +2002-02-24 David Turner <[email protected]> + + * Renaming stream functions to the FT_<Subject>_<Action> scheme: + + FT_Seek_Stream => FT_Stream_Seek + FT_Skip_Stream => FT_Stream_Skip + FT_Read_Stream => FT_Stream_Read + FT_Read_Stream_At => FT_Stream_Read_At + FT_Access_Frame => FT_Stream_Enter_Frame + FT_Forget_Frame => FT_Stream_Exit_Frame + FT_Extract_Frame => FT_Stream_Extract_Frame + FT_Release_Frame => FT_Stream_Release_Frame + FT_Get_XXXX => FT_Stream_Get_XXXX + FT_Read_XXXX => FT_Stream_Read_XXXX + + FT_New_Stream( filename, stream ) => + FT_Stream_Open( stream, filename ) + + (The function doesn't create the FT_Stream structure, it simply + initializes it for reading.) + + FT_New_Memory_Stream( library, FT_Byte* base, size, stream ) => + FT_Stream_Open_Memory( stream, const FT_Byte* base, size ) + + FT_Done_Stream => FT_Stream_Close + FT_Stream_IO => FT_Stream_IOFunc + FT_Stream_Close => FT_Stream_CloseFunc + + ft_close_stream => ft_ansi_stream_close (in base/ftsystem.c only) + ft_io_stream => ft_ansi_stream_io (in base/ftsystem.c only) + + * src/base/ftutil.c: New file. Contains all memory and list + management code (previously in `ftobjs.c' and `ftlist.c', + respectively). + + * include/freetype/internal/ftobjs.h: Moving all code related to + glyph loaders to ... + * include/freetype/internal/ftgloadr.h: This new file. + `FT_GlyphLoader' is now a pointer to the structure + `FT_GlyphLoaderRec'. + (ft_glyph_own_bitmap): Renamed to ... + (FT_GLYPH_OWN_BITMAP): This. + * src/base/ftobjs.c: Moving all code related to glyph loaders + to ... + * src/base/ftgloadr.c: This new file. + +2002-02-22 Werner Lemberg <[email protected]> + + * include/freetype/internal/ftdebug.h (FT_Trace): Remove comma in + enum to avoid compiler warnings. + +2002-02-21 David Turner <[email protected]> + + Modified the debug sub-system initialization. Trace levels can now + be specified within the `FT2_DEBUG' environment variable. See the + comments within `ftdebug.c' for more details. + + * src/base/ftdebug.c: (FT_SetTraceLevel): Removed. + (ft_debug_init): New function. + (ft_debug_dummy): Removed. + Updated to changes in ftdebug.h + + * include/freetype/internal/ftdebug.h: Always define + FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE is defined. + (FT_Assert): Renamed to ... + (FT_ASSERT): This. + Some stuff from ftdebug.h has been moved to ... + + * include/freetype/internal/fttrace.h: New file, to define the trace + levels used for debugging. It is used both to define enums and + toggle names for FT2_DEBUG. + + * include/freetype/internal/internal.h: Updated. + + * src/base/ftobjs.c, src/base/ftstream.c: Updated. + + * include/freetype/internal/ftextend.h, src/base/ftextend.c: + Removed. Both files are now completely obsolete. + * src/base/Jamfile, src/base/rules.mk: Updated. + + * include/freetype/fterrors.h: Adding `#undef FT_ERR_CAT' and + `#undef FT_ERR_XCAT' to avoid warnings with certain compilers (like + LCC). + + * src/pshinter/pshalgo2.c (print_zone): Renamed to ... + (psh2_print_zone): This to avoid errors during compilation of debug + library. + + * src/smooth/ftgrays.c (FT_COMPONENT): Change definition to as + `trace_smooth'. + +2002-02-20 David Turner <[email protected]> + + * README: Adding `[email protected]' address for bug reports. + +2002-02-20 Werner Lemberg <[email protected]> + + * builds/unix/install.mk (check): New dummy target. + (.PHONY): Add it. + +2002-02-19 Werner Lemberg <[email protected]> + + * builds/freetype.mk (FT_CFLAGS): Use $(INCLUDE_FLAGS) first. + + * src/cache/ftccache.c (ftc_cache_resize): Mark `error' as unused + to avoid compiler warning. + * src/cff/cffload.c (CFF_Get_String): Ditto. + * src/cff/cffobjs.c (CFF_StrCopy): Ditto. + * src/psaux/psobjs.c (PS_Table_Done): Ditto. + * src/pcf/pcfread.c (pcf_seek_to_table_type): Ditto. + * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Ditto. + (pcf_get_bitmaps): The same for `sizebitmaps'. + * src/psaux/t1decode.c (T1_Decode_Parse_Charstrings): The same for + `orig_y'. + (t1operator_seac): Comment out more dead code. + * src/pshinter/pshalgo2.c (ps2_hints_apply): Add `DEBUG_HINTER' + conditional. + * src/truetype/ttgload.c (TT_Process_Simple_Glyph, + load_truetype_glyph): Add `TT_CONFIG_OPTION_BYTECODE_INTERPRETER' + conditional. + +2002-02-18 Werner Lemberg <[email protected]> + + * src/autohint/ahglyph.c (ah_outline_link_segments): Remove unused + variables. + * src/autohint/ahhint.c (ah_align_serif_edge): Use FT_UNUSED instead + of UNUSED. + * src/autohint/ahmodule.c (ft_autohinter_reset): Ditto. + * src/pshinter/pshrec.c (ps_mask_table_merge): Fix typo in variable + swapping code. + * src/pshinter/pshglob.h (PSH_Blue_Align): Add PSH_BLUE_ALIGN_NONE. + * src/pshinter/pshglob.c (psh_blues_snap_stem): Use it. + * src/pshinter/pshalgo1.c (psh1_hint_table_optimize): Ditto. + * src/pshinter/pshalgo2.c (psh2_hint_align): Ditto. + * include/freetype/internal/ftobjs.h (UNUSED): Removed. + +2002-02-10 Roberto Alameda <[email protected]> + + Add support for ISOLatin1 PS encoding. + + * include/freetype/freetype.h (ft_encoding_latin_1): New tag + (`lat1'). + * include/freetype/internal/t1types.h (T1_Encoding_Type): Add + `t1_encoding_isolatin1'. + * src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Handle + ft_encoding_latin_1. + * src/type1/t1load.c (parse_encoding): Handle `ISOLatin1Encoding'. + * src/type1/t1objs.c (T1_Face_Init): Handle `t1_encoding_isolatin1'. + +---------------------------------------------------------------------------- + +Copyright 2002, 2003, 2004, 2005, 2007, 2008 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. + + +Local Variables: +version-control: never +coding: utf-8 +End: diff --git a/components/external/freetype/ChangeLog.22 b/components/external/freetype/ChangeLog.22 index 0462be96db..4144288a5b 100644 --- a/components/external/freetype/ChangeLog.22 +++ b/components/external/freetype/ChangeLog.22 @@ -1,2837 +1,2837 @@ -2006-05-12 Werner Lemberg <[email protected]>
-
-
- * Version 2.2.1 released.
- =========================
-
-
- Tag sources with `VER-2-2-1'.
-
-2006-05-12 Werner Lemberg <[email protected]>
-
- * src/tools/docmaker/sources.py (re_source_keywords): Add word
- boundary markers.
- * src/tools/docmaker/content.py (re_field): Allow `.' in field names
- (but not at the beginning or end).
- * src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset.
- (block_footer): Split into...
- (block_footer_start, block_footer_middle, block_footer_end): This to
- add navigation buttons.
- (HtmlFormatter::block_exit): Updated.
-
- * include/freetype/*: Many minor documentation improvements (adding
- links, spelling errors, etc.).
-
-2006-05-11 Werner Lemberg <[email protected]>
-
- * README: Minor updates.
-
- * include/freetype/*: s/scale/scaling value/ where appropriate.
- Many other minor documentation improvements.
-
- * src/tools/docmaker/sources.py (re_italic, re_bold): Handle
- trailing punctuation.
- * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Add
- warning message for undefined cross references.
- Update handling of re_italic and re_bold.
-
-2006-05-11 Masatake YAMATO <[email protected]>
-
- * builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if
- read system call returns -1.
- Remove a redundant parenthesis.
-
-2006-05-10 Werner Lemberg <[email protected]>
-
- * builds/unix/ftsystem.c (FT_Stream_Open): Avoid infinite loop if
- given an empty, un-mmap()able file. Reported and suggested fix in
- Savannah bug #16555.
-
- * builds/freetype.mk (refdoc): Write-protect the `docmaker'
- directory to suppress generation of .pyc files. According to the
- Python docs there isn't a more elegant solution (currently).
-
- * builds/toplevel.mk (dist): New target which builds .tar.gz,
- .tar.bz2, and .zip files. Note that the version number is still
- hard-coded.
- (do-dist): Sub-target of `dist'.
- (CONFIG_GUESS, CONFIG_SUB): New variables.
- (.PHONY): Updated.
-
-2006-05-09 Rajeev Pahuja <[email protected]>
-
- * builds/win32/visualc/freetype.sln,
- builds/win32/visualc/freetype.vcproj: Upgraded to VS.NET 2005 from
- VS.NET 2003
- Added files ftbbox.c, fttype1.c, ftwinfnt.c, ftsynth.c.
-
- * builds/win32/visualc/index.html: Updated.
-
-2006-05-07 Werner Lemberg <[email protected]>
-
- Put version information into the configure script. Reported by Paul
- Watson <[email protected]>.
-
- * builds/unix/configure.ac: Renamed to...
- * builds/unix/configure.raw: This which now serves (with appropriate
- modifications) as a template for configure.ac.
-
- * version.sed: New script.
-
- * autogen.sh: Generate configure.ac from configure.raw, using
- FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h.
-
-2006-05-06 Werner Lemberg <[email protected]>
-
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
-
- * builds/unix/configure.ac (version_info): Set to 9:10:3.
-
- * builds/win32/visualc/index.html,
- builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj, builds/freetype.mk (refdoc),
- Jamfile (RefDoc), README: s/220/221/, s/2.2.0/2.2.1/.
- Minor updates.
-
- * docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS:
- Updated.
-
- * builds/unix/install-sh: Updated from `texinfo' CVS module at
- savannah.gnu.org.
-
- * devel/ftoption.h: Synchronize with
- include/freetype/config/ftoption.h.
-
-2006-05-04 Werner Lemberg <[email protected]>
-
- * src/lzw/ftlzw2.c: Renamed to...
- * src/lzw/ftlzw.c: This.
-
- * src/lzw/Jamfile, src/lzw/rules.mk: Updated.
-
- * builds/mac/FreeType.m68k_cfm.make.txt,
- builds/mac/FreeType.m68k_far.make.txt,
- builds/mac/FreeType.ppc_carbon.make.txt,
- builds/mac/FreeType.ppc_classic.make.txt: Updated.
-
-2006-05-03 David Turner <[email protected]>
-
- Allow compilation again with C++ compilers.
-
- * include/freetype/internal/ftmemory.h (FT_ASSIGNP,
- FT_ASSIGNP_INNER): New macros which do the actual assignment, and
- which exist in two variants (for C and C++).
- Update callers accordingly.
-
-2006-05-03 Werner Lemberg <[email protected]>
-
- * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed.
-
-2006-05-02 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++).
- (FT_ALLOC): Remove redundant redefinition.
-
- * builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use
- `-Wstrict-prototypes'.
-
- * src/base/ftstream.c (FT_Stream_EnterFrame): Add cast.
-
- * include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]:
- Remove `extern'.
-
-2006-05-02 David Turner <[email protected]>
-
- Update the memory management functions and macros to safely deal
- with array size buffer overflows. This corresponds to attempts to
- allocate arrays that are too large. For an example, consider the
- following code:
-
- count = read_uint32_from_file(); array = malloc( sizeof ( Item ) *
- count ); for ( nn = 0; nn < count; nn++ )
- array[nn] = read_item_from_file();
-
- If `count' is larger than `FT_UINT_MAX/sizeof(Item)', the
- multiplication overflows, and the array allocated os smaller than
- the data read from the file. In this case, the heap will be
- trashed, and this can be used as a denial-of-service attack, or make
- the engine crash later.
-
- The FT_ARRAY_NEW and FT_ARRAY_RENEW macros now ensure that the new
- count is no larger than `FT_INT_MAX/item_size', otherwise a new
- error code `FT_Err_Array_Too_Large' will be returned.
-
- Note that the memory debugger now works again when FT_DEBUG_MEMORY
- is defined. FT_STRICT_ALIASING has disappeared; the corresponding
- code is now the default.
-
-
- * include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]:
- Don't use `extern'.
-
- * include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error
- code.
-
- * include/freetype/internal/ftmemory.h (FT_DEBUG_INNER)
- [FT_DEBUG_MEMORY]: New macro.
- (ft_mem_realloc, ft_mem_qrealloc): Pass new object size count also.
- (ft_mem_alloc_debug, ft_mem_qalloc_debug, ft_mem_realloc_debug,
- ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
- (FT_MEM_ALLOC, FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC,
- FT_MEM_FREE): Redefine.
- (FT_MEM_NEW_ARRAY, FT_MEM_RENEW_ARRAY, FT_MEM_QNEW_ARRAY,
- FT_MEM_QRENEW_ARRAY): Redefine.
- (FT_ALLOC_MULT, FT_REALLOC_MULT, FT_MEM_QALLOC_MULT,
- FT_MEM_QREALLOC_MULT): New macros. Update callers where
- appropriate.
- (FT_MEM_SET_ERROR): Slightly redefine.
-
-
- * src/base/ftdbgmem.c (_ft_debug_file, _ft_debug_lineno)
- [FT_DEBUG_MEMORY]: New global variables, replacing...
- (FT_MemTable_Rec) [FT_DEBUG_MEMORY]: Remove `filename' and
- `line_no'. Update all callers.
- (ft_mem_debug_alloc) [FT_DEBUG_MEMORY]: Avoid possible integer
- overflow.
- (ft_mem_alloc_debug, ft_mem_realloc_debug, ft_mem_qalloc_debug,
- ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
-
- * src/base/ftmac.c (read_lwfn): Catch integer overflow.
- * src/base/ftrfork.c (raccess_guess_darwin_hfsplus): Ditto.
- * src/base/ftutil.c: Remove special code for FT_STRICT_ALIASING.
- (ft_mem_alloc, ft_mem_realloc, ft_mem_qrealloc): Rewrite.
-
-
- * include/freetype/ftstream.h (FT_FRAME_ENTER, FT_FRAME_EXIT,
- FT_FRAME_EXTRACT, FT_FRAME_RELEASE): Use FT_DEBUG_INNER to report the
- place where the frames were entered, extracted, exited or released
- in the memory debugger.
-
- * src/base/ftstream.c (FT_Stream_ReleaseFrame) [FT_DEBUG_MEMORY]:
- Call ft_mem_free.
- (FT_Stream_EnterFrame) [FT_DEBUG_MEMORY]: Use ft_mem_qalloc.
- (FT_Stream_ExitFrame) [FT_DEBUG_MEMORY]: Use ft_mem_free.
-
-2006-04-30 suzuki toshiya <[email protected]>
-
- * src/base/ftobjs.c (Mac_Read_POST_Resource): Correct pfb_pos
- initialization, remove extra cast to copy to pfb_lenpos. This fixes
- parsing of PFB fonts with MacOS resource fork (bug introduced
- 2003-09-11). Patch provided by Huib-Jan Imbens <[email protected]>.
-
-2006-04-29 Werner Lemberg <[email protected]>
-
- Further C library abstraction. Based on a patch from
-
- * include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE,
- ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc,
- ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for
- C library functions. Update all users accordingly (and catch some
- other places where the C library function was used instead of the
- wrapper functions).
-
- * src/base/ftsystem.c: Don't include stdio.h and stdlib.h.
- * src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't
- include malloc.h.
-
-
- * builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c
- and forthcoming versions.
-
-2006-04-28 Werner Lemberg <[email protected]>
-
- * src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed,
- obsolete.
-
-2006-04-27 yi luo <[email protected]>
-
- * builds/win32/visualc/freetype.vcproj: Updated.
-
-2006-04-26 David Turner <[email protected]>
-
-
- * Version 2.2 released.
- =======================
-
-
- Tag sources with `VER-2-2-0'.
-
-2006-04-26 Werner Lemberg <[email protected]>
-
- * src/psaux/psobjs.c (shift_elements): Don't use FT_Long but
- FT_PtrDiff for `delta'. Reported by Céline PILLET
- <[email protected]>.
-
-2006-04-21 David Turner <[email protected]>
-
- * include/freetype/ftincrem.h: Documentation updates.
- (FT_Incremental_Interface): New typedef.
-
- * include/freetype/ftmodapi.h, include/freetype/ftglyph.h:
- Documentation updates.
-
- * include/freetype/freetype.h: Documentation update.
- (FT_HAS_FAST_GLYPHS): Always set to 0.
-
- * include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New):
- Take an FT_Library argument instead of FT_Memory.
-
- * src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2).
-
-2006-04-13 David Turner <[email protected]>
-
- * src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove
- superfluous code in the auto-fitter's loader.
-
-2006-04-05 Detlef Würkner <[email protected]>
-
- * builds/amiga/makefile, builds/amiga/makefile.os4,
- builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define.
-
-2006-04-03 luoyi <[email protected]>
-
- * builds/compiler/intelc.mk (TE): New variable.
- (ANSIFLAGS): Updated.
-
-2006-04-03 Werner Lemberg <[email protected]>
-
- * builds/exports.mk (clean_symbols_list, clean_apinames): Removed.
- (CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE).
- (.PHONY): Updated.
-
- * configure.ac: Minor fixes to improve --help output.
-
-
- * docs/PROBLEMS: New file.
-
-2006-04-01 David Turner <[email protected]>
-
- * docs/CHANGES: Updated.
-
- * include/freetype/ftcache.h, include/freetype/config/ftheader.h:
- Update documentation comments.
-
-2006-04-01 Werner Lemberg <[email protected]>
-
- * builds/unix/install.mk (uninstall): Don't handle `cache'
- directory which no longer exists.
-
-2006-03-29 Detlef Würkner <[email protected]>
-
- * src/psaux/psconv.c: Changed some variables which are expected to
- hold negative values from `char' to `FT_Char' to allow building with
- a compiler where `char' is unsigned by default.
-
-2006-03-27 David Turner <[email protected]>
-
- * src/sfnt/ttkern.c (tt_face_get_kerning): Fix a serious bug that
- causes some programs to go into an infinite loop when dealing with
- fonts that don't have a properly sorted kerning sub-table.
-
-2006-03-26 Werner Lemberg <[email protected]>
-
- * src/bdf/bdflib.c (ERRMSG4): New macro.
- (_bdf_parse_glyphs): Handle invalid BBX values.
-
- * include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error
- macro.
-
-2006-03-23 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-
- * src/tools/docmaker/tohtml.py (html_header_2): Add horizontal
- padding between table elements.
- (html_header_1): The `DOCTYPE' comment must be in uppercase.
- (make_html_para): Convert `...' quotations into real left and
- right single quotes.
- Use `para_header' and `para_footer'.
-
- * src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'"
- also.
-
-2006-03-23 David Turner <[email protected]>
-
- Add FT_Get_SubGlyph_Info API to retrieve subglyph data. Note that
- we do not expose the FT_SubGlyphRec structure.
-
- * include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved
- to...
- * include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here.
- (FT_Get_SybGlyph_Info): New declaration.
-
- * src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function.
-
-
- * src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and
- rsb_delta correctly in edge cases.
-
-2006-03-22 Werner Lemberg <[email protected]>
-
- * src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup)
- [!FTC_INLINE]: Compile conditionally.
- * src/cache/ftccache.h: Updated.
-
- * src/cache/ftcglyph.c (FTC_GNode_Init, FTC_GNode_UnselectFamily,
- FTC_GNode_Done, FTC_GNode_Compare, FTC_Family_Init, FTC_GCache_New):
- s/FT_EXPORT/FT_LOCAL/.
- (FTC_GCache_Init, FTC_GCache_Done): Commented out.
- (FTC_GCache_Lookup) [!FTC_INLINE]: Compile conditionally.
- s/FT_EXPORT/FT_LOCAL/.
- * src/cache/ftcglyph.h: Updated.
-
- * src/cache/ftcimage.c (FTC_INode_Free, FTC_INode_New):
- s/FT_EXPORT/FT_LOCAL/.
- (FTC_INode_Weight): Commented out.
- * src/cache/ftcimage.h: Updated.
-
- * src/cache/ftmanag.c (FTC_Manager_Compress,
- FTC_Manager_RegisterCache, FTC_Manager_FlushN):
- s/FT_EXPORT/FT_LOCAL/.
- * src/cache/ftmanag.h: Updated.
-
- * src/cache/ftcsbits.c (FTC_SNode_Free, FTC_SNode_New,
- FTC_SNode_Compare): s/FT_EXPORT/FT_LOCAL/.
- (FTC_SNode_Weight): Commented out.
- * src/cache/ftcsbits.h: Updated.
-
-2006-03-22 Werner Lemberg <[email protected]>
-
- * src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy):
- Remove, unused.
-
- * src/cache/ftccmap.h: Remove, unused.
-
- * src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h.
-
-2006-03-21 Zhe Su <[email protected]>
-
- * src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve
- algorithm.
-
-2006-03-21 Werner Lemberg <[email protected]>
-
- * src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member.
-
- * src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'.
-
- * src/cff/cffgload.c (cff_slot_load): Change type of third parameter
- to `FT_UInt'.
- Check range of `glyph_index'.
- * src/cff/cffgload.h: Updated.
-
-
- * src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset
- correctly.
-
-
- * builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc),
- README: s/2.1.10/2.2/.
-
-2006-03-21 David Turner <[email protected]>
-
- * src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug
- that crashes the auto-hinter (introduced by previous patch).
-
-2006-03-20 Werner Lemberg <[email protected]>
-
- * builds/freetype.mk (CACHE_DIR, CACHE_H): Remove.
- (FREETYPE_H): Updated.
-
- * src/cache/rules.mk (CACHE_H_DIR): Remove.
- (CACHE_DRV_H): Updated.
-
-2006-03-20 David Turner <[email protected]>
-
- * include/freetype/cache/ftccache.h,
- include/freetype/cache/ftccmap.h, include/freetype/cache/ftcglyph.h
- include/freetype/cache/ftcimage.h include/freetype/cache/ftcmanag.h
- include/freetype/cache/ftcmru.h include/freetype/cache/ftcsbits.h:
- Move to...
-
- * src/cache/ftccache.h, src/cache/ftcglyph.h, src/cache/ftcimage.h,
- src/cache/ftcsbits.h, src/cache/ftcmanag.h, src/cache/ftccmap.h,
- src/cache/ftcmru.h: This new location.
- Update declarations according to the changes in the corresponding
- source files.
-
- Note that these files are not used by FreeType clients; all public
- APIs of the cache module have been already moved to
- `include/freetype/ftcache.h', and all FT_CACHE_INTERNAL_XXXX_H
- macros resolve to it.
-
- Reason for the move is to allow modifications of the internals
- without interferences with rogue clients. Note that there are no
- known clients that access the cache internals at the moment.
-
- * builds/unix/install.mk (install): Don't install headers from
- $(CACHE_H).
- Remove `freetype/cache' from the target directory.
-
- * include/freetype/config/ftheader.h (FT_CACHE_MANAGER_H,
- FT_CACHE_INTERNAL_MRU_H, FT_CACHE_INTERNAL_MANAGER_H,
- FT_CACHE_INTERNAL_CACHE_H, FT_CACHE_INTERNAL_GLYPH_H,
- FT_CACHE_INTERNAL_IMAGE_H, FT_CACHE_INTERNAL_SBITS_H): Point to
- FT_CACHE_H.
-
- * src/cache/ftcbasic.c, src/cache/ftccache.h, src/cache/ftccback.h,
- src/cache/ftccmap.c, src/cache/ftcglyph.c, src/cache/ftcglyph.h,
- src/cache/ftcimage.c, src/cache/ftcimage.h, src/cache/ftcmanag.c,
- src/cache/ftcmanag.h, src/cache/ftcmru.h, src/cache/ftcsbits.c,
- src/cache/ftcsbits.h: Don't use the FT_CACHE_INTERNAL_XXX_H macros
- but include the headers directly (which are now in `src/cache').
-
- * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
- macros but include the headers directly.
- (FTC_Cache_Init, FTC_Cache_Done, FTC_Cache_NewNode,
- FTC_Cache_Lookup, FTC_Cache_RemoveFaceID): Declare as FT_LOCAL_DEF.
-
- * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
- macros but include the headers directly.
- (FTC_MruNode_Prepend, FTC_MruNode_Up, FTC_MruNode_Remove,
- FTC_MruList_Init, FTC_MruList_Reset, FTC_MruList_Done,
- FTC_MruList_New, FTC_MruList_Remove, FTC_MruList_RemoveSelection):
- Declare as FT_LOCAL_DEF.
- (FTC_MruListFind, FTC_MruList_Lookup) [!FTC_INLINE]: Compile
- conditionally.
- Declare as FT_LOCAL_DEF.
-
-
- * builds/win32/visualc/freetype.dsp: Update project file, add
- missing base source files (ftstroke.c, ftxf86.c, etc.).
-
-
- * src/autofit/afcjk.c, src/autofit/aflatin.c, src/base/ftobjs.c,
- src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrobjs.c,
- src/sfnt/sfobjs.c, src/sfnt/ttmtx.c, src/type1/t1afm.c,
- src/type1/t1objs.c: Remove compiler warnings when building with
- Visual C++ 6 and /W4.
-
- * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
- hinting for italic/oblique fonts.
-
-
-
- * src/truetype/ttpload.c, src/truetype/ttpload.h
- (tt_face_get_device_metrics): Change second argument to `FT_UInt'.
-
-2006-03-06 David Turner <[email protected]>
-
- * src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in
- Mozilla/FireFox print preview in Ubuntu Hoary.
-
-2006-02-28 Chia-I Wu <[email protected]>
-
- * src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not
- return error when size == 0.
-
-2006-02-28 Chia-I Wu <[email protected]>
-
- * src/base/ftobjs.c (FT_Done_Library): Remove modules in reverse
- order so that type42 module is removed before truetype module. This
- avoids double free in some occasions.
-
-2006-02-28 David Turner <[email protected]>
-
- * Release candidate VER-2-2-0-RC4.
- ----------------------------------
-
- * docs/CHANGES: Documentation updates.
-
-2006-02-28 suzuki toshiya <[email protected]>
-
- * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
- build ftvalid in ft2demos. It works as dummy ABI if gxvalid is not
- built.
-
-2006-02-27 Werner Lemberg <[email protected]>
-
- * include/freetype/cache/ftccache.h
- [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of
- ftc_node_done.
-
- * src/cache/ftccache.c (ftc_node_destroy)
- [!FT_CONFIG_OPTION_OLD_INTERNALS]: Mark as FT_LOCAL_DEF. This
- should now fix all possible compilation options.
-
-2006-02-27 David Turner <[email protected]>
-
- * src/base/ftutil.c (ft_mem_alloc, ft_mem_qalloc, ft_mem_realloc,
- ft_mem_qrealloc): Return an error if a negative size is passed in
- parameters.
-
- * src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since
- it needs to be exported for rogue clients.
-
- * src/pshinter/pshglob.c (psh_blues_set_zones_0): Prevent problems
- with malformed fonts which have an odd number of blue values (these
- are broken according to the specs).
-
- * src/cff/cffload.c (cff_subfont_load), src/type1/t1load.c
- (T1_Open_Face): Modify the loaders to force even-ness of
- `num_blue_values'.
-
- (cff_index_access_element): Ignore invalid entries in index files.
-
-2006-02-27 Chia-I Wu <[email protected]>
-
- * src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width
- or height is 0.
-
-2006-02-27 suzuki toshiya <[email protected]>
-
- * builds/mac/FreeType.m68k_cfm.make.txt,
- builds/mac/FreeType.m68k_far.make.txt,
- builds/mac/FreeType.ppc_carbon.make.txt,
- builds/mac/FreeType.ppc_classic.make.txt: Update to new header
- inclusion introduced on 2006-02-16.
-
-2006-02-27 Chia-I Wu <[email protected]>
-
- * src/base/ftobjs.c (GRID_FIT_METRICS): New macro.
- (ft_glyphslot_grid_fit_metrics, FT_Load_Glyph) [GRID_FIT_METRICS]:
- Re-enable glyph metrics grid-fitting. It is now done in the base
- layer.
- (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Make sure the width and
- height are not too small or too large, just like we were doing in
- 2.1.10.
-
- * src/autofit/afloader.c (af_loader_load_g): The vertical metrics
- are not scaled.
-
-2006-02-26 Werner Lemberg <[email protected]>
-
- * docs/release: Minor additions and clarifications.
-
- * docs/CHANGES: Updated to reflect many fixes for backwards
- compatibility. Still incomplete.
-
-2006-02-26 David Turner <[email protected]>
-
- * src/base/ftobjs.c (ft_recompute_scaled_metrics): Re-enable
- conservative rounding of metrics to avoid breaking clients like
- Pango (see http://bugzilla.gnome.org/show_bug.cgi?id=327852).
-
-2006-02-25 Werner Lemberg <[email protected]>
-
- * devel/ftoption.h: Synchronize with
- include/freetype/config/ftoption.h.
-
- * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again).
-
-2006-02-25 David Turner <[email protected]>
-
- Fix compiler warnings as well as C++ compilation problems.
- Add missing prototypes.
-
- * src/autofit/afcjk.c, src/base/ftobjs.c, src/base/ftutil.c,
- src/bdf/bdfdrivr.c, src/cff/cffcmap.c, src/cff/cffobjs.c,
- src/psaux/afmparse.c,, src/psaux/t1cmap.c, src/smooth/ftgrays.c
- src/tools/apinames.c, src/truetype/ttdriver.c: Add various casts,
- initialize variables, and decorate functions with FT_CALLBACK_DEF,
- etc., to fix compiler warnings (and C++ compiling errors).
-
- * src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with
- gcc.
-
- * builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but
- FT_INTERNAL_STREAM_H.
-
- * src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H.
-
- * include/freetype/config/ftheader.h (FT_PFR_H): New macro.
-
- * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't
- define for C++.
-
- * include/freetype/internal/services/svotval.h: Don't include
- FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H.
-
- * include/freetype/internal/services/svpfr.h: Include FT_PFR_H.
-
- * src/gzip/ftgzip.c: Include FT_GZIP_H.
-
- * src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H.
-
- * src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code.
-
-2006-02-24 Chia-I Wu <[email protected]>
-
- * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
- ft_contour_enclosed, ft_outline_get_orientation): Commented out. We
- have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized.
- (FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'.
-
-2006-02-24 Chia-I Wu <[email protected]>
-
- * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update
- documentation.
-
- * include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap),
- src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make
- sure a glyph slot owns its bitmap. It is also marked experimental
- and due to change.
- (FT_GlyphSlot_Embolden): Undo the last change. It turns out that
- rendering the outline confuses some applications.
-
-2006-02-24 David Turner <[email protected]>
-
- * Release candidate VER-2-2-0-RC3.
- ----------------------------------
-
- * src/cache/ftcbasic.c: Correct compatibility hack bug.
-
-2006-02-24 Chia-I Wu <[email protected]>
-
- * include/freetype/freetype.h (FT_Size_RequestRec): Change the type
- of `width' and `height' to `FT_Long'.
- (enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics):
- New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales
- directly.
-
-2006-02-23 David Turner <[email protected]>
-
- Two BDF patches from Debian libfreetype6 for 2.1.10.
-
- * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width
- glyphs.
- Fix a problem with large encodings.
-
-
- Fix binary compatibility issues for gnustep-back (GNUstep backend
- module) which still crashes under Sarge.
-
- * src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec,
- FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data
- structures and enumerations.
- (FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New
- compatibility code.
-
- * src/cache/ftcbasic.c: Fix a silly bug that prevented our `hack' to
- support rogue clients compiled against 2.1.7 to work correctly.
- This probably explains the GNUstep crashes with the second release
- candidate.
-
-2006-02-23 Chia-I Wu <[email protected]>
-
- * include/freetype/ftoutln.h (enum FT_Orientation): New value
- `FT_ORIENTATION_NONE'.
-
- * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
- ft_contour_enclosed, ft_outline_get_orientation): Another version of
- `FT_Outline_Get_Orientation'. This version differs from the public
- one in that each part (contour not enclosed in another contour) of the
- outline is checked for orientation.
- (FT_Outline_Embolden): Use `ft_outline_get_orientation'.
-
- * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and
- use bitmap's embolden routine when the outline one failed.
-
-2006-02-22 Chia-I Wu <[email protected]>
-
- * modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI
- compatibility.
-
- * src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak.
-
- * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned,
- tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit
- loading. (Only tested with bit aligned sbit with x_pos == 0.)
-
- * src/truetype/ttpload.c (tt_face_load_hdmx,
- tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
- actually used.
-
-2006-02-21 David Turner <[email protected]>
-
- Add a new API named FT_Get_TrueType_Engine_Type to determine whether
- we have a patented, unpatented, or unimplemented TrueType bytecode
- interpreter.
-
- The FT_Get_Module_Flags API was removed consequently.
-
- * include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed.
- Replaced with...
- (FT_Get_TrueType_Engine_Type): This.
- (FT_TrueTypeEngineType): New enumeration.
-
- * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
- New macro.
-
- * src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
- (FT_Module_Get_Flags): Removed. Replaced with...
- (FT_Get_TrueType_Engine_Type): This.
-
- * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
- (tt_service_truetype_engine): New service structure.
- (tt_services): Register it.
-
- * include/freetype/internal/services/svtteng.h: New file.
-
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented
- embedded bitmaps from being correctly listed and used.
-
-
- * src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization
- if FT_CONFIG_OPTION_OLD_INTERNALS is used. The is necessary because
- libXfont is directly accessing the HMTX data, unfortunately.
- Fix some compiler warnings.
- (tt_face_get_metrics): Ditto.
-
-
- * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of
- character advances.
-
-2006-02-20 David Turner <[email protected]>
-
- Support binary compatibility with the X.Org server's Xfont library.
- Note that this change unfortunately prevents memory optimizations
- for the embedded bitmap loader.
-
- * include/freetype/internal/sfnt.h (SFNT_Interface): Move
- `set_sbit_strike' and `load_sbit_metrics' fields to the location of
- version 2.1.8.
-
- * src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call
- FT_Size_Request.
- (sfnt_interface): Updated.
-
- * src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load
- ttsbit0.c.
- (tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static.
-
- * src/sfnt/ttsbit.h: Updated.
-
-2006-02-17 David Turner <[email protected]>
-
- * builds/unix/unix-cc.in (LINK_LIBRARY): Don't filter out exported
- functions anymore. This ensures that all FT_BASE internal functions
- are available for dynamic linking.
-
- * include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE,
- FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec,
- FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New,
- FTC_OldImage_Desc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx,
- ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup,
- FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup)
- [FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the
- cache sub-system. We try to recognize old legacy signatures with a
- gross hack (hope it works).
-
-2006-02-17 Werner Lemberg <[email protected]>
-
- * devel/ftoption.h: Synchronize with
- include/freetype/config/ftoption.h.
-
-2006-02-16 David Turner <[email protected]>
-
- Massive changes to the internals to respect the internal object
- layouts and exported functions of FreeType 2.1.7. Note that the
- cache sub-system cannot be fully retrofitted, unfortunately.
-
- * include/freetype/config/ftoption.h
- (FT_CONFIG_OPTION_OLD_INTERNALS): New macro.
-
- * include/freetype/ftcache.h, include/freetype/cache/ftccache.h,
- include/freetype/cache/ftccmap.h,
- include/freetype/internal/ftcalc.h,
- include/freetype/internal/ftdriver.h,
- include/freetype/internal/ftmemory.h,
- include/freetype/internal/ftobjs.h,
- include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
- include/freetype/internal/t1types.h,
- include/freetype/internal/tttypes.h, src/base/ftcalc.c,
- src/base/ftdbgmem.c, src/base/ftobjs.c, src/base/ftutil.c,
- src/bdf/bdfdrivr.c, src/cache/ftccache.c, src/cache/ftccback.h,
- src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
- src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
- src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
- src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
- Use FT_CONFIG_OPTION_OLD_INTERNALS to revive old functions and data
- structures.
-
- Move newly added structure elements to the end of the affected
- structure and add stub fields (if FT_CONFIG_OPTION_OLD_INTERNALS is
- defined) to assure binary compatibility with older FreeType
- versions.
- Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old
- functions:
-
- ft_stub_set_char_sizes
- ft_stub_set_pixel_sizes
-
- Rename the following internal functions to provide the old function
- names as stubs:
-
- FT_Alloc -> ft_mem_alloc
- FT_QAlloc -> ft_mem_qalloc
- FT_Realloc -> ft_mem_realloc
- FT_QRealloc -> ft_mem_qrealloc
- FT_Free -> ft_mem_free
- FT_Alloc_Debug -> ft_mem_alloc_debug
- FT_QAlloc_Debug -> ft_mem_qalloc_debug
- FT_Realloc_Debug -> ft_mem_realloc_debug
- FT_QRealloc_Debug -> ft_mem_qrealloc_debug
- FT_Free_Debug -> ft_mem_free_debug
-
-2006-02-15 Chia-I Wu <[email protected]>
-
- * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
- unused `max_points' and `max_contours'.
-
- * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
- (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update.
-
- * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused
- `max_components'.
-
- * src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused
- `loadSize' and `loadStack'.
-
- * src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context),
- src/sfnt/ttload.c (tt_face_load_maxp): Update.
-
- * src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c
- (sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix
- compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not
- defined.
-
- * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix
- possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions.
- (finally!)
-
-
- For most OpenType tables, `tt_face_load_xxxx' simply loads the table
- and `face->root' is set later in `sfnt_load_face'. Here, we try to
- make this work for _all_ tables. Also improve tracing messages.
-
- * src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c,
- src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and
- then exit. Error handling or setting face->root is done later in
- `sfnt_load_face'.
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Work harder.
- Mac bitmap-only fonts are not scalable.
- Check that `face->header.Units_Per_EM' is not zero.
- (LOAD_, LOADM_): Emit pretty trace messages.
-
- * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics
- from `eblc'.
-
- * src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c
- (load_format_20, load_format_25, tt_face_get_ps_name): Use
- face->max_profile.numGlyphs, instead of face->root.num_glyphs.
-
-2006-02-14 Werner Lemberg <[email protected]>
-
- * include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in
- documentation that negative strength values are possible.
- Give an example call.
-
- * include/freetype/freetype.h (FT_GlyphSlotRec): Improve
- documentation of `outline' field.
-
- * src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H.
- * src/sfnt/sfdriver.c: Include ttmtx.h.
-
- * src/autofit/afcjk.c: Include aftypes.h and aflatin.h.
-
-2006-02-14 Chia-I Wu <[email protected]>
-
- * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.
-
-2006-02-14 Chia-I Wu <[email protected]>
-
- * src/sfnt/ttmtx.c (tt_face_load_hhea, tt_face_load_hmtx): Simply
- return error if table is missing.
- Check table length in non-FT_OPTIMIZE_MEMORY'ed `tt_face_load_hmtx'.
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Take care of missing metrics
- tables. The last change makes Mac bitmap-only font not load and
- this fixes it.
-
- * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation
- error when FT_CONFIG_OPTION_INCREMENTAL is defined.
-
-2006-02-13 Chia-I Wu <[email protected]>
-
- Clean up the SFNT_Interface. In this final pass, `load_hmtx' is
- split from `load_hhea'.
-
- * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
- src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'.
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Update.
-
-2006-02-13 Chia-I Wu <[email protected]>
-
- * src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of
- code...
-
-2006-02-13 Chia-I Wu <[email protected]>
-
- Clean up the SFNT_Interface. In this pass, we want to treat the
- font directory (offset table and table directory) as a normal table
- like the others. This also means that TTCs are no longer recognized
- there but in `init_face'.
-
- * include/freetype/internal/sfnt.h (SFNT_Interface),
- src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are
- combined and renamed to `load_font_dir'.
-
- * src/sfnt/ttload.h, src/sfnt/ttload.c:
- s/sfnt_dir_check/check_table_dir/.
- `sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'.
- `tt_face_load_sfnt_header' and `tt_face_load_directory' are combined
- and renamed to `tt_face_load_font_dir'.
-
- * src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.
-
-2006-02-13 Chia-I Wu <[email protected]>
-
- Clean up the SFNT_Interface. Table loading functions are now named
- after the tables' tags; `hdmx' is TrueType-specific and thus the
- code is moved to the truetype module; `get_metrics' is moved here
- from the truetype module so that the code can be shared with the cff
- module.
-
- This pass involves no real changes. That is, the code is moved
- verbatim mostly. The only exception is the return value of
- `tt_face_get_metrics'.
-
- * include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
- src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
- src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
- src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
-
- * src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: New files. Metrics-related
- tables' loading and parsing code is moved to here.
- Move `tt_face_get_metrics' here from the truetype module. The
- return value is changed from `void' to `FT_Error'.
-
- * include/freetype/internal/fttrace.h: New trace: ttmtx.
-
- * src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
- parsing code is moved here.
- New function `tt_face_load_prep' split from `tt_face_load_fpgm'.
- `tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
-
- * src/cff/cffgload.c, src/cff/cffobjs.c: Update.
-
- * src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
-
-2006-02-11 Chia-I Wu <[email protected]>
-
- * src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug...
-
- * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use
- AF_LatinMetricsRec as the dummy metrics because we cast the metrics
- to it later in `af_latin_hints_link_segments'.
-
-2006-02-11 Chia-I Wu <[email protected]>
-
- * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define
- to enable autofit CJK script support. (#define'd by default.)
-
- * src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro.
-
- * src/autofit/aflatin.c (af_latin_metrics_init_widths): Make sure
- that `edge_distance_threshold' is always set.
- (af_latin_hints_link_segments): Potential divide-by-zero bug.
- Use latin constant in the scoring formula.
-
- * src/autofit/afcjk.c: Minor updates due to the above three changes.
-
- * docs/TODO, docs/CHANGES: Updated.
-
-2006-02-09 Chia-I Wu <[email protected]>
-
- Introduce experimental autofit CJK module based on akito's autohint
- patch. You need to #define AF_MOD_CJK in afcjk.c to enable it.
-
- * src/autofit/afglobal.c, src/autofit/afcjk.h, src/autofit/afcjk.c,
- src/autofit/rules.mk, src/autofit/autofit.c, src/autofit/aftypes.h:
- Add CJK module based on akito's autohint patch.
-
- * src/autofit/afhints.h (AF_SegmentRec): New field `len' for the
- overlap length of the segments.
- (AF_SEGMENT_LEN, AF_SEGMENT_DIST): New macros.
-
- * src/autofit/aflatin.h (af_latin_metrics_init_widths),
- src/autofit/aflatin.c (af_latin_metrics_init_widths): Made
- `FT_LOCAL'.
- Use the character given by the caller.
- (af_latin_metrics_init_widths, af_latin_hints_link_segments): Scale
- the thresholds.
-
- * src/autofit/afloader.c (af_loader_load_g): Respect
- AF_SCALER_FLAG_NO_ADVANCE.
-
-2006-02-09 Werner Lemberg <[email protected]>
-
- * src/cid/cidparse.c (cid_parse_new): Remove shadowing variable.
-
-2006-02-09 suzuki toshiya <[email protected]>
-
- * src/cid/cidparse.c (cid_parse_new): Fix for abnormally short or
- broken CIDFont. Reported by Taek Kwan(TK) Lee (see ft-devel
- 2005-11-02).
-
-2006-02-08 suzuki toshiya <[email protected]>
-
- * builds/unix/configure.ac: Fix bug for `--with-old-mac-fonts'
- option on UNIX platform. It has been broken since 2006-01-11.
-
-2006-02-01 Werner Lemberg <[email protected]>
-
- * src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/.
- * src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/.
-
- * builds/unix/unixddef.mk: Actually do define PLATFORM (fixing
- change from 2006-01-31).
- (TOP_DIR, OBJ_DIR): Update.
-
- * builds/unix/install.mk (install): Fix path for ftmodule.h.
-
- * Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use
- `?=' where appropriate.
-
- * builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR),
- builds/win32/w32-dev.mk (TOP_DIR): Removed. Defined elsewhere.
-
-2006-01-31 Werner Lemberg <[email protected]>
-
- Implement new, simplified module selection. With GNU make it is now
- sufficient to modify a single file, `modules.cfg', to control the
- inclusion of modules and base extension files.
-
- This change also fixes the creation of ftmodule.h; it now depends on
- `modules.cfg' and thus is rebuilt only if necessary.
-
- Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
- default location.
-
- * modules.cfg: New file.
-
- * builds/freetype.mk: Don't include `modules.mk'.
- Include all `rules.mk' files as specified in `modules.cfg'.
- (FTOPTION_FLAG, FTOPTION_H): New variables.
- (FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H.
- Add FTOPTION_FLAG.
- ($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST.
- (CONFIG_H): Add FTMODULE_H and FTOPTION_H.
- (INCLUDES): Add DEVEL_DIR.
- (INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ,
- OBJ_M, OBJ_S): Use `:=', not `='.
- (remove_ftmodule_h): New phony target to delete `ftmodule.h'.
- (distclean): Add remove_ftmodule_h.
-
- * builds/modules.mk: (MODULE_LIST): Removed.
- (make_module_list, clean_module_list): Replace targets
- with...
- (FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New
- variables. Reason for the change is that it is not possible to have
- a phony prerequisite which is run only if the target file must be
- rebuilt (phony prerequisites act like subroutines and are *always*
- executed). We only want to rebuild `ftmodule.h' if `module.cfg' is
- changed.
- Update all callers.
- ($FTMODULE_H)): Rule to create `ftmodule.h', depending on
- `modules.cfg'.
-
- * builds/toplevel.mk: Rewrite and simplify module handling.
- (MODULES_CFG, FTMODULE_H): New variables.
- Include MODULES_CFG.
- (MODULES): New variable to include all `module.mk' and `rules.mk'
- files. We no longer use make's `wildcard' function for this.
-
- * Makefile (USE_MODULES): Remove. Update all users.
- (OBJ_DIR): Define it here.
-
- * src/*/module.mk: Change
-
- make_module_list: foo
- foo: ...
-
- to
-
- FTMODULE_H_COMMANDS += FOO
- define FOO
- ...
- endef
-
- in all files. `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.
-
- * src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.
-
- * builds/unix/detect.mk (setup): Always execute `configure' script.
- (have_mk): Rename to...
- (have_Makefile): This.
- Don't use `strip' function.
-
- * builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is
- defined.
- (have_mk): Don't use `strip' function.
- Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test
- accordingly).
-
- * builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.
-
- * builds/os2/os2-dev.mk, builds/unix/unix-dev.mk,
- builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define
- BUILD_DIR but DEVEL_DIR for development header files.
-
- * builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR),
- builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in
- (TOP_DIR, OBJ_DIR): Removed. Defined elsewhere.
-
- * builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR),
- builds/win32/win32-def.mk (OBJ_DIR): Removed. Defined elsewhere.
-
- * builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
- development header files.
- Don't define PLATFORM.
-
- * configure: Copy `modules.cfg' to builddir if builddir != srcdir.
- Update snippet taken from autoconf's m4sh.m4 to current CVS version.
- Be more verbose.
-
- * include/freetype/config/ftmodule.h: Add comments -- this file is
- no longer used if FreeType is built with GNU make.
-
- * docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY,
- docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism.
- Other minor updates.
-
- * modules.txt: Removed. Contents included in `modules.cfg'.
-
-
- * include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
- FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.
-
- * src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug,
- FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug)
- [FT_STRICT_ALIASING]: Implement.
-
-2006-01-31 Chia-I Wu <[email protected]>
-
- * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
- (cid_face_init), src/pfr/pfrobjs.c (pfr_face_init),
- src/type1/t1objs.c (T1_Face_Init): Set face->height to MAX(1.2 *
- units_per_EM, ascender - descender).
-
-2006-01-31 Chia-I Wu <[email protected]>
-
- * include/freetype/internal/t1types.h (AFM_FontInfo),
- src/psaux/afmparse.c, src/tools/test_afm.c: Read `FontBBox',
- `Ascender', and `Descender' from an AFM.
-
- * src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM.
-
- * include/freetype/freetype.h (FT_FaceRec): Mention that fields may
- be changed after file attachment.
-
-2006-01-28 Werner Lemberg <[email protected]>
-
- * src/*/module.mk (.PHONY): Add.
-
-2006-01-27 Werner Lemberg <[email protected]>
-
- * README, docs/FTL.TXT: Fix email address for bug reports.
- Other minor formatting.
-
- * devel/ftoption.h: Synchronize with
- include/freetype/config/ftoption.h.
-
- * src/autofit/module.mk (add_autofit_module), src/bdf/module.mk
- (add_bdf_module), src/type42/module.mk (add_type42_driver): Fix
- whitespace.
-
- * src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv
- renderer classes.
-
-2006-01-27 David Turner <[email protected]>
-
- * builds/unix/configure.ac: Fix build problem on Cygwin.
-
- * builds/unix/install.mk (install): Don't install the internal
- headers, and remove existing ones if found in the target install
- directory.
-
- * src/autofit/afwarp.c: Add simple #ifdef to prevent compilation
- if the warp hinter isn't active (it shouldn't, still experimental).
-
- * Jamfile, include/freetype/config/ftmodule.h: Remove `gxvalid'
- and `otvalid' from the list of modules that are linked statically
- to a given FreeType library. Functionality has been moved to the
- `ftvalid' CVS module.
-
- Note also that current Make-based build system still compiles the
- modules though.
-
- * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): New macro
- which controls the definitions of the memory management functions to
- avoid warnings with recent versions of GCC. This macro is only here
- to be disabled, in case we detect problems with the new scheme.
-
- NOTE: Disable macro to use the memory debugger -- this will be fixed
- later!
-
- * include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_Alloc,
- FT_QAlloc, FT_Realloc, FT_QRealloc, FT_Free) [FT_STRICT_ALIASING]:
- New versions.
-
-
- * builds/win32/visualc/freetype.dsp: Updating project file to
- define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from
- compilation.
-
-
- * builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the
- macro FT2_BUILD_LIBRARY when compiling the library.
-
- * include/freetype/config/ftheader.h: Remove inclusions of internal
- headers except if the macro FT2_BUILD_LIBRARY is defined.
-
-
- * include/freetype/internal/psaux.h (AFM_KernPair, AFM_TrackKern,
- AFM_FontInfo): Move structure declarations to...
- * include/freetype/internal/t1types.h: This file.
-
-
- * (many files): Fix compiler warnings.
- Various minor reorganizations.
-
-
- * src/cff/cffload.c (cff_font_done): Don't free static array
- `subfonts'.
-
- * src/otvalid/otvcommn.c (otv_ClassDef_validate),
- src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information.
-
-
- Get rid of writable static variables (i.e., the string table) in
- afmparse, and fix compilation in FT2_MULTI mode.
-
- * src/psaux/afmparse.c: Include ft2build.h and FT_FREETYPE_H.
- (AFM_MAX_ARGUMENTS): Define...
- * src/psaux/afmparse.h: Here.
- * src/psaux/Jamfile (_sources): Add afmparse.
-
- * src/psaux/psconv.c: Include psconv.h.
-
- * src/type1/t1afm.c: Don't include FT_INTERNAL_TYPE1_TYPES_H but
- FT_INTERNAL_POSTSCRIPT_AUX_H.
- * src/type1/t1afm.h: Include FT_INTERNAL_TYPE1_TYPES_H.
-
-2006-01-23 Chia-I Wu <[email protected]>
-
- * include/freetype/freetype.h (FT_Select_Size): Rename the second
- argument from `idx' to `strike_index'.
- (FT_Size_Request_Type): Add FT_SIZE_REQUEST_TYPE_MAX to the end of
- this enum.
-
- * include/freetype/internal/ftobjs.h (FT_REQUEST_WIDTH,
- FT_REQUEST_HEIGHT): New macros to get the width and height of a
- request, in fractional pixels.
-
- * include/freetype/internal/ftobjs.h (FT_Select_Metrics,
- FT_Request_Metrics), src/base/ftobjs.c (FT_Select_Metrics,
- FT_Request_Metrics): New base functions to set the font metrics. They
- were part of FT_Select_Size/FT_Request_Size and are made independent
- functions so that metrics are not set again and again.
-
- * src/base/ftobjs.c (FT_Select_Size, FT_Request_Size): Metrics are set
- only when driver's size_select/size_request is NULL. That is, drivers
- should set the metrics themselves.
- (FT_Match_Size): Round before matching. This was what we did and it
- does cause some problems without rounding.
-
- * src/cff/cffobjs.c (cff_size_select), src/truetype/ttdriver.c
- (tt_size_select): Set the font metrics.
- s/index/strike_index/.
- The scaled metrics are always preferred over strikes' metrics, even
- when some strike is selected. This is done because the strikes'
- metrics are not reliable, e.g., the sign of the descender is wrong for
- some fonts.
-
- * src/cff/cffobjs.c (cff_size_request), src/truetype/ttdriver.c
- (tt_size_request): Set the font metrics.
- Call cff_size_select/tt_size_select when some strike is matched.
-
- * src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/cid/cidobjs.c,
- src/pcf/pcfdrivr.c, src/truetype/ttdriver.c, src/type1/t1objs.c,
- src/type1/t1objs.h, src/type42/t42objs.c, src/winfonts/winfnt.c:
- Set the font metrics.
- s/index/strike_index/.
-
- * src/tools/test_afm.c, src/psaux/psconv.c: Older versions of these
- files were committed. Just a catch-up.
- (PS_Conv_ToFixed): Remove the `goto'.
- (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Speed up a little.
-
- * src/sfnt/ttsbit.c (tt_face_load_sbit_strikes,
- tt_face_load_strike_metrics), src/sfnt/ttsbit0.c
- (tt_face_load_sbit_strikes, tt_face_load_strike_metrics): The
- advertised metrics in `available_sizes' are different from those
- actually used.
-
-2006-01-23 Chia-I Wu <[email protected]>
-
- * src/psaux/psaux.c src/psaux/psauxmod.c src/type1/t1driver.c: Make
- AFM parser optional, controlled by `T1_CONFIG_OPTION_NO_AFM'.
-
-2006-01-22 Werner Lemberg <[email protected]>
-
- * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
- `texinfo' CVS module at savannah.gnu.org.
-
-2006-01-21 Werner Lemberg <[email protected]>
-
- * src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c.
-
- * src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up
- to avoid compiler warnings.
-
- * src/autofit/afwarp.c (af_warper_compute_line_best): Remove
- shadowing variable declarations.
- Fix warning parameters and replace printf with AF_LOG.
- (af_warper_compute): Remove unused variable.
-
-2006-01-20 David Turner <[email protected]>
-
- Adding experimental implementation of `warp hinting' (new hinting
- algorithm for gray-level and LCD rendering). It is disabled by
- default, you need to #define AF_USE_WARPER in aftypes.h.
-
- * src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]:
- New function.
- * src/autofit/afhints.h: Updated.
-
- * src/autofit/aflatin.c [AF_USE_WARPER]: Include afwarp.h.
- (af_latin_hints_init) [AF_USE_WARPER]: Reset mode to
- FT_RENDER_MODE_NORMAL if an LCD mode is selected.
- (af_latin_hints_apply) [AF_USE_WARPER]: Call af_warper_compute
- appropriately.
-
- * src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]:
- Isolate code for adjusting metrics.
-
- * src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by
- default).
-
- * src/autofit/afwarp.c, src/autofit/afwarp.h: New files.
-
- * src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c.
-
- * src/autofit/Jamfile (_sources): Add afwarp.
-
-2006-01-19 David Turner <[email protected]>
-
- * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug
- that prevented compilation when FT_OPTIMIZE_MEMORY is defined.
-
-2006-01-19 Brian Weed <[email protected]>
-
- * builds/win32/visualc/freetype.dsp: Updated.
-
-2006-01-17 Werner Lemberg <[email protected]>
-
- Use pscmap service in CFF module.
-
- * src/cff/cffcmap.c (cff_cmap_uni_pair_compare): Removed.
- (cff_sid_to_glyph_name): New function.
- (cff_cmap_unicode_init, cff_cmap_unicode_done,
- cff_cmap_unicode_char_index, cff_cmap_unicode_char next): Use pscmap
- service.
- (cff_cmap_unicode_class_rec): Updated.
- * src/cff/cffcmap.h (CFF_CMapUnicode, CFF_CMap_UniPair): Removed.
-
-
- * src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode'
- return value.
-
-
- * src/psaux/afmparse.c (afm_parser_read_vals): Use double casting
- to avoid compiler warnings regarding type-punning.
-
-2006-01-16 Chia-I Wu <[email protected]>
-
- * src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
- implement an AFM parser.
-
- * src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
- conversion functions (e.g., PS real number => FT_Fixed) for the
- PS_Parser and AFM_Parser. Some of the functions are taken, with
- some modifications, from the file psobjs.c.
-
- * src/psaux/psobjs.c: Use functions from psconv.c.
-
- * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add
- `AFM_Parser' to the `psaux' service.
-
- * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include
- those new files.
-
- * src/tools/test_afm.c: A test program for AFM parser.
-
- * include/freetype/internal/services/svkern.h: New file providing a
- `Kerning' service. It is currently only used to get the track
- kerning information.
-
- * include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New
- macro.
-
- * src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
- src/type1/t1afm.h: Update to use the AFM parser.
- Provide the `Kerning' service.
-
- * include/freetype/freetype.h, src/base/ftobjs.c: New API
- `FT_Get_Track_Kerning'.
-
-2006-01-15 Chia-I Wu <[email protected]>
-
- * include/freetype/internal/ftobjs.h, src/base/ftobjs.c,
- src/bdf/bdfdrivr.c, src/cff/cffgload.c, src/cid/cidgload.c,
- src/pcf/pcfdrivr.c, src/type1/t1gload.c, src/winfonts/winfnt.c:
- s/ft_fake_vertical_metrics/ft_synthesize_vertical_metrics/.
-
- * docs/CHANGES: Mention that vertical metrics are synthesized for
- fonts not having this info.
-
-2006-01-15 Chia-I Wu <[email protected]>
-
- * include/freetype/internal/ftobjs.h (ft_fake_vertical_metrics),
- src/base/ftobjs.c (ft_fake_vertical_metrics): New function to fake
- vertical metrics.
-
- * src/cff/cffgload.c, src/cid/cidgload.c, src/pcf/pcfdrivr.c,
- src/type1/t1gload.c, src/winfonts/winfnt.c: Fake vertical metrics,
- which are monotone.
-
- * src/truetype/ttgload.c (compute_glyph_metrics): Some fixes and
- formattings in vertical metrics faking. There is still room for
- improvements (and so does the CFF module).
-
-2006-01-15 Chia-I Wu <[email protected]>
-
- * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdrivr.c
- (PCF_Glyph_Load), src/winfonts/winfnt.c (FNT_Load_Glyph): Don't set
- the linear advance fields as they are only used by the outline
- glyphs.
-
- * include/freetype/freetype.h: Documentation updates and
- clarifications.
- The meaning of FT_LOAD_FORCE_AUTOHINT is changed so that no real
- change need be made to the code.
-
- * src/base/ftobjs.c (FT_Load_Glyph): Resolve flag dependencies and
- decide whether to use the auto-hinter according to documentation.
- There should to be no real difference.
- Some checks (e.g., is text height positive?) after the glyph is
- loaded.
- (FT_Select_Size, FT_Request_Size): Scales are set to wrong values.
- Be careful that scales won't be negative.
-
-2006-01-14 Chia-I Wu <[email protected]>
-
- * docs/CHANGES: Mention the size selection change.
-
- * src/bdf/bdfdrivr.c (BDF_Size_Request, BDF_Size_Select),
- src/pcf/pcfdrivr.c (PCF_Size_Request, PCF_Size_Select),
- src/winfonts/winfnt.c (FNT_Size_Request, FNT_Size_Select): Do size
- matching for requests of type NOMINAL and REAL_DIM.
-
- * src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when
- `pixel_height' is used for nominal height.
-
- * src/base/ftobjs.c (FT_Request_Size): Call `FT_Match_Size' if the
- face is bitmap only and driver doesn't provide `request_size'. This
- is added merely for completion as no driver satisfies the conditions.
-
-2006-01-13 Chia-I Wu <[email protected]>
-
- Introduce new size selection interface.
-
- * include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec):
- Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and
- `select_size'.
-
- * include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type,
- FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c
- (FT_Select_Size, FT_Request_Size): API additions to export the new
- size selection interface.
-
- * src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
- `FT_Request_Size'.
-
- * include/freetype/internal/ftobjs.h (FT_Match_Size),
- src/base/ftobjs.c (FT_Match_Size): New function to match a size
- request against `available_sizes'. Drivers supporting bitmap strikes
- can use this function to implement `request_size'.
-
- * src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
- src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c,
- src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c,
- src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c:
- Update to new size selection interface.
-
- * src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c,
- src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c,
- src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size
- selection interface.
- Make `strike_index' FT_ULong and always defined.
- Use `load_strike_metrics' provided by SFNT interface.
-
-2006-01-13 Chia-I Wu <[email protected]>
-
- * include/freetype/internal/sfnt.h (SFNT_Interface): New method
- `load_strike_metrics' used to load the strike's metrics.
-
- * src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
- src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'.
-
- * src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.
-
- * src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
- nominal size unless it is obviously incorrect.
-
- * include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
- FNT driver.
-
-2006-01-12 Werner Lemberg <[email protected]>
-
- Prepare use of pscmap service within CFF module.
-
- * include/freetype/internal/services/svpscmap.h: Include
- FT_INTERNAL_OBJECTS_H.
- (PS_Unicode_Index_Func): Removed. Unused.
- (PS_Macintosh_Name_Func): Renamed to...
- (PS_Macintosh_NameFunc): This.
- Update all callers.
- (PS_Adobe_Std_Strings_Func): Renamed to...
- (PS_Adobe_Std_StringsFunc): This.
- Update all callers.
- (PS_UnicodesRec): This is the former `PS_Unicodes' structure.
- Add `cmap' member.
- Update all callers.
- (PS_Unicodes): This is now a typedef'd pointer to PS_UnicodesRec.
- Update all callers.
- (PS_Glyph_NameFunc): New typedef.
- (PS_Unicodes_InitFunc): Change arguments to expect a function
- and generic data pointer which returns a glyph name from a given
- index.
-
- * src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index,
- ps_unicodes_char_next, pscmaps_interface): Updated.
-
- * include/freetype/internal/t1types.h (T1_FaceRec): Updated.
-
- * src/psaux/t1cmap.h (T1_CmapStdRec): Updated.
- (T1_CmapUnicode, T1_CmapUnicodeRec): Removed.
-
- * src/psaux/t1cmap.c (t1_get_glyph_name): New callback function.
- (t1_cmap_unicode_init, t1_cmap_unicode_done,
- t1_cmap_unicode_char_index, t1_cmap_unicode_char_next,
- t1_cmap_unicode_class_rec): Updated.
-
- * src/type42/t42types.h (T42_FaceRec): Updated.
-
-2006-01-11 suzuki toshiya <[email protected]>
-
- * include/freetype/ftmac.h: Add declaration of new functions
- FT_New_Face_From_FSRef and FT_GetFile_From_Mac_ATS_Name that
- were introduced by the jumbo patch on 2006-01-11.
-
-2006-01-11 Werner Lemberg <[email protected]>
-
- Fix Savannah bug #15056 and use pscmap service in psaux module.
-
- * include/freetype/internal/services/svpscmap.h (PS_UniMap): Use
- FT_UInt32 for `glyph_index'.
- (PS_Unicodes_InitFunc): Use FT_String for `glyph_names'.
- (PS_Unicodes_CharIndexFunc): Use FT_UInt32 for `unicode'.
- (PS_Unicodes_CharNextFunc): Make second argument a pointer to
- FT_UInt32.
-
- * src/psnames/psmodule.c (VARIANT_BIT, BASE_GLYPH): New macros.
- (ps_unicode_value): Set VARIANT_BIT in return value if glyph is a
- variant glyph (this is, it has non-leading `.' in its name).
- (compare_uni_maps): Sort base glyphs before variant glyphs.
- (ps_unicodes_init): Use FT_String for `glyph_names' argument.
- Reallocate only if number of used entries is much smaller.
- Updated to handle variant glyphs.
- (ps_unicodes_char_index, ps_unicodes_char_next): Prefer base glyphs
- over variant glyphs.
- Simplify code.
-
- * src/psaux/t1cmap.c (t1_cmap_uni_pair_compare): Removed.
- (t1_cmap_unicode_init, t1_cmap_unicode_char_index,
- t1_cmap_unicode_char_next): Use pscmap service.
- (t1_cmap_unicode_done): Updated.
-
- * src/psaux/t1cmap.h (T1_CMapUniPair): Removed.
- (T1_CMapUnicode): Use PS_Unicodes structure.
-
-2006-01-11 suzuki toshiya <[email protected]>
-
- Jumbo patch to fix `deprecated' warning of cross-build for Tiger on
- Intel, as reported by Sean McBride <[email protected]> on
- 2005-08-24.
-
- * src/base/ftmac.c: Heavy change to build without deprecated Carbon
- functions on Tiger.
-
- * builds/unix/configure.ac: Add options and autochecks for Carbon
- functions availabilities, for MacOS X.
-
- * builds/mac/ascii2mpw.py: Add converter for character `\305'.
- * builds/mac/FreeType.m68k_{far|cfm}.make.txt: Add conditional
- macros to avoid unavailable functions.
- ftmac.c must be compiled without `-strict ansi', because it disables
- cpp macro to use ToolBox system call.
-
- * builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional
- macros to avoid unavailable functions.
-
- * builds/mac/README: Detailed notes on function availabilities.
-
- * docs/CHANGES: Notes about (possible) incompatibilities.
-
-2006-01-08 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Updated.
-
-2006-01-08 Huw D M Davies <[email protected]>
-
- * include/freetype/ftmodapi.h (FT_Module_Get_Flags): New
- declaration.
-
- * src/base/ftobjs.c (FT_Module_Get_Flags): New function.
-
-2006-01-07 Werner Lemberg <[email protected]>
-
- * src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable
- `bitmaps'. Reported by Yu Lei <[email protected]>.
-
- * src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/.
- Reported by Niels Boldt <[email protected]>.
-
-2005-12-28 suzuki toshiya <[email protected]>
-
- * src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for
- MPW compiler.
-
-2005-12-23 David Turner <[email protected]>
-
- * Jamfile (RefDoc), docs/reference/README: Fix it so that `jam
- refdoc' works correctly to generate the API reference in
- `docs/reference'.
-
- * src/tools/docmaker/tohtml.py (print_html_field,
- print_html_field_list): Update to output nicer fields lists in the
- API reference.
-
- * src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now
- forces auto-hinting.
-
- * freetype/freetype.h: Updating the documentation for
- FT_LOAD_TARGET_XXX and FT_Render_Mode values.
-
-2005-12-23 suzuki toshiya <[email protected]>
-
- * src/base/ftmac.c (FT_New_Face_From_Suitcase): Count scalable faces
- in supported formats (sfnt, LWFN) only, and ignore bitmap faces in
- unsupported formats (fbit, NFNT). The number of available faces are
- passed via face->num_faces. If bitmap faces are embedded in sfnt
- resource, face->num_fixed_size is correctly set. In public API,
- FT_New_Face() and FT_New_Face_From_FSSpec() count the faces as
- FT_GetFile_From_Mac_Name(), which ignores NFNT resources.
-
- * doc/CHANGES: Mention the changes.
-
-2005-12-17 Chia-I Wu <[email protected]>
-
- * src/truetype/ttinterp.c (Update_Max): Set current size of buffer
- correctly (so that memory debug system won't panic).
-
-2005-12-16 Chia-I Wu <[email protected]>
-
- * include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics),
- src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed.
-
- * src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round.
-
- * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
- (cid_slot_load_glyph), src/truetype/ttgload.c (compute_glyph_metrics),
- src/type1/t1gload.c (T1_Load_Glyph): Do not round glyph metrics.
-
- * doc/CHANGES: Mention the changes.
-
-2005-12-13 David Turner <[email protected]>
-
- Change the implementation of the LIGHT hinting mode to completely
- disable horizontal hinting. This is an experimental effort to
- integrate David Chester's latest patch without affecting the other
- hinting modes as well.
-
- Note that this doesn't force auto-hinting for all fonts, however.
-
- * src/autofit/afhints.c (af_glyph_hints_reload): Don't set
- scaler_fiags here but...
- (af_glyph_hints_rescale): Here.
-
- * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
- hinting for `light' hinting mode.
-
-
- * Jamfile: Small fix to ensure that ftexport.sym is placed into the
- same location as other generated objects (i.e., within the `objs'
- directory of the current directory).
-
-
- Add support for an embedded `BDF ' table within SFNT-based bitmap
- font files. This is used to store atoms & properties from the
- original BDF fonts that were used to generate the font file.
-
- The feature is controlled by TT_CONFIG_OPTION_BDF within
- `ftoption.h' and is used to implement FT_Get_BDF_Property for these
- font files.
-
- At the moment, this is still experimental, the BDF table format
- isn't cast into stone yet.
-
- * include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New
- macro.
-
- * include/freetype/config/ftstdlib.h (ft_memchr): New macro.
-
- * include/freetype/internal/tttypes.h (TT_BDFRec, TT_BDF)
- [TT_CONFIG_OPTION_BDF]: New structure.
- (TT_FaceRec) [TT_CONFIG_OPTION_BDF]: New member `bdf'.
-
- * include/freetype/ttags.h (TTAG_BDF): New macro.
-
- * src/sfnt/Jamfile (_sources): Add ttbdf.
-
- * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c.
-
- * src/sfnt/sfdriver.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h and
- FT_SERVICE_BDF_H.
- (sfnt_get_charset_it) [TT_CONFIG_OPTION_BDF]: New function.
- (sfnt_service_bdf) [TT_CONFIG_OPTION_BDF]: New service.
- (sfnt_services) [TT_CONFIG_OPTION_BDF]: Add sfnt_service_bdf.
-
- * src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c.
-
- * src/sfnt/sfobjs.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h.
- (sfnt_done_face) [TT_CONFIG_OPTION_BDF]: Call
- tt_face_free_bdf_props.
-
- * src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files.
-
-2005-12-07 Werner Lemberg <[email protected]>
-
- * src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to...
- * src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs.
-
-2005-12-06 Chia-I Wu <[email protected]>
-
- * src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is
- initialized twice.
- size->strike_index is not initialized.
-
-2005-12-02 Taek Kwan(TK) Lee <[email protected]>
-
- * src/type42/t42objs.c (T42_Face_Init): Replace call to
- FT_New_Memory_Face with call to FT_Open_Face to pass `params'.
-
-2005-11-30 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Document ftdump's `-v' option.
- Document latest charmap code changes.
-
- * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h:
- s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/.
-
-2005-11-30 Chia-I Wu <[email protected]>
-
- * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary,
- tt_cmap12_char_map_binary): Fix compiler warnings.
-
-2005-11-29 Chia-I Wu <[email protected]>
-
- Major update to distinguish between unsorted and overlapping
- segments for cmap format 4. For overlapping but sorted segments,
- which is previously considered unsorted, we still use binary search.
-
- * src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'.
- (TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros.
-
- * src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined.
- (TT_CMap4Rec_): Remove `old_charcode' and `table_length'.
- (tt_cmap4_reset): Removed.
- (tt_cmap4_init): Updated accordingly.
- (tt_cmap4_next): Updated accordingly.
- Take care of overlapping segments.
- (tt_cmap4_validate): Make sure the subtable is large enough.
- Do not check glyph_ids because some fonts set the length wrongly.
- Also, if all segments have offset 0, glyph_ids is always invalid.
- It does not cause any problem so far only because the check misses
- equality.
- Distinguish between unsorted and overlapping segments.
- (tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions
- to do `charcode => glyph index' by linear/binary search.
- (tt_cmap4_char_index, tt_cmap4_char_next): Use
- tt_cmap4_char_map_linear and tt_cmap4_char_map_binary.
- (tt_face_build_cmaps): Treat the return value of validator as flags
- for cmap.
-
-2005-11-29 Chia-I Wu <[email protected]>
-
- * src/sfnt/ttcmap.c (TT_CMap12Rec_, tt_cmap12_init, tt_cmap12_next):
- New structures and functions for fast `next char'.
- (tt_cmap12_char_map_binary): New function to do `charcode => glyph
- index' by binary search.
- (tt_cmap12_char_index, tt_cmap12_char_next): Use
- tt_cmap12_char_map_binary.
- (tt_face_build_cmaps): Check table and offset correctly (equality is
- missing).
-
-2005-11-15 Detlef Würkner <[email protected]>
-
- * builds/amiga/smakefile: Adjusted the compiler options
- to the current sources, now really builds the gxvalid, gzip
- and psnames modules.
-
- * builds/amiga/src/base/ftsystem.c: The assumed Seek() position
- in the file cache was off by one byte which could cause false
- errors in font files.
-
-2005-11-24 suzuki toshiya <[email protected]>
-
- * builds/mac/FreeType.m68k_far.make.txt,
- builds/mac/FreeType.m68k_cfm.make.txt,
- builds/mac/FreeType.ppc_classic.make.txt,
- builds/mac/FreeType.ppc_carbon.make.txt:
- Updated for MPW to build all available modules.
-
-2005-11-21 HÃ¥vard Wall <[email protected]>
-
- * src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Done): Fix small
- memory leak.
-
-2005-11-21 Werner Lemberg <[email protected]>
-
- * src/sfnt/ttload.c (sfnt_init): Add tracing message.
-
-2005-11-21 Chia-I Wu <[email protected]>
-
- * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Image_offset was
- added twice to image_start if image_format was 2 or 5.
-
-2005-11-21 Chia-I Wu <[email protected]>
-
- * src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known
- before loading the table directory.
-
- * src/sfnt/ttload.c (tt_face_load_sfnt_header,
- tt_face_load_directory): Delay sfnt_dir_check from
- tt_face_load_sfnt_header to tt_face_load_directory.
-
-2005-11-20 Chia-I Wu <[email protected]>
-
- * src/sfnt/ttload.c (sfnt_dir_check): Clean up and return correct
- error code.
- (sfnt_init): New function to fill in face->ttc_header. A non-TTC font
- is synthesized into a TTC font with one offset table.
- (tt_face_load_sfnt_header): Use sfnt_init.
- Fix an invalid access if the font is TTC and face_index is -1.
-
-2005-11-18 Werner Lemberg <[email protected]>
-
- * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number
- of metrics instead of aborting. Patch suggested by Derek Noonburg.
-
- * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
- (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Scale
- the glyph properly if no hinter is available.
-
- * docs/CHANGES: Mention scaling bug.
-
-2005-11-18 susuzki toshiya <[email protected]>
-
- * include/freetype/ftgxval.h, src/base/ftgxval.c
- (FT_TrueTypeGX_Free, FT_ClassicKern_Free): New functions to free
- buffers allocated by gxvalid module.
- * include/freetype/ftotval.h, src/base/ftotval.c
- (FT_OpenType_Free): New function to free buffer allocated by
- otvalid module.
-
-2005-11-18 Chia-I Wu <[email protected]>
-
- * builds/unix/ftsystem.c (FT_Stream_Open, FT_New_Memory,
- FT_Done_Memory), builds/vms/ftsystem.c (FT_Stream_Open, FT_New_Memory,
- FT_Done_Memory), builds/win32/ftdebug.c (FT_Message, FT_Panic):
- s/FT_EXPORT/FT_BASE/.
-
-2005-11-17 Detlef Würkner <[email protected]>
-
- * builds/amiga/src/base/ftdebug.c (FT_Trace_Get_Count,
- FT_Trace_Get_Name, FT_Message, FT_Panic),
- builds/amiga/src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory,
- FT_Stream_Open): s/FT_EXPORT/FT_BASE/.
-
-2005-11-17 Detlef Würkner <[email protected]>
-
- * builds/amiga/makefile, builds/amiga/makefile.os4,
- builds/amiga/smakefile,
- builds/amiga/include/freetype/config/ftmodule.h: Updated the Amiga
- build files (added support for the gxvalid module).
-
-2005-11-17 Werner Lemberg <[email protected]>
-
- Add vertical metrics support to OpenType CFF outlines. Based on a
- patch from Mike Moening <[email protected]>.
-
- * src/cff/cffgload.c (cff_face_get_vertical_metrics): New function.
- (cff_slot_load): Use cff_face_get_vertical_metrics.
-
- * docs/CHANGES: Updated.
-
-2005-11-17 Chia-I Wu <[email protected]>
-
- * src/base/ftcalc.c (FT_MulTo64): Commented out.
-
- * include/freetype/internal/ftcalc.h (FT_SqrtFixed),
- src/base/ftcalc.c (FT_SqrtFixed),
- include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
- FT_Trace_Get_Name, FT_Message, FT_Panic), src/base/ftdebug.c
- (FT_Trace_Get_Count, FT_Trace_Get_Name, FT_Message, FT_Panic),
- include/freetype/internal/ftobjs.h (FT_New_Memory, FT_Done_Memory),
- include/freetype/internal/ftstream.h (FT_Stream_Open),
- src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory, FT_Stream_Open):
- s/FT_EXPORT/FT_BASE/.
-
- * builds/exports.mk: Manually add TT_New_Context to EXPORTS_LIST
- too.
-
-2005-11-15 David Turner <[email protected]>
-
- * src/base/fttrigon.c (ft_trig_prenorm): Fix a bug that created
- invalid computations, resulting in very weird bugs in TrueType
- bytecode hinted fonts.
-
- * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Don't perform a
- structure copy each time.
-
-2005-11-11 Werner Lemberg <[email protected]>
-
- * src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c
- (FTC_Manager_Check): Remove FT_EXPORT_DEF tag.
-
- * src/base/ftcalc.c (FT_Add64): Remove FT_EXPORT_DEF tag.
- (FT_Div64by32, FT_Sqrt32): Commented out. Unused.
-
- * include/freetype/internal/ftcalc.h (SQRT_32): Removed. Unused.
- (FT_Sqrt32): Commented out. Unused.
-
- * include/freetype/cache/ftccache.h:
- s/ftc_node_destroy/FTC_Node_Destroy/.
-
- * src/cache/ftccback.h (ftc_node_destroy): New declaration.
-
- * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF tag.
- (FTC_Node_Destroy): New exported wrapper function for
- ftc_node_destroy.
-
- * src/cache/ftcmanag.c: Include ftccback.c.
-
-2005-11-10 Werner Lemberg <[email protected]>
-
- * src/autofit/afangles.c, src/autofit/aftypes.h (af_angle_diff):
- Comment out. Unused.
-
- * builds/exports.mk ($(EXPORTS_LIST)): Add TT_RunIns.
-
-2005-11-10 Christian Biesinger <[email protected]>
-
- * builds/beos/beos.mk: Call beos-def.mk before anything else to
- define the separator.
-
- * builds/unix/unix-cc.in (LINK_LIBRARY): Add `-no-undefined' flag.
-
-2005-11-07 Werner Lemberg <[email protected]>
-
- * src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning
- table available'. From Sergey Tolstov <[email protected]>.
-
-2005-11-03 Ville Syrjälä <[email protected]>
-
- * src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak.
-
-2005-11-02 Werner Lemberg <[email protected]>
-
- Make compiling instructions in docs/CUSTOMIZE work again.
-
- * builds/unix/unix-cc.in (CPPFLAGS): New variable.
- (CFLAGS): Don't include @CPPFLAGS@.
- * builds/freetype.mk (FT_CFLAGS): Add CPPFLAGS.
-
-2005-10-28 David Turner <[email protected]>
-
- Update build system to support the generation of a list of exported
- symbols or Windows .DEF files by parsing the public headers with the
- `apinames' tool located in src/tools/apinames.c.
-
- Only tested on Unix at the moment. On Windows, the .DEF file is
- generated but isn't used yet to generate a DLL.
-
- * builds/exports.mk: New file.
-
- * builds/freetype.mk: Include exports.mk.
- (dll): New target.
- (clean_project_dos): Fix rule.
-
- * builds/compiler/visualc.mk (TE), builds/dos/dos-def.mk (E),
- builds/os2/os2-def.mk (E), builds/win32/win32-def.mk (E): New
- variables for controlling executable extensions.
-
- * builds/unix/unix-cc.in (EXPORTS_LIST, CCexe),
- builds/win32/w32-bcc.mk, builds/win32/w32-gcc.mk,
- builds/win32/w32-icc.mk, builds/win32/w32-icc.mk,
- builds/win32/w32-mingw32.mk, builds/win32/w32-vcc,
- builds/win32/w32-wat.mk (EXPORTS_LIST, EXPORT_OPTIONS,
- APINAMES_OPTIONS): New targets for controlling the `apinames' tool.
-
- * Jamfile (GenExportSymbols): Updated.
-
-
- * src/pfr/pfrtypes.h, src/pfr/pfrload.c, src/pfr/pfrobjs.c
- [!FT_OPTIMIZE_MEMORY]: Fold memory optimization code into
- FT_OPTIMIZE_MEMORY chunks for better maintainability and simplicity.
-
-
- * src/base/fttrigon.c (ft_trig_prenorm), src/base/ftcalc.c
- (FT_MulFix): Performance optimizations.
-
-
- * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
- FT_GLYPHLOADER_CHECK_C, FT_GLYPHLOADER_CHECK_POINTS): New macros for
- checking points and contours. Update callers to use
- FT_GLYPHLOADER_CHECK_POINTS instead of FT_GlyphLoader_CheckPoints
- at profile-detected hot-spots.
-
- * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Set `adjust'
- to 0 to not call `AdjustPoints' every time.
-
-
- * src/autofit/aftypes.h (AF_ANGLE_DIFF): New macro to inline
- FT_Angle_Diff.
-
- * src/autofit/afhints.c (af_direction_compute): Re-implement.
- (af_glyph_hints_compute_inflections, af_glyph_hints_reload): Use
- AF_ANGLE_DIFF to speed up the detection of inflexions.
-
-
- * src/tools/apinames.c: Include <string.h>.
- (OutputFormat): New enumeration.
- (names_dump): Add two parameters to control output format and DLL
- name.
- (names_dump_windef): Removed. Code folded into `names_dump'.
- (read_header_file): Use isalnum, not isalpha. Otherwise function
- names with digits aren't read correctly.
- (usage): Updated.
- (main): New option `-o' to control output file name.
- New option `-d' to indicate DLL file name.
- Extend `-w' flag to handle Borland and Watcom compilers and linkers.
-
-2005-10-28 suzuki toshiya <[email protected]>
-
- * builds/mac/ftlib.prj, builds/mac/freetype.mak: Removed.
- ftlib.prj is unmaintained and incompatible with current tree.
- freetype.mak is unrecoverably broken.
-
- * builds/mac/ftlib.prj.xml: Added.
- Generated by Metrowerks CodeWarrior 9.0.
-
- * builds/mac/FreeType.m68k_far.make.txt,
- builds/mac/FreeType.m68k_cfm.make.txt,
- builds/mac/FreeType.ppc_classic.make.txt,
- builds/mac/FreeType.ppc_carbon.make.txt: Added.
- Skeleton files of MPW makefiles.
-
- * builds/mac/ascii2mpw.py: Added.
- Python script to make MPW makefile from skeleton.
-
- * builds/mac/README: Updated.
- Almost rewritten to use new files.
-
-2005-10-28 suzuki toshiya <[email protected]>
-
- * src/base/ftmac.c: Fix invalid casts from NULL to integer typed
- variables. Advised by David Turner, Masatake YAMATO, Sean McBride,
- and George Williams.
-
-2005-10-27 Werner Lemberg <[email protected]>
-
- * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed.
- Obsolete.
-
-2005-10-25 Werner Lemberg <[email protected]>
-
- * src/sfnt/sfdriver.c (sfnt_interface): Move out
- `tt_face_get_kerning' from a #ifdef clause. Reported by Tony J.
- Ibbs <[email protected]>.
-
-2005-10-23 Werner Lemberg <[email protected]>
-
- * src/base/ftdbgmem.c (ft_mem_debug_realloc): Make it compile with
- C++.
-
-2005-10-21 David Turner <[email protected]>
-
- * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_debug_realloc):
- Another realloc memory counting bug fix.
-
- * src/tools/Jamfile: Add missing file.
-
- * src/lzw/Jamfile: Fix incorrect source file reference.
-
-2005-10-20 David Turner <[email protected]>
-
- * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_table_remove,
- ft_mem_debug_alloc, ft_mem_debug_free, ft_mem_debug_realloc): Fixes
- to better account for memory reallocations.
-
- * src/lzw/ftlzw2.c, src/lzw/ftzopen.h, src/lzw/ftzopen.c,
- src/lzw/rules.mk: First version of LZW loader re-implementation.
- Apparently, this saves about 330 KB of heap memory when loading
- timR24.pcf.Z.
-
-2005-10-20 Chia-I Wu <[email protected]>
-
- * include/freetype/ftbitmap.h (FT_Bitmap_Copy, FT_Bitmap_Embolden),
- src/base/ftbdf.c (FT_Get_BDF_Property), src/cache/ftcmru.c
- (FTC_MruList_Reset, FTC_MruList_Done, FTC_MruList_Lookup): Fix
- FT_EXPORT/FT_EXPORT_DEF tagging.
-
-2005-10-19 Chia-I Wu <[email protected]>
-
- * src/truetype/ttgload.c (TT_Load_Glyph): Allow size->ttmetrics to
- be invalid when FT_LOAD_NO_SCALE is set.
-
-2005-10-17 David Turner <[email protected]>
-
- * src/base/ftobjs.c (FT_Open_Face): Don't call FT_New_GlyphSlot and
- FT_New_Size if we are opening a face with face_index < 0 (which is
- only used for testing the format).
-
- * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate):
- Remove compiler warning.
-
-2005-10-16 David Turner <[email protected]>
-
- * src/tools/apinames.c: Add new tool to extract public API function
- names from header files.
-
-2005-10-05 Werner Lemberg <[email protected]>
-
- Add FT_FACE_FLAG_HINTER to indicate that a specific font driver has
- a hinting engine of its own.
-
- * include/freetype/freetype.h (FT_FACE_FLAG_HINTER): New macro.
-
- * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
- (cid_face_init), src/truetype/ttobjs.c (tt_face_init)
- [TT_CONFIG_OPTION_BYTECODE_INTERPRETER], src/type1/t1objs.c
- (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init)
- [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Update face flags.
-
- * docs/CHANGES: Document it.
-
-2005-09-27 Werner Lemberg <[email protected]>
-
- * builds/unix/freetype2.m4: Add license exception so that the file
- can be used in any other autoconf script.
-
-2005-09-26 David Turner <[email protected]>
-
- * src/autofit/aflatin.c (af_latin_compute_stem_width): Fix bad
- computation of the `vertical' flag, causing ugly things in LCD mode
- and others.
-
-2005-09-23 David Turner <[email protected]>
-
- * src/autofit/aflatin.c (af_latin_hints_init): Fix a bug that
- prevented internal hint mode bitflags from being computed correctly.
-
- * src/base/Jamfile: Adding src/base/ftgxval.c.
-
- * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
- src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c, src/gxvalid/gxvkern.c,
- src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
- src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
- src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
- src/gxvalid/gxvmort5.c, src/gxvalid/gxvmorx.c,
- src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
- src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx5.c,
- src/gxvalid/gxvopbd.c, src/gxvalid/gxvprop.c,
- src/truetype/ttgload.c: Remove _many_ compiler warnings when
- compiling with Visual C++ at maximum level (/W4).
-
- * src/autofit/afangles.c (af_angle_atan): Replaced CORDIC-based
- implementation with one using lookup tables. This simple thing
- speeds up glyph loading by 18%, according to ftbench!
-
- * src/sfnt/sfdriver.c (sfnt_get_interface): Don't check for
- `get_sfnt' and `load_sfnt' module interfaces.
-
-2005-09-22 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Mention SING Glyphlet support.
-
-2005-09-22 David Turner <[email protected]>
-
- * src/base/Jamfile: Disable compilation of ftgxval module
- temporarily.
-
-2005-09-19 David Somers <[email protected]>
-
- * src/sfnt/ttload.c (sfnt_dir_check): Modified to allow a
- font to have no `head' table if tables `SING' and `META' are
- present; this is to support `SING Glyphlet'.
-
- `SING Glyphlet' is an extension to OpenType developed by Adobe
- primarily to facilitate adding supplemental glyphs to an OpenType
- font (with emphasis on, but not necessarily limited to, gaiji to a
- CJK font). A SING Glyphlet Font is an OpenType font that contains
- the outline(s), either in a `glyf' or `CFF' table, for a glyph;
- `cmap', `BASE', and `GSUB' tables are present with the same format
- and functionaliy as a regular OpenType font; there are no `name',
- `head', `OS/2', and `post' tables; there are two new tables, `SING'
- which contains details about the glyphlet, and `META' which contains
- metadata.
-
- Further information on the SING Glyphlet format can be found at:
-
- http://www.adobe.com/products/indesign/sing_gaiji.html
-
- * include/freetype/ttags.h (TTAG_SING, TTAG_META): New macros for
- the OpenType tables `SING' and `META'. These two tables are used in
- SING Glyphlet Format fonts.
-
-2005-09-09 Werner Lemberg <[email protected]>
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Reactivate code to set
- FT_FACE_FLAG_KERNING which has been commented out erroneously.
-
- * docs/CHANGES: Document it.
-
-2005-09-05 Werner Lemberg <[email protected]>
-
- Fixes for `make multi' and using C++ compiler.
-
- * src/gxvalid/gxvcommn.c (gxv_set_length_by_ushort_offset,
- gxv_set_length_by_ulong_offset, gxv_array_getlimits_byte,
- gxv_array_getlimits_ushort): Declare with FT_LOCAL_DEF.
- (gxv_compare_ranges): Make it static.
- (gxv_LookupTable_fmt0_validate, gxv_LookupTable_fmt2_validate,
- gxv_LookupTable_fmt4_validate, gxv_LookupTable_fmt6_validate,
- gxv_LookupTable_fmt8_validate, gxv_LookupTable_validate): Improve
- trace messages.
- (gxv_StateArray_validate, gxv_XStateArray_validate): s/class/clazz/.
- (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
- GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Move to
- gxvcommn.h.
-
- * src/gxvalid/gxvcommn.h: Add prototypes for
- gxv_StateTable_subtable_setup, gxv_XStateTable_subtable_setup,
- gxv_XStateTable_validate, gxv_array_getlimits_byte,
- gxv_array_getlimits_ushort, gxv_set_length_by_ushort_offset,
- gxv_set_length_by_ulong_offset, gxv_odtect_add_range,
- gxv_odtect_validate.
- (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
- GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Moved from
- gxvcommn.c.
-
- * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
- gxv_bsln_parts_fmt1_validate): Improve trace messages.
-
- * src/gxvalid/gxvfeat.c: Split off predefined registry stuff to...
- * src/gxvalid/gxvfeat.h: New file.
-
- * src/gxvalid/gxvjust.c (gxv_just_wdc_entry_validate): Improve trace
- message.
-
- * src/gxvalid/gxvkern.c (GXV_kern_Dialect): Add KERN_DIALECT_UNKNOWN.
- (gxv_kern_subtable_fmt1_valueTable_load,
- gxv_kern_subtable_fmt1_subtable_setup,
- gxv_kern_subtable_fmt1_entry_validate): Fix C++ compiler errors.
- (gxv_kern_coverage_validate): Use KERN_DIALECT_UNKWOWN.
- Improve trace message.
- (gxv_kern_validate_generic): Fix C++ compiler error.
- Improve trace message.
- (gxv_kern_validate_classic): Fix C++ compiler error.
-
- * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_validate): Declare
- with FT_LOCAL_DEF.
-
- * src/gxvalid/gxvmort1.c
- (gxv_mort_subtable_type1_substitutionTable_load,
- gxv_mort_subtable_type1_subtable_setup): Fix C++ compiler errors.
- (gxv_mort_subtable_type1_substTable_validate): Improve trace
- message.
- (gxv_mort_subtable_type1_validate): Declare with FT_LOCAL_DEF.
-
- * src/gxvalid/gxvmort2.c (gxv_mort_subtable_type2_opttable_load,
- gxv_mort_subtable_type2_subtable_setup,
- gxv_mort_subtable_type2_ligActionOffset_validate,
- gxv_mort_subtable_type2_ligatureTable_validate): Fix C++ compiler
- errors.
- (gxv_mort_subtable_type2_validate): Declare with FT_LOCAL_DEF.
-
- * src/gxvalid/gxvmort4.c (gxv_mort_subtable_type4_validate): Declare
- with FT_LOCAL_DEF.
-
- * src/gxvalid/gxvmort5.c (gxv_mort_subtable_type5_subtable_setup,
- gxv_mort_subtable_type5_InsertList_validate): Fix C++ compiler
- errors.
- (gxv_mort_subtable_type5_validate): Declare with FT_LOCAL_DEF.
-
- * src/gxvalid/gxvmort.c: Include gxvfeat.h.
- (gxv_mort_featurearray_validate, gxv_mort_coverage_validate):
- Declare with FT_LOCAL_DEF.
- (gxv_mort_subtables_validate, gxv_mort_validate): Improve trace
- messages.
-
- * src/gxvalid/gxvmort.h (gxv_mort_feature_validate): Remove.
-
- * src/gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_validate): Declare
- with FT_LOCAL_DEF.
-
- * src/gxvalid/gxvmorx1.c
- (gxv_morx_subtable_type1_substitutionTable_load,
- gxv_morx_subtable_type1_subtable_setup,
- gxv_morx_subtable_type1_entry_validate,
- gxv_morx_subtable_type1_substitutionTable_validate): Fix C++
- compiler errors.
- (gxv_morx_subtable_type1_validate): Declare with FT_LOCAL_DEF.
-
- * src/gxvalid/gxvmorx2.c (gxv_morx_subtable_type2_opttable_load,
- gxv_morx_subtable_type2_subtable_setup,
- gxv_morx_subtable_type2_ligActionIndex_validate,
- gxv_morx_subtable_type2_ligatureTable_validate): Fix C++ compiler
- errors.
- (gxv_morx_subtable_type2_validate): Declare with FT_LOCAL_DEF.
- Fix typo.
-
- * src/gxvalid/gxvmorx4.c (gxv_morx_subtable_type4_validate): Declare
- with FT_LOCAL_DEF.
-
- * src/gxvalid/gxvmorx5.c (gxv_morx_subtable_type5_insertionGlyph_load,
- gxv_morx_subtable_type5_subtable_setup): Fix C++ compiler error.
- (gxv_morx_subtable_type5_validate): Declare with FT_LOCAL_DEF.
-
- * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate,
- gxv_morx_validate): Improve trace message.
-
- * src/gxvalid/gxvopbd.c (gxv_opbd_LookupFmt4_transit): Fix compiler
- warnings.
- (gxv_opbd_validate): Improve trace message.
-
- * src/gxvalid/gxvprop.c: Decorate constants with `U' and `L' where
- appropriate.
- (gxv_prop_zero_advance_validate, gxv_prop_validate): Improve trace
- message.
-
- * src/gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): Remove unused
- parameter. Update all callers.
- (gxv_trak_validate): Improve trace message.
-
- * rules.mk (GXV_DRV_H): Add gxvfeat.h.
-
-2005-09-01 Werner Lemberg <[email protected]>
-
- * src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'.
-
- * src/gxvalid/gxmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE),
- src/gxvalid/gxmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix
- typo.
-
- * src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
- src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx4.c,
- src/gxvalid/gxvmorx5.c, src/gxvalid/gxvmort.c: Improve trace
- messages.
- Decorate constants with `U' and `L' where appropriate.
- Fix compiler warnings.
-
-2005-08-31 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c (load_truetype_glyph): Fix typo.
-
- * src/gxvalid/gxvbsln.c (gxv_bsln_validate): Fix trace message.
-
- * src/gxvalid/gxvcommn.c (gxv_odtect_add_range): Use `const'.
-
- * src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c,
- src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmod.c,
- src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
- src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
- src/gxvalid/gxvmort5.c, src/gxvalid/gxvmort.c: Improve trace
- messages.
- Decorate constants with `U' and `L' where appropriate.
- Fix compiler warnings.
-
-2005-08-30 Werner Lemberg <[email protected]>
-
- * src/gxvalid/README: Revised.
- * src/gxvalid/gxvbsln.c: Fix compiler warnings.
- * src/gxvalid/gxvcommn.c: Fix compiler warnings.
- (gxv_XEntryTable_validate, gxv_compare_ranges): Remove unused
- parameter. Update all callers.
- Improve trace messages.
- Some formatting.
-
-2005-08-29 Werner Lemberg <[email protected]>
-
- * include/freetype/freetype.h, include/freetype/ftchapters.h: Add
- a preliminary section with some explanations about user allocation.
-
- * src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
- Don't abort if there are no data types, functions, etc., in a
- section.
- Print synopsis only if we have a data type, function, etc.
-
- * docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
- docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
- docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
-
-2005-08-28 George Williams <[email protected]>
-
- * src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed.
- (load_truetype_glyph): Limit recursion depth by `maxComponentDepth'.
-
-2005-08-25 J. Ali Harlow <[email protected]>
-
- * builds/unix/freetype2.in (CFlags): Add missing directory.
-
-2005-08-24 Werner Lemberg <[email protected]>
-
- * docs/CHANGES: Mention gxvalid module.
-
-2005-08-23 Werner Lemberg <[email protected]>
-
- * src/autofit/aflatin.c (af_latin_metrics_scale): Initialize
- render mode properly. Reported by [email protected].
-
-2005-08-23 suzuki toshiya <[email protected]>
-
- Add gxvalid module to validate TrueType GX/AAT tables.
-
- Modifications on existing files:
-
- * Jamfile: Register gxvalid module.
- * src/base/Jamfile: Register ftgxval.c.
- * src/base/rule.mk: Register ftgxval.c.
- * docs/INSTALL.ANY: Register gxvalid/gxvalid.c.
-
- * include/freetype/config/ftheader.h (FT_GX_VALIDATE_H): New macro
- to include gxvalid header file.
- * include/freetype/config/ftmodule.h: Register gxv_module_class.
-
- * include/freetype/ftchapters.h: Add comment about gx_validation.
- * include/freetype/ftotval.h: Change keyword FT_VALIDATE_XXX
- to FT_VALIDATE_OTXXX to co-exist with gxvalid.
- * include/freetype/tttags.h: Add tags for TrueType GX/AAT tables.
-
- * include/freetype/internal/ftserv.h (FT_SERVICE_GX_VALIDATE_H): New
- macro for gxvalid service.
- * include/freetype/internal/fttrace.h: Add trace facilities for
- gxvalid.
-
- New files on existing directories:
-
- * include/freetype/internal/services/svgxval.h: Registration of
- validation service for TrueType GX/AAT and classic kern table.
- * include/freetype/ftgxval.h: Public API definition to use gxvalid.
- * src/base/ftgxval.c: Public API of gxvalid.
-
- New files under src/gxvalid/:
-
- * src/gxvalid/Jamfile src/gxvalid/README src/gxvalid/module.mk
- src/gxvalid/rules.mk src/gxvalid/gxvalid.c src/gxvalid/gxvalid.h
- src/gxvalid/gxvbsln.c src/gxvalid/gxvcommn.c src/gxvalid/gxvcommn.h
- src/gxvalid/gxverror.h src/gxvalid/gxvfeat.c src/gxvalid/gxvfgen.c
- src/gxvalid/gxvjust.c src/gxvalid/gxvkern.c src/gxvalid/gxvlcar.c
- src/gxvalid/gxvmod.c src/gxvalid/gxvmod.h src/gxvalid/gxvmort.c
- src/gxvalid/gxvmort.h src/gxvalid/gxvmort0.c src/gxvalid/gxvmort1.c
- src/gxvalid/gxvmort2.c src/gxvalid/gxvmort4.c src/gxvalid/gxvmort5.c
- src/gxvalid/gxvmorx.c src/gxvalid/gxvmorx.h src/gxvalid/gxvmorx0.c
- src/gxvalid/gxvmorx1.c src/gxvalid/gxvmorx2.c src/gxvalid/gxvmorx4.c
- src/gxvalid/gxvmorx5.c src/gxvalid/gxvopbd.c src/gxvalid/gxvprop.c
- src/gxvalid/gxvtrak.c: New files, gxvalid body.
-
-2005-08-21 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c (TT_Load_Glyph): Only translate outline
- to (0,0) if bit 1 of the `head' table isn't set. This improves
- rendering of buggy fonts.
-
-2005-08-20 Chia I Wu <[email protected]>
-
- * src/truetype/ttdriver.c (Load_Glyph): Don't check the validity of
- ttmetrics here. TrueType fonts with only sbits always have
- ttmetrics.valid set to false.
-
- * src/truetype/ttgload.c (TT_Load_Glyph): Check that ttmetrics is
- valid before loading outline glyph.
-
- * src/cache/ftcimage.c (FTC_INode_New): Fix a memory leak.
-
-2005-08-20 Werner Lemberg <[email protected]>
-
- * src/sfnt/ttload.c (tt_face_load_metrics_header): Ignore missing
- `hhea' table for SFNT Mac fonts. Change based on a patch by
-
-2005-08-20 Masatake YAMATO <[email protected]>
-
- * src/otvalid/otvmod.c (otv_validate): Use ft_validator_run instead
- of ft_setjmp.
-
-2005-08-19 Werner Lemberg <[email protected]>
-
- * src/truetype/ttgload.c (load_truetype_glyph): Fix compiler
- warnings.
-
-2005-08-16 Chia I Wu <[email protected]>
-
- * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright
- messages.
-
-2005-08-16 Chia I Wu <[email protected]>
-
- * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Remove original
- TT_Done_Context and rename TT_Destroy_Context to TT_Done_Context
- with slight changes.
- Update all callers.
- (TT_New_Context): Now takes TT_Driver argument directly.
- Update all callers.
-
- * src/truetype/ttobjs.h (tt_slot_init): New function.
- * src/truetype/ttobjs.c (tt_driver_init): Initialize execution
- context here.
- (tt_slot_init): New function to create extra points for the internal
- glyph loader. We then use it directly, instead of face's glyph
- loader, when loading glyph.
-
- * src/truetype/ttdriver.c (tt_driver_class): Use tt_slot_init for
- glyph slot initialization.
- (Load_Glyph): Load flag dependencies are handled here. Return error
- if size is NULL.
-
- * src/truetype/ttgload.c: Heavy cleanup and refactoring.
- (org_to_cur): Removed.
- (TT_Load_Simple_Glyph): Call FT_GlyphLoader_CheckPoints.
- (TT_Hint_Glyph): New function to hint a zone, prepared by caller.
- (TT_Process_Simple_Glyph): s/load/loader/.
- Use loader->pp values instead of recalculation.
- Use TT_Hint_Glyph.
- No need to save/restore loader->stream before and after
- TT_Vary_Get_Glyph_Deltas now.
- (TT_LOADER_SET_PP): New macro to calculate and set the four phantom
- points.
- (load_truetype_glyph): Never set exec->glyphSize to 0. This closes
- Savannah bug #13107.
- Forget glyph frame before calling TT_Process_Simple_Glyph.
- Use TT_LOADER_SET_PP.
- Scale all four phantom points.
- Split off some functionality to ...
- (TT_Process_Composite_Component, TT_Process_Composite_Glyph): These
- new functions.
- (TT_Load_Glyph): Set various fields of `glyph' here, not in
- load_truetype_glyph and compute_glyph_metrics.
- Split off some functionality to ...
- (load_sbit_image, tt_loader_init): These new functions.
- (compute_glyph_metrics): Call FT_Outline_Get_CBox.
-
-2005-08-08 Werner Lemberg <[email protected]>
-
- * docs/INSTALL.ANY: Updated.
-
-2005-08-05 Werner Lemberg <[email protected]>
-
- * src/cff/cffgload.c (cff_builder_close_contour),
- src/psaux/psobjs.c (t1_builder_close_contour): Protect against
- zero `outline' pointer.
-
- * src/base/ftgloadr.c (FT_GlyphLoader_Add): Protect against zero
- `loader' address.
-
-2005-08-03 Werner Lemberg <[email protected]>
-
- * src/sfnt/sfdriver.c (sfnt_interface) [FT_OPTIMIZE_MEMORY]:
- Reactivate pointers to tt_find_sbit_image and tt_load_sbit_metrics
- to make X work again.
-
-2005-08-02 Werner Lemberg <[email protected]>
-
- * src/otvalid/otvcommn.h: Remove dead code.
-
-2005-07-31 Chia I Wu <[email protected]>
-
- * src/truetype/ttobjs.h (tt_size_run_fpgm, tt_size_run_prep): New
- functions.
-
- * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): New
- functions.
- (tt_size_init): Add 4, instead of 2, (phantom) points to twilight
- zone.
- Move code that runs fpgm to tt_size_run_fpgm.
- (Reset_Outline_Size): Move code that runs prep to tt_size_run_prep.
- (tt_glyphzone_new): Allocate right size of arrays.
- Set max_points and max_contours properly.
-
-2005-07-26 Chia I Wu <[email protected]>
-
- * src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary
- computations and clean up.
-
- * src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the
- internal copy of metrics.
-
-2005-07-12 Werner Lemberg <[email protected]>
-
- * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix prototype.
- Reported by Xerxes.
-
-2005-07-04 Werner Lemberg <[email protected]>
-
- * include/freetype/internal/ftmemory.h (FT_REALLOC_ARRAY): Fix typo.
- Reported by Brett Hutley.
-
-2005-06-30 David Turner <[email protected]>
-
- * src/sfnt/ftbitmap.c, src/truetype/ttgload.c, src/sfnt/ttcmap.c:
- Removing compiler warnings (Visual C++ /W4).
-
-
- Implement a work-around for broken C preprocessor in Visual C++ (it
- has been confirmed by the MS developers that it is indeed a bug
- which won't be fixed in the very near future).
-
- * Jamfile (FT2_COMPONENTS): Include otvalid (again).
-
- * src/otvalid/otvcommn.h (OTV_NAME, OTV_FUNC): New macros.
- (OTV_NEST1, OTV_NEST2, OTV_NEST3): Use OTV_NAME and OTV_FUNC to
- avoid argument expansion by argument prescan.
- Append `Func' to all affected macros and change them to take just a
- single argument. Example: `AttachList' is renamed to
- `AttachListFunc'.
-
- * src/otvalid/otvgdef.c, src/otvalid/otvgpos.c,
- src/otvalid/otvgsub.c, src/otvjstf.c: Append `Func' to macros
- affected by the changes to OTV_NESTx and modify them to take just a
- single argument.
-
-2005-06-20 Chia I Wu <[email protected]>
-
- * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: New function
- ft_glyphslot_grid_fit_metrics.
-
- * src/truetype/ttgload.c (compute_glyph_metrics): Use
- ft_glyphslot_grid_fit_metrics.
-
- * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
- (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Use
- ft_glyphslot_grid_fit_metrics.
- FT_Outline_Get_CBox is called twice.
-
- * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Modify metrics to more
- reasonable values when emboldening outline glyphs. The theoretic
- ones are unrealistic.
-
-2005-06-16 Chia I Wu <[email protected]>
-
- * src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
- halved.
-
- * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
- strength.
- Don't increase slot->advance.y.
-
-2005-06-16 Werner Lemberg <[email protected]>
-
- * include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
- (FREETYPE_PATCH): Set to 0.
-
- * builds/unix/configure.ac (version_info): Set to 9:9:3.
- Currently, we are still binary compatible.
-
- * builds/win32/visualc/index.html,
- builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
-
- * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
- s/2.1.9/2.1.10/.
-
- * docs/CHANGES, docs/VERSION.DLL: Updated.
-
- * ChangeLog: Split off older entries into...
- * ChangeLog.20, ChangeLog.21: These new files.
-
-2005-06-15 Kirill Smelkov <[email protected]>
-
- The next release will be 2.2.0, so don't worry about source code
- backwards compatibility.
-
- * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
- FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
- FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
- include/freetype/ftrender.h (FT_Glyph_TransformFunc,
- FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
- parameters with `const' where appropriate.
-
-2005-06-15 Chia I Wu <[email protected]>
-
- * src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
- to make glyphs centered vertically.
-
- * src/truetype/ttgload.c (compute_glyph_metrics): Compute
- vertBearingY to make glyphs centered vertically.
- Fix some bugs in vertical metrics:
-
- . loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
- units.
- . As we use the glyph's cbox to calculate the top bearing now
- there is no need to adjust `top'.
-
-2005-06-15 Werner Lemberg <[email protected]>
-
- * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
- in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake.
-
-2005-06-13 Werner Lemberg <[email protected]>
-
- * docs/release: Update.
-
-----------------------------------------------------------------------------
-
-Copyright 2005, 2006, 2007, 2008 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.
-
-
-Local Variables:
-version-control: never
-coding: utf-8
-End:
+2006-05-12 Werner Lemberg <[email protected]> + + + * Version 2.2.1 released. + ========================= + + + Tag sources with `VER-2-2-1'. + +2006-05-12 Werner Lemberg <[email protected]> + + * src/tools/docmaker/sources.py (re_source_keywords): Add word + boundary markers. + * src/tools/docmaker/content.py (re_field): Allow `.' in field names + (but not at the beginning or end). + * src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset. + (block_footer): Split into... + (block_footer_start, block_footer_middle, block_footer_end): This to + add navigation buttons. + (HtmlFormatter::block_exit): Updated. + + * include/freetype/*: Many minor documentation improvements (adding + links, spelling errors, etc.). + +2006-05-11 Werner Lemberg <[email protected]> + + * README: Minor updates. + + * include/freetype/*: s/scale/scaling value/ where appropriate. + Many other minor documentation improvements. + + * src/tools/docmaker/sources.py (re_italic, re_bold): Handle + trailing punctuation. + * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Add + warning message for undefined cross references. + Update handling of re_italic and re_bold. + +2006-05-11 Masatake YAMATO <[email protected]> + + * builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if + read system call returns -1. + Remove a redundant parenthesis. + +2006-05-10 Werner Lemberg <[email protected]> + + * builds/unix/ftsystem.c (FT_Stream_Open): Avoid infinite loop if + given an empty, un-mmap()able file. Reported and suggested fix in + Savannah bug #16555. + + * builds/freetype.mk (refdoc): Write-protect the `docmaker' + directory to suppress generation of .pyc files. According to the + Python docs there isn't a more elegant solution (currently). + + * builds/toplevel.mk (dist): New target which builds .tar.gz, + .tar.bz2, and .zip files. Note that the version number is still + hard-coded. + (do-dist): Sub-target of `dist'. + (CONFIG_GUESS, CONFIG_SUB): New variables. + (.PHONY): Updated. + +2006-05-09 Rajeev Pahuja <[email protected]> + + * builds/win32/visualc/freetype.sln, + builds/win32/visualc/freetype.vcproj: Upgraded to VS.NET 2005 from + VS.NET 2003 + Added files ftbbox.c, fttype1.c, ftwinfnt.c, ftsynth.c. + + * builds/win32/visualc/index.html: Updated. + +2006-05-07 Werner Lemberg <[email protected]> + + Put version information into the configure script. Reported by Paul + Watson <[email protected]>. + + * builds/unix/configure.ac: Renamed to... + * builds/unix/configure.raw: This which now serves (with appropriate + modifications) as a template for configure.ac. + + * version.sed: New script. + + * autogen.sh: Generate configure.ac from configure.raw, using + FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h. + +2006-05-06 Werner Lemberg <[email protected]> + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. + + * builds/unix/configure.ac (version_info): Set to 9:10:3. + + * builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj, builds/freetype.mk (refdoc), + Jamfile (RefDoc), README: s/220/221/, s/2.2.0/2.2.1/. + Minor updates. + + * docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS: + Updated. + + * builds/unix/install-sh: Updated from `texinfo' CVS module at + savannah.gnu.org. + + * devel/ftoption.h: Synchronize with + include/freetype/config/ftoption.h. + +2006-05-04 Werner Lemberg <[email protected]> + + * src/lzw/ftlzw2.c: Renamed to... + * src/lzw/ftlzw.c: This. + + * src/lzw/Jamfile, src/lzw/rules.mk: Updated. + + * builds/mac/FreeType.m68k_cfm.make.txt, + builds/mac/FreeType.m68k_far.make.txt, + builds/mac/FreeType.ppc_carbon.make.txt, + builds/mac/FreeType.ppc_classic.make.txt: Updated. + +2006-05-03 David Turner <[email protected]> + + Allow compilation again with C++ compilers. + + * include/freetype/internal/ftmemory.h (FT_ASSIGNP, + FT_ASSIGNP_INNER): New macros which do the actual assignment, and + which exist in two variants (for C and C++). + Update callers accordingly. + +2006-05-03 Werner Lemberg <[email protected]> + + * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed. + +2006-05-02 Werner Lemberg <[email protected]> + + * include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++). + (FT_ALLOC): Remove redundant redefinition. + + * builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use + `-Wstrict-prototypes'. + + * src/base/ftstream.c (FT_Stream_EnterFrame): Add cast. + + * include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]: + Remove `extern'. + +2006-05-02 David Turner <[email protected]> + + Update the memory management functions and macros to safely deal + with array size buffer overflows. This corresponds to attempts to + allocate arrays that are too large. For an example, consider the + following code: + + count = read_uint32_from_file(); array = malloc( sizeof ( Item ) * + count ); for ( nn = 0; nn < count; nn++ ) + array[nn] = read_item_from_file(); + + If `count' is larger than `FT_UINT_MAX/sizeof(Item)', the + multiplication overflows, and the array allocated os smaller than + the data read from the file. In this case, the heap will be + trashed, and this can be used as a denial-of-service attack, or make + the engine crash later. + + The FT_ARRAY_NEW and FT_ARRAY_RENEW macros now ensure that the new + count is no larger than `FT_INT_MAX/item_size', otherwise a new + error code `FT_Err_Array_Too_Large' will be returned. + + Note that the memory debugger now works again when FT_DEBUG_MEMORY + is defined. FT_STRICT_ALIASING has disappeared; the corresponding + code is now the default. + + + * include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]: + Don't use `extern'. + + * include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error + code. + + * include/freetype/internal/ftmemory.h (FT_DEBUG_INNER) + [FT_DEBUG_MEMORY]: New macro. + (ft_mem_realloc, ft_mem_qrealloc): Pass new object size count also. + (ft_mem_alloc_debug, ft_mem_qalloc_debug, ft_mem_realloc_debug, + ft_mem_qrealloc_debug, ft_mem_free_debug): Removed. + (FT_MEM_ALLOC, FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC, + FT_MEM_FREE): Redefine. + (FT_MEM_NEW_ARRAY, FT_MEM_RENEW_ARRAY, FT_MEM_QNEW_ARRAY, + FT_MEM_QRENEW_ARRAY): Redefine. + (FT_ALLOC_MULT, FT_REALLOC_MULT, FT_MEM_QALLOC_MULT, + FT_MEM_QREALLOC_MULT): New macros. Update callers where + appropriate. + (FT_MEM_SET_ERROR): Slightly redefine. + + + * src/base/ftdbgmem.c (_ft_debug_file, _ft_debug_lineno) + [FT_DEBUG_MEMORY]: New global variables, replacing... + (FT_MemTable_Rec) [FT_DEBUG_MEMORY]: Remove `filename' and + `line_no'. Update all callers. + (ft_mem_debug_alloc) [FT_DEBUG_MEMORY]: Avoid possible integer + overflow. + (ft_mem_alloc_debug, ft_mem_realloc_debug, ft_mem_qalloc_debug, + ft_mem_qrealloc_debug, ft_mem_free_debug): Removed. + + * src/base/ftmac.c (read_lwfn): Catch integer overflow. + * src/base/ftrfork.c (raccess_guess_darwin_hfsplus): Ditto. + * src/base/ftutil.c: Remove special code for FT_STRICT_ALIASING. + (ft_mem_alloc, ft_mem_realloc, ft_mem_qrealloc): Rewrite. + + + * include/freetype/ftstream.h (FT_FRAME_ENTER, FT_FRAME_EXIT, + FT_FRAME_EXTRACT, FT_FRAME_RELEASE): Use FT_DEBUG_INNER to report the + place where the frames were entered, extracted, exited or released + in the memory debugger. + + * src/base/ftstream.c (FT_Stream_ReleaseFrame) [FT_DEBUG_MEMORY]: + Call ft_mem_free. + (FT_Stream_EnterFrame) [FT_DEBUG_MEMORY]: Use ft_mem_qalloc. + (FT_Stream_ExitFrame) [FT_DEBUG_MEMORY]: Use ft_mem_free. + +2006-04-30 suzuki toshiya <[email protected]> + + * src/base/ftobjs.c (Mac_Read_POST_Resource): Correct pfb_pos + initialization, remove extra cast to copy to pfb_lenpos. This fixes + parsing of PFB fonts with MacOS resource fork (bug introduced + 2003-09-11). Patch provided by Huib-Jan Imbens <[email protected]>. + +2006-04-29 Werner Lemberg <[email protected]> + + Further C library abstraction. Based on a patch from + + * include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE, + ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc, + ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for + C library functions. Update all users accordingly (and catch some + other places where the C library function was used instead of the + wrapper functions). + + * src/base/ftsystem.c: Don't include stdio.h and stdlib.h. + * src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't + include malloc.h. + + + * builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c + and forthcoming versions. + +2006-04-28 Werner Lemberg <[email protected]> + + * src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed, + obsolete. + +2006-04-27 yi luo <[email protected]> + + * builds/win32/visualc/freetype.vcproj: Updated. + +2006-04-26 David Turner <[email protected]> + + + * Version 2.2 released. + ======================= + + + Tag sources with `VER-2-2-0'. + +2006-04-26 Werner Lemberg <[email protected]> + + * src/psaux/psobjs.c (shift_elements): Don't use FT_Long but + FT_PtrDiff for `delta'. Reported by Céline PILLET + <[email protected]>. + +2006-04-21 David Turner <[email protected]> + + * include/freetype/ftincrem.h: Documentation updates. + (FT_Incremental_Interface): New typedef. + + * include/freetype/ftmodapi.h, include/freetype/ftglyph.h: + Documentation updates. + + * include/freetype/freetype.h: Documentation update. + (FT_HAS_FAST_GLYPHS): Always set to 0. + + * include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New): + Take an FT_Library argument instead of FT_Memory. + + * src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2). + +2006-04-13 David Turner <[email protected]> + + * src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove + superfluous code in the auto-fitter's loader. + +2006-04-05 Detlef Würkner <[email protected]> + + * builds/amiga/makefile, builds/amiga/makefile.os4, + builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define. + +2006-04-03 luoyi <[email protected]> + + * builds/compiler/intelc.mk (TE): New variable. + (ANSIFLAGS): Updated. + +2006-04-03 Werner Lemberg <[email protected]> + + * builds/exports.mk (clean_symbols_list, clean_apinames): Removed. + (CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE). + (.PHONY): Updated. + + * configure.ac: Minor fixes to improve --help output. + + + * docs/PROBLEMS: New file. + +2006-04-01 David Turner <[email protected]> + + * docs/CHANGES: Updated. + + * include/freetype/ftcache.h, include/freetype/config/ftheader.h: + Update documentation comments. + +2006-04-01 Werner Lemberg <[email protected]> + + * builds/unix/install.mk (uninstall): Don't handle `cache' + directory which no longer exists. + +2006-03-29 Detlef Würkner <[email protected]> + + * src/psaux/psconv.c: Changed some variables which are expected to + hold negative values from `char' to `FT_Char' to allow building with + a compiler where `char' is unsigned by default. + +2006-03-27 David Turner <[email protected]> + + * src/sfnt/ttkern.c (tt_face_get_kerning): Fix a serious bug that + causes some programs to go into an infinite loop when dealing with + fonts that don't have a properly sorted kerning sub-table. + +2006-03-26 Werner Lemberg <[email protected]> + + * src/bdf/bdflib.c (ERRMSG4): New macro. + (_bdf_parse_glyphs): Handle invalid BBX values. + + * include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error + macro. + +2006-03-23 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + + + * src/tools/docmaker/tohtml.py (html_header_2): Add horizontal + padding between table elements. + (html_header_1): The `DOCTYPE' comment must be in uppercase. + (make_html_para): Convert `...' quotations into real left and + right single quotes. + Use `para_header' and `para_footer'. + + * src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'" + also. + +2006-03-23 David Turner <[email protected]> + + Add FT_Get_SubGlyph_Info API to retrieve subglyph data. Note that + we do not expose the FT_SubGlyphRec structure. + + * include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved + to... + * include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here. + (FT_Get_SybGlyph_Info): New declaration. + + * src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function. + + + * src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and + rsb_delta correctly in edge cases. + +2006-03-22 Werner Lemberg <[email protected]> + + * src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup) + [!FTC_INLINE]: Compile conditionally. + * src/cache/ftccache.h: Updated. + + * src/cache/ftcglyph.c (FTC_GNode_Init, FTC_GNode_UnselectFamily, + FTC_GNode_Done, FTC_GNode_Compare, FTC_Family_Init, FTC_GCache_New): + s/FT_EXPORT/FT_LOCAL/. + (FTC_GCache_Init, FTC_GCache_Done): Commented out. + (FTC_GCache_Lookup) [!FTC_INLINE]: Compile conditionally. + s/FT_EXPORT/FT_LOCAL/. + * src/cache/ftcglyph.h: Updated. + + * src/cache/ftcimage.c (FTC_INode_Free, FTC_INode_New): + s/FT_EXPORT/FT_LOCAL/. + (FTC_INode_Weight): Commented out. + * src/cache/ftcimage.h: Updated. + + * src/cache/ftmanag.c (FTC_Manager_Compress, + FTC_Manager_RegisterCache, FTC_Manager_FlushN): + s/FT_EXPORT/FT_LOCAL/. + * src/cache/ftmanag.h: Updated. + + * src/cache/ftcsbits.c (FTC_SNode_Free, FTC_SNode_New, + FTC_SNode_Compare): s/FT_EXPORT/FT_LOCAL/. + (FTC_SNode_Weight): Commented out. + * src/cache/ftcsbits.h: Updated. + +2006-03-22 Werner Lemberg <[email protected]> + + * src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy): + Remove, unused. + + * src/cache/ftccmap.h: Remove, unused. + + * src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h. + +2006-03-21 Zhe Su <[email protected]> + + * src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve + algorithm. + +2006-03-21 Werner Lemberg <[email protected]> + + * src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member. + + * src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'. + + * src/cff/cffgload.c (cff_slot_load): Change type of third parameter + to `FT_UInt'. + Check range of `glyph_index'. + * src/cff/cffgload.h: Updated. + + + * src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset + correctly. + + + * builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc), + README: s/2.1.10/2.2/. + +2006-03-21 David Turner <[email protected]> + + * src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug + that crashes the auto-hinter (introduced by previous patch). + +2006-03-20 Werner Lemberg <[email protected]> + + * builds/freetype.mk (CACHE_DIR, CACHE_H): Remove. + (FREETYPE_H): Updated. + + * src/cache/rules.mk (CACHE_H_DIR): Remove. + (CACHE_DRV_H): Updated. + +2006-03-20 David Turner <[email protected]> + + * include/freetype/cache/ftccache.h, + include/freetype/cache/ftccmap.h, include/freetype/cache/ftcglyph.h + include/freetype/cache/ftcimage.h include/freetype/cache/ftcmanag.h + include/freetype/cache/ftcmru.h include/freetype/cache/ftcsbits.h: + Move to... + + * src/cache/ftccache.h, src/cache/ftcglyph.h, src/cache/ftcimage.h, + src/cache/ftcsbits.h, src/cache/ftcmanag.h, src/cache/ftccmap.h, + src/cache/ftcmru.h: This new location. + Update declarations according to the changes in the corresponding + source files. + + Note that these files are not used by FreeType clients; all public + APIs of the cache module have been already moved to + `include/freetype/ftcache.h', and all FT_CACHE_INTERNAL_XXXX_H + macros resolve to it. + + Reason for the move is to allow modifications of the internals + without interferences with rogue clients. Note that there are no + known clients that access the cache internals at the moment. + + * builds/unix/install.mk (install): Don't install headers from + $(CACHE_H). + Remove `freetype/cache' from the target directory. + + * include/freetype/config/ftheader.h (FT_CACHE_MANAGER_H, + FT_CACHE_INTERNAL_MRU_H, FT_CACHE_INTERNAL_MANAGER_H, + FT_CACHE_INTERNAL_CACHE_H, FT_CACHE_INTERNAL_GLYPH_H, + FT_CACHE_INTERNAL_IMAGE_H, FT_CACHE_INTERNAL_SBITS_H): Point to + FT_CACHE_H. + + * src/cache/ftcbasic.c, src/cache/ftccache.h, src/cache/ftccback.h, + src/cache/ftccmap.c, src/cache/ftcglyph.c, src/cache/ftcglyph.h, + src/cache/ftcimage.c, src/cache/ftcimage.h, src/cache/ftcmanag.c, + src/cache/ftcmanag.h, src/cache/ftcmru.h, src/cache/ftcsbits.c, + src/cache/ftcsbits.h: Don't use the FT_CACHE_INTERNAL_XXX_H macros + but include the headers directly (which are now in `src/cache'). + + * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H + macros but include the headers directly. + (FTC_Cache_Init, FTC_Cache_Done, FTC_Cache_NewNode, + FTC_Cache_Lookup, FTC_Cache_RemoveFaceID): Declare as FT_LOCAL_DEF. + + * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H + macros but include the headers directly. + (FTC_MruNode_Prepend, FTC_MruNode_Up, FTC_MruNode_Remove, + FTC_MruList_Init, FTC_MruList_Reset, FTC_MruList_Done, + FTC_MruList_New, FTC_MruList_Remove, FTC_MruList_RemoveSelection): + Declare as FT_LOCAL_DEF. + (FTC_MruListFind, FTC_MruList_Lookup) [!FTC_INLINE]: Compile + conditionally. + Declare as FT_LOCAL_DEF. + + + * builds/win32/visualc/freetype.dsp: Update project file, add + missing base source files (ftstroke.c, ftxf86.c, etc.). + + + * src/autofit/afcjk.c, src/autofit/aflatin.c, src/base/ftobjs.c, + src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrobjs.c, + src/sfnt/sfobjs.c, src/sfnt/ttmtx.c, src/type1/t1afm.c, + src/type1/t1objs.c: Remove compiler warnings when building with + Visual C++ 6 and /W4. + + * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal + hinting for italic/oblique fonts. + + + + * src/truetype/ttpload.c, src/truetype/ttpload.h + (tt_face_get_device_metrics): Change second argument to `FT_UInt'. + +2006-03-06 David Turner <[email protected]> + + * src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in + Mozilla/FireFox print preview in Ubuntu Hoary. + +2006-02-28 Chia-I Wu <[email protected]> + + * src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not + return error when size == 0. + +2006-02-28 Chia-I Wu <[email protected]> + + * src/base/ftobjs.c (FT_Done_Library): Remove modules in reverse + order so that type42 module is removed before truetype module. This + avoids double free in some occasions. + +2006-02-28 David Turner <[email protected]> + + * Release candidate VER-2-2-0-RC4. + ---------------------------------- + + * docs/CHANGES: Documentation updates. + +2006-02-28 suzuki toshiya <[email protected]> + + * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to + build ftvalid in ft2demos. It works as dummy ABI if gxvalid is not + built. + +2006-02-27 Werner Lemberg <[email protected]> + + * include/freetype/cache/ftccache.h + [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of + ftc_node_done. + + * src/cache/ftccache.c (ftc_node_destroy) + [!FT_CONFIG_OPTION_OLD_INTERNALS]: Mark as FT_LOCAL_DEF. This + should now fix all possible compilation options. + +2006-02-27 David Turner <[email protected]> + + * src/base/ftutil.c (ft_mem_alloc, ft_mem_qalloc, ft_mem_realloc, + ft_mem_qrealloc): Return an error if a negative size is passed in + parameters. + + * src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since + it needs to be exported for rogue clients. + + * src/pshinter/pshglob.c (psh_blues_set_zones_0): Prevent problems + with malformed fonts which have an odd number of blue values (these + are broken according to the specs). + + * src/cff/cffload.c (cff_subfont_load), src/type1/t1load.c + (T1_Open_Face): Modify the loaders to force even-ness of + `num_blue_values'. + + (cff_index_access_element): Ignore invalid entries in index files. + +2006-02-27 Chia-I Wu <[email protected]> + + * src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width + or height is 0. + +2006-02-27 suzuki toshiya <[email protected]> + + * builds/mac/FreeType.m68k_cfm.make.txt, + builds/mac/FreeType.m68k_far.make.txt, + builds/mac/FreeType.ppc_carbon.make.txt, + builds/mac/FreeType.ppc_classic.make.txt: Update to new header + inclusion introduced on 2006-02-16. + +2006-02-27 Chia-I Wu <[email protected]> + + * src/base/ftobjs.c (GRID_FIT_METRICS): New macro. + (ft_glyphslot_grid_fit_metrics, FT_Load_Glyph) [GRID_FIT_METRICS]: + Re-enable glyph metrics grid-fitting. It is now done in the base + layer. + (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Make sure the width and + height are not too small or too large, just like we were doing in + 2.1.10. + + * src/autofit/afloader.c (af_loader_load_g): The vertical metrics + are not scaled. + +2006-02-26 Werner Lemberg <[email protected]> + + * docs/release: Minor additions and clarifications. + + * docs/CHANGES: Updated to reflect many fixes for backwards + compatibility. Still incomplete. + +2006-02-26 David Turner <[email protected]> + + * src/base/ftobjs.c (ft_recompute_scaled_metrics): Re-enable + conservative rounding of metrics to avoid breaking clients like + Pango (see http://bugzilla.gnome.org/show_bug.cgi?id=327852). + +2006-02-25 Werner Lemberg <[email protected]> + + * devel/ftoption.h: Synchronize with + include/freetype/config/ftoption.h. + + * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again). + +2006-02-25 David Turner <[email protected]> + + Fix compiler warnings as well as C++ compilation problems. + Add missing prototypes. + + * src/autofit/afcjk.c, src/base/ftobjs.c, src/base/ftutil.c, + src/bdf/bdfdrivr.c, src/cff/cffcmap.c, src/cff/cffobjs.c, + src/psaux/afmparse.c,, src/psaux/t1cmap.c, src/smooth/ftgrays.c + src/tools/apinames.c, src/truetype/ttdriver.c: Add various casts, + initialize variables, and decorate functions with FT_CALLBACK_DEF, + etc., to fix compiler warnings (and C++ compiling errors). + + * src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with + gcc. + + * builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but + FT_INTERNAL_STREAM_H. + + * src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H. + + * include/freetype/config/ftheader.h (FT_PFR_H): New macro. + + * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't + define for C++. + + * include/freetype/internal/services/svotval.h: Don't include + FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H. + + * include/freetype/internal/services/svpfr.h: Include FT_PFR_H. + + * src/gzip/ftgzip.c: Include FT_GZIP_H. + + * src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H. + + * src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code. + +2006-02-24 Chia-I Wu <[email protected]> + + * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has, + ft_contour_enclosed, ft_outline_get_orientation): Commented out. We + have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized. + (FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'. + +2006-02-24 Chia-I Wu <[email protected]> + + * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update + documentation. + + * include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap), + src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make + sure a glyph slot owns its bitmap. It is also marked experimental + and due to change. + (FT_GlyphSlot_Embolden): Undo the last change. It turns out that + rendering the outline confuses some applications. + +2006-02-24 David Turner <[email protected]> + + * Release candidate VER-2-2-0-RC3. + ---------------------------------- + + * src/cache/ftcbasic.c: Correct compatibility hack bug. + +2006-02-24 Chia-I Wu <[email protected]> + + * include/freetype/freetype.h (FT_Size_RequestRec): Change the type + of `width' and `height' to `FT_Long'. + (enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics): + New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales + directly. + +2006-02-23 David Turner <[email protected]> + + Two BDF patches from Debian libfreetype6 for 2.1.10. + + * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width + glyphs. + Fix a problem with large encodings. + + + Fix binary compatibility issues for gnustep-back (GNUstep backend + module) which still crashes under Sarge. + + * src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec, + FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data + structures and enumerations. + (FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New + compatibility code. + + * src/cache/ftcbasic.c: Fix a silly bug that prevented our `hack' to + support rogue clients compiled against 2.1.7 to work correctly. + This probably explains the GNUstep crashes with the second release + candidate. + +2006-02-23 Chia-I Wu <[email protected]> + + * include/freetype/ftoutln.h (enum FT_Orientation): New value + `FT_ORIENTATION_NONE'. + + * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has, + ft_contour_enclosed, ft_outline_get_orientation): Another version of + `FT_Outline_Get_Orientation'. This version differs from the public + one in that each part (contour not enclosed in another contour) of the + outline is checked for orientation. + (FT_Outline_Embolden): Use `ft_outline_get_orientation'. + + * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and + use bitmap's embolden routine when the outline one failed. + +2006-02-22 Chia-I Wu <[email protected]> + + * modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI + compatibility. + + * src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak. + + * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned, + tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit + loading. (Only tested with bit aligned sbit with x_pos == 0.) + + * src/truetype/ttpload.c (tt_face_load_hdmx, + tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not + actually used. + +2006-02-21 David Turner <[email protected]> + + Add a new API named FT_Get_TrueType_Engine_Type to determine whether + we have a patented, unpatented, or unimplemented TrueType bytecode + interpreter. + + The FT_Get_Module_Flags API was removed consequently. + + * include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed. + Replaced with... + (FT_Get_TrueType_Engine_Type): This. + (FT_TrueTypeEngineType): New enumeration. + + * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H): + New macro. + + * src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H. + (FT_Module_Get_Flags): Removed. Replaced with... + (FT_Get_TrueType_Engine_Type): This. + + * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H. + (tt_service_truetype_engine): New service structure. + (tt_services): Register it. + + * include/freetype/internal/services/svtteng.h: New file. + + + * src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented + embedded bitmaps from being correctly listed and used. + + + * src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization + if FT_CONFIG_OPTION_OLD_INTERNALS is used. The is necessary because + libXfont is directly accessing the HMTX data, unfortunately. + Fix some compiler warnings. + (tt_face_get_metrics): Ditto. + + + * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of + character advances. + +2006-02-20 David Turner <[email protected]> + + Support binary compatibility with the X.Org server's Xfont library. + Note that this change unfortunately prevents memory optimizations + for the embedded bitmap loader. + + * include/freetype/internal/sfnt.h (SFNT_Interface): Move + `set_sbit_strike' and `load_sbit_metrics' fields to the location of + version 2.1.8. + + * src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call + FT_Size_Request. + (sfnt_interface): Updated. + + * src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load + ttsbit0.c. + (tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static. + + * src/sfnt/ttsbit.h: Updated. + +2006-02-17 David Turner <[email protected]> + + * builds/unix/unix-cc.in (LINK_LIBRARY): Don't filter out exported + functions anymore. This ensures that all FT_BASE internal functions + are available for dynamic linking. + + * include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE, + FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec, + FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New, + FTC_OldImage_Desc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx, + ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup, + FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup) + [FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the + cache sub-system. We try to recognize old legacy signatures with a + gross hack (hope it works). + +2006-02-17 Werner Lemberg <[email protected]> + + * devel/ftoption.h: Synchronize with + include/freetype/config/ftoption.h. + +2006-02-16 David Turner <[email protected]> + + Massive changes to the internals to respect the internal object + layouts and exported functions of FreeType 2.1.7. Note that the + cache sub-system cannot be fully retrofitted, unfortunately. + + * include/freetype/config/ftoption.h + (FT_CONFIG_OPTION_OLD_INTERNALS): New macro. + + * include/freetype/ftcache.h, include/freetype/cache/ftccache.h, + include/freetype/cache/ftccmap.h, + include/freetype/internal/ftcalc.h, + include/freetype/internal/ftdriver.h, + include/freetype/internal/ftmemory.h, + include/freetype/internal/ftobjs.h, + include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h, + include/freetype/internal/t1types.h, + include/freetype/internal/tttypes.h, src/base/ftcalc.c, + src/base/ftdbgmem.c, src/base/ftobjs.c, src/base/ftutil.c, + src/bdf/bdfdrivr.c, src/cache/ftccache.c, src/cache/ftccback.h, + src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c, + src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c, + src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c, + src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c: + Use FT_CONFIG_OPTION_OLD_INTERNALS to revive old functions and data + structures. + + Move newly added structure elements to the end of the affected + structure and add stub fields (if FT_CONFIG_OPTION_OLD_INTERNALS is + defined) to assure binary compatibility with older FreeType + versions. + Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old + functions: + + ft_stub_set_char_sizes + ft_stub_set_pixel_sizes + + Rename the following internal functions to provide the old function + names as stubs: + + FT_Alloc -> ft_mem_alloc + FT_QAlloc -> ft_mem_qalloc + FT_Realloc -> ft_mem_realloc + FT_QRealloc -> ft_mem_qrealloc + FT_Free -> ft_mem_free + FT_Alloc_Debug -> ft_mem_alloc_debug + FT_QAlloc_Debug -> ft_mem_qalloc_debug + FT_Realloc_Debug -> ft_mem_realloc_debug + FT_QRealloc_Debug -> ft_mem_qrealloc_debug + FT_Free_Debug -> ft_mem_free_debug + +2006-02-15 Chia-I Wu <[email protected]> + + * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove + unused `max_points' and `max_contours'. + + * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c + (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update. + + * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused + `max_components'. + + * src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused + `loadSize' and `loadStack'. + + * src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context), + src/sfnt/ttload.c (tt_face_load_maxp): Update. + + * src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c + (sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix + compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not + defined. + + * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix + possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions. + (finally!) + + + For most OpenType tables, `tt_face_load_xxxx' simply loads the table + and `face->root' is set later in `sfnt_load_face'. Here, we try to + make this work for _all_ tables. Also improve tracing messages. + + * src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c, + src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and + then exit. Error handling or setting face->root is done later in + `sfnt_load_face'. + + * src/sfnt/sfobjs.c (sfnt_load_face): Work harder. + Mac bitmap-only fonts are not scalable. + Check that `face->header.Units_Per_EM' is not zero. + (LOAD_, LOADM_): Emit pretty trace messages. + + * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics + from `eblc'. + + * src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c + (load_format_20, load_format_25, tt_face_get_ps_name): Use + face->max_profile.numGlyphs, instead of face->root.num_glyphs. + +2006-02-14 Werner Lemberg <[email protected]> + + * include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in + documentation that negative strength values are possible. + Give an example call. + + * include/freetype/freetype.h (FT_GlyphSlotRec): Improve + documentation of `outline' field. + + * src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H. + * src/sfnt/sfdriver.c: Include ttmtx.h. + + * src/autofit/afcjk.c: Include aftypes.h and aflatin.h. + +2006-02-14 Chia-I Wu <[email protected]> + + * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo. + +2006-02-14 Chia-I Wu <[email protected]> + + * src/sfnt/ttmtx.c (tt_face_load_hhea, tt_face_load_hmtx): Simply + return error if table is missing. + Check table length in non-FT_OPTIMIZE_MEMORY'ed `tt_face_load_hmtx'. + + * src/sfnt/sfobjs.c (sfnt_load_face): Take care of missing metrics + tables. The last change makes Mac bitmap-only font not load and + this fixes it. + + * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation + error when FT_CONFIG_OPTION_INCREMENTAL is defined. + +2006-02-13 Chia-I Wu <[email protected]> + + Clean up the SFNT_Interface. In this final pass, `load_hmtx' is + split from `load_hhea'. + + * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c, + src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'. + + * src/sfnt/sfobjs.c (sfnt_load_face): Update. + +2006-02-13 Chia-I Wu <[email protected]> + + * src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of + code... + +2006-02-13 Chia-I Wu <[email protected]> + + Clean up the SFNT_Interface. In this pass, we want to treat the + font directory (offset table and table directory) as a normal table + like the others. This also means that TTCs are no longer recognized + there but in `init_face'. + + * include/freetype/internal/sfnt.h (SFNT_Interface), + src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are + combined and renamed to `load_font_dir'. + + * src/sfnt/ttload.h, src/sfnt/ttload.c: + s/sfnt_dir_check/check_table_dir/. + `sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'. + `tt_face_load_sfnt_header' and `tt_face_load_directory' are combined + and renamed to `tt_face_load_font_dir'. + + * src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here. + +2006-02-13 Chia-I Wu <[email protected]> + + Clean up the SFNT_Interface. Table loading functions are now named + after the tables' tags; `hdmx' is TrueType-specific and thus the + code is moved to the truetype module; `get_metrics' is moved here + from the truetype module so that the code can be shared with the cff + module. + + This pass involves no real changes. That is, the code is moved + verbatim mostly. The only exception is the return value of + `tt_face_get_metrics'. + + * include/freetype/internal/sfnt.h, src/sfnt/rules.mk, + src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c, + src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c, + src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface. + + * src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: New files. Metrics-related + tables' loading and parsing code is moved to here. + Move `tt_face_get_metrics' here from the truetype module. The + return value is changed from `void' to `FT_Error'. + + * include/freetype/internal/fttrace.h: New trace: ttmtx. + + * src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and + parsing code is moved here. + New function `tt_face_load_prep' split from `tt_face_load_fpgm'. + `tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist. + + * src/cff/cffgload.c, src/cff/cffobjs.c: Update. + + * src/truetype/ttgload.c, src/truetype/ttobjs.c: Update. + +2006-02-11 Chia-I Wu <[email protected]> + + * src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug... + + * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use + AF_LatinMetricsRec as the dummy metrics because we cast the metrics + to it later in `af_latin_hints_link_segments'. + +2006-02-11 Chia-I Wu <[email protected]> + + * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define + to enable autofit CJK script support. (#define'd by default.) + + * src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro. + + * src/autofit/aflatin.c (af_latin_metrics_init_widths): Make sure + that `edge_distance_threshold' is always set. + (af_latin_hints_link_segments): Potential divide-by-zero bug. + Use latin constant in the scoring formula. + + * src/autofit/afcjk.c: Minor updates due to the above three changes. + + * docs/TODO, docs/CHANGES: Updated. + +2006-02-09 Chia-I Wu <[email protected]> + + Introduce experimental autofit CJK module based on akito's autohint + patch. You need to #define AF_MOD_CJK in afcjk.c to enable it. + + * src/autofit/afglobal.c, src/autofit/afcjk.h, src/autofit/afcjk.c, + src/autofit/rules.mk, src/autofit/autofit.c, src/autofit/aftypes.h: + Add CJK module based on akito's autohint patch. + + * src/autofit/afhints.h (AF_SegmentRec): New field `len' for the + overlap length of the segments. + (AF_SEGMENT_LEN, AF_SEGMENT_DIST): New macros. + + * src/autofit/aflatin.h (af_latin_metrics_init_widths), + src/autofit/aflatin.c (af_latin_metrics_init_widths): Made + `FT_LOCAL'. + Use the character given by the caller. + (af_latin_metrics_init_widths, af_latin_hints_link_segments): Scale + the thresholds. + + * src/autofit/afloader.c (af_loader_load_g): Respect + AF_SCALER_FLAG_NO_ADVANCE. + +2006-02-09 Werner Lemberg <[email protected]> + + * src/cid/cidparse.c (cid_parse_new): Remove shadowing variable. + +2006-02-09 suzuki toshiya <[email protected]> + + * src/cid/cidparse.c (cid_parse_new): Fix for abnormally short or + broken CIDFont. Reported by Taek Kwan(TK) Lee (see ft-devel + 2005-11-02). + +2006-02-08 suzuki toshiya <[email protected]> + + * builds/unix/configure.ac: Fix bug for `--with-old-mac-fonts' + option on UNIX platform. It has been broken since 2006-01-11. + +2006-02-01 Werner Lemberg <[email protected]> + + * src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/. + * src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/. + + * builds/unix/unixddef.mk: Actually do define PLATFORM (fixing + change from 2006-01-31). + (TOP_DIR, OBJ_DIR): Update. + + * builds/unix/install.mk (install): Fix path for ftmodule.h. + + * Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use + `?=' where appropriate. + + * builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR), + builds/win32/w32-dev.mk (TOP_DIR): Removed. Defined elsewhere. + +2006-01-31 Werner Lemberg <[email protected]> + + Implement new, simplified module selection. With GNU make it is now + sufficient to modify a single file, `modules.cfg', to control the + inclusion of modules and base extension files. + + This change also fixes the creation of ftmodule.h; it now depends on + `modules.cfg' and thus is rebuilt only if necessary. + + Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the + default location. + + * modules.cfg: New file. + + * builds/freetype.mk: Don't include `modules.mk'. + Include all `rules.mk' files as specified in `modules.cfg'. + (FTOPTION_FLAG, FTOPTION_H): New variables. + (FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H. + Add FTOPTION_FLAG. + ($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST. + (CONFIG_H): Add FTMODULE_H and FTOPTION_H. + (INCLUDES): Add DEVEL_DIR. + (INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ, + OBJ_M, OBJ_S): Use `:=', not `='. + (remove_ftmodule_h): New phony target to delete `ftmodule.h'. + (distclean): Add remove_ftmodule_h. + + * builds/modules.mk: (MODULE_LIST): Removed. + (make_module_list, clean_module_list): Replace targets + with... + (FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New + variables. Reason for the change is that it is not possible to have + a phony prerequisite which is run only if the target file must be + rebuilt (phony prerequisites act like subroutines and are *always* + executed). We only want to rebuild `ftmodule.h' if `module.cfg' is + changed. + Update all callers. + ($FTMODULE_H)): Rule to create `ftmodule.h', depending on + `modules.cfg'. + + * builds/toplevel.mk: Rewrite and simplify module handling. + (MODULES_CFG, FTMODULE_H): New variables. + Include MODULES_CFG. + (MODULES): New variable to include all `module.mk' and `rules.mk' + files. We no longer use make's `wildcard' function for this. + + * Makefile (USE_MODULES): Remove. Update all users. + (OBJ_DIR): Define it here. + + * src/*/module.mk: Change + + make_module_list: foo + foo: ... + + to + + FTMODULE_H_COMMANDS += FOO + define FOO + ... + endef + + in all files. `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'. + + * src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS. + + * builds/unix/detect.mk (setup): Always execute `configure' script. + (have_mk): Rename to... + (have_Makefile): This. + Don't use `strip' function. + + * builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is + defined. + (have_mk): Don't use `strip' function. + Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test + accordingly). + + * builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'. + + * builds/os2/os2-dev.mk, builds/unix/unix-dev.mk, + builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define + BUILD_DIR but DEVEL_DIR for development header files. + + * builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR), + builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in + (TOP_DIR, OBJ_DIR): Removed. Defined elsewhere. + + * builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR), + builds/win32/win32-def.mk (OBJ_DIR): Removed. Defined elsewhere. + + * builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for + development header files. + Don't define PLATFORM. + + * configure: Copy `modules.cfg' to builddir if builddir != srcdir. + Update snippet taken from autoconf's m4sh.m4 to current CVS version. + Be more verbose. + + * include/freetype/config/ftmodule.h: Add comments -- this file is + no longer used if FreeType is built with GNU make. + + * docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY, + docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism. + Other minor updates. + + * modules.txt: Removed. Contents included in `modules.cfg'. + + + * include/freetype/internal/ftmemory.h (FT_QAlloc_Debug, + FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos. + + * src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug, + FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug) + [FT_STRICT_ALIASING]: Implement. + +2006-01-31 Chia-I Wu <[email protected]> + + * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c + (cid_face_init), src/pfr/pfrobjs.c (pfr_face_init), + src/type1/t1objs.c (T1_Face_Init): Set face->height to MAX(1.2 * + units_per_EM, ascender - descender). + +2006-01-31 Chia-I Wu <[email protected]> + + * include/freetype/internal/t1types.h (AFM_FontInfo), + src/psaux/afmparse.c, src/tools/test_afm.c: Read `FontBBox', + `Ascender', and `Descender' from an AFM. + + * src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM. + + * include/freetype/freetype.h (FT_FaceRec): Mention that fields may + be changed after file attachment. + +2006-01-28 Werner Lemberg <[email protected]> + + * src/*/module.mk (.PHONY): Add. + +2006-01-27 Werner Lemberg <[email protected]> + + * README, docs/FTL.TXT: Fix email address for bug reports. + Other minor formatting. + + * devel/ftoption.h: Synchronize with + include/freetype/config/ftoption.h. + + * src/autofit/module.mk (add_autofit_module), src/bdf/module.mk + (add_bdf_module), src/type42/module.mk (add_type42_driver): Fix + whitespace. + + * src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv + renderer classes. + +2006-01-27 David Turner <[email protected]> + + * builds/unix/configure.ac: Fix build problem on Cygwin. + + * builds/unix/install.mk (install): Don't install the internal + headers, and remove existing ones if found in the target install + directory. + + * src/autofit/afwarp.c: Add simple #ifdef to prevent compilation + if the warp hinter isn't active (it shouldn't, still experimental). + + * Jamfile, include/freetype/config/ftmodule.h: Remove `gxvalid' + and `otvalid' from the list of modules that are linked statically + to a given FreeType library. Functionality has been moved to the + `ftvalid' CVS module. + + Note also that current Make-based build system still compiles the + modules though. + + * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): New macro + which controls the definitions of the memory management functions to + avoid warnings with recent versions of GCC. This macro is only here + to be disabled, in case we detect problems with the new scheme. + + NOTE: Disable macro to use the memory debugger -- this will be fixed + later! + + * include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_Alloc, + FT_QAlloc, FT_Realloc, FT_QRealloc, FT_Free) [FT_STRICT_ALIASING]: + New versions. + + + * builds/win32/visualc/freetype.dsp: Updating project file to + define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from + compilation. + + + * builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the + macro FT2_BUILD_LIBRARY when compiling the library. + + * include/freetype/config/ftheader.h: Remove inclusions of internal + headers except if the macro FT2_BUILD_LIBRARY is defined. + + + * include/freetype/internal/psaux.h (AFM_KernPair, AFM_TrackKern, + AFM_FontInfo): Move structure declarations to... + * include/freetype/internal/t1types.h: This file. + + + * (many files): Fix compiler warnings. + Various minor reorganizations. + + + * src/cff/cffload.c (cff_font_done): Don't free static array + `subfonts'. + + * src/otvalid/otvcommn.c (otv_ClassDef_validate), + src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information. + + + Get rid of writable static variables (i.e., the string table) in + afmparse, and fix compilation in FT2_MULTI mode. + + * src/psaux/afmparse.c: Include ft2build.h and FT_FREETYPE_H. + (AFM_MAX_ARGUMENTS): Define... + * src/psaux/afmparse.h: Here. + * src/psaux/Jamfile (_sources): Add afmparse. + + * src/psaux/psconv.c: Include psconv.h. + + * src/type1/t1afm.c: Don't include FT_INTERNAL_TYPE1_TYPES_H but + FT_INTERNAL_POSTSCRIPT_AUX_H. + * src/type1/t1afm.h: Include FT_INTERNAL_TYPE1_TYPES_H. + +2006-01-23 Chia-I Wu <[email protected]> + + * include/freetype/freetype.h (FT_Select_Size): Rename the second + argument from `idx' to `strike_index'. + (FT_Size_Request_Type): Add FT_SIZE_REQUEST_TYPE_MAX to the end of + this enum. + + * include/freetype/internal/ftobjs.h (FT_REQUEST_WIDTH, + FT_REQUEST_HEIGHT): New macros to get the width and height of a + request, in fractional pixels. + + * include/freetype/internal/ftobjs.h (FT_Select_Metrics, + FT_Request_Metrics), src/base/ftobjs.c (FT_Select_Metrics, + FT_Request_Metrics): New base functions to set the font metrics. They + were part of FT_Select_Size/FT_Request_Size and are made independent + functions so that metrics are not set again and again. + + * src/base/ftobjs.c (FT_Select_Size, FT_Request_Size): Metrics are set + only when driver's size_select/size_request is NULL. That is, drivers + should set the metrics themselves. + (FT_Match_Size): Round before matching. This was what we did and it + does cause some problems without rounding. + + * src/cff/cffobjs.c (cff_size_select), src/truetype/ttdriver.c + (tt_size_select): Set the font metrics. + s/index/strike_index/. + The scaled metrics are always preferred over strikes' metrics, even + when some strike is selected. This is done because the strikes' + metrics are not reliable, e.g., the sign of the descender is wrong for + some fonts. + + * src/cff/cffobjs.c (cff_size_request), src/truetype/ttdriver.c + (tt_size_request): Set the font metrics. + Call cff_size_select/tt_size_select when some strike is matched. + + * src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/cid/cidobjs.c, + src/pcf/pcfdrivr.c, src/truetype/ttdriver.c, src/type1/t1objs.c, + src/type1/t1objs.h, src/type42/t42objs.c, src/winfonts/winfnt.c: + Set the font metrics. + s/index/strike_index/. + + * src/tools/test_afm.c, src/psaux/psconv.c: Older versions of these + files were committed. Just a catch-up. + (PS_Conv_ToFixed): Remove the `goto'. + (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Speed up a little. + + * src/sfnt/ttsbit.c (tt_face_load_sbit_strikes, + tt_face_load_strike_metrics), src/sfnt/ttsbit0.c + (tt_face_load_sbit_strikes, tt_face_load_strike_metrics): The + advertised metrics in `available_sizes' are different from those + actually used. + +2006-01-23 Chia-I Wu <[email protected]> + + * src/psaux/psaux.c src/psaux/psauxmod.c src/type1/t1driver.c: Make + AFM parser optional, controlled by `T1_CONFIG_OPTION_NO_AFM'. + +2006-01-22 Werner Lemberg <[email protected]> + + * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from + `texinfo' CVS module at savannah.gnu.org. + +2006-01-21 Werner Lemberg <[email protected]> + + * src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c. + + * src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up + to avoid compiler warnings. + + * src/autofit/afwarp.c (af_warper_compute_line_best): Remove + shadowing variable declarations. + Fix warning parameters and replace printf with AF_LOG. + (af_warper_compute): Remove unused variable. + +2006-01-20 David Turner <[email protected]> + + Adding experimental implementation of `warp hinting' (new hinting + algorithm for gray-level and LCD rendering). It is disabled by + default, you need to #define AF_USE_WARPER in aftypes.h. + + * src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]: + New function. + * src/autofit/afhints.h: Updated. + + * src/autofit/aflatin.c [AF_USE_WARPER]: Include afwarp.h. + (af_latin_hints_init) [AF_USE_WARPER]: Reset mode to + FT_RENDER_MODE_NORMAL if an LCD mode is selected. + (af_latin_hints_apply) [AF_USE_WARPER]: Call af_warper_compute + appropriately. + + * src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]: + Isolate code for adjusting metrics. + + * src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by + default). + + * src/autofit/afwarp.c, src/autofit/afwarp.h: New files. + + * src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c. + + * src/autofit/Jamfile (_sources): Add afwarp. + +2006-01-19 David Turner <[email protected]> + + * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug + that prevented compilation when FT_OPTIMIZE_MEMORY is defined. + +2006-01-19 Brian Weed <[email protected]> + + * builds/win32/visualc/freetype.dsp: Updated. + +2006-01-17 Werner Lemberg <[email protected]> + + Use pscmap service in CFF module. + + * src/cff/cffcmap.c (cff_cmap_uni_pair_compare): Removed. + (cff_sid_to_glyph_name): New function. + (cff_cmap_unicode_init, cff_cmap_unicode_done, + cff_cmap_unicode_char_index, cff_cmap_unicode_char next): Use pscmap + service. + (cff_cmap_unicode_class_rec): Updated. + * src/cff/cffcmap.h (CFF_CMapUnicode, CFF_CMap_UniPair): Removed. + + + * src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode' + return value. + + + * src/psaux/afmparse.c (afm_parser_read_vals): Use double casting + to avoid compiler warnings regarding type-punning. + +2006-01-16 Chia-I Wu <[email protected]> + + * src/psaux/afmparse.c, src/psaux/afmparse.h: New files which + implement an AFM parser. + + * src/psaux/psconv.c, src/psaux/psconv.h: New files to provide + conversion functions (e.g., PS real number => FT_Fixed) for the + PS_Parser and AFM_Parser. Some of the functions are taken, with + some modifications, from the file psobjs.c. + + * src/psaux/psobjs.c: Use functions from psconv.c. + + * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add + `AFM_Parser' to the `psaux' service. + + * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include + those new files. + + * src/tools/test_afm.c: A test program for AFM parser. + + * include/freetype/internal/services/svkern.h: New file providing a + `Kerning' service. It is currently only used to get the track + kerning information. + + * include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New + macro. + + * src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c, + src/type1/t1afm.h: Update to use the AFM parser. + Provide the `Kerning' service. + + * include/freetype/freetype.h, src/base/ftobjs.c: New API + `FT_Get_Track_Kerning'. + +2006-01-15 Chia-I Wu <[email protected]> + + * include/freetype/internal/ftobjs.h, src/base/ftobjs.c, + src/bdf/bdfdrivr.c, src/cff/cffgload.c, src/cid/cidgload.c, + src/pcf/pcfdrivr.c, src/type1/t1gload.c, src/winfonts/winfnt.c: + s/ft_fake_vertical_metrics/ft_synthesize_vertical_metrics/. + + * docs/CHANGES: Mention that vertical metrics are synthesized for + fonts not having this info. + +2006-01-15 Chia-I Wu <[email protected]> + + * include/freetype/internal/ftobjs.h (ft_fake_vertical_metrics), + src/base/ftobjs.c (ft_fake_vertical_metrics): New function to fake + vertical metrics. + + * src/cff/cffgload.c, src/cid/cidgload.c, src/pcf/pcfdrivr.c, + src/type1/t1gload.c, src/winfonts/winfnt.c: Fake vertical metrics, + which are monotone. + + * src/truetype/ttgload.c (compute_glyph_metrics): Some fixes and + formattings in vertical metrics faking. There is still room for + improvements (and so does the CFF module). + +2006-01-15 Chia-I Wu <[email protected]> + + * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdrivr.c + (PCF_Glyph_Load), src/winfonts/winfnt.c (FNT_Load_Glyph): Don't set + the linear advance fields as they are only used by the outline + glyphs. + + * include/freetype/freetype.h: Documentation updates and + clarifications. + The meaning of FT_LOAD_FORCE_AUTOHINT is changed so that no real + change need be made to the code. + + * src/base/ftobjs.c (FT_Load_Glyph): Resolve flag dependencies and + decide whether to use the auto-hinter according to documentation. + There should to be no real difference. + Some checks (e.g., is text height positive?) after the glyph is + loaded. + (FT_Select_Size, FT_Request_Size): Scales are set to wrong values. + Be careful that scales won't be negative. + +2006-01-14 Chia-I Wu <[email protected]> + + * docs/CHANGES: Mention the size selection change. + + * src/bdf/bdfdrivr.c (BDF_Size_Request, BDF_Size_Select), + src/pcf/pcfdrivr.c (PCF_Size_Request, PCF_Size_Select), + src/winfonts/winfnt.c (FNT_Size_Request, FNT_Size_Select): Do size + matching for requests of type NOMINAL and REAL_DIM. + + * src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when + `pixel_height' is used for nominal height. + + * src/base/ftobjs.c (FT_Request_Size): Call `FT_Match_Size' if the + face is bitmap only and driver doesn't provide `request_size'. This + is added merely for completion as no driver satisfies the conditions. + +2006-01-13 Chia-I Wu <[email protected]> + + Introduce new size selection interface. + + * include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec): + Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and + `select_size'. + + * include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type, + FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c + (FT_Select_Size, FT_Request_Size): API additions to export the new + size selection interface. + + * src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use + `FT_Request_Size'. + + * include/freetype/internal/ftobjs.h (FT_Match_Size), + src/base/ftobjs.c (FT_Match_Size): New function to match a size + request against `available_sizes'. Drivers supporting bitmap strikes + can use this function to implement `request_size'. + + * src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h, + src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c, + src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c, + src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c: + Update to new size selection interface. + + * src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c, + src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c, + src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size + selection interface. + Make `strike_index' FT_ULong and always defined. + Use `load_strike_metrics' provided by SFNT interface. + +2006-01-13 Chia-I Wu <[email protected]> + + * include/freetype/internal/sfnt.h (SFNT_Interface): New method + `load_strike_metrics' used to load the strike's metrics. + + * src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h, + src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'. + + * src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly. + + * src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for + nominal size unless it is obviously incorrect. + + * include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on + FNT driver. + +2006-01-12 Werner Lemberg <[email protected]> + + Prepare use of pscmap service within CFF module. + + * include/freetype/internal/services/svpscmap.h: Include + FT_INTERNAL_OBJECTS_H. + (PS_Unicode_Index_Func): Removed. Unused. + (PS_Macintosh_Name_Func): Renamed to... + (PS_Macintosh_NameFunc): This. + Update all callers. + (PS_Adobe_Std_Strings_Func): Renamed to... + (PS_Adobe_Std_StringsFunc): This. + Update all callers. + (PS_UnicodesRec): This is the former `PS_Unicodes' structure. + Add `cmap' member. + Update all callers. + (PS_Unicodes): This is now a typedef'd pointer to PS_UnicodesRec. + Update all callers. + (PS_Glyph_NameFunc): New typedef. + (PS_Unicodes_InitFunc): Change arguments to expect a function + and generic data pointer which returns a glyph name from a given + index. + + * src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index, + ps_unicodes_char_next, pscmaps_interface): Updated. + + * include/freetype/internal/t1types.h (T1_FaceRec): Updated. + + * src/psaux/t1cmap.h (T1_CmapStdRec): Updated. + (T1_CmapUnicode, T1_CmapUnicodeRec): Removed. + + * src/psaux/t1cmap.c (t1_get_glyph_name): New callback function. + (t1_cmap_unicode_init, t1_cmap_unicode_done, + t1_cmap_unicode_char_index, t1_cmap_unicode_char_next, + t1_cmap_unicode_class_rec): Updated. + + * src/type42/t42types.h (T42_FaceRec): Updated. + +2006-01-11 suzuki toshiya <[email protected]> + + * include/freetype/ftmac.h: Add declaration of new functions + FT_New_Face_From_FSRef and FT_GetFile_From_Mac_ATS_Name that + were introduced by the jumbo patch on 2006-01-11. + +2006-01-11 Werner Lemberg <[email protected]> + + Fix Savannah bug #15056 and use pscmap service in psaux module. + + * include/freetype/internal/services/svpscmap.h (PS_UniMap): Use + FT_UInt32 for `glyph_index'. + (PS_Unicodes_InitFunc): Use FT_String for `glyph_names'. + (PS_Unicodes_CharIndexFunc): Use FT_UInt32 for `unicode'. + (PS_Unicodes_CharNextFunc): Make second argument a pointer to + FT_UInt32. + + * src/psnames/psmodule.c (VARIANT_BIT, BASE_GLYPH): New macros. + (ps_unicode_value): Set VARIANT_BIT in return value if glyph is a + variant glyph (this is, it has non-leading `.' in its name). + (compare_uni_maps): Sort base glyphs before variant glyphs. + (ps_unicodes_init): Use FT_String for `glyph_names' argument. + Reallocate only if number of used entries is much smaller. + Updated to handle variant glyphs. + (ps_unicodes_char_index, ps_unicodes_char_next): Prefer base glyphs + over variant glyphs. + Simplify code. + + * src/psaux/t1cmap.c (t1_cmap_uni_pair_compare): Removed. + (t1_cmap_unicode_init, t1_cmap_unicode_char_index, + t1_cmap_unicode_char_next): Use pscmap service. + (t1_cmap_unicode_done): Updated. + + * src/psaux/t1cmap.h (T1_CMapUniPair): Removed. + (T1_CMapUnicode): Use PS_Unicodes structure. + +2006-01-11 suzuki toshiya <[email protected]> + + Jumbo patch to fix `deprecated' warning of cross-build for Tiger on + Intel, as reported by Sean McBride <[email protected]> on + 2005-08-24. + + * src/base/ftmac.c: Heavy change to build without deprecated Carbon + functions on Tiger. + + * builds/unix/configure.ac: Add options and autochecks for Carbon + functions availabilities, for MacOS X. + + * builds/mac/ascii2mpw.py: Add converter for character `\305'. + * builds/mac/FreeType.m68k_{far|cfm}.make.txt: Add conditional + macros to avoid unavailable functions. + ftmac.c must be compiled without `-strict ansi', because it disables + cpp macro to use ToolBox system call. + + * builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional + macros to avoid unavailable functions. + + * builds/mac/README: Detailed notes on function availabilities. + + * docs/CHANGES: Notes about (possible) incompatibilities. + +2006-01-08 Werner Lemberg <[email protected]> + + * docs/CHANGES: Updated. + +2006-01-08 Huw D M Davies <[email protected]> + + * include/freetype/ftmodapi.h (FT_Module_Get_Flags): New + declaration. + + * src/base/ftobjs.c (FT_Module_Get_Flags): New function. + +2006-01-07 Werner Lemberg <[email protected]> + + * src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable + `bitmaps'. Reported by Yu Lei <[email protected]>. + + * src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/. + Reported by Niels Boldt <[email protected]>. + +2005-12-28 suzuki toshiya <[email protected]> + + * src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for + MPW compiler. + +2005-12-23 David Turner <[email protected]> + + * Jamfile (RefDoc), docs/reference/README: Fix it so that `jam + refdoc' works correctly to generate the API reference in + `docs/reference'. + + * src/tools/docmaker/tohtml.py (print_html_field, + print_html_field_list): Update to output nicer fields lists in the + API reference. + + * src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now + forces auto-hinting. + + * freetype/freetype.h: Updating the documentation for + FT_LOAD_TARGET_XXX and FT_Render_Mode values. + +2005-12-23 suzuki toshiya <[email protected]> + + * src/base/ftmac.c (FT_New_Face_From_Suitcase): Count scalable faces + in supported formats (sfnt, LWFN) only, and ignore bitmap faces in + unsupported formats (fbit, NFNT). The number of available faces are + passed via face->num_faces. If bitmap faces are embedded in sfnt + resource, face->num_fixed_size is correctly set. In public API, + FT_New_Face() and FT_New_Face_From_FSSpec() count the faces as + FT_GetFile_From_Mac_Name(), which ignores NFNT resources. + + * doc/CHANGES: Mention the changes. + +2005-12-17 Chia-I Wu <[email protected]> + + * src/truetype/ttinterp.c (Update_Max): Set current size of buffer + correctly (so that memory debug system won't panic). + +2005-12-16 Chia-I Wu <[email protected]> + + * include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics), + src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed. + + * src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round. + + * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c + (cid_slot_load_glyph), src/truetype/ttgload.c (compute_glyph_metrics), + src/type1/t1gload.c (T1_Load_Glyph): Do not round glyph metrics. + + * doc/CHANGES: Mention the changes. + +2005-12-13 David Turner <[email protected]> + + Change the implementation of the LIGHT hinting mode to completely + disable horizontal hinting. This is an experimental effort to + integrate David Chester's latest patch without affecting the other + hinting modes as well. + + Note that this doesn't force auto-hinting for all fonts, however. + + * src/autofit/afhints.c (af_glyph_hints_reload): Don't set + scaler_fiags here but... + (af_glyph_hints_rescale): Here. + + * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal + hinting for `light' hinting mode. + + + * Jamfile: Small fix to ensure that ftexport.sym is placed into the + same location as other generated objects (i.e., within the `objs' + directory of the current directory). + + + Add support for an embedded `BDF ' table within SFNT-based bitmap + font files. This is used to store atoms & properties from the + original BDF fonts that were used to generate the font file. + + The feature is controlled by TT_CONFIG_OPTION_BDF within + `ftoption.h' and is used to implement FT_Get_BDF_Property for these + font files. + + At the moment, this is still experimental, the BDF table format + isn't cast into stone yet. + + * include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New + macro. + + * include/freetype/config/ftstdlib.h (ft_memchr): New macro. + + * include/freetype/internal/tttypes.h (TT_BDFRec, TT_BDF) + [TT_CONFIG_OPTION_BDF]: New structure. + (TT_FaceRec) [TT_CONFIG_OPTION_BDF]: New member `bdf'. + + * include/freetype/ttags.h (TTAG_BDF): New macro. + + * src/sfnt/Jamfile (_sources): Add ttbdf. + + * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c. + + * src/sfnt/sfdriver.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h and + FT_SERVICE_BDF_H. + (sfnt_get_charset_it) [TT_CONFIG_OPTION_BDF]: New function. + (sfnt_service_bdf) [TT_CONFIG_OPTION_BDF]: New service. + (sfnt_services) [TT_CONFIG_OPTION_BDF]: Add sfnt_service_bdf. + + * src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c. + + * src/sfnt/sfobjs.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h. + (sfnt_done_face) [TT_CONFIG_OPTION_BDF]: Call + tt_face_free_bdf_props. + + * src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files. + +2005-12-07 Werner Lemberg <[email protected]> + + * src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to... + * src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs. + +2005-12-06 Chia-I Wu <[email protected]> + + * src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is + initialized twice. + size->strike_index is not initialized. + +2005-12-02 Taek Kwan(TK) Lee <[email protected]> + + * src/type42/t42objs.c (T42_Face_Init): Replace call to + FT_New_Memory_Face with call to FT_Open_Face to pass `params'. + +2005-11-30 Werner Lemberg <[email protected]> + + * docs/CHANGES: Document ftdump's `-v' option. + Document latest charmap code changes. + + * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: + s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/. + +2005-11-30 Chia-I Wu <[email protected]> + + * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary, + tt_cmap12_char_map_binary): Fix compiler warnings. + +2005-11-29 Chia-I Wu <[email protected]> + + Major update to distinguish between unsorted and overlapping + segments for cmap format 4. For overlapping but sorted segments, + which is previously considered unsorted, we still use binary search. + + * src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'. + (TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros. + + * src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined. + (TT_CMap4Rec_): Remove `old_charcode' and `table_length'. + (tt_cmap4_reset): Removed. + (tt_cmap4_init): Updated accordingly. + (tt_cmap4_next): Updated accordingly. + Take care of overlapping segments. + (tt_cmap4_validate): Make sure the subtable is large enough. + Do not check glyph_ids because some fonts set the length wrongly. + Also, if all segments have offset 0, glyph_ids is always invalid. + It does not cause any problem so far only because the check misses + equality. + Distinguish between unsorted and overlapping segments. + (tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions + to do `charcode => glyph index' by linear/binary search. + (tt_cmap4_char_index, tt_cmap4_char_next): Use + tt_cmap4_char_map_linear and tt_cmap4_char_map_binary. + (tt_face_build_cmaps): Treat the return value of validator as flags + for cmap. + +2005-11-29 Chia-I Wu <[email protected]> + + * src/sfnt/ttcmap.c (TT_CMap12Rec_, tt_cmap12_init, tt_cmap12_next): + New structures and functions for fast `next char'. + (tt_cmap12_char_map_binary): New function to do `charcode => glyph + index' by binary search. + (tt_cmap12_char_index, tt_cmap12_char_next): Use + tt_cmap12_char_map_binary. + (tt_face_build_cmaps): Check table and offset correctly (equality is + missing). + +2005-11-15 Detlef Würkner <[email protected]> + + * builds/amiga/smakefile: Adjusted the compiler options + to the current sources, now really builds the gxvalid, gzip + and psnames modules. + + * builds/amiga/src/base/ftsystem.c: The assumed Seek() position + in the file cache was off by one byte which could cause false + errors in font files. + +2005-11-24 suzuki toshiya <[email protected]> + + * builds/mac/FreeType.m68k_far.make.txt, + builds/mac/FreeType.m68k_cfm.make.txt, + builds/mac/FreeType.ppc_classic.make.txt, + builds/mac/FreeType.ppc_carbon.make.txt: + Updated for MPW to build all available modules. + +2005-11-21 Håvard Wall <[email protected]> + + * src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Done): Fix small + memory leak. + +2005-11-21 Werner Lemberg <[email protected]> + + * src/sfnt/ttload.c (sfnt_init): Add tracing message. + +2005-11-21 Chia-I Wu <[email protected]> + + * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Image_offset was + added twice to image_start if image_format was 2 or 5. + +2005-11-21 Chia-I Wu <[email protected]> + + * src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known + before loading the table directory. + + * src/sfnt/ttload.c (tt_face_load_sfnt_header, + tt_face_load_directory): Delay sfnt_dir_check from + tt_face_load_sfnt_header to tt_face_load_directory. + +2005-11-20 Chia-I Wu <[email protected]> + + * src/sfnt/ttload.c (sfnt_dir_check): Clean up and return correct + error code. + (sfnt_init): New function to fill in face->ttc_header. A non-TTC font + is synthesized into a TTC font with one offset table. + (tt_face_load_sfnt_header): Use sfnt_init. + Fix an invalid access if the font is TTC and face_index is -1. + +2005-11-18 Werner Lemberg <[email protected]> + + * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number + of metrics instead of aborting. Patch suggested by Derek Noonburg. + + * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c + (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Scale + the glyph properly if no hinter is available. + + * docs/CHANGES: Mention scaling bug. + +2005-11-18 susuzki toshiya <[email protected]> + + * include/freetype/ftgxval.h, src/base/ftgxval.c + (FT_TrueTypeGX_Free, FT_ClassicKern_Free): New functions to free + buffers allocated by gxvalid module. + * include/freetype/ftotval.h, src/base/ftotval.c + (FT_OpenType_Free): New function to free buffer allocated by + otvalid module. + +2005-11-18 Chia-I Wu <[email protected]> + + * builds/unix/ftsystem.c (FT_Stream_Open, FT_New_Memory, + FT_Done_Memory), builds/vms/ftsystem.c (FT_Stream_Open, FT_New_Memory, + FT_Done_Memory), builds/win32/ftdebug.c (FT_Message, FT_Panic): + s/FT_EXPORT/FT_BASE/. + +2005-11-17 Detlef Würkner <[email protected]> + + * builds/amiga/src/base/ftdebug.c (FT_Trace_Get_Count, + FT_Trace_Get_Name, FT_Message, FT_Panic), + builds/amiga/src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory, + FT_Stream_Open): s/FT_EXPORT/FT_BASE/. + +2005-11-17 Detlef Würkner <[email protected]> + + * builds/amiga/makefile, builds/amiga/makefile.os4, + builds/amiga/smakefile, + builds/amiga/include/freetype/config/ftmodule.h: Updated the Amiga + build files (added support for the gxvalid module). + +2005-11-17 Werner Lemberg <[email protected]> + + Add vertical metrics support to OpenType CFF outlines. Based on a + patch from Mike Moening <[email protected]>. + + * src/cff/cffgload.c (cff_face_get_vertical_metrics): New function. + (cff_slot_load): Use cff_face_get_vertical_metrics. + + * docs/CHANGES: Updated. + +2005-11-17 Chia-I Wu <[email protected]> + + * src/base/ftcalc.c (FT_MulTo64): Commented out. + + * include/freetype/internal/ftcalc.h (FT_SqrtFixed), + src/base/ftcalc.c (FT_SqrtFixed), + include/freetype/internal/ftdebug.h (FT_Trace_Get_Count, + FT_Trace_Get_Name, FT_Message, FT_Panic), src/base/ftdebug.c + (FT_Trace_Get_Count, FT_Trace_Get_Name, FT_Message, FT_Panic), + include/freetype/internal/ftobjs.h (FT_New_Memory, FT_Done_Memory), + include/freetype/internal/ftstream.h (FT_Stream_Open), + src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory, FT_Stream_Open): + s/FT_EXPORT/FT_BASE/. + + * builds/exports.mk: Manually add TT_New_Context to EXPORTS_LIST + too. + +2005-11-15 David Turner <[email protected]> + + * src/base/fttrigon.c (ft_trig_prenorm): Fix a bug that created + invalid computations, resulting in very weird bugs in TrueType + bytecode hinted fonts. + + * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Don't perform a + structure copy each time. + +2005-11-11 Werner Lemberg <[email protected]> + + * src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c + (FTC_Manager_Check): Remove FT_EXPORT_DEF tag. + + * src/base/ftcalc.c (FT_Add64): Remove FT_EXPORT_DEF tag. + (FT_Div64by32, FT_Sqrt32): Commented out. Unused. + + * include/freetype/internal/ftcalc.h (SQRT_32): Removed. Unused. + (FT_Sqrt32): Commented out. Unused. + + * include/freetype/cache/ftccache.h: + s/ftc_node_destroy/FTC_Node_Destroy/. + + * src/cache/ftccback.h (ftc_node_destroy): New declaration. + + * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF tag. + (FTC_Node_Destroy): New exported wrapper function for + ftc_node_destroy. + + * src/cache/ftcmanag.c: Include ftccback.c. + +2005-11-10 Werner Lemberg <[email protected]> + + * src/autofit/afangles.c, src/autofit/aftypes.h (af_angle_diff): + Comment out. Unused. + + * builds/exports.mk ($(EXPORTS_LIST)): Add TT_RunIns. + +2005-11-10 Christian Biesinger <[email protected]> + + * builds/beos/beos.mk: Call beos-def.mk before anything else to + define the separator. + + * builds/unix/unix-cc.in (LINK_LIBRARY): Add `-no-undefined' flag. + +2005-11-07 Werner Lemberg <[email protected]> + + * src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning + table available'. From Sergey Tolstov <[email protected]>. + +2005-11-03 Ville Syrjälä <[email protected]> + + * src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak. + +2005-11-02 Werner Lemberg <[email protected]> + + Make compiling instructions in docs/CUSTOMIZE work again. + + * builds/unix/unix-cc.in (CPPFLAGS): New variable. + (CFLAGS): Don't include @CPPFLAGS@. + * builds/freetype.mk (FT_CFLAGS): Add CPPFLAGS. + +2005-10-28 David Turner <[email protected]> + + Update build system to support the generation of a list of exported + symbols or Windows .DEF files by parsing the public headers with the + `apinames' tool located in src/tools/apinames.c. + + Only tested on Unix at the moment. On Windows, the .DEF file is + generated but isn't used yet to generate a DLL. + + * builds/exports.mk: New file. + + * builds/freetype.mk: Include exports.mk. + (dll): New target. + (clean_project_dos): Fix rule. + + * builds/compiler/visualc.mk (TE), builds/dos/dos-def.mk (E), + builds/os2/os2-def.mk (E), builds/win32/win32-def.mk (E): New + variables for controlling executable extensions. + + * builds/unix/unix-cc.in (EXPORTS_LIST, CCexe), + builds/win32/w32-bcc.mk, builds/win32/w32-gcc.mk, + builds/win32/w32-icc.mk, builds/win32/w32-icc.mk, + builds/win32/w32-mingw32.mk, builds/win32/w32-vcc, + builds/win32/w32-wat.mk (EXPORTS_LIST, EXPORT_OPTIONS, + APINAMES_OPTIONS): New targets for controlling the `apinames' tool. + + * Jamfile (GenExportSymbols): Updated. + + + * src/pfr/pfrtypes.h, src/pfr/pfrload.c, src/pfr/pfrobjs.c + [!FT_OPTIMIZE_MEMORY]: Fold memory optimization code into + FT_OPTIMIZE_MEMORY chunks for better maintainability and simplicity. + + + * src/base/fttrigon.c (ft_trig_prenorm), src/base/ftcalc.c + (FT_MulFix): Performance optimizations. + + + * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P, + FT_GLYPHLOADER_CHECK_C, FT_GLYPHLOADER_CHECK_POINTS): New macros for + checking points and contours. Update callers to use + FT_GLYPHLOADER_CHECK_POINTS instead of FT_GlyphLoader_CheckPoints + at profile-detected hot-spots. + + * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Set `adjust' + to 0 to not call `AdjustPoints' every time. + + + * src/autofit/aftypes.h (AF_ANGLE_DIFF): New macro to inline + FT_Angle_Diff. + + * src/autofit/afhints.c (af_direction_compute): Re-implement. + (af_glyph_hints_compute_inflections, af_glyph_hints_reload): Use + AF_ANGLE_DIFF to speed up the detection of inflexions. + + + * src/tools/apinames.c: Include <string.h>. + (OutputFormat): New enumeration. + (names_dump): Add two parameters to control output format and DLL + name. + (names_dump_windef): Removed. Code folded into `names_dump'. + (read_header_file): Use isalnum, not isalpha. Otherwise function + names with digits aren't read correctly. + (usage): Updated. + (main): New option `-o' to control output file name. + New option `-d' to indicate DLL file name. + Extend `-w' flag to handle Borland and Watcom compilers and linkers. + +2005-10-28 suzuki toshiya <[email protected]> + + * builds/mac/ftlib.prj, builds/mac/freetype.mak: Removed. + ftlib.prj is unmaintained and incompatible with current tree. + freetype.mak is unrecoverably broken. + + * builds/mac/ftlib.prj.xml: Added. + Generated by Metrowerks CodeWarrior 9.0. + + * builds/mac/FreeType.m68k_far.make.txt, + builds/mac/FreeType.m68k_cfm.make.txt, + builds/mac/FreeType.ppc_classic.make.txt, + builds/mac/FreeType.ppc_carbon.make.txt: Added. + Skeleton files of MPW makefiles. + + * builds/mac/ascii2mpw.py: Added. + Python script to make MPW makefile from skeleton. + + * builds/mac/README: Updated. + Almost rewritten to use new files. + +2005-10-28 suzuki toshiya <[email protected]> + + * src/base/ftmac.c: Fix invalid casts from NULL to integer typed + variables. Advised by David Turner, Masatake YAMATO, Sean McBride, + and George Williams. + +2005-10-27 Werner Lemberg <[email protected]> + + * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed. + Obsolete. + +2005-10-25 Werner Lemberg <[email protected]> + + * src/sfnt/sfdriver.c (sfnt_interface): Move out + `tt_face_get_kerning' from a #ifdef clause. Reported by Tony J. + Ibbs <[email protected]>. + +2005-10-23 Werner Lemberg <[email protected]> + + * src/base/ftdbgmem.c (ft_mem_debug_realloc): Make it compile with + C++. + +2005-10-21 David Turner <[email protected]> + + * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_debug_realloc): + Another realloc memory counting bug fix. + + * src/tools/Jamfile: Add missing file. + + * src/lzw/Jamfile: Fix incorrect source file reference. + +2005-10-20 David Turner <[email protected]> + + * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_table_remove, + ft_mem_debug_alloc, ft_mem_debug_free, ft_mem_debug_realloc): Fixes + to better account for memory reallocations. + + * src/lzw/ftlzw2.c, src/lzw/ftzopen.h, src/lzw/ftzopen.c, + src/lzw/rules.mk: First version of LZW loader re-implementation. + Apparently, this saves about 330 KB of heap memory when loading + timR24.pcf.Z. + +2005-10-20 Chia-I Wu <[email protected]> + + * include/freetype/ftbitmap.h (FT_Bitmap_Copy, FT_Bitmap_Embolden), + src/base/ftbdf.c (FT_Get_BDF_Property), src/cache/ftcmru.c + (FTC_MruList_Reset, FTC_MruList_Done, FTC_MruList_Lookup): Fix + FT_EXPORT/FT_EXPORT_DEF tagging. + +2005-10-19 Chia-I Wu <[email protected]> + + * src/truetype/ttgload.c (TT_Load_Glyph): Allow size->ttmetrics to + be invalid when FT_LOAD_NO_SCALE is set. + +2005-10-17 David Turner <[email protected]> + + * src/base/ftobjs.c (FT_Open_Face): Don't call FT_New_GlyphSlot and + FT_New_Size if we are opening a face with face_index < 0 (which is + only used for testing the format). + + * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate): + Remove compiler warning. + +2005-10-16 David Turner <[email protected]> + + * src/tools/apinames.c: Add new tool to extract public API function + names from header files. + +2005-10-05 Werner Lemberg <[email protected]> + + Add FT_FACE_FLAG_HINTER to indicate that a specific font driver has + a hinting engine of its own. + + * include/freetype/freetype.h (FT_FACE_FLAG_HINTER): New macro. + + * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c + (cid_face_init), src/truetype/ttobjs.c (tt_face_init) + [TT_CONFIG_OPTION_BYTECODE_INTERPRETER], src/type1/t1objs.c + (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init) + [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Update face flags. + + * docs/CHANGES: Document it. + +2005-09-27 Werner Lemberg <[email protected]> + + * builds/unix/freetype2.m4: Add license exception so that the file + can be used in any other autoconf script. + +2005-09-26 David Turner <[email protected]> + + * src/autofit/aflatin.c (af_latin_compute_stem_width): Fix bad + computation of the `vertical' flag, causing ugly things in LCD mode + and others. + +2005-09-23 David Turner <[email protected]> + + * src/autofit/aflatin.c (af_latin_hints_init): Fix a bug that + prevented internal hint mode bitflags from being computed correctly. + + * src/base/Jamfile: Adding src/base/ftgxval.c. + + * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c, + src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c, src/gxvalid/gxvkern.c, + src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c, + src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c, + src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c, + src/gxvalid/gxvmort5.c, src/gxvalid/gxvmorx.c, + src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c, + src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx5.c, + src/gxvalid/gxvopbd.c, src/gxvalid/gxvprop.c, + src/truetype/ttgload.c: Remove _many_ compiler warnings when + compiling with Visual C++ at maximum level (/W4). + + * src/autofit/afangles.c (af_angle_atan): Replaced CORDIC-based + implementation with one using lookup tables. This simple thing + speeds up glyph loading by 18%, according to ftbench! + + * src/sfnt/sfdriver.c (sfnt_get_interface): Don't check for + `get_sfnt' and `load_sfnt' module interfaces. + +2005-09-22 Werner Lemberg <[email protected]> + + * docs/CHANGES: Mention SING Glyphlet support. + +2005-09-22 David Turner <[email protected]> + + * src/base/Jamfile: Disable compilation of ftgxval module + temporarily. + +2005-09-19 David Somers <[email protected]> + + * src/sfnt/ttload.c (sfnt_dir_check): Modified to allow a + font to have no `head' table if tables `SING' and `META' are + present; this is to support `SING Glyphlet'. + + `SING Glyphlet' is an extension to OpenType developed by Adobe + primarily to facilitate adding supplemental glyphs to an OpenType + font (with emphasis on, but not necessarily limited to, gaiji to a + CJK font). A SING Glyphlet Font is an OpenType font that contains + the outline(s), either in a `glyf' or `CFF' table, for a glyph; + `cmap', `BASE', and `GSUB' tables are present with the same format + and functionaliy as a regular OpenType font; there are no `name', + `head', `OS/2', and `post' tables; there are two new tables, `SING' + which contains details about the glyphlet, and `META' which contains + metadata. + + Further information on the SING Glyphlet format can be found at: + + http://www.adobe.com/products/indesign/sing_gaiji.html + + * include/freetype/ttags.h (TTAG_SING, TTAG_META): New macros for + the OpenType tables `SING' and `META'. These two tables are used in + SING Glyphlet Format fonts. + +2005-09-09 Werner Lemberg <[email protected]> + + * src/sfnt/sfobjs.c (sfnt_load_face): Reactivate code to set + FT_FACE_FLAG_KERNING which has been commented out erroneously. + + * docs/CHANGES: Document it. + +2005-09-05 Werner Lemberg <[email protected]> + + Fixes for `make multi' and using C++ compiler. + + * src/gxvalid/gxvcommn.c (gxv_set_length_by_ushort_offset, + gxv_set_length_by_ulong_offset, gxv_array_getlimits_byte, + gxv_array_getlimits_ushort): Declare with FT_LOCAL_DEF. + (gxv_compare_ranges): Make it static. + (gxv_LookupTable_fmt0_validate, gxv_LookupTable_fmt2_validate, + gxv_LookupTable_fmt4_validate, gxv_LookupTable_fmt6_validate, + gxv_LookupTable_fmt8_validate, gxv_LookupTable_validate): Improve + trace messages. + (gxv_StateArray_validate, gxv_XStateArray_validate): s/class/clazz/. + (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE, + GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Move to + gxvcommn.h. + + * src/gxvalid/gxvcommn.h: Add prototypes for + gxv_StateTable_subtable_setup, gxv_XStateTable_subtable_setup, + gxv_XStateTable_validate, gxv_array_getlimits_byte, + gxv_array_getlimits_ushort, gxv_set_length_by_ushort_offset, + gxv_set_length_by_ulong_offset, gxv_odtect_add_range, + gxv_odtect_validate. + (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE, + GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Moved from + gxvcommn.c. + + * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate, + gxv_bsln_parts_fmt1_validate): Improve trace messages. + + * src/gxvalid/gxvfeat.c: Split off predefined registry stuff to... + * src/gxvalid/gxvfeat.h: New file. + + * src/gxvalid/gxvjust.c (gxv_just_wdc_entry_validate): Improve trace + message. + + * src/gxvalid/gxvkern.c (GXV_kern_Dialect): Add KERN_DIALECT_UNKNOWN. + (gxv_kern_subtable_fmt1_valueTable_load, + gxv_kern_subtable_fmt1_subtable_setup, + gxv_kern_subtable_fmt1_entry_validate): Fix C++ compiler errors. + (gxv_kern_coverage_validate): Use KERN_DIALECT_UNKWOWN. + Improve trace message. + (gxv_kern_validate_generic): Fix C++ compiler error. + Improve trace message. + (gxv_kern_validate_classic): Fix C++ compiler error. + + * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_validate): Declare + with FT_LOCAL_DEF. + + * src/gxvalid/gxvmort1.c + (gxv_mort_subtable_type1_substitutionTable_load, + gxv_mort_subtable_type1_subtable_setup): Fix C++ compiler errors. + (gxv_mort_subtable_type1_substTable_validate): Improve trace + message. + (gxv_mort_subtable_type1_validate): Declare with FT_LOCAL_DEF. + + * src/gxvalid/gxvmort2.c (gxv_mort_subtable_type2_opttable_load, + gxv_mort_subtable_type2_subtable_setup, + gxv_mort_subtable_type2_ligActionOffset_validate, + gxv_mort_subtable_type2_ligatureTable_validate): Fix C++ compiler + errors. + (gxv_mort_subtable_type2_validate): Declare with FT_LOCAL_DEF. + + * src/gxvalid/gxvmort4.c (gxv_mort_subtable_type4_validate): Declare + with FT_LOCAL_DEF. + + * src/gxvalid/gxvmort5.c (gxv_mort_subtable_type5_subtable_setup, + gxv_mort_subtable_type5_InsertList_validate): Fix C++ compiler + errors. + (gxv_mort_subtable_type5_validate): Declare with FT_LOCAL_DEF. + + * src/gxvalid/gxvmort.c: Include gxvfeat.h. + (gxv_mort_featurearray_validate, gxv_mort_coverage_validate): + Declare with FT_LOCAL_DEF. + (gxv_mort_subtables_validate, gxv_mort_validate): Improve trace + messages. + + * src/gxvalid/gxvmort.h (gxv_mort_feature_validate): Remove. + + * src/gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_validate): Declare + with FT_LOCAL_DEF. + + * src/gxvalid/gxvmorx1.c + (gxv_morx_subtable_type1_substitutionTable_load, + gxv_morx_subtable_type1_subtable_setup, + gxv_morx_subtable_type1_entry_validate, + gxv_morx_subtable_type1_substitutionTable_validate): Fix C++ + compiler errors. + (gxv_morx_subtable_type1_validate): Declare with FT_LOCAL_DEF. + + * src/gxvalid/gxvmorx2.c (gxv_morx_subtable_type2_opttable_load, + gxv_morx_subtable_type2_subtable_setup, + gxv_morx_subtable_type2_ligActionIndex_validate, + gxv_morx_subtable_type2_ligatureTable_validate): Fix C++ compiler + errors. + (gxv_morx_subtable_type2_validate): Declare with FT_LOCAL_DEF. + Fix typo. + + * src/gxvalid/gxvmorx4.c (gxv_morx_subtable_type4_validate): Declare + with FT_LOCAL_DEF. + + * src/gxvalid/gxvmorx5.c (gxv_morx_subtable_type5_insertionGlyph_load, + gxv_morx_subtable_type5_subtable_setup): Fix C++ compiler error. + (gxv_morx_subtable_type5_validate): Declare with FT_LOCAL_DEF. + + * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate, + gxv_morx_validate): Improve trace message. + + * src/gxvalid/gxvopbd.c (gxv_opbd_LookupFmt4_transit): Fix compiler + warnings. + (gxv_opbd_validate): Improve trace message. + + * src/gxvalid/gxvprop.c: Decorate constants with `U' and `L' where + appropriate. + (gxv_prop_zero_advance_validate, gxv_prop_validate): Improve trace + message. + + * src/gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): Remove unused + parameter. Update all callers. + (gxv_trak_validate): Improve trace message. + + * rules.mk (GXV_DRV_H): Add gxvfeat.h. + +2005-09-01 Werner Lemberg <[email protected]> + + * src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'. + + * src/gxvalid/gxmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE), + src/gxvalid/gxmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix + typo. + + * src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c, + src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx4.c, + src/gxvalid/gxvmorx5.c, src/gxvalid/gxvmort.c: Improve trace + messages. + Decorate constants with `U' and `L' where appropriate. + Fix compiler warnings. + +2005-08-31 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c (load_truetype_glyph): Fix typo. + + * src/gxvalid/gxvbsln.c (gxv_bsln_validate): Fix trace message. + + * src/gxvalid/gxvcommn.c (gxv_odtect_add_range): Use `const'. + + * src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c, + src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmod.c, + src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c, + src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c, + src/gxvalid/gxvmort5.c, src/gxvalid/gxvmort.c: Improve trace + messages. + Decorate constants with `U' and `L' where appropriate. + Fix compiler warnings. + +2005-08-30 Werner Lemberg <[email protected]> + + * src/gxvalid/README: Revised. + * src/gxvalid/gxvbsln.c: Fix compiler warnings. + * src/gxvalid/gxvcommn.c: Fix compiler warnings. + (gxv_XEntryTable_validate, gxv_compare_ranges): Remove unused + parameter. Update all callers. + Improve trace messages. + Some formatting. + +2005-08-29 Werner Lemberg <[email protected]> + + * include/freetype/freetype.h, include/freetype/ftchapters.h: Add + a preliminary section with some explanations about user allocation. + + * src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter): + Don't abort if there are no data types, functions, etc., in a + section. + Print synopsis only if we have a data type, function, etc. + + * docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE, + docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX, + docs/VERSION.DLL, docs/formats.txt: Revised, formatted. + +2005-08-28 George Williams <[email protected]> + + * src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed. + (load_truetype_glyph): Limit recursion depth by `maxComponentDepth'. + +2005-08-25 J. Ali Harlow <[email protected]> + + * builds/unix/freetype2.in (CFlags): Add missing directory. + +2005-08-24 Werner Lemberg <[email protected]> + + * docs/CHANGES: Mention gxvalid module. + +2005-08-23 Werner Lemberg <[email protected]> + + * src/autofit/aflatin.c (af_latin_metrics_scale): Initialize + render mode properly. Reported by [email protected]. + +2005-08-23 suzuki toshiya <[email protected]> + + Add gxvalid module to validate TrueType GX/AAT tables. + + Modifications on existing files: + + * Jamfile: Register gxvalid module. + * src/base/Jamfile: Register ftgxval.c. + * src/base/rule.mk: Register ftgxval.c. + * docs/INSTALL.ANY: Register gxvalid/gxvalid.c. + + * include/freetype/config/ftheader.h (FT_GX_VALIDATE_H): New macro + to include gxvalid header file. + * include/freetype/config/ftmodule.h: Register gxv_module_class. + + * include/freetype/ftchapters.h: Add comment about gx_validation. + * include/freetype/ftotval.h: Change keyword FT_VALIDATE_XXX + to FT_VALIDATE_OTXXX to co-exist with gxvalid. + * include/freetype/tttags.h: Add tags for TrueType GX/AAT tables. + + * include/freetype/internal/ftserv.h (FT_SERVICE_GX_VALIDATE_H): New + macro for gxvalid service. + * include/freetype/internal/fttrace.h: Add trace facilities for + gxvalid. + + New files on existing directories: + + * include/freetype/internal/services/svgxval.h: Registration of + validation service for TrueType GX/AAT and classic kern table. + * include/freetype/ftgxval.h: Public API definition to use gxvalid. + * src/base/ftgxval.c: Public API of gxvalid. + + New files under src/gxvalid/: + + * src/gxvalid/Jamfile src/gxvalid/README src/gxvalid/module.mk + src/gxvalid/rules.mk src/gxvalid/gxvalid.c src/gxvalid/gxvalid.h + src/gxvalid/gxvbsln.c src/gxvalid/gxvcommn.c src/gxvalid/gxvcommn.h + src/gxvalid/gxverror.h src/gxvalid/gxvfeat.c src/gxvalid/gxvfgen.c + src/gxvalid/gxvjust.c src/gxvalid/gxvkern.c src/gxvalid/gxvlcar.c + src/gxvalid/gxvmod.c src/gxvalid/gxvmod.h src/gxvalid/gxvmort.c + src/gxvalid/gxvmort.h src/gxvalid/gxvmort0.c src/gxvalid/gxvmort1.c + src/gxvalid/gxvmort2.c src/gxvalid/gxvmort4.c src/gxvalid/gxvmort5.c + src/gxvalid/gxvmorx.c src/gxvalid/gxvmorx.h src/gxvalid/gxvmorx0.c + src/gxvalid/gxvmorx1.c src/gxvalid/gxvmorx2.c src/gxvalid/gxvmorx4.c + src/gxvalid/gxvmorx5.c src/gxvalid/gxvopbd.c src/gxvalid/gxvprop.c + src/gxvalid/gxvtrak.c: New files, gxvalid body. + +2005-08-21 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c (TT_Load_Glyph): Only translate outline + to (0,0) if bit 1 of the `head' table isn't set. This improves + rendering of buggy fonts. + +2005-08-20 Chia I Wu <[email protected]> + + * src/truetype/ttdriver.c (Load_Glyph): Don't check the validity of + ttmetrics here. TrueType fonts with only sbits always have + ttmetrics.valid set to false. + + * src/truetype/ttgload.c (TT_Load_Glyph): Check that ttmetrics is + valid before loading outline glyph. + + * src/cache/ftcimage.c (FTC_INode_New): Fix a memory leak. + +2005-08-20 Werner Lemberg <[email protected]> + + * src/sfnt/ttload.c (tt_face_load_metrics_header): Ignore missing + `hhea' table for SFNT Mac fonts. Change based on a patch by + +2005-08-20 Masatake YAMATO <[email protected]> + + * src/otvalid/otvmod.c (otv_validate): Use ft_validator_run instead + of ft_setjmp. + +2005-08-19 Werner Lemberg <[email protected]> + + * src/truetype/ttgload.c (load_truetype_glyph): Fix compiler + warnings. + +2005-08-16 Chia I Wu <[email protected]> + + * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright + messages. + +2005-08-16 Chia I Wu <[email protected]> + + * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Remove original + TT_Done_Context and rename TT_Destroy_Context to TT_Done_Context + with slight changes. + Update all callers. + (TT_New_Context): Now takes TT_Driver argument directly. + Update all callers. + + * src/truetype/ttobjs.h (tt_slot_init): New function. + * src/truetype/ttobjs.c (tt_driver_init): Initialize execution + context here. + (tt_slot_init): New function to create extra points for the internal + glyph loader. We then use it directly, instead of face's glyph + loader, when loading glyph. + + * src/truetype/ttdriver.c (tt_driver_class): Use tt_slot_init for + glyph slot initialization. + (Load_Glyph): Load flag dependencies are handled here. Return error + if size is NULL. + + * src/truetype/ttgload.c: Heavy cleanup and refactoring. + (org_to_cur): Removed. + (TT_Load_Simple_Glyph): Call FT_GlyphLoader_CheckPoints. + (TT_Hint_Glyph): New function to hint a zone, prepared by caller. + (TT_Process_Simple_Glyph): s/load/loader/. + Use loader->pp values instead of recalculation. + Use TT_Hint_Glyph. + No need to save/restore loader->stream before and after + TT_Vary_Get_Glyph_Deltas now. + (TT_LOADER_SET_PP): New macro to calculate and set the four phantom + points. + (load_truetype_glyph): Never set exec->glyphSize to 0. This closes + Savannah bug #13107. + Forget glyph frame before calling TT_Process_Simple_Glyph. + Use TT_LOADER_SET_PP. + Scale all four phantom points. + Split off some functionality to ... + (TT_Process_Composite_Component, TT_Process_Composite_Glyph): These + new functions. + (TT_Load_Glyph): Set various fields of `glyph' here, not in + load_truetype_glyph and compute_glyph_metrics. + Split off some functionality to ... + (load_sbit_image, tt_loader_init): These new functions. + (compute_glyph_metrics): Call FT_Outline_Get_CBox. + +2005-08-08 Werner Lemberg <[email protected]> + + * docs/INSTALL.ANY: Updated. + +2005-08-05 Werner Lemberg <[email protected]> + + * src/cff/cffgload.c (cff_builder_close_contour), + src/psaux/psobjs.c (t1_builder_close_contour): Protect against + zero `outline' pointer. + + * src/base/ftgloadr.c (FT_GlyphLoader_Add): Protect against zero + `loader' address. + +2005-08-03 Werner Lemberg <[email protected]> + + * src/sfnt/sfdriver.c (sfnt_interface) [FT_OPTIMIZE_MEMORY]: + Reactivate pointers to tt_find_sbit_image and tt_load_sbit_metrics + to make X work again. + +2005-08-02 Werner Lemberg <[email protected]> + + * src/otvalid/otvcommn.h: Remove dead code. + +2005-07-31 Chia I Wu <[email protected]> + + * src/truetype/ttobjs.h (tt_size_run_fpgm, tt_size_run_prep): New + functions. + + * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): New + functions. + (tt_size_init): Add 4, instead of 2, (phantom) points to twilight + zone. + Move code that runs fpgm to tt_size_run_fpgm. + (Reset_Outline_Size): Move code that runs prep to tt_size_run_prep. + (tt_glyphzone_new): Allocate right size of arrays. + Set max_points and max_contours properly. + +2005-07-26 Chia I Wu <[email protected]> + + * src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary + computations and clean up. + + * src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the + internal copy of metrics. + +2005-07-12 Werner Lemberg <[email protected]> + + * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix prototype. + Reported by Xerxes. + +2005-07-04 Werner Lemberg <[email protected]> + + * include/freetype/internal/ftmemory.h (FT_REALLOC_ARRAY): Fix typo. + Reported by Brett Hutley. + +2005-06-30 David Turner <[email protected]> + + * src/sfnt/ftbitmap.c, src/truetype/ttgload.c, src/sfnt/ttcmap.c: + Removing compiler warnings (Visual C++ /W4). + + + Implement a work-around for broken C preprocessor in Visual C++ (it + has been confirmed by the MS developers that it is indeed a bug + which won't be fixed in the very near future). + + * Jamfile (FT2_COMPONENTS): Include otvalid (again). + + * src/otvalid/otvcommn.h (OTV_NAME, OTV_FUNC): New macros. + (OTV_NEST1, OTV_NEST2, OTV_NEST3): Use OTV_NAME and OTV_FUNC to + avoid argument expansion by argument prescan. + Append `Func' to all affected macros and change them to take just a + single argument. Example: `AttachList' is renamed to + `AttachListFunc'. + + * src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, + src/otvalid/otvgsub.c, src/otvjstf.c: Append `Func' to macros + affected by the changes to OTV_NESTx and modify them to take just a + single argument. + +2005-06-20 Chia I Wu <[email protected]> + + * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: New function + ft_glyphslot_grid_fit_metrics. + + * src/truetype/ttgload.c (compute_glyph_metrics): Use + ft_glyphslot_grid_fit_metrics. + + * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c + (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Use + ft_glyphslot_grid_fit_metrics. + FT_Outline_Get_CBox is called twice. + + * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Modify metrics to more + reasonable values when emboldening outline glyphs. The theoretic + ones are unrealistic. + +2005-06-16 Chia I Wu <[email protected]> + + * src/base/ftoutln.c (FT_Outline_Embolden): Strength should be + halved. + + * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default + strength. + Don't increase slot->advance.y. + +2005-06-16 Werner Lemberg <[email protected]> + + * include/freetype/freetype.h (FREETYPE_MINOR): Set to 2. + (FREETYPE_PATCH): Set to 0. + + * builds/unix/configure.ac (version_info): Set to 9:9:3. + Currently, we are still binary compatible. + + * builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/. + + * builds/freetype.mk (refdoc), README, Jamfile (RefDoc): + s/2.1.9/2.1.10/. + + * docs/CHANGES, docs/VERSION.DLL: Updated. + + * ChangeLog: Split off older entries into... + * ChangeLog.20, ChangeLog.21: These new files. + +2005-06-15 Kirill Smelkov <[email protected]> + + The next release will be 2.2.0, so don't worry about source code + backwards compatibility. + + * include/freetype/ftimage.h (FT_Outline_MoveToFunc, + FT_Outline_LineToFunc, FT_Outline_ConicToFunc, + FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc), + include/freetype/ftrender.h (FT_Glyph_TransformFunc, + FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate + parameters with `const' where appropriate. + +2005-06-15 Chia I Wu <[email protected]> + + * src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY + to make glyphs centered vertically. + + * src/truetype/ttgload.c (compute_glyph_metrics): Compute + vertBearingY to make glyphs centered vertically. + Fix some bugs in vertical metrics: + + . loader->pp3.y and loader->pp4.y are in 26.6 format, not in font + units. + . As we use the glyph's cbox to calculate the top bearing now + there is no need to adjust `top'. + +2005-06-15 Werner Lemberg <[email protected]> + + * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be + in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake. + +2005-06-13 Werner Lemberg <[email protected]> + + * docs/release: Update. + +---------------------------------------------------------------------------- + +Copyright 2005, 2006, 2007, 2008 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. + + +Local Variables: +version-control: never +coding: utf-8 +End: diff --git a/components/external/freetype/Jamrules b/components/external/freetype/Jamrules index e72579b5df..d8d1c7e617 100644 --- a/components/external/freetype/Jamrules +++ b/components/external/freetype/Jamrules @@ -1,71 +1,71 @@ -# FreeType 2 JamRules.
-#
-# Copyright 2001, 2002, 2003 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.
-
-
-# This file contains the Jam rules needed to build the FreeType 2 library.
-# It is shared by all Jamfiles and is included only once in the build
-# process.
-#
-
-
-# Call SubDirHdrs on a list of directories.
-#
-rule AddSubDirHdrs
-{
- local x ;
-
- for x in $(<)
- {
- SubDirHdrs $(x) ;
- }
-}
-
-
-# Determine prefix of library file. We must use "libxxxxx" on Unix systems,
-# while all other simply use the real name.
-#
-if $(UNIX)
-{
- LIBPREFIX ?= lib ;
-}
-else
-{
- LIBPREFIX ?= "" ;
-}
-
-# FT2_TOP contains the location of the FreeType source directory. You can
-# set it to a specific value if you want to compile the library as part of a
-# larger project.
-#
-FT2_TOP ?= $(DOT) ;
-
-# Define a new rule used to declare a sub directory of the Nirvana source
-# tree.
-#
-rule FT2_SubDir
-{
- if $(FT2_TOP) = $(DOT)
- {
- return [ FDirName $(<) ] ;
- }
- else
- {
- return [ FDirName $(FT2_TOP) $(<) ] ;
- }
-}
-
-# We also set ALL_LOCATE_TARGET in order to place all object and library
-# files in "objs".
-#
-ALL_LOCATE_TARGET ?= [ FT2_SubDir objs ] ;
-
-
-# end of Jamrules
+# FreeType 2 JamRules. +# +# Copyright 2001, 2002, 2003 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. + + +# This file contains the Jam rules needed to build the FreeType 2 library. +# It is shared by all Jamfiles and is included only once in the build +# process. +# + + +# Call SubDirHdrs on a list of directories. +# +rule AddSubDirHdrs +{ + local x ; + + for x in $(<) + { + SubDirHdrs $(x) ; + } +} + + +# Determine prefix of library file. We must use "libxxxxx" on Unix systems, +# while all other simply use the real name. +# +if $(UNIX) +{ + LIBPREFIX ?= lib ; +} +else +{ + LIBPREFIX ?= "" ; +} + +# FT2_TOP contains the location of the FreeType source directory. You can +# set it to a specific value if you want to compile the library as part of a +# larger project. +# +FT2_TOP ?= $(DOT) ; + +# Define a new rule used to declare a sub directory of the Nirvana source +# tree. +# +rule FT2_SubDir +{ + if $(FT2_TOP) = $(DOT) + { + return [ FDirName $(<) ] ; + } + else + { + return [ FDirName $(FT2_TOP) $(<) ] ; + } +} + +# We also set ALL_LOCATE_TARGET in order to place all object and library +# files in "objs". +# +ALL_LOCATE_TARGET ?= [ FT2_SubDir objs ] ; + + +# end of Jamrules diff --git a/components/external/freetype/README b/components/external/freetype/README index c580e15fb5..282791ef08 100644 --- a/components/external/freetype/README +++ b/components/external/freetype/README @@ -1,64 +1,64 @@ - Special notes to Unix users
- ===========================
-
- Please read the file `docs/UPGRADE.UNIX'. It contains important
- information regarding the installation of FreeType on Unix systems,
- especially GNU based operating systems like GNU/Linux.
-
- FreeType 2's library is called `libfreetype', FreeType 1's library
- is called `libttf'. They are *not* compatible!
-
-
- FreeType 2.3.12
- ===============
-
- Please read the docs/CHANGES file, it contains IMPORTANT
- INFORMATION.
-
- Read the files `docs/INSTALL' for installation instructions.
-
- The FreeType 2 API reference is located in `docs/reference'; use the
- file `ft2-doc.html' as the top entry point. Additional
- documentation is available as a separate package from our sites. Go
- to
-
- http://download.savannah.gnu.org/releases/freetype/
-
- and download one of the following files.
-
- freetype-doc-2.3.12.tar.bz2
- freetype-doc-2.3.12.tar.gz
- ftdoc2312.zip
-
-
- Bugs
- ====
-
- Please report bugs by e-mail to `[email protected]'. Don't
- forget to send a detailed explanation of the problem -- there is
- nothing worse than receiving a terse message that only says `it
- doesn't work'.
-
- Alternatively, you may submit a bug report at
-
- https://savannah.nongnu.org/bugs/?group=freetype
-
-
- Enjoy!
-
-
- The FreeType Team
-
-----------------------------------------------------------------------
-
-Copyright 2006, 2007, 2008, 2009, 2010 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.
-
-
---- end of README ---
+ Special notes to Unix users + =========================== + + Please read the file `docs/UPGRADE.UNIX'. It contains important + information regarding the installation of FreeType on Unix systems, + especially GNU based operating systems like GNU/Linux. + + FreeType 2's library is called `libfreetype', FreeType 1's library + is called `libttf'. They are *not* compatible! + + + FreeType 2.3.12 + =============== + + Please read the docs/CHANGES file, it contains IMPORTANT + INFORMATION. + + Read the files `docs/INSTALL' for installation instructions. + + The FreeType 2 API reference is located in `docs/reference'; use the + file `ft2-doc.html' as the top entry point. Additional + documentation is available as a separate package from our sites. Go + to + + http://download.savannah.gnu.org/releases/freetype/ + + and download one of the following files. + + freetype-doc-2.3.12.tar.bz2 + freetype-doc-2.3.12.tar.gz + ftdoc2312.zip + + + Bugs + ==== + + Please report bugs by e-mail to `[email protected]'. Don't + forget to send a detailed explanation of the problem -- there is + nothing worse than receiving a terse message that only says `it + doesn't work'. + + Alternatively, you may submit a bug report at + + https://savannah.nongnu.org/bugs/?group=freetype + + + Enjoy! + + + The FreeType Team + +---------------------------------------------------------------------- + +Copyright 2006, 2007, 2008, 2009, 2010 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. + + +--- end of README --- diff --git a/components/external/freetype/README.git b/components/external/freetype/README.git index bb36cf7b30..89f290706c 100644 --- a/components/external/freetype/README.git +++ b/components/external/freetype/README.git @@ -1,46 +1,46 @@ -The git archive doesn't contain pre-built configuration scripts for
-UNIXish platforms. To generate them say
-
- sh autogen.sh
-
-which in turn depends on the following packages:
-
- automake (1.10.1)
- libtool (2.2.4)
- autoconf (2.62)
-
-The versions given in parentheses are known to work. Newer versions
-should work too, of course. Note that autogen.sh also sets up proper
-file permissions for the `configure' and auxiliary scripts.
-
-The autogen.sh script now checks the version of above three packages
-whether they match the numbers above. Otherwise it will complain and
-suggest either upgrading or using an environment variable to point to
-a more recent version of the required tool(s).
-
-Note that `aclocal' is provided by the `automake' package on Linux,
-and that `libtoolize' is called `glibtoolize' on Darwin (OS X).
-
-
-For static builds which don't use platform specific optimizations, no
-configure script is necessary at all; saying
-
- make setup ansi
- make
-
-should work on all platforms which have GNU make (or makepp).
-
-
-----------------------------------------------------------------------
-
-Copyright 2005, 2006, 2007, 2008, 2009 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.
-
-
---- end of README.CVS ---
+The git archive doesn't contain pre-built configuration scripts for +UNIXish platforms. To generate them say + + sh autogen.sh + +which in turn depends on the following packages: + + automake (1.10.1) + libtool (2.2.4) + autoconf (2.62) + +The versions given in parentheses are known to work. Newer versions +should work too, of course. Note that autogen.sh also sets up proper +file permissions for the `configure' and auxiliary scripts. + +The autogen.sh script now checks the version of above three packages +whether they match the numbers above. Otherwise it will complain and +suggest either upgrading or using an environment variable to point to +a more recent version of the required tool(s). + +Note that `aclocal' is provided by the `automake' package on Linux, +and that `libtoolize' is called `glibtoolize' on Darwin (OS X). + + +For static builds which don't use platform specific optimizations, no +configure script is necessary at all; saying + + make setup ansi + make + +should work on all platforms which have GNU make (or makepp). + + +---------------------------------------------------------------------- + +Copyright 2005, 2006, 2007, 2008, 2009 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. + + +--- end of README.CVS --- diff --git a/components/external/freetype/builds/amiga/README b/components/external/freetype/builds/amiga/README index dd82d97421..2b8f8e87db 100644 --- a/components/external/freetype/builds/amiga/README +++ b/components/external/freetype/builds/amiga/README @@ -1,110 +1,110 @@ -
-README for the builds/amiga subdirectory.
-
-Copyright 2005 by
-Werner Lemberg and Detlef W�rkner.
-
-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.
-
-
-The makefile.os4 is for the AmigaOS4 SDK. To use it, type
-"make -f makefile.os4", it produces a link library libft2_ppc.a.
-
-The makefile is for ppc-morphos-gcc-2.95.3-bin.tgz (gcc 2.95.3 hosted on
-68k-Amiga producing MorphOS-PPC-binaries from http://www.morphos.de).
-To use it, type "make assign", then "make"; it produces a link library
-libft2_ppc.a.
-
-The smakefile is a makefile for Amiga SAS/C 6.58 (no longer available,
-latest sold version was 6.50, updates can be found in Aminet). It is
-based on the version found in the sourcecode of ttf.library 0.83b for
-FreeType 1.3.1 from Richard Griffith ([email protected],
-http://ragriffi.home.sprynet.com).
-
-You will also need the latest include files and amiga.lib from the
-Amiga web site (http://www.amiga.com/3.9/download/NDK3.9.lha) for
-AmigaOS 3.9; the generated code should work under AmigaOS 2.04 and up.
-
-To use it, call "smake assign" and then "smake" from the builds/amiga
-directory. The results are:
-
-- A link library "ft2_680x0.lib" (where x depends on the setting of
- the CPU entry in the smakefile) containing all FreeType2 parts
- except of the init code, debugging code, and the system interface
- code.
-
-- ftsystem.o, an object module containing the standard version of the
- system interface code which uses fopen() fclose() fread() fseek()
- ftell() malloc() realloc() and free() from lib:sc.lib (not pure).
-
-- ftsystempure.o, an object module containing the pure version of the
- system interface code which uses Open() Close() Read() Seek()
- ExamineFH() AsmAllocPooled() AsmFreePooled() etc. This version can
- be used in both normal programs and in Amiga run-time shared system
- librarys (can be linked with lib:libinit.o, no copying of DATA and
- BSS hunks for each OpenLibrary() necessary). Source code is in
- src/base/ftsystem.c.
-
-- ftdebug.o, an object module containing the standard version of the
- debugging code which uses vprintf() and exit() (not pure).
- Debugging can be turned on in FT:include/freetype/config/ftoption.h
- and with FT_SetTraceLevel().
-
-- ftdebugpure.o, an object module containing the pure version of the
- debugging code which uses KVPrintf() from lib:debug.lib and no
- exit(). For debugging of Amiga run-time shared system libraries.
- Source code is in src/base/ftdebug.c.
-
-- NO ftinit.o. Because linking with a link library should result in
- linking only the needed object modules in it, but standard
- ftsystem.o would force ALL FreeType2 modules to be linked to your
- program, I decided to use a different scheme: You must #include
- FT:src/base/ftinit.c in your sourcecode and specify with #define
- statements which modules you need. See
- include/freetype/config/ftmodule.h.
-
-
-To use in your own programs:
-
-- Insert the #define and #include statements from top of
- include/freetype/config/ftmodule.h in your source code and uncomment
- the #define statements for the FreeType2 modules you need.
-
-- You can use either PARAMETERS=REGISTER or PARAMETERS=STACK for
- calling the FreeType2 functions, because the link library and the
- object files are compiled with PARAMETERS=BOTH.
-
-- "smake assign" (assign "FT:" to the FreeType2 main directory).
-
-- Compile your program.
-
-- Link with either ftsystem.o or ftsystempure.o, if debugging enabled
- with either ftdebug.o or (ftdebugpure.o and lib:debug.lib), and with
- ft2_680x0.lib as link library.
-
-
-To adapt to other compilers:
-
-- The standard ANSI C maximum length of 31 significant characters in
- identifiers is not enough for FreeType2. Check if your compiler has
- a minimum length of 40 significant characters or can be switched to
- it. "idlen=40" is the option for SAS/C. Setting #define
- HAVE_LIMIT_ON_IDENTS in an include file may also work (not tested).
-
-- Make sure that the include directory in builds/amiga is searched
- before the normal FreeType2 include directory, so you are able to
- replace problematic include files with your own version (same may be
- useful for the src directory).
-
-- An example of how to replace/workaround a problematic include file
- is include/config/ftconfig.h; it changes a #define that would
- prevent SAS/C from generating XDEF's where it should do that and
- then includes the standard FreeType2 include file.
-
-Local Variables:
-coding: latin-1
-End:
+ +README for the builds/amiga subdirectory. + +Copyright 2005 by +Werner Lemberg and Detlef W�rkner. + +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. + + +The makefile.os4 is for the AmigaOS4 SDK. To use it, type +"make -f makefile.os4", it produces a link library libft2_ppc.a. + +The makefile is for ppc-morphos-gcc-2.95.3-bin.tgz (gcc 2.95.3 hosted on +68k-Amiga producing MorphOS-PPC-binaries from http://www.morphos.de). +To use it, type "make assign", then "make"; it produces a link library +libft2_ppc.a. + +The smakefile is a makefile for Amiga SAS/C 6.58 (no longer available, +latest sold version was 6.50, updates can be found in Aminet). It is +based on the version found in the sourcecode of ttf.library 0.83b for +FreeType 1.3.1 from Richard Griffith ([email protected], +http://ragriffi.home.sprynet.com). + +You will also need the latest include files and amiga.lib from the +Amiga web site (http://www.amiga.com/3.9/download/NDK3.9.lha) for +AmigaOS 3.9; the generated code should work under AmigaOS 2.04 and up. + +To use it, call "smake assign" and then "smake" from the builds/amiga +directory. The results are: + +- A link library "ft2_680x0.lib" (where x depends on the setting of + the CPU entry in the smakefile) containing all FreeType2 parts + except of the init code, debugging code, and the system interface + code. + +- ftsystem.o, an object module containing the standard version of the + system interface code which uses fopen() fclose() fread() fseek() + ftell() malloc() realloc() and free() from lib:sc.lib (not pure). + +- ftsystempure.o, an object module containing the pure version of the + system interface code which uses Open() Close() Read() Seek() + ExamineFH() AsmAllocPooled() AsmFreePooled() etc. This version can + be used in both normal programs and in Amiga run-time shared system + librarys (can be linked with lib:libinit.o, no copying of DATA and + BSS hunks for each OpenLibrary() necessary). Source code is in + src/base/ftsystem.c. + +- ftdebug.o, an object module containing the standard version of the + debugging code which uses vprintf() and exit() (not pure). + Debugging can be turned on in FT:include/freetype/config/ftoption.h + and with FT_SetTraceLevel(). + +- ftdebugpure.o, an object module containing the pure version of the + debugging code which uses KVPrintf() from lib:debug.lib and no + exit(). For debugging of Amiga run-time shared system libraries. + Source code is in src/base/ftdebug.c. + +- NO ftinit.o. Because linking with a link library should result in + linking only the needed object modules in it, but standard + ftsystem.o would force ALL FreeType2 modules to be linked to your + program, I decided to use a different scheme: You must #include + FT:src/base/ftinit.c in your sourcecode and specify with #define + statements which modules you need. See + include/freetype/config/ftmodule.h. + + +To use in your own programs: + +- Insert the #define and #include statements from top of + include/freetype/config/ftmodule.h in your source code and uncomment + the #define statements for the FreeType2 modules you need. + +- You can use either PARAMETERS=REGISTER or PARAMETERS=STACK for + calling the FreeType2 functions, because the link library and the + object files are compiled with PARAMETERS=BOTH. + +- "smake assign" (assign "FT:" to the FreeType2 main directory). + +- Compile your program. + +- Link with either ftsystem.o or ftsystempure.o, if debugging enabled + with either ftdebug.o or (ftdebugpure.o and lib:debug.lib), and with + ft2_680x0.lib as link library. + + +To adapt to other compilers: + +- The standard ANSI C maximum length of 31 significant characters in + identifiers is not enough for FreeType2. Check if your compiler has + a minimum length of 40 significant characters or can be switched to + it. "idlen=40" is the option for SAS/C. Setting #define + HAVE_LIMIT_ON_IDENTS in an include file may also work (not tested). + +- Make sure that the include directory in builds/amiga is searched + before the normal FreeType2 include directory, so you are able to + replace problematic include files with your own version (same may be + useful for the src directory). + +- An example of how to replace/workaround a problematic include file + is include/config/ftconfig.h; it changes a #define that would + prevent SAS/C from generating XDEF's where it should do that and + then includes the standard FreeType2 include file. + +Local Variables: +coding: latin-1 +End: diff --git a/components/external/freetype/builds/amiga/makefile.os4 b/components/external/freetype/builds/amiga/makefile.os4 index 212f6f7025..edd88eba94 100644 --- a/components/external/freetype/builds/amiga/makefile.os4 +++ b/components/external/freetype/builds/amiga/makefile.os4 @@ -1,297 +1,297 @@ -#
-# Makefile for FreeType2 link library using gcc 4.0.3 from the
-# AmigaOS4 SDK
-#
-
-
-# Copyright 2005, 2006, 2007, 2009 by
-# Werner Lemberg and Detlef W�rkner.
-#
-# 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.
-
-
-# to build from the builds/amiga directory call
-#
-# make -f makefile.os4
-#
-# Your programs source code should start with this
-# (uncomment the parts you do not need to keep the program small):
-# ---8<---
-#define FT_USE_AUTOFIT // autofitter
-#define FT_USE_RASTER // monochrome rasterizer
-#define FT_USE_SMOOTH // anti-aliasing rasterizer
-#define FT_USE_TT // truetype font driver
-#define FT_USE_T1 // type1 font driver
-#define FT_USE_T42 // type42 font driver
-#define FT_USE_T1CID // cid-keyed type1 font driver
-#define FT_USE_CFF // opentype font driver
-#define FT_USE_BDF // bdf bitmap font driver
-#define FT_USE_PCF // pcf bitmap font driver
-#define FT_USE_PFR // pfr font driver
-#define FT_USE_WINFNT // windows .fnt|.fon bitmap font driver
-#define FT_USE_OTV // opentype validator
-#define FT_USE_GXV // truetype gx validator
-#include "FT:src/base/ftinit.c"
-# ---8<---
-#
-# link your programs with libft2_ppc.a and either ftsystem.ppc.o or ftsystempure.ppc.o
-# (and either ftdebug.ppc.o or ftdebugpure.ppc.o if you enabled FT_DEBUG_LEVEL_ERROR or
-# FT_DEBUG_LEVEL_TRACE in include/freetype/config/ftoption.h).
-
-all: assign libft2_ppc.a ftsystem.ppc.o ftsystempure.ppc.o
-
-assign:
- assign FT: //
-
-CC = ppc-amigaos-gcc
-AR = ppc-amigaos-ar
-RANLIB = ppc-amigaos-ranlib
-
-DIRFLAGS = -Iinclude -I/FT/src -I/FT/include -I/SDK/include
-
-WARNINGS = -Wall -W -Wundef -Wpointer-arith -Wbad-function-cast \
- -Waggregate-return -Wwrite-strings -Wshadow
-
-OPTIONS = -DFT2_BUILD_LIBRARY -DNDEBUG -fno-builtin
-OPTIMIZE = -O2 -fomit-frame-pointer -fstrength-reduce -finline-functions
-
-CFLAGS = -mcrt=clib2 $(DIRFLAGS) $(WARNINGS) $(FT2FLAGS) $(OPTIONS) $(OPTIMIZE)
-
-#
-# FreeType2 library base
-#
-ftbase.ppc.o: FT:src/base/ftbase.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbase.c
-
-ftinit.ppc.o: FT:src/base/ftinit.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftinit.c
-
-ftsystem.ppc.o: FT:src/base/ftsystem.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftsystem.c
-
-# pure version for use in run-time library etc
-ftsystempure.ppc.o: src/base/ftsystem.c
- $(CC) -c $(CFLAGS) -o $@ src/base/ftsystem.c
-
-#
-# FreeType2 library base extensions
-#
-ftbbox.ppc.o: FT:src/base/ftbbox.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbbox.c
-
-ftbdf.ppc.o: FT:src/base/ftbdf.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbdf.c
-
-ftbitmap.ppc.o: FT:src/base/ftbitmap.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbitmap.c
-
-ftcid.ppc.o: FT:src/base/ftcid.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftcid.c
-
-ftdebug.ppc.o: FT:src/base/ftdebug.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftdebug.c
-
-# pure version for use in run-time library etc
-ftdebugpure.ppc.o: src/base/ftdebug.c
- $(CC) -c $(CFLAGS) -o $@ src/base/ftdebug.c
-
-ftfstype.ppc.o: FT:src/base/ftfstype.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftfstype.c
-
-ftgasp.ppc.o: FT:src/base/ftgasp.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftgasp.c
-
-ftglyph.ppc.o: FT:src/base/ftglyph.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftglyph.c
-
-ftgxval.ppc.o: FT:src/base/ftgxval.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftgxval.c
-
-ftlcdfil.ppc.o: FT:src/base/ftlcdfil.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftlcdfil.c
-
-ftmm.ppc.o: FT:src/base/ftmm.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftmm.c
-
-ftotval.ppc.o: FT:src/base/ftotval.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftotval.c
-
-ftpatent.ppc.o: FT:src/base/ftpatent.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftpatent.c
-
-ftpfr.ppc.o: FT:src/base/ftpfr.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftpfr.c
-
-ftstroke.ppc.o: FT:src/base/ftstroke.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftstroke.c
-
-ftsynth.ppc.o: FT:src/base/ftsynth.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftsynth.c
-
-fttype1.ppc.o: FT:src/base/fttype1.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/fttype1.c
-
-ftwinfnt.ppc.o: FT:src/base/ftwinfnt.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftwinfnt.c
-
-ftxf86.ppc.o: FT:src/base/ftxf86.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftxf86.c
-
-#
-# FreeType2 library autofitting module
-#
-autofit.ppc.o: FT:src/autofit/autofit.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/autofit/autofit.c
-
-#
-# FreeType2 library postscript hinting module
-#
-pshinter.ppc.o: FT:src/pshinter/pshinter.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/pshinter/pshinter.c
-
-#
-# FreeType2 library PS support module
-#
-psaux.ppc.o: FT:src/psaux/psaux.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/psaux/psaux.c
-
-#
-# FreeType2 library PS glyph names module
-#
-psnames.ppc.o: FT:src/psnames/psnames.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/psnames/psnames.c
-
-#
-# FreeType2 library monochrome raster module
-#
-raster.ppc.o: FT:src/raster/raster.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/raster/raster.c
-
-#
-# FreeType2 library anti-aliasing raster module
-#
-smooth.ppc.o: FT:src/smooth/smooth.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/smooth/smooth.c
-
-#
-# FreeType2 library 'sfnt' module
-#
-sfnt.ppc.o: FT:src/sfnt/sfnt.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/sfnt/sfnt.c
-
-#
-# FreeType2 library glyph and image caching system
-#
-ftcache.ppc.o: FT:src/cache/ftcache.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/cache/ftcache.c
-
-#
-# FreeType2 library OpenType font driver
-#
-cff.ppc.o: FT:src/cff/cff.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/cff/cff.c
-
-#
-# FreeType2 library TrueType font driver
-#
-truetype.ppc.o: FT:src/truetype/truetype.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/truetype/truetype.c
-
-#
-# FreeType2 library Type1 font driver
-#
-type1.ppc.o: FT:src/type1/type1.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/type1/type1.c
-
-#
-# FreeType2 library Type42 font driver
-#
-type42.ppc.o: FT:src/type42/type42.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/type42/type42.c
-
-#
-# FreeType2 library CID-keyed Type1 font driver
-#
-type1cid.ppc.o: FT:src/cid/type1cid.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/cid/type1cid.c
-
-#
-# FreeType2 library BDF bitmap font driver
-#
-bdf.ppc.o: FT:src/bdf/bdf.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/bdf/bdf.c
-
-#
-# FreeType2 library PCF bitmap font driver
-#
-pcf.ppc.o: FT:src/pcf/pcf.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/pcf/pcf.c
-
-#
-# FreeType2 library gzip support for compressed PCF bitmap fonts
-#
-gzip.ppc.o: FT:src/gzip/ftgzip.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/gzip/ftgzip.c
-
-#
-# FreeType2 library compress support for compressed PCF bitmap fonts
-#
-lzw.ppc.o: FT:src/lzw/ftlzw.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/lzw/ftlzw.c
-
-#
-# FreeType2 library PFR font driver
-#
-pfr.ppc.o: FT:src/pfr/pfr.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/pfr/pfr.c
-
-#
-# FreeType2 library Windows FNT/FON bitmap font driver
-#
-winfnt.ppc.o: FT:src/winfonts/winfnt.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/winfonts/winfnt.c
-
-#
-# FreeType2 library TrueTypeGX Validator
-#
-gxvalid.ppc.o: FT:src/gxvalid/gxvalid.c
- $(CC) -c $(CFLAGS) -Wno-aggregate-return -o $@ /FT/src/gxvalid/gxvalid.c
-
-#
-# FreeType2 library OpenType validator
-#
-otvalid.ppc.o: FT:src/otvalid/otvalid.c
- $(CC) -c $(CFLAGS) -o $@ /FT/src/otvalid/otvalid.c
-
-BASE = ftbase.ppc.o ftbbox.ppc.o ftbdf.ppc.o ftbitmap.ppc.o ftcid.ppc.o \
- ftfstype.ppc.o ftgasp.ppc.o ftglyph.ppc.o ftgxval.ppc.o \
- ftlcdfil.ppc.o ftmm.ppc.o ftotval.ppc.o ftpatent.ppc.o ftpfr.ppc.o \
- ftstroke.ppc.o ftsynth.ppc.o fttype1.ppc.o ftwinfnt.ppc.o \
- ftxf86.ppc.o
-
-DEBUG = ftdebug.ppc.o ftdebugpure.ppc.o
-
-AFIT = autofit.ppc.o
-
-GXV = gxvalid.ppc.o
-
-OTV = otvalid.ppc.o
-
-PS = psaux.ppc.o psnames.ppc.o pshinter.ppc.o
-
-RASTER = raster.ppc.o smooth.ppc.o
-
-FONTD = cff.ppc.o type1.ppc.o type42.ppc.o type1cid.ppc.o truetype.ppc.o\
- bdf.ppc.o pcf.ppc.o pfr.ppc.o winfnt.ppc.o
-
-libft2_ppc.a: $(BASE) $(AFIT) $(GXV) $(OTV) $(PS) $(RASTER) sfnt.ppc.o ftcache.ppc.o $(FONTD) gzip.ppc.o lzw.ppc.o
- $(AR) r $@ $(BASE) $(AFIT) $(GXV) $(OTV) $(PS) $(RASTER) sfnt.ppc.o ftcache.ppc.o $(FONTD) gzip.ppc.o lzw.ppc.o
- $(RANLIB) $@
-
-#Local Variables:
-#coding: latin-1
-#End:
+# +# Makefile for FreeType2 link library using gcc 4.0.3 from the +# AmigaOS4 SDK +# + + +# Copyright 2005, 2006, 2007, 2009 by +# Werner Lemberg and Detlef W�rkner. +# +# 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. + + +# to build from the builds/amiga directory call +# +# make -f makefile.os4 +# +# Your programs source code should start with this +# (uncomment the parts you do not need to keep the program small): +# ---8<--- +#define FT_USE_AUTOFIT // autofitter +#define FT_USE_RASTER // monochrome rasterizer +#define FT_USE_SMOOTH // anti-aliasing rasterizer +#define FT_USE_TT // truetype font driver +#define FT_USE_T1 // type1 font driver +#define FT_USE_T42 // type42 font driver +#define FT_USE_T1CID // cid-keyed type1 font driver +#define FT_USE_CFF // opentype font driver +#define FT_USE_BDF // bdf bitmap font driver +#define FT_USE_PCF // pcf bitmap font driver +#define FT_USE_PFR // pfr font driver +#define FT_USE_WINFNT // windows .fnt|.fon bitmap font driver +#define FT_USE_OTV // opentype validator +#define FT_USE_GXV // truetype gx validator +#include "FT:src/base/ftinit.c" +# ---8<--- +# +# link your programs with libft2_ppc.a and either ftsystem.ppc.o or ftsystempure.ppc.o +# (and either ftdebug.ppc.o or ftdebugpure.ppc.o if you enabled FT_DEBUG_LEVEL_ERROR or +# FT_DEBUG_LEVEL_TRACE in include/freetype/config/ftoption.h). + +all: assign libft2_ppc.a ftsystem.ppc.o ftsystempure.ppc.o + +assign: + assign FT: // + +CC = ppc-amigaos-gcc +AR = ppc-amigaos-ar +RANLIB = ppc-amigaos-ranlib + +DIRFLAGS = -Iinclude -I/FT/src -I/FT/include -I/SDK/include + +WARNINGS = -Wall -W -Wundef -Wpointer-arith -Wbad-function-cast \ + -Waggregate-return -Wwrite-strings -Wshadow + +OPTIONS = -DFT2_BUILD_LIBRARY -DNDEBUG -fno-builtin +OPTIMIZE = -O2 -fomit-frame-pointer -fstrength-reduce -finline-functions + +CFLAGS = -mcrt=clib2 $(DIRFLAGS) $(WARNINGS) $(FT2FLAGS) $(OPTIONS) $(OPTIMIZE) + +# +# FreeType2 library base +# +ftbase.ppc.o: FT:src/base/ftbase.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbase.c + +ftinit.ppc.o: FT:src/base/ftinit.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftinit.c + +ftsystem.ppc.o: FT:src/base/ftsystem.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftsystem.c + +# pure version for use in run-time library etc +ftsystempure.ppc.o: src/base/ftsystem.c + $(CC) -c $(CFLAGS) -o $@ src/base/ftsystem.c + +# +# FreeType2 library base extensions +# +ftbbox.ppc.o: FT:src/base/ftbbox.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbbox.c + +ftbdf.ppc.o: FT:src/base/ftbdf.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbdf.c + +ftbitmap.ppc.o: FT:src/base/ftbitmap.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbitmap.c + +ftcid.ppc.o: FT:src/base/ftcid.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftcid.c + +ftdebug.ppc.o: FT:src/base/ftdebug.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftdebug.c + +# pure version for use in run-time library etc +ftdebugpure.ppc.o: src/base/ftdebug.c + $(CC) -c $(CFLAGS) -o $@ src/base/ftdebug.c + +ftfstype.ppc.o: FT:src/base/ftfstype.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftfstype.c + +ftgasp.ppc.o: FT:src/base/ftgasp.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftgasp.c + +ftglyph.ppc.o: FT:src/base/ftglyph.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftglyph.c + +ftgxval.ppc.o: FT:src/base/ftgxval.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftgxval.c + +ftlcdfil.ppc.o: FT:src/base/ftlcdfil.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftlcdfil.c + +ftmm.ppc.o: FT:src/base/ftmm.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftmm.c + +ftotval.ppc.o: FT:src/base/ftotval.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftotval.c + +ftpatent.ppc.o: FT:src/base/ftpatent.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftpatent.c + +ftpfr.ppc.o: FT:src/base/ftpfr.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftpfr.c + +ftstroke.ppc.o: FT:src/base/ftstroke.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftstroke.c + +ftsynth.ppc.o: FT:src/base/ftsynth.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftsynth.c + +fttype1.ppc.o: FT:src/base/fttype1.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/fttype1.c + +ftwinfnt.ppc.o: FT:src/base/ftwinfnt.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftwinfnt.c + +ftxf86.ppc.o: FT:src/base/ftxf86.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftxf86.c + +# +# FreeType2 library autofitting module +# +autofit.ppc.o: FT:src/autofit/autofit.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/autofit/autofit.c + +# +# FreeType2 library postscript hinting module +# +pshinter.ppc.o: FT:src/pshinter/pshinter.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/pshinter/pshinter.c + +# +# FreeType2 library PS support module +# +psaux.ppc.o: FT:src/psaux/psaux.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/psaux/psaux.c + +# +# FreeType2 library PS glyph names module +# +psnames.ppc.o: FT:src/psnames/psnames.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/psnames/psnames.c + +# +# FreeType2 library monochrome raster module +# +raster.ppc.o: FT:src/raster/raster.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/raster/raster.c + +# +# FreeType2 library anti-aliasing raster module +# +smooth.ppc.o: FT:src/smooth/smooth.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/smooth/smooth.c + +# +# FreeType2 library 'sfnt' module +# +sfnt.ppc.o: FT:src/sfnt/sfnt.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/sfnt/sfnt.c + +# +# FreeType2 library glyph and image caching system +# +ftcache.ppc.o: FT:src/cache/ftcache.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/cache/ftcache.c + +# +# FreeType2 library OpenType font driver +# +cff.ppc.o: FT:src/cff/cff.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/cff/cff.c + +# +# FreeType2 library TrueType font driver +# +truetype.ppc.o: FT:src/truetype/truetype.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/truetype/truetype.c + +# +# FreeType2 library Type1 font driver +# +type1.ppc.o: FT:src/type1/type1.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/type1/type1.c + +# +# FreeType2 library Type42 font driver +# +type42.ppc.o: FT:src/type42/type42.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/type42/type42.c + +# +# FreeType2 library CID-keyed Type1 font driver +# +type1cid.ppc.o: FT:src/cid/type1cid.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/cid/type1cid.c + +# +# FreeType2 library BDF bitmap font driver +# +bdf.ppc.o: FT:src/bdf/bdf.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/bdf/bdf.c + +# +# FreeType2 library PCF bitmap font driver +# +pcf.ppc.o: FT:src/pcf/pcf.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/pcf/pcf.c + +# +# FreeType2 library gzip support for compressed PCF bitmap fonts +# +gzip.ppc.o: FT:src/gzip/ftgzip.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/gzip/ftgzip.c + +# +# FreeType2 library compress support for compressed PCF bitmap fonts +# +lzw.ppc.o: FT:src/lzw/ftlzw.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/lzw/ftlzw.c + +# +# FreeType2 library PFR font driver +# +pfr.ppc.o: FT:src/pfr/pfr.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/pfr/pfr.c + +# +# FreeType2 library Windows FNT/FON bitmap font driver +# +winfnt.ppc.o: FT:src/winfonts/winfnt.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/winfonts/winfnt.c + +# +# FreeType2 library TrueTypeGX Validator +# +gxvalid.ppc.o: FT:src/gxvalid/gxvalid.c + $(CC) -c $(CFLAGS) -Wno-aggregate-return -o $@ /FT/src/gxvalid/gxvalid.c + +# +# FreeType2 library OpenType validator +# +otvalid.ppc.o: FT:src/otvalid/otvalid.c + $(CC) -c $(CFLAGS) -o $@ /FT/src/otvalid/otvalid.c + +BASE = ftbase.ppc.o ftbbox.ppc.o ftbdf.ppc.o ftbitmap.ppc.o ftcid.ppc.o \ + ftfstype.ppc.o ftgasp.ppc.o ftglyph.ppc.o ftgxval.ppc.o \ + ftlcdfil.ppc.o ftmm.ppc.o ftotval.ppc.o ftpatent.ppc.o ftpfr.ppc.o \ + ftstroke.ppc.o ftsynth.ppc.o fttype1.ppc.o ftwinfnt.ppc.o \ + ftxf86.ppc.o + +DEBUG = ftdebug.ppc.o ftdebugpure.ppc.o + +AFIT = autofit.ppc.o + +GXV = gxvalid.ppc.o + +OTV = otvalid.ppc.o + +PS = psaux.ppc.o psnames.ppc.o pshinter.ppc.o + +RASTER = raster.ppc.o smooth.ppc.o + +FONTD = cff.ppc.o type1.ppc.o type42.ppc.o type1cid.ppc.o truetype.ppc.o\ + bdf.ppc.o pcf.ppc.o pfr.ppc.o winfnt.ppc.o + +libft2_ppc.a: $(BASE) $(AFIT) $(GXV) $(OTV) $(PS) $(RASTER) sfnt.ppc.o ftcache.ppc.o $(FONTD) gzip.ppc.o lzw.ppc.o + $(AR) r $@ $(BASE) $(AFIT) $(GXV) $(OTV) $(PS) $(RASTER) sfnt.ppc.o ftcache.ppc.o $(FONTD) gzip.ppc.o lzw.ppc.o + $(RANLIB) $@ + +#Local Variables: +#coding: latin-1 +#End: diff --git a/components/external/freetype/builds/amiga/smakefile b/components/external/freetype/builds/amiga/smakefile index a001745619..2a561a8828 100644 --- a/components/external/freetype/builds/amiga/smakefile +++ b/components/external/freetype/builds/amiga/smakefile @@ -1,297 +1,297 @@ -#
-# Makefile for FreeType2 link library using Amiga SAS/C 6.58
-#
-
-
-# Copyright 2005,2006, 2007, 2009 by
-# Werner Lemberg and Detlef W�rkner.
-#
-# 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.
-
-
-# to build from the builds/amiga directory call
-#
-# smake assign
-# smake
-#
-# Your programs source code should start with this
-# (uncomment the parts you do not need to keep the program small):
-# ---8<---
-#define FT_USE_AUTOFIT // autofitter
-#define FT_USE_RASTER // monochrome rasterizer
-#define FT_USE_SMOOTH // anti-aliasing rasterizer
-#define FT_USE_TT // truetype font driver
-#define FT_USE_T1 // type1 font driver
-#define FT_USE_T42 // type42 font driver
-#define FT_USE_T1CID // cid-keyed type1 font driver
-#define FT_USE_CFF // opentype font driver
-#define FT_USE_BDF // bdf bitmap font driver
-#define FT_USE_PCF // pcf bitmap font driver
-#define FT_USE_PFR // pfr font driver
-#define FT_USE_WINFNT // windows .fnt|.fon bitmap font driver
-#define FT_USE_OTV // opentype validator
-#define FT_USE_GXV // truetype gx validator
-#include "FT:src/base/ftinit.c"
-# ---8<---
-#
-# link your programs with ft2_680x0.lib and either ftsystem.o or ftsystempure.o
-# (and either ftdebug.o or ftdebugpure.o if you enabled FT_DEBUG_LEVEL_ERROR or
-# FT_DEBUG_LEVEL_TRACE in include/freetype/config/ftoption.h).
-
-OBJBASE = ftbase.o ftbbox.o ftbdf.o ftbitmap.o ftcid.o ftfstype.o ftgasp.o \
- ftglyph.o ftgxval.o ftlcdfil.o ftmm.o ftotval.o ftpatent.o ftpfr.o \
- ftstroke.o ftsynth.o fttype1.o ftwinfnt.o ftxf86.o
-
-OBJSYSTEM = ftsystem.o ftsystempure.o
-
-OBJDEBUG = ftdebug.o ftdebugpure.o
-
-OBJAFIT = autofit.o
-
-OBJGXV = gxvalid.o
-
-OBJOTV = otvalid.o
-
-OBJPS = psaux.o psnames.o pshinter.o
-
-OBJRASTER = raster.o smooth.o
-
-OBJSFNT = sfnt.o
-
-OBJCACHE = ftcache.o
-
-OBJFONTD = cff.o type1.o type42.o type1cid.o\
- truetype.o winfnt.o bdf.o pcf.o pfr.o
-
-CORE = FT:src/
-
-CPU = 68000
-#CPU = 68020
-#CPU = 68030
-#CPU = 68040
-#CPU = 68060
-
-OPTIMIZER = optinlocal
-
-SCFLAGS = optimize opttime optsched strmerge data=faronly idlen=50 cpu=$(CPU)\
- idir=include/ idir=$(CORE) idir=FT:include/ nostackcheck nochkabort\
- noicons ignore=79,85,110,306 parameters=both define=FT2_BUILD_LIBRARY
-
-LIB = ft2_$(CPU).lib
-
-# sample linker options
-OPTS = link lib=$(LIB),lib:sc.lib,lib:amiga.lib,lib:debug.lib\
- smallcode smalldata noicons utillib
-
-# sample program entry
-#myprog: myprog.c ftsystem.o $(LIB)
-# sc $< programname=$@ ftsystem.o $(SCFLAGS) $(OPTS)
-
-all: $(LIB) $(OBJSYSTEM) $(OBJDEBUG)
-
-assign:
- assign FT: //
-
-# uses separate object modules in lib to make for easier debugging
-# also, can make smaller programs if entire engine is not used
-ft2_$(CPU).lib: $(OBJBASE) $(OBJAFIT) $(OBJOTV) $(OBJPS) $(OBJRASTER) $(OBJSFNT) $(OBJCACHE) $(OBJFONTD) lzw.o gzip.o
- oml $@ r $(OBJBASE) $(OBJAFIT) $(OBJOTV) $(OBJPS) $(OBJRASTER) $(OBJSFNT) $(OBJCACHE) $(OBJFONTD) lzw.o gzip.o
-
-clean:
- -delete \#?.o
-
-realclean: clean
- -delete ft2$(CPU).lib
-
-#
-# freetype library base
-#
-ftbase.o: $(CORE)base/ftbase.c
- sc $(SCFLAGS) objname=$@ $<
-ftinit.o: $(CORE)base/ftinit.c
- sc $(SCFLAGS) objname=$@ $<
-ftsystem.o: $(CORE)base/ftsystem.c
- sc $(SCFLAGS) objname=$@ $<
-ftsystempure.o: src/base/ftsystem.c ## pure version for use in run-time library etc
- sc $(SCFLAGS) objname=$@ $<
-ftdebug.o: $(CORE)base/ftdebug.c
- sc $(SCFLAGS) objname=$@ $<
-ftdebugpure.o: src/base/ftdebug.c ## pure version for use in run-time library etc
- sc $(SCFLAGS) objname=$@ $<
-#
-# freetype library base extensions
-#
-ftbbox.o: $(CORE)base/ftbbox.c
- sc $(SCFLAGS) objname=$@ $<
-ftbdf.o: $(CORE)base/ftbdf.c
- sc $(SCFLAGS) objname=$@ $<
-ftbitmap.o: $(CORE)base/ftbitmap.c
- sc $(SCFLAGS) objname=$@ $<
-ftcid.o: $(CORE)base/ftcid.c
- sc $(SCFLAGS) objname=$@ $<
-ftfstype.o: $(CORE)base/ftfstype.c
- sc $(SCFLAGS) objname=$@ $<
-ftgasp.o: $(CORE)base/ftgasp.c
- sc $(SCFLAGS) objname=$@ $<
-ftglyph.o: $(CORE)base/ftglyph.c
- sc $(SCFLAGS) objname=$@ $<
-ftgxval.o: $(CORE)base/ftgxval.c
- sc $(SCFLAGS) objname=$@ $<
-ftlcdfil.o: $(CORE)base/ftlcdfil.c
- sc $(SCFLAGS) objname=$@ $<
-ftmm.o: $(CORE)base/ftmm.c
- sc $(SCFLAGS) objname=$@ $<
-ftotval.o: $(CORE)base/ftotval.c
- sc $(SCFLAGS) objname=$@ $<
-ftpatent.o: $(CORE)base/ftpatent.c
- sc $(SCFLAGS) objname=$@ $<
-ftpfr.o: $(CORE)base/ftpfr.c
- sc $(SCFLAGS) objname=$@ $<
-ftstroke.o: $(CORE)base/ftstroke.c
- sc $(SCFLAGS) objname=$@ $<
-ftsynth.o: $(CORE)base/ftsynth.c
- sc $(SCFLAGS) objname=$@ $<
-fttype1.o: $(CORE)base/fttype1.c
- sc $(SCFLAGS) objname=$@ $<
-ftwinfnt.o: $(CORE)base/ftwinfnt.c
- sc $(SCFLAGS) objname=$@ $<
-ftxf86.o: $(CORE)base/ftxf86.c
- sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library autofitter module
-#
-autofit.o: $(CORE)autofit/autofit.c
- sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library PS hinting module
-#
-pshinter.o: $(CORE)pshinter/pshinter.c
- sc $(SCFLAGS) objname=$@ $<
-#
-# freetype library PS support module
-#
-psaux.o: $(CORE)psaux/psaux.c
- sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library PS glyph names module
-#
-psnames.o: $(CORE)psnames/psnames.c
- sc $(SCFLAGS) code=far objname=$@ $<
-
-#
-# freetype library monochrome raster module
-#
-raster.o: $(CORE)raster/raster.c
- sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library anti-aliasing raster module
-#
-smooth.o: $(CORE)smooth/smooth.c
- sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library 'sfnt' module
-#
-sfnt.o: $(CORE)sfnt/sfnt.c
- sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library glyph and image caching system (still experimental)
-#
-ftcache.o: $(CORE)cache/ftcache.c
- sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library OpenType font driver
-#
-cff.o: $(CORE)cff/cff.c
- sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library TrueType font driver
-#
-truetype.o: $(CORE)truetype/truetype.c
- sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library Type1 font driver
-#
-type1.o: $(CORE)type1/type1.c
- sc $(SCFLAGS) objname=$@ $<
-
-#
-# FreeType2 library Type42 font driver
-#
-type42.o: $(CORE)type42/type42.c
- sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library CID-keyed Type1 font driver
-#
-type1cid.o: $(CORE)cid/type1cid.c
- sc $(SCFLAGS) objname=$@ $<
-#
-# freetype library CID-keyed Type1 font driver extensions
-#
-#cidafm.o: $(CORE)cid/cidafm.c
-# sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library BDF bitmap font driver
-#
-bdf.o: $(CORE)bdf/bdf.c
- sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library PCF bitmap font driver
-#
-pcf.o: $(CORE)pcf/pcf.c
- sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library gzip support for compressed PCF bitmap fonts
-#
-gzip.o: $(CORE)gzip/ftgzip.c
- sc $(SCFLAGS) define FAR objname=$@ $<
-
-#
-# freetype library compress support for compressed PCF bitmap fonts
-#
-lzw.o: $(CORE)lzw/ftlzw.c
- sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library PFR font driver
-#
-pfr.o: $(CORE)pfr/pfr.c
- sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library Windows FNT/FON bitmap font driver
-#
-winfnt.o: $(CORE)winfonts/winfnt.c
- sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library TrueTypeGX validator
-#
-gxvalid.o: $(CORE)gxvalid/gxvalid.c
- sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library OpenType validator
-#
-otvalid.o: $(CORE)otvalid/otvalid.c
- sc $(SCFLAGS) objname=$@ $<
-
-#Local Variables:
-#coding: latin-1
-#End:
+# +# Makefile for FreeType2 link library using Amiga SAS/C 6.58 +# + + +# Copyright 2005,2006, 2007, 2009 by +# Werner Lemberg and Detlef W�rkner. +# +# 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. + + +# to build from the builds/amiga directory call +# +# smake assign +# smake +# +# Your programs source code should start with this +# (uncomment the parts you do not need to keep the program small): +# ---8<--- +#define FT_USE_AUTOFIT // autofitter +#define FT_USE_RASTER // monochrome rasterizer +#define FT_USE_SMOOTH // anti-aliasing rasterizer +#define FT_USE_TT // truetype font driver +#define FT_USE_T1 // type1 font driver +#define FT_USE_T42 // type42 font driver +#define FT_USE_T1CID // cid-keyed type1 font driver +#define FT_USE_CFF // opentype font driver +#define FT_USE_BDF // bdf bitmap font driver +#define FT_USE_PCF // pcf bitmap font driver +#define FT_USE_PFR // pfr font driver +#define FT_USE_WINFNT // windows .fnt|.fon bitmap font driver +#define FT_USE_OTV // opentype validator +#define FT_USE_GXV // truetype gx validator +#include "FT:src/base/ftinit.c" +# ---8<--- +# +# link your programs with ft2_680x0.lib and either ftsystem.o or ftsystempure.o +# (and either ftdebug.o or ftdebugpure.o if you enabled FT_DEBUG_LEVEL_ERROR or +# FT_DEBUG_LEVEL_TRACE in include/freetype/config/ftoption.h). + +OBJBASE = ftbase.o ftbbox.o ftbdf.o ftbitmap.o ftcid.o ftfstype.o ftgasp.o \ + ftglyph.o ftgxval.o ftlcdfil.o ftmm.o ftotval.o ftpatent.o ftpfr.o \ + ftstroke.o ftsynth.o fttype1.o ftwinfnt.o ftxf86.o + +OBJSYSTEM = ftsystem.o ftsystempure.o + +OBJDEBUG = ftdebug.o ftdebugpure.o + +OBJAFIT = autofit.o + +OBJGXV = gxvalid.o + +OBJOTV = otvalid.o + +OBJPS = psaux.o psnames.o pshinter.o + +OBJRASTER = raster.o smooth.o + +OBJSFNT = sfnt.o + +OBJCACHE = ftcache.o + +OBJFONTD = cff.o type1.o type42.o type1cid.o\ + truetype.o winfnt.o bdf.o pcf.o pfr.o + +CORE = FT:src/ + +CPU = 68000 +#CPU = 68020 +#CPU = 68030 +#CPU = 68040 +#CPU = 68060 + +OPTIMIZER = optinlocal + +SCFLAGS = optimize opttime optsched strmerge data=faronly idlen=50 cpu=$(CPU)\ + idir=include/ idir=$(CORE) idir=FT:include/ nostackcheck nochkabort\ + noicons ignore=79,85,110,306 parameters=both define=FT2_BUILD_LIBRARY + +LIB = ft2_$(CPU).lib + +# sample linker options +OPTS = link lib=$(LIB),lib:sc.lib,lib:amiga.lib,lib:debug.lib\ + smallcode smalldata noicons utillib + +# sample program entry +#myprog: myprog.c ftsystem.o $(LIB) +# sc $< programname=$@ ftsystem.o $(SCFLAGS) $(OPTS) + +all: $(LIB) $(OBJSYSTEM) $(OBJDEBUG) + +assign: + assign FT: // + +# uses separate object modules in lib to make for easier debugging +# also, can make smaller programs if entire engine is not used +ft2_$(CPU).lib: $(OBJBASE) $(OBJAFIT) $(OBJOTV) $(OBJPS) $(OBJRASTER) $(OBJSFNT) $(OBJCACHE) $(OBJFONTD) lzw.o gzip.o + oml $@ r $(OBJBASE) $(OBJAFIT) $(OBJOTV) $(OBJPS) $(OBJRASTER) $(OBJSFNT) $(OBJCACHE) $(OBJFONTD) lzw.o gzip.o + +clean: + -delete \#?.o + +realclean: clean + -delete ft2$(CPU).lib + +# +# freetype library base +# +ftbase.o: $(CORE)base/ftbase.c + sc $(SCFLAGS) objname=$@ $< +ftinit.o: $(CORE)base/ftinit.c + sc $(SCFLAGS) objname=$@ $< +ftsystem.o: $(CORE)base/ftsystem.c + sc $(SCFLAGS) objname=$@ $< +ftsystempure.o: src/base/ftsystem.c ## pure version for use in run-time library etc + sc $(SCFLAGS) objname=$@ $< +ftdebug.o: $(CORE)base/ftdebug.c + sc $(SCFLAGS) objname=$@ $< +ftdebugpure.o: src/base/ftdebug.c ## pure version for use in run-time library etc + sc $(SCFLAGS) objname=$@ $< +# +# freetype library base extensions +# +ftbbox.o: $(CORE)base/ftbbox.c + sc $(SCFLAGS) objname=$@ $< +ftbdf.o: $(CORE)base/ftbdf.c + sc $(SCFLAGS) objname=$@ $< +ftbitmap.o: $(CORE)base/ftbitmap.c + sc $(SCFLAGS) objname=$@ $< +ftcid.o: $(CORE)base/ftcid.c + sc $(SCFLAGS) objname=$@ $< +ftfstype.o: $(CORE)base/ftfstype.c + sc $(SCFLAGS) objname=$@ $< +ftgasp.o: $(CORE)base/ftgasp.c + sc $(SCFLAGS) objname=$@ $< +ftglyph.o: $(CORE)base/ftglyph.c + sc $(SCFLAGS) objname=$@ $< +ftgxval.o: $(CORE)base/ftgxval.c + sc $(SCFLAGS) objname=$@ $< +ftlcdfil.o: $(CORE)base/ftlcdfil.c + sc $(SCFLAGS) objname=$@ $< +ftmm.o: $(CORE)base/ftmm.c + sc $(SCFLAGS) objname=$@ $< +ftotval.o: $(CORE)base/ftotval.c + sc $(SCFLAGS) objname=$@ $< +ftpatent.o: $(CORE)base/ftpatent.c + sc $(SCFLAGS) objname=$@ $< +ftpfr.o: $(CORE)base/ftpfr.c + sc $(SCFLAGS) objname=$@ $< +ftstroke.o: $(CORE)base/ftstroke.c + sc $(SCFLAGS) objname=$@ $< +ftsynth.o: $(CORE)base/ftsynth.c + sc $(SCFLAGS) objname=$@ $< +fttype1.o: $(CORE)base/fttype1.c + sc $(SCFLAGS) objname=$@ $< +ftwinfnt.o: $(CORE)base/ftwinfnt.c + sc $(SCFLAGS) objname=$@ $< +ftxf86.o: $(CORE)base/ftxf86.c + sc $(SCFLAGS) objname=$@ $< + +# +# freetype library autofitter module +# +autofit.o: $(CORE)autofit/autofit.c + sc $(SCFLAGS) objname=$@ $< + +# +# freetype library PS hinting module +# +pshinter.o: $(CORE)pshinter/pshinter.c + sc $(SCFLAGS) objname=$@ $< +# +# freetype library PS support module +# +psaux.o: $(CORE)psaux/psaux.c + sc $(SCFLAGS) objname=$@ $< + +# +# freetype library PS glyph names module +# +psnames.o: $(CORE)psnames/psnames.c + sc $(SCFLAGS) code=far objname=$@ $< + +# +# freetype library monochrome raster module +# +raster.o: $(CORE)raster/raster.c + sc $(SCFLAGS) objname=$@ $< + +# +# freetype library anti-aliasing raster module +# +smooth.o: $(CORE)smooth/smooth.c + sc $(SCFLAGS) objname=$@ $< + +# +# freetype library 'sfnt' module +# +sfnt.o: $(CORE)sfnt/sfnt.c + sc $(SCFLAGS) objname=$@ $< + +# +# freetype library glyph and image caching system (still experimental) +# +ftcache.o: $(CORE)cache/ftcache.c + sc $(SCFLAGS) objname=$@ $< + +# +# freetype library OpenType font driver +# +cff.o: $(CORE)cff/cff.c + sc $(SCFLAGS) objname=$@ $< + +# +# freetype library TrueType font driver +# +truetype.o: $(CORE)truetype/truetype.c + sc $(SCFLAGS) objname=$@ $< + +# +# freetype library Type1 font driver +# +type1.o: $(CORE)type1/type1.c + sc $(SCFLAGS) objname=$@ $< + +# +# FreeType2 library Type42 font driver +# +type42.o: $(CORE)type42/type42.c + sc $(SCFLAGS) objname=$@ $< + +# +# freetype library CID-keyed Type1 font driver +# +type1cid.o: $(CORE)cid/type1cid.c + sc $(SCFLAGS) objname=$@ $< +# +# freetype library CID-keyed Type1 font driver extensions +# +#cidafm.o: $(CORE)cid/cidafm.c +# sc $(SCFLAGS) objname=$@ $< + +# +# freetype library BDF bitmap font driver +# +bdf.o: $(CORE)bdf/bdf.c + sc $(SCFLAGS) objname=$@ $< + +# +# freetype library PCF bitmap font driver +# +pcf.o: $(CORE)pcf/pcf.c + sc $(SCFLAGS) objname=$@ $< + +# +# freetype library gzip support for compressed PCF bitmap fonts +# +gzip.o: $(CORE)gzip/ftgzip.c + sc $(SCFLAGS) define FAR objname=$@ $< + +# +# freetype library compress support for compressed PCF bitmap fonts +# +lzw.o: $(CORE)lzw/ftlzw.c + sc $(SCFLAGS) objname=$@ $< + +# +# freetype library PFR font driver +# +pfr.o: $(CORE)pfr/pfr.c + sc $(SCFLAGS) objname=$@ $< + +# +# freetype library Windows FNT/FON bitmap font driver +# +winfnt.o: $(CORE)winfonts/winfnt.c + sc $(SCFLAGS) objname=$@ $< + +# +# freetype library TrueTypeGX validator +# +gxvalid.o: $(CORE)gxvalid/gxvalid.c + sc $(SCFLAGS) objname=$@ $< + +# +# freetype library OpenType validator +# +otvalid.o: $(CORE)otvalid/otvalid.c + sc $(SCFLAGS) objname=$@ $< + +#Local Variables: +#coding: latin-1 +#End: diff --git a/components/external/freetype/builds/atari/FNames.SIC b/components/external/freetype/builds/atari/FNames.SIC index 497f002188..f3657179d9 100644 --- a/components/external/freetype/builds/atari/FNames.SIC +++ b/components/external/freetype/builds/atari/FNames.SIC @@ -1,37 +1,37 @@ -/* the following changes file names for PureC projects */
-
-if (argc > 0)
-{
- ordner = argv[0];
- if (basename(ordner) == "") /* ist Ordner */
- {
- ChangeFilenames(ordner);
- }
-}
-
-proc ChangeFilenames(folder)
-local i,entries,directory,file;
-{
- entries = filelist(directory,folder);
- for (i = 0; i < entries; ++i)
- {
- file = directory[i,0];
- if ((directory[i,3]&16) > 0) /* subdirectory */
- {
- ChangeFilenames(folder+file+"\\");
- }
- else
- {
- if ((stricmp(suffix(file),".h")==0)|(stricmp(suffix(file),".c")==0))
- ChangeFilename(folder,file);
- }
- }
-}
-
-proc ChangeFilename(path,datei)
-local newfile,err;
-{
- newfile=datei;
- newfile[0]=(newfile[0] | 32) ^ 32;
- err=files.rename("-q",path+datei,newfile);
-}
+/* the following changes file names for PureC projects */ + +if (argc > 0) +{ + ordner = argv[0]; + if (basename(ordner) == "") /* ist Ordner */ + { + ChangeFilenames(ordner); + } +} + +proc ChangeFilenames(folder) +local i,entries,directory,file; +{ + entries = filelist(directory,folder); + for (i = 0; i < entries; ++i) + { + file = directory[i,0]; + if ((directory[i,3]&16) > 0) /* subdirectory */ + { + ChangeFilenames(folder+file+"\\"); + } + else + { + if ((stricmp(suffix(file),".h")==0)|(stricmp(suffix(file),".c")==0)) + ChangeFilename(folder,file); + } + } +} + +proc ChangeFilename(path,datei) +local newfile,err; +{ + newfile=datei; + newfile[0]=(newfile[0] | 32) ^ 32; + err=files.rename("-q",path+datei,newfile); +} diff --git a/components/external/freetype/builds/atari/FREETYPE.PRJ b/components/external/freetype/builds/atari/FREETYPE.PRJ index 2208a60d77..4776a5bc69 100644 --- a/components/external/freetype/builds/atari/FREETYPE.PRJ +++ b/components/external/freetype/builds/atari/FREETYPE.PRJ @@ -1,32 +1,32 @@ -;FreeType project file
-
-FREETYPE.LIB
-
-.C [-K -P -R -A]
-.L [-J -V]
-.S
-
-=
-
-..\..\src\base\ftsystem.c
-..\..\src\base\ftdebug.c
-
-..\..\src\base\ftinit.c
-..\..\src\base\ftglyph.c
-..\..\src\base\ftmm
-..\..\src\base\ftbbox
-
-..\..\src\base\ftbase.c
-..\..\src\autohint\autohint.c
-;..\..\src\cache\ftcache.c
-..\..\src\cff\cff.c
-..\..\src\cid\type1cid.c
-..\..\src\psaux\psaux.c
-..\..\src\pshinter\pshinter.c
-..\..\src\psnames\psnames.c
-..\..\src\raster\raster.c
-..\..\src\sfnt\sfnt.c
-..\..\src\smooth\smooth.c
-..\..\src\truetype\truetype.c
-..\..\src\type1\type1.c
-..\..\src\type42\type42.c
+;FreeType project file + +FREETYPE.LIB + +.C [-K -P -R -A] +.L [-J -V] +.S + += + +..\..\src\base\ftsystem.c +..\..\src\base\ftdebug.c + +..\..\src\base\ftinit.c +..\..\src\base\ftglyph.c +..\..\src\base\ftmm +..\..\src\base\ftbbox + +..\..\src\base\ftbase.c +..\..\src\autohint\autohint.c +;..\..\src\cache\ftcache.c +..\..\src\cff\cff.c +..\..\src\cid\type1cid.c +..\..\src\psaux\psaux.c +..\..\src\pshinter\pshinter.c +..\..\src\psnames\psnames.c +..\..\src\raster\raster.c +..\..\src\sfnt\sfnt.c +..\..\src\smooth\smooth.c +..\..\src\truetype\truetype.c +..\..\src\type1\type1.c +..\..\src\type42\type42.c diff --git a/components/external/freetype/builds/atari/deflinejoiner.awk b/components/external/freetype/builds/atari/deflinejoiner.awk index 9f3167ce5e..c872a70d86 100644 --- a/components/external/freetype/builds/atari/deflinejoiner.awk +++ b/components/external/freetype/builds/atari/deflinejoiner.awk @@ -1,181 +1,181 @@ -#!/usr/bin/env awk
-
-
-function shift( array, \
- junk, elm0, l )
-{
- elm0 = array[0]
- for ( l = 0; l < asorti( array, junk ) - 1; l++ )
- array[l] = array[l+1];
- delete array[l]
- return elm0
-}
-
-
-function init_cpp_src_line()
-{
- logical_line = ""
- delete break_pos
-}
-
-
-function shift_valid_bp( array, \
- junk, elm )
-{
- elm = -1
-
- if ( 0 < asorti( array, junk ) )
- do {
- elm = shift( array )
- } while ( 0 > elm );
-
- return elm
-}
-
-
-function check_cpp_src_line_break_pos( \
- i, junk )
-{
- printf( "break_pos:" )
- for ( i = 0; i < asorti( break_pos, junk ); i++ )
- printf( " %d", break_pos[i] );
- printf( "\n" )
-}
-
-
-function check_cpp_src_line()
-{
- printf( "logical_line[%s]\n", logical_line )
- check_cpp_src_line_break_pos()
-}
-
-
-function append_line( phys_line, \
- filt_line, bp_len )
-{
- filt_line = phys_line
- sub( /\\$/, " ", filt_line )
- logical_line = logical_line filt_line
- bp_len = asorti( break_pos, junk )
- break_pos[bp_len] = length( logical_line ) - 1
-}
-
-
-function print_line( \
- c0, c1, i, junk, part_str )
-{
- c0 = 0
-
- while( asorti( break_pos, junk ) > 1 )
- {
- if ( ( c1 = shift_valid_bp( break_pos ) ) < 1 )
- {
- part_str = substr( logical_line, c0 + 1 )
- printf( "%s\n", part_str )
- return
- }
-
- part_str = substr( logical_line, c0 + 1, c1 - c0 + 1 )
- gsub( / $/, "\\", part_str )
- printf( "%s\n", part_str )
- c0 = c1 + 1
- }
-
- part_str = substr( logical_line, c0 + 1 )
- printf( "%s\n", part_str )
-}
-
-
-function shrink_spaces( pos, \
- tail, removed_length, k )
-{
- tail = substr( logical_line, pos )
- sub( /^[ \t]+/, " ", tail )
- removed_length = length( logical_line ) - pos - length( tail ) + 1
- logical_line = substr( logical_line, 0, pos - 1 ) tail
-
-
- for ( k = 0; k < asorti( break_pos, junk ); k++ )
- if ( ( pos + removed_length ) <= break_pos[k] )
- break_pos[k] = break_pos[k] - removed_length;
- else if ( pos <= break_pos[k] )
- break_pos[k] = -1;
-
- return removed_length
-}
-
-
-function shrink_spaces_to_linebreak( pos, \
- junk, part_str, removed_length, i )
-{
- for ( i = 0; i < asorti( break_pos, junk ) && break_pos[i] < pos ; i++ )
- ;
-
- if ( break_pos[i] < 1 )
- return;
-
- part_str = substr( logical_line, pos, break_pos[i] - pos + 1 )
- sub( /^[ \t]+/, " ", part_str )
- removed_length = ( break_pos[i] - pos + 1 ) - length( part_str )
-
- tail = substr( logical_line, pos + removed_length )
- logical_line = substr( logical_line, 0, pos - 1 ) tail
-
- for ( ; i < asorti( break_pos, junk ); i++ )
- break_pos[i] -= removed_length;
-
- return removed_length
-}
-
-
-function delete_linebreaks_in_2nd_token( \
- tail, paren_depth, junk, i, j, k, l )
-{
- if ( logical_line ~ /^[ \t]*#[ \t]*define[ \t]+[0-9A-Za-z_]+\(/ )
- {
- tail = logical_line
- sub( /^[ \t]*#[ \t]*define[ \t]+[0-9A-Za-z_]+/, "", tail )
-
- paren_depth = 0
- l = 0
- i = length( logical_line ) - length( tail ) + 1 # seek to the 1st op paren
- j = i
- do {
- if ( substr( logical_line, j, 2 ) ~ /[ \t][ \t]/ )
- l = shrink_spaces( j );
- else if ( substr( logical_line, j, 1 ) == "(" )
- paren_depth += 1;
- else if ( substr( logical_line, j, 1 ) == ")" )
- paren_depth -= 1;
- j += 1
- } while ( j < length( logical_line ) && paren_depth != 0 )
-
- for ( k = 0; k < asorti( break_pos, junk ); k++ )
- if ( i <= break_pos[k] && break_pos[k] < j )
- break_pos[k] = -1;
-
- if ( l > 0 )
- shrink_spaces_to_linebreak( j );
- }
-}
-
-
-BEGIN{
- init_cpp_src_line()
-}
-{
- append_line( $0 )
- if ( $0 !~ /\\$/ )
- {
- delete_linebreaks_in_2nd_token()
- print_line()
- init_cpp_src_line()
- }
-}
-END{
- if ( 0 < length( logical_line ) )
- {
- delete_linebreaks_in_2nd_token()
- print_line()
- }
-}
+#!/usr/bin/env awk + + +function shift( array, \ + junk, elm0, l ) +{ + elm0 = array[0] + for ( l = 0; l < asorti( array, junk ) - 1; l++ ) + array[l] = array[l+1]; + delete array[l] + return elm0 +} + + +function init_cpp_src_line() +{ + logical_line = "" + delete break_pos +} + + +function shift_valid_bp( array, \ + junk, elm ) +{ + elm = -1 + + if ( 0 < asorti( array, junk ) ) + do { + elm = shift( array ) + } while ( 0 > elm ); + + return elm +} + + +function check_cpp_src_line_break_pos( \ + i, junk ) +{ + printf( "break_pos:" ) + for ( i = 0; i < asorti( break_pos, junk ); i++ ) + printf( " %d", break_pos[i] ); + printf( "\n" ) +} + + +function check_cpp_src_line() +{ + printf( "logical_line[%s]\n", logical_line ) + check_cpp_src_line_break_pos() +} + + +function append_line( phys_line, \ + filt_line, bp_len ) +{ + filt_line = phys_line + sub( /\\$/, " ", filt_line ) + logical_line = logical_line filt_line + bp_len = asorti( break_pos, junk ) + break_pos[bp_len] = length( logical_line ) - 1 +} + + +function print_line( \ + c0, c1, i, junk, part_str ) +{ + c0 = 0 + + while( asorti( break_pos, junk ) > 1 ) + { + if ( ( c1 = shift_valid_bp( break_pos ) ) < 1 ) + { + part_str = substr( logical_line, c0 + 1 ) + printf( "%s\n", part_str ) + return + } + + part_str = substr( logical_line, c0 + 1, c1 - c0 + 1 ) + gsub( / $/, "\\", part_str ) + printf( "%s\n", part_str ) + c0 = c1 + 1 + } + + part_str = substr( logical_line, c0 + 1 ) + printf( "%s\n", part_str ) +} + + +function shrink_spaces( pos, \ + tail, removed_length, k ) +{ + tail = substr( logical_line, pos ) + sub( /^[ \t]+/, " ", tail ) + removed_length = length( logical_line ) - pos - length( tail ) + 1 + logical_line = substr( logical_line, 0, pos - 1 ) tail + + + for ( k = 0; k < asorti( break_pos, junk ); k++ ) + if ( ( pos + removed_length ) <= break_pos[k] ) + break_pos[k] = break_pos[k] - removed_length; + else if ( pos <= break_pos[k] ) + break_pos[k] = -1; + + return removed_length +} + + +function shrink_spaces_to_linebreak( pos, \ + junk, part_str, removed_length, i ) +{ + for ( i = 0; i < asorti( break_pos, junk ) && break_pos[i] < pos ; i++ ) + ; + + if ( break_pos[i] < 1 ) + return; + + part_str = substr( logical_line, pos, break_pos[i] - pos + 1 ) + sub( /^[ \t]+/, " ", part_str ) + removed_length = ( break_pos[i] - pos + 1 ) - length( part_str ) + + tail = substr( logical_line, pos + removed_length ) + logical_line = substr( logical_line, 0, pos - 1 ) tail + + for ( ; i < asorti( break_pos, junk ); i++ ) + break_pos[i] -= removed_length; + + return removed_length +} + + +function delete_linebreaks_in_2nd_token( \ + tail, paren_depth, junk, i, j, k, l ) +{ + if ( logical_line ~ /^[ \t]*#[ \t]*define[ \t]+[0-9A-Za-z_]+\(/ ) + { + tail = logical_line + sub( /^[ \t]*#[ \t]*define[ \t]+[0-9A-Za-z_]+/, "", tail ) + + paren_depth = 0 + l = 0 + i = length( logical_line ) - length( tail ) + 1 # seek to the 1st op paren + j = i + do { + if ( substr( logical_line, j, 2 ) ~ /[ \t][ \t]/ ) + l = shrink_spaces( j ); + else if ( substr( logical_line, j, 1 ) == "(" ) + paren_depth += 1; + else if ( substr( logical_line, j, 1 ) == ")" ) + paren_depth -= 1; + j += 1 + } while ( j < length( logical_line ) && paren_depth != 0 ) + + for ( k = 0; k < asorti( break_pos, junk ); k++ ) + if ( i <= break_pos[k] && break_pos[k] < j ) + break_pos[k] = -1; + + if ( l > 0 ) + shrink_spaces_to_linebreak( j ); + } +} + + +BEGIN{ + init_cpp_src_line() +} +{ + append_line( $0 ) + if ( $0 !~ /\\$/ ) + { + delete_linebreaks_in_2nd_token() + print_line() + init_cpp_src_line() + } +} +END{ + if ( 0 < length( logical_line ) ) + { + delete_linebreaks_in_2nd_token() + print_line() + } +} diff --git a/components/external/freetype/builds/mac/README b/components/external/freetype/builds/mac/README index fdbfe2a1e2..bd3df8ada4 100644 --- a/components/external/freetype/builds/mac/README +++ b/components/external/freetype/builds/mac/README @@ -1,403 +1,403 @@ -This folder contains
-
- * Makefile skeltons for Apple MPW (Macintosh's Programmers Workshop)
-
- * Python script to generate MPW makefile from skelton
-
- * Metrowerks CodeWarrior 9.0 project file in XML format
-
-------------------------------------------------------------
-
-1. What is this
----------------
-
-Files in this directory are designed to build FreeType
-running on classic MacOS. To build FreeType running on
-Mac OS X, build as the system is UNIX.
-
-However, Mac OS X is most useful to manipulate files in
-vanilla FreeType to fit classic MacOS.
-
-The information about MacOS specific API is written in
-appendix of this document.
-
-2. Requirement
---------------
-
-You can use MPW: a free-charged developer environment
-by Apple, or CodeWarrior: a commercial developer
-environment by Metrowerks. GCC for MPW and Symantec
-"Think C" are not tested at present.
-
-
- 2-1. Apple MPW
- --------------
-
- Following C compilers are tested:
-
- m68k target: Apple SC 8.9.0d3e1
- ppc target: Apple MrC 5.0.0d3c1
-
- The final MPW-GM (official release on 1999/Dec) is too
- old and cannot compile FreeType, because bundled C
- compilers cannot search header files in sub directories.
- Updating by the final MPW-PR (pre-release on 2001/Feb)
- is required.
-
- Required files are downloadable from:
-
- http://developer.apple.com/tools/mpw-tools/index.html
-
- Also you can find documents how to update by MPW-PR.
-
- Python is required to restore MPW makefiles from the
- skeltons. Python bundled to Mac OS X is enough. For
- classic MacOS, MacPython is available:
-
- http://homepages.cwi.nl/~jack/macpython/
-
- MPW requires all files are typed by resource fork.
- ResEdit bundled to MPW is enough. In Mac OS X,
- /Developer/Tools/SetFile of DevTool is useful to
- manipulate from commandline.
-
- 2-2. Metrowerks CodeWarrior
- ---------------------------
-
- XML project file is generated and tested by
- CodeWarrior 9.0. Older versions are not tested
- at all. At present, static library for ppc target
- is available in the project file.
-
-
-3. How to build
----------------
-
- 3-1. Apple MPW
- --------------
- Detailed building procedure by Apple MPW is
- described in following.
-
- 3-1-1. Generate MPW makefiles from the skeltons
- ------------------------------------------------
-
- Here are 4 skeltons for following targets are
- included.
-
- - FreeType.m68k_far.make.txt
- Ancient 32bit binary executable format for
- m68k MacOS: System 6, with 32bit addressing
- mode (far-pointer-model) So-called "Toolbox"
- API is used.
-
- - FreeType.m68k_cfm.make.txt
- CFM binary executable format for m68k MacOS:
- System 7. So-called "Toolbox" API is used.
-
- - FreeType.ppc_classic.make.txt
- CFM binary executable format for ppc MacOS:
- System 7, MacOS 8, MacOS 9. So-called "Toolbox"
- API is used.
-
- - FreeType.ppc_carbon.make.txt
- CFM binary executable format for ppc MacOS:
- MacOS 9. Carbon API is used.
-
- At present, static library is only supported,
- although targets except of m68k_far are capable
- to use shared library.
-
- MPW makefile syntax uses 8bit characters. To keep
- from violating them during version control, here
- we store skeltons in pure ASCII format. You must
- generate MPW makefile by Python script ascii2mpw.py.
-
- In Mac OS X terminal, you can convert as:
-
- python builds/mac/ascii2mpw.py \
- < builds/mac/FreeType.m68k_far.make.txt \
- > FreeType.m68k_far.make
-
- The skeltons are designed to use in the top
- directory where there are builds, include, src etc.
- You must name the generated MPW makefile by removing
- ".txt" from source skelton name.
-
- 3-1-2. Add resource forks to related files
- ------------------------------------------
-
- MPW's Make and C compilers cannot recognize files
- without resource fork. You have to add resource
- fork to the files that MPW uses. In Mac OS X
- terminal of the system, you can do as:
-
- find . -name '*.[ch]' -exec \
- /Developer/Tools/SetFile -a l -c "MPS " -t TEXT \{\} \;
-
- find . -name '*.make' -exec \
- /Developer/Tools/SetFile -a l -c "MPS " -t TEXT \{\} \;
-
-
- 3-1-3. Open MPW shell and build
- -------------------------------
-
- Open MPW shell and go to the top directory that
- FreeType sources are extracted (MPW makefile must
- be located in there), from "Set Directory" in
- "Directory" menu.
-
- Choose "Build" from "Build" menu, and type the
- name of project by removing ".make" from MPW
- makefile, as: FreeType.m68k_far
-
- If building is successfully finished, you can find
- built library in objs/ directory.
-
-
- 3-2. Metrowerks CodeWarrior
- ---------------------------
-
- Detailed building procedure by Metrowerks
- CodeWarrior (CW) 9.0 is described in following.
-
- 3-2-1. Import XML project file
- ------------------------------
-
- CW XML project file is not ready for double-
- click. Start CodeWarrior IDE, and choose
- "Import project" in "File" menu. Choose XML
- project file: builds/mac/ftlib.prj.xml.
- In next, you will be asked where to save CW
- native project file: you must choose
- "builds/mac/ftlib.prj". The project file is
- designed with relative path from there. After
- CW native project file is generated, it is
- automatically loaded, small project window
- titled "ftlib.prj" is displayed.
-
- 3-2-2. Building
- ---------------
- Choose "Make" from "Project" menu. If building
- is successfully finished, you can find built
- library at objs/FreeTypeLib.
-
-4. TODO
--------
-
- 4-1. All modules should be included
- -----------------------------------
-
- At present, MPW makefiles and CW project file are
- just updated versions of these by Leonard. Some
- modules are added after the last maintenance, they
- are not included.
-
- 4-2. Working test with ftdemos
- ------------------------------
-
- At present, MPW makefiles and CW project file can
- build FreeType for classic MacOS. But their working
- behaviours are not tested at all. Building ftdemos
- for classic MacOS and working test is required.
-
- 4-3. Porting Jam onto MPW
- -------------------------
-
- FreeType uses Jam (and FT-Jam) for unified cross-
- platform building tool. At present, Jam is not ported
- to MPW. To update classic MacOS support easily,
- building by Jam is expected on MPW.
-
-
-APPENDIX I
-----------
-
- A-1. Framework dependencies
- ---------------------------
-
- src/base/ftmac.c adds two Mac-specific features to
- FreeType. These features are based on MacOS libraries.
-
- * accessing resource-fork font
- The fonts for classic MacOS store their graphical data
- in resource forks which cannot be accessed via ANSI C
- functions. FreeType2 provides functions to handle such
- resource fork fonts, they are based on File Manager
- framework of MacOS. In addition, HFS and HFS+ file
- system driver of Linux is supported. Following
- functions are for this purpose.
-
- FT_New_Face_From_Resource()
- FT_New_Face_From_FSSpec()
- FT_New_Face_From_FSRef()
-
- * resolving font name to font file
- The font menu of MacOS application prefers font name
- written in FOND resource than sfnt resource. FreeType2
- provides functions to find font file by name in MacOS
- application, they are based on QuickDraw Font Manager
- and Apple Type Service framework of MacOS.
-
- FT_GetFile_From_Mac_Name()
- FT_GetFile_From_Mac_ATS_Name()
-
- Working functions for each MacOS are summarized as
- following.
-
- upto MacOS 6:
- not tested (you have to obtain MPW 2.x)
-
- MacOS 7.x, 8.x, 9.x (without CarbonLib):
- FT_GetFile_From_Mac_Name()
- FT_New_Face_From_Resource()
- FT_New_Face_From_FSSpec()
-
- MacOS 9.x (with CarbonLib):
- FT_GetFile_From_Mac_Name()
- FT_New_Face_From_Resource()
- FT_New_Face_From_FSSpec()
- FT_New_Face_From_FSRef()
-
- Mac OS X upto 10.4.x:
- FT_GetFile_From_Mac_Name() deprecated
- FT_New_Face_From_FSSpec() deprecated
- FT_GetFile_From_Mac_ATS_Name() deprecated?
- FT_New_Face_From_FSRef()
-
- A-2. Deprecated Functions
- -------------------------
-
- A-2-1. FileManager
- ------------------
-
- For convenience to write MacOS application, ftmac.c
- provides functions to specify a file by FSSpec and FSRef,
- because the file identification pathname had ever been
- unrecommended method in MacOS programming.
-
- Toward to MacOS X 10.4 & 5, Carbon functions using FSSpec
- datatype is noticed as deprecated, and recommended to
- migrate to FSRef datatype. The big differences of FSRef
- against FSSpec are explained in Apple TechNotes 2078.
-
- http://developer.apple.com/technotes/tn2002/tn2078.html
-
- - filename length: the max length of file
- name of FSRef is 255 chars (it is limit of HFS+),
- that of FSSpec is 31 chars (it is limit of HFS).
-
- - filename encoding: FSSpec is localized by
- legacy encoding for each language system,
- FSRef is Unicode enabled.
-
- A-2-2. FontManager
- ------------------
-
- Following functions receive QuickDraw fontname:
-
- FT_GetFile_From_Mac_Name()
-
- QuickDraw is deprecated and replaced by Quartz
- since Mac OS X 10.4. They are still kept for
- backward compatibility. By undefinition of
- HAVE_QUICKDRAW in building, you can change these
- functions to return FT_Err_Unimplemented always.
-
- Replacement functions are added for migration.
-
- FT_GetFile_From_Mac_ATS_Name()
-
- They are usable on Mac OS X only. On older systems,
- these functions return FT_Err_Unimplemented always.
-
- The detailed incompatibilities and possibility
- of FontManager emulation without QuickDraw is
- explained in
-
- http://www.gyve.org/~mpsuzuki/ats_benchmark.html
-
- A-3. Framework Availabilities
- -----------------------------
-
- The framework of MacOS are often revised, especially
- when new format of binary executable is introduced.
- Following table is the minimum version of frameworks
- to use functions used in FreeType2. The table is
- extracted from MPW header files for assembly language.
-
- *** NOTE ***
- The conditional definition of available data type
- in MPW compiler is insufficient. You can compile
- program using FSRef data type for older systems
- (MacOS 7, 8) that don't know FSRef data type.
-
-
- +-------------------+-----------------------------+
- CPU | mc680x0 | PowerPC |
- +---------+---------+---------+---------+---------+
- Binary Executable Format | Classic | 68K-CFM | CFM | CFM | Mach-O |
- +---------+---------+---------+---------+---------+
- Framework API | Toolbox | Toolbox | Toolbox | Carbon | Carbon |
- +---------+---------+---------+---------+---------+
-
- +---------+---------+---------+---------+---------+
- | ?(*) |Interface|Interface|CarbonLib|Mac OS X |
- | |Lib |Lib | | |
-* Files.h +---------+---------+---------+---------+---------+
-PBGetFCBInfoSync() | o | 7.1- | 7.1- | 1.0- | o |
-FSMakeFSSpec() | o | 7.1- | 7.1- | 1.0- | o |
-FSGetForkCBInfo() | o | (**) | 9.0- | 1.0- | o |
-FSpMakeFSRef() | o | (**) | 9.0- | 1.0- | o |
-FSGetCatalogInfo() | o | (**) | 9.0- | 1.0- | -10.3 |
-FSPathMakeRef() | x | x | x | 1.1- | -10.3 |
- +---------+---------+---------+---------+---------+
-
- +---------+---------+---------+---------+---------+
- | ?(*) |Font |Font |CarbonLib|Mac OS X |
- | |Manager |Manager | | |
-* Fonts.h +---------+---------+---------+---------+---------+
-FMCreateFontFamilyIterator() | x | x | 9.0- | 1.0- | -10.3 |
-FMDisposeFontFamilyIterator() | x | x | 9.0- | 1.0- | -10.3 |
-FMGetNextFontFamily() | x | x | 9.0- | 1.0- | -10.3 |
-FMGetFontFamilyName() | x | x | 9.0- | 1.0- | -10.3 |
-FMCreateFontFamilyInstanceIterator() | x | x | 9.0- | 1.0- | -10.3 |
-FMDisposeFontFamilyInstanceIterator() | x | x | 9.0- | 1.0- | -10.3 |
-FMGetNextFontFamilyInstance() | x | x | 9.0- | 1.0- | -10.3 |
- +---------+---------+---------+---------+---------+
-
- +---------+---------+---------+---------+---------+
- | - | - | - |CarbonLib|Mac OS X |
-* ATSFont.h (***) +---------+---------+---------+---------+---------+
-ATSFontFindFromName() | x | x | x | x | o |
-ATSFontGetFileSpecification() | x | x | x | x | o |
- +---------+---------+---------+---------+---------+
-
- (*)
- In the "Classic": the original binary executable
- format, these framework functions are directly
- transformed to MacOS system call. Therefore, the
- exact availability should be checked by running
- system.
-
- (**)
- InterfaceLib is bundled to MacOS and its version
- is usually equal to MacOS. There's no separate
- update for InterfaceLib. It is supposed that
- there's no InterfaceLib 9.x for m68k platforms.
- In fact, these functions are FSRef dependent.
-
- (***)
- ATSUI framework is available on ATSUnicode 8.5 on
- ppc Toolbox CFM, CarbonLib 1.0 too. But its base:
- ATS font manager is not published in these versions.
-
-------------------------------------------------------------
-Last update: 2009-Jul-25.
-
-Currently maintained by
- suzuki toshiya, <[email protected]>
-Originally prepared by
- Leonard Rosenthol, <[email protected]>
- Just van Rossum, <[email protected]>
-
-This directory is now actively maintained as part of the FreeType Project.
+This folder contains + + * Makefile skeltons for Apple MPW (Macintosh's Programmers Workshop) + + * Python script to generate MPW makefile from skelton + + * Metrowerks CodeWarrior 9.0 project file in XML format + +------------------------------------------------------------ + +1. What is this +--------------- + +Files in this directory are designed to build FreeType +running on classic MacOS. To build FreeType running on +Mac OS X, build as the system is UNIX. + +However, Mac OS X is most useful to manipulate files in +vanilla FreeType to fit classic MacOS. + +The information about MacOS specific API is written in +appendix of this document. + +2. Requirement +-------------- + +You can use MPW: a free-charged developer environment +by Apple, or CodeWarrior: a commercial developer +environment by Metrowerks. GCC for MPW and Symantec +"Think C" are not tested at present. + + + 2-1. Apple MPW + -------------- + + Following C compilers are tested: + + m68k target: Apple SC 8.9.0d3e1 + ppc target: Apple MrC 5.0.0d3c1 + + The final MPW-GM (official release on 1999/Dec) is too + old and cannot compile FreeType, because bundled C + compilers cannot search header files in sub directories. + Updating by the final MPW-PR (pre-release on 2001/Feb) + is required. + + Required files are downloadable from: + + http://developer.apple.com/tools/mpw-tools/index.html + + Also you can find documents how to update by MPW-PR. + + Python is required to restore MPW makefiles from the + skeltons. Python bundled to Mac OS X is enough. For + classic MacOS, MacPython is available: + + http://homepages.cwi.nl/~jack/macpython/ + + MPW requires all files are typed by resource fork. + ResEdit bundled to MPW is enough. In Mac OS X, + /Developer/Tools/SetFile of DevTool is useful to + manipulate from commandline. + + 2-2. Metrowerks CodeWarrior + --------------------------- + + XML project file is generated and tested by + CodeWarrior 9.0. Older versions are not tested + at all. At present, static library for ppc target + is available in the project file. + + +3. How to build +--------------- + + 3-1. Apple MPW + -------------- + Detailed building procedure by Apple MPW is + described in following. + + 3-1-1. Generate MPW makefiles from the skeltons + ------------------------------------------------ + + Here are 4 skeltons for following targets are + included. + + - FreeType.m68k_far.make.txt + Ancient 32bit binary executable format for + m68k MacOS: System 6, with 32bit addressing + mode (far-pointer-model) So-called "Toolbox" + API is used. + + - FreeType.m68k_cfm.make.txt + CFM binary executable format for m68k MacOS: + System 7. So-called "Toolbox" API is used. + + - FreeType.ppc_classic.make.txt + CFM binary executable format for ppc MacOS: + System 7, MacOS 8, MacOS 9. So-called "Toolbox" + API is used. + + - FreeType.ppc_carbon.make.txt + CFM binary executable format for ppc MacOS: + MacOS 9. Carbon API is used. + + At present, static library is only supported, + although targets except of m68k_far are capable + to use shared library. + + MPW makefile syntax uses 8bit characters. To keep + from violating them during version control, here + we store skeltons in pure ASCII format. You must + generate MPW makefile by Python script ascii2mpw.py. + + In Mac OS X terminal, you can convert as: + + python builds/mac/ascii2mpw.py \ + < builds/mac/FreeType.m68k_far.make.txt \ + > FreeType.m68k_far.make + + The skeltons are designed to use in the top + directory where there are builds, include, src etc. + You must name the generated MPW makefile by removing + ".txt" from source skelton name. + + 3-1-2. Add resource forks to related files + ------------------------------------------ + + MPW's Make and C compilers cannot recognize files + without resource fork. You have to add resource + fork to the files that MPW uses. In Mac OS X + terminal of the system, you can do as: + + find . -name '*.[ch]' -exec \ + /Developer/Tools/SetFile -a l -c "MPS " -t TEXT \{\} \; + + find . -name '*.make' -exec \ + /Developer/Tools/SetFile -a l -c "MPS " -t TEXT \{\} \; + + + 3-1-3. Open MPW shell and build + ------------------------------- + + Open MPW shell and go to the top directory that + FreeType sources are extracted (MPW makefile must + be located in there), from "Set Directory" in + "Directory" menu. + + Choose "Build" from "Build" menu, and type the + name of project by removing ".make" from MPW + makefile, as: FreeType.m68k_far + + If building is successfully finished, you can find + built library in objs/ directory. + + + 3-2. Metrowerks CodeWarrior + --------------------------- + + Detailed building procedure by Metrowerks + CodeWarrior (CW) 9.0 is described in following. + + 3-2-1. Import XML project file + ------------------------------ + + CW XML project file is not ready for double- + click. Start CodeWarrior IDE, and choose + "Import project" in "File" menu. Choose XML + project file: builds/mac/ftlib.prj.xml. + In next, you will be asked where to save CW + native project file: you must choose + "builds/mac/ftlib.prj". The project file is + designed with relative path from there. After + CW native project file is generated, it is + automatically loaded, small project window + titled "ftlib.prj" is displayed. + + 3-2-2. Building + --------------- + Choose "Make" from "Project" menu. If building + is successfully finished, you can find built + library at objs/FreeTypeLib. + +4. TODO +------- + + 4-1. All modules should be included + ----------------------------------- + + At present, MPW makefiles and CW project file are + just updated versions of these by Leonard. Some + modules are added after the last maintenance, they + are not included. + + 4-2. Working test with ftdemos + ------------------------------ + + At present, MPW makefiles and CW project file can + build FreeType for classic MacOS. But their working + behaviours are not tested at all. Building ftdemos + for classic MacOS and working test is required. + + 4-3. Porting Jam onto MPW + ------------------------- + + FreeType uses Jam (and FT-Jam) for unified cross- + platform building tool. At present, Jam is not ported + to MPW. To update classic MacOS support easily, + building by Jam is expected on MPW. + + +APPENDIX I +---------- + + A-1. Framework dependencies + --------------------------- + + src/base/ftmac.c adds two Mac-specific features to + FreeType. These features are based on MacOS libraries. + + * accessing resource-fork font + The fonts for classic MacOS store their graphical data + in resource forks which cannot be accessed via ANSI C + functions. FreeType2 provides functions to handle such + resource fork fonts, they are based on File Manager + framework of MacOS. In addition, HFS and HFS+ file + system driver of Linux is supported. Following + functions are for this purpose. + + FT_New_Face_From_Resource() + FT_New_Face_From_FSSpec() + FT_New_Face_From_FSRef() + + * resolving font name to font file + The font menu of MacOS application prefers font name + written in FOND resource than sfnt resource. FreeType2 + provides functions to find font file by name in MacOS + application, they are based on QuickDraw Font Manager + and Apple Type Service framework of MacOS. + + FT_GetFile_From_Mac_Name() + FT_GetFile_From_Mac_ATS_Name() + + Working functions for each MacOS are summarized as + following. + + upto MacOS 6: + not tested (you have to obtain MPW 2.x) + + MacOS 7.x, 8.x, 9.x (without CarbonLib): + FT_GetFile_From_Mac_Name() + FT_New_Face_From_Resource() + FT_New_Face_From_FSSpec() + + MacOS 9.x (with CarbonLib): + FT_GetFile_From_Mac_Name() + FT_New_Face_From_Resource() + FT_New_Face_From_FSSpec() + FT_New_Face_From_FSRef() + + Mac OS X upto 10.4.x: + FT_GetFile_From_Mac_Name() deprecated + FT_New_Face_From_FSSpec() deprecated + FT_GetFile_From_Mac_ATS_Name() deprecated? + FT_New_Face_From_FSRef() + + A-2. Deprecated Functions + ------------------------- + + A-2-1. FileManager + ------------------ + + For convenience to write MacOS application, ftmac.c + provides functions to specify a file by FSSpec and FSRef, + because the file identification pathname had ever been + unrecommended method in MacOS programming. + + Toward to MacOS X 10.4 & 5, Carbon functions using FSSpec + datatype is noticed as deprecated, and recommended to + migrate to FSRef datatype. The big differences of FSRef + against FSSpec are explained in Apple TechNotes 2078. + + http://developer.apple.com/technotes/tn2002/tn2078.html + + - filename length: the max length of file + name of FSRef is 255 chars (it is limit of HFS+), + that of FSSpec is 31 chars (it is limit of HFS). + + - filename encoding: FSSpec is localized by + legacy encoding for each language system, + FSRef is Unicode enabled. + + A-2-2. FontManager + ------------------ + + Following functions receive QuickDraw fontname: + + FT_GetFile_From_Mac_Name() + + QuickDraw is deprecated and replaced by Quartz + since Mac OS X 10.4. They are still kept for + backward compatibility. By undefinition of + HAVE_QUICKDRAW in building, you can change these + functions to return FT_Err_Unimplemented always. + + Replacement functions are added for migration. + + FT_GetFile_From_Mac_ATS_Name() + + They are usable on Mac OS X only. On older systems, + these functions return FT_Err_Unimplemented always. + + The detailed incompatibilities and possibility + of FontManager emulation without QuickDraw is + explained in + + http://www.gyve.org/~mpsuzuki/ats_benchmark.html + + A-3. Framework Availabilities + ----------------------------- + + The framework of MacOS are often revised, especially + when new format of binary executable is introduced. + Following table is the minimum version of frameworks + to use functions used in FreeType2. The table is + extracted from MPW header files for assembly language. + + *** NOTE *** + The conditional definition of available data type + in MPW compiler is insufficient. You can compile + program using FSRef data type for older systems + (MacOS 7, 8) that don't know FSRef data type. + + + +-------------------+-----------------------------+ + CPU | mc680x0 | PowerPC | + +---------+---------+---------+---------+---------+ + Binary Executable Format | Classic | 68K-CFM | CFM | CFM | Mach-O | + +---------+---------+---------+---------+---------+ + Framework API | Toolbox | Toolbox | Toolbox | Carbon | Carbon | + +---------+---------+---------+---------+---------+ + + +---------+---------+---------+---------+---------+ + | ?(*) |Interface|Interface|CarbonLib|Mac OS X | + | |Lib |Lib | | | +* Files.h +---------+---------+---------+---------+---------+ +PBGetFCBInfoSync() | o | 7.1- | 7.1- | 1.0- | o | +FSMakeFSSpec() | o | 7.1- | 7.1- | 1.0- | o | +FSGetForkCBInfo() | o | (**) | 9.0- | 1.0- | o | +FSpMakeFSRef() | o | (**) | 9.0- | 1.0- | o | +FSGetCatalogInfo() | o | (**) | 9.0- | 1.0- | -10.3 | +FSPathMakeRef() | x | x | x | 1.1- | -10.3 | + +---------+---------+---------+---------+---------+ + + +---------+---------+---------+---------+---------+ + | ?(*) |Font |Font |CarbonLib|Mac OS X | + | |Manager |Manager | | | +* Fonts.h +---------+---------+---------+---------+---------+ +FMCreateFontFamilyIterator() | x | x | 9.0- | 1.0- | -10.3 | +FMDisposeFontFamilyIterator() | x | x | 9.0- | 1.0- | -10.3 | +FMGetNextFontFamily() | x | x | 9.0- | 1.0- | -10.3 | +FMGetFontFamilyName() | x | x | 9.0- | 1.0- | -10.3 | +FMCreateFontFamilyInstanceIterator() | x | x | 9.0- | 1.0- | -10.3 | +FMDisposeFontFamilyInstanceIterator() | x | x | 9.0- | 1.0- | -10.3 | +FMGetNextFontFamilyInstance() | x | x | 9.0- | 1.0- | -10.3 | + +---------+---------+---------+---------+---------+ + + +---------+---------+---------+---------+---------+ + | - | - | - |CarbonLib|Mac OS X | +* ATSFont.h (***) +---------+---------+---------+---------+---------+ +ATSFontFindFromName() | x | x | x | x | o | +ATSFontGetFileSpecification() | x | x | x | x | o | + +---------+---------+---------+---------+---------+ + + (*) + In the "Classic": the original binary executable + format, these framework functions are directly + transformed to MacOS system call. Therefore, the + exact availability should be checked by running + system. + + (**) + InterfaceLib is bundled to MacOS and its version + is usually equal to MacOS. There's no separate + update for InterfaceLib. It is supposed that + there's no InterfaceLib 9.x for m68k platforms. + In fact, these functions are FSRef dependent. + + (***) + ATSUI framework is available on ATSUnicode 8.5 on + ppc Toolbox CFM, CarbonLib 1.0 too. But its base: + ATS font manager is not published in these versions. + +------------------------------------------------------------ +Last update: 2009-Jul-25. + +Currently maintained by + suzuki toshiya, <[email protected]> +Originally prepared by + Leonard Rosenthol, <[email protected]> + Just van Rossum, <[email protected]> + +This directory is now actively maintained as part of the FreeType Project. diff --git a/components/external/freetype/builds/newline b/components/external/freetype/builds/newline index d3f5a12faa..8b13789179 100644 --- a/components/external/freetype/builds/newline +++ b/components/external/freetype/builds/newline @@ -1 +1 @@ -
+ diff --git a/components/external/freetype/builds/symbian/freetype.mmp b/components/external/freetype/builds/symbian/freetype.mmp index 9ba262622c..c10f357481 100644 --- a/components/external/freetype/builds/symbian/freetype.mmp +++ b/components/external/freetype/builds/symbian/freetype.mmp @@ -1,142 +1,142 @@ -//
-// FreeType 2 makefile for the symbian platform
-//
-
-// Copyright 2008, 2009 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.
-
-target freetype.lib
-targettype lib
-
-macro NDEBUG
-macro FT2_BUILD_LIBRARY
-
-sourcepath ..\..\src\autofit
-
-source autofit.c
-
-sourcepath ..\..\src\base
-
-source ftbase.c
-source ftbbox.c
-source ftbdf.c
-source ftbitmap.c
-source ftcid.c
-source ftfstype.c
-source ftgasp.c
-source ftglyph.c
-source ftgxval.c
-source ftinit.c
-source ftlcdfil.c
-source ftmm.c
-source ftotval.c
-source ftpatent.c
-source ftpfr.c
-source ftstroke.c
-source ftsynth.c
-source ftsystem.c
-source fttype1.c
-source ftwinfnt.c
-
-sourcepath ..\..\src\bdf
-
-source bdf.c
-
-sourcepath ..\..\src\cache
-
-source ftcache.c
-
-sourcepath ..\..\src\cff
-
-source cff.c
-
-sourcepath ..\..\src\cid
-
-source type1cid.c
-
-sourcepath ..\..\src\gzip
-
-source ftgzip.c
-
-sourcepath ..\..\src\lzw
-
-source ftlzw.c
-
-sourcepath ..\..\src\pcf
-
-source pcf.c
-
-sourcepath ..\..\src\pfr
-
-source pfr.c
-
-sourcepath ..\..\src\psaux
-
-source psaux.c
-
-sourcepath ..\..\src\pshinter
-
-source pshinter.c
-
-sourcepath ..\..\src\psnames
-
-source psmodule.c
-
-sourcepath ..\..\src\raster
-
-source raster.c
-
-sourcepath ..\..\src\sfnt
-
-source sfnt.c
-
-sourcepath ..\..\src\smooth
-
-source smooth.c
-
-sourcepath ..\..\src\truetype
-
-source truetype.c
-
-sourcepath ..\..\src\type1
-
-source type1.c
-
-sourcepath ..\..\src\type42
-
-source type42.c
-
-sourcepath ..\..\src\winfonts
-
-source winfnt.c
-
-
-systeminclude ..\..\include
-systeminclude \epoc32\include\stdapis
-userinclude ..\..\src\autofit
-userinclude ..\..\src\bdf
-userinclude ..\..\src\cache
-userinclude ..\..\src\cff
-userinclude ..\..\src\cid
-userinclude ..\..\src\gxvalid
-userinclude ..\..\src\gzip
-userinclude ..\..\src\lzw
-userinclude ..\..\src\otvalid
-userinclude ..\..\src\pcf
-userinclude ..\..\src\pfr
-userinclude ..\..\src\psaux
-userinclude ..\..\src\pshinter
-userinclude ..\..\src\psnames
-userinclude ..\..\src\raster
-userinclude ..\..\src\sfnt
-userinclude ..\..\src\smooth
-userinclude ..\..\src\truetype
-userinclude ..\..\src\type1
-userinclude ..\..\src\type42
-userinclude ..\..\src\winfonts
+// +// FreeType 2 makefile for the symbian platform +// + +// Copyright 2008, 2009 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. + +target freetype.lib +targettype lib + +macro NDEBUG +macro FT2_BUILD_LIBRARY + +sourcepath ..\..\src\autofit + +source autofit.c + +sourcepath ..\..\src\base + +source ftbase.c +source ftbbox.c +source ftbdf.c +source ftbitmap.c +source ftcid.c +source ftfstype.c +source ftgasp.c +source ftglyph.c +source ftgxval.c +source ftinit.c +source ftlcdfil.c +source ftmm.c +source ftotval.c +source ftpatent.c +source ftpfr.c +source ftstroke.c +source ftsynth.c +source ftsystem.c +source fttype1.c +source ftwinfnt.c + +sourcepath ..\..\src\bdf + +source bdf.c + +sourcepath ..\..\src\cache + +source ftcache.c + +sourcepath ..\..\src\cff + +source cff.c + +sourcepath ..\..\src\cid + +source type1cid.c + +sourcepath ..\..\src\gzip + +source ftgzip.c + +sourcepath ..\..\src\lzw + +source ftlzw.c + +sourcepath ..\..\src\pcf + +source pcf.c + +sourcepath ..\..\src\pfr + +source pfr.c + +sourcepath ..\..\src\psaux + +source psaux.c + +sourcepath ..\..\src\pshinter + +source pshinter.c + +sourcepath ..\..\src\psnames + +source psmodule.c + +sourcepath ..\..\src\raster + +source raster.c + +sourcepath ..\..\src\sfnt + +source sfnt.c + +sourcepath ..\..\src\smooth + +source smooth.c + +sourcepath ..\..\src\truetype + +source truetype.c + +sourcepath ..\..\src\type1 + +source type1.c + +sourcepath ..\..\src\type42 + +source type42.c + +sourcepath ..\..\src\winfonts + +source winfnt.c + + +systeminclude ..\..\include +systeminclude \epoc32\include\stdapis +userinclude ..\..\src\autofit +userinclude ..\..\src\bdf +userinclude ..\..\src\cache +userinclude ..\..\src\cff +userinclude ..\..\src\cid +userinclude ..\..\src\gxvalid +userinclude ..\..\src\gzip +userinclude ..\..\src\lzw +userinclude ..\..\src\otvalid +userinclude ..\..\src\pcf +userinclude ..\..\src\pfr +userinclude ..\..\src\psaux +userinclude ..\..\src\pshinter +userinclude ..\..\src\psnames +userinclude ..\..\src\raster +userinclude ..\..\src\sfnt +userinclude ..\..\src\smooth +userinclude ..\..\src\truetype +userinclude ..\..\src\type1 +userinclude ..\..\src\type42 +userinclude ..\..\src\winfonts diff --git a/components/external/freetype/builds/unix/.gitignore b/components/external/freetype/builds/unix/.gitignore index 42a3428120..86b8c409bc 100644 --- a/components/external/freetype/builds/unix/.gitignore +++ b/components/external/freetype/builds/unix/.gitignore @@ -1,16 +1,16 @@ -aclocal.m4
-autom4te.cache
-config.cache
-config.guess
-config.log
-config.status
-config.sub
-configure
-configure.ac
-freetype2.pc
-freetype-config
-ftconfig.h
-libtool
-ltmain.sh
-unix-cc.mk
-unix-def.mk
+aclocal.m4 +autom4te.cache +config.cache +config.guess +config.log +config.status +config.sub +configure +configure.ac +freetype2.pc +freetype-config +ftconfig.h +libtool +ltmain.sh +unix-cc.mk +unix-def.mk diff --git a/components/external/freetype/builds/unix/config.guess b/components/external/freetype/builds/unix/config.guess index 928ced7a31..c2246a4f7f 100644 --- a/components/external/freetype/builds/unix/config.guess +++ b/components/external/freetype/builds/unix/config.guess @@ -1,1502 +1,1502 @@ -#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-# Free Software Foundation, Inc.
-
-timestamp='2009-12-30'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner. Please send patches (context
-# diff format) to <[email protected]> and include a ChangeLog
-# entry.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub. If it succeeds, it prints the system name on stdout, and
-# exits with 0. Otherwise, it exits with 1.
-#
-# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to <[email protected]>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit ;;
- --version | -v )
- echo "$version" ; exit ;;
- --help | --h* | -h )
- echo "$usage"; exit ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help" >&2
- exit 1 ;;
- * )
- break ;;
- esac
-done
-
-if test $# != 0; then
- echo "$me: too many arguments$help" >&2
- exit 1
-fi
-
-trap 'exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int x;" > $dummy.c ;
- for c in cc gcc c89 c99 ; do
- if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found ;
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# ([email protected] 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
- PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- *:NetBSD:*:*)
- # NetBSD (nbsd) targets should (where applicable) match one or
- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
- # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
- # switched to ELF, *-*-netbsd* would select the old
- # object file format. This provides both forward
- # compatibility and a consistent mechanism for selecting the
- # object file format.
- #
- # Note: NetBSD doesn't particularly care about the vendor
- # portion of the name. We always set it to "unknown".
- sysctl="sysctl -n hw.machine_arch"
- UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
- /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
- case "${UNAME_MACHINE_ARCH}" in
- armeb) machine=armeb-unknown ;;
- arm*) machine=arm-unknown ;;
- sh3el) machine=shl-unknown ;;
- sh3eb) machine=sh-unknown ;;
- sh5el) machine=sh5le-unknown ;;
- *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
- esac
- # The Operating System including object format, if it has switched
- # to ELF recently, or will in the future.
- case "${UNAME_MACHINE_ARCH}" in
- arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- eval $set_cc_for_build
- if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ELF__
- then
- # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
- # Return netbsd for either. FIX?
- os=netbsd
- else
- os=netbsdelf
- fi
- ;;
- *)
- os=netbsd
- ;;
- esac
- # The OS release
- # Debian GNU/NetBSD machines have a different userland, and
- # thus, need a distinct triplet. However, they do not need
- # kernel version information, so it can be replaced with a
- # suitable tag, in the style of linux-gnu.
- case "${UNAME_VERSION}" in
- Debian*)
- release='-gnu'
- ;;
- *)
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- ;;
- esac
- # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
- # contains redundant information, the shorter form:
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit ;;
- *:OpenBSD:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
- exit ;;
- *:ekkoBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
- exit ;;
- *:SolidBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
- exit ;;
- macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
- *:MirBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
- alpha:OSF1:*:*)
- case $UNAME_RELEASE in
- *4.0)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- ;;
- *5.*)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
- ;;
- esac
- # According to Compaq, /usr/sbin/psrinfo has been available on
- # OSF/1 and Tru64 systems produced since 1995. I hope that
- # covers most systems running today. This code pipes the CPU
- # types through head -n 1, so we only detect the type of CPU 0.
- ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
- case "$ALPHA_CPU_TYPE" in
- "EV4 (21064)")
- UNAME_MACHINE="alpha" ;;
- "EV4.5 (21064)")
- UNAME_MACHINE="alpha" ;;
- "LCA4 (21066/21068)")
- UNAME_MACHINE="alpha" ;;
- "EV5 (21164)")
- UNAME_MACHINE="alphaev5" ;;
- "EV5.6 (21164A)")
- UNAME_MACHINE="alphaev56" ;;
- "EV5.6 (21164PC)")
- UNAME_MACHINE="alphapca56" ;;
- "EV5.7 (21164PC)")
- UNAME_MACHINE="alphapca57" ;;
- "EV6 (21264)")
- UNAME_MACHINE="alphaev6" ;;
- "EV6.7 (21264A)")
- UNAME_MACHINE="alphaev67" ;;
- "EV6.8CB (21264C)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.8AL (21264B)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.8CX (21264D)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.9A (21264/EV69A)")
- UNAME_MACHINE="alphaev69" ;;
- "EV7 (21364)")
- UNAME_MACHINE="alphaev7" ;;
- "EV7.9 (21364A)")
- UNAME_MACHINE="alphaev79" ;;
- esac
- # A Pn.n version is a patched version.
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit ;;
- *:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
- exit ;;
- *:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
- exit ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit ;;
- *:z/VM:*:*)
- echo s390-ibm-zvmoe
- exit ;;
- *:OS400:*:*)
- echo powerpc-ibm-os400
- exit ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit ;;
- arm:riscos:*:*|arm:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
- SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit ;;
- Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- # [email protected] (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit ;;
- NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit ;;
- DRS?6000:unix:4.0:6*)
- echo sparc-icl-nx6
- exit ;;
- DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
- case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7; exit ;;
- esac ;;
- s390x:SunOS:*:*)
- echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- echo i386-pc-auroraux${UNAME_RELEASE}
- exit ;;
- i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- eval $set_cc_for_build
- SUN_ARCH="i386"
- # If there is a compiler, see if it is configured for 64-bit objects.
- # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
- # This test works for both compilers.
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- SUN_ARCH="x86_64"
- fi
- fi
- echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit ;;
- sun*:*:4.2BSD:*)
- UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
- sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
- ;;
- sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
- ;;
- esac
- exit ;;
- aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
- exit ;;
- # The situation for MiNT is a little confusing. The machine name
- # can be virtually everything (everything which is not
- # "atarist" or "atariste" at least should have a processor
- # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
- # to the lowercase version "mint" (or "freemint"). Finally
- # the system name "TOS" denotes a system which is actually not
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit ;;
- *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit ;;
- m68k:machten:*:*)
- echo m68k-apple-machten${UNAME_RELEASE}
- exit ;;
- powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
- exit ;;
- mips:*:*:UMIPS | mips:*:*:RISCos)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h> /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-EOF
- $CC_FOR_BUILD -o $dummy $dummy.c &&
- dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`$dummy $dummyarg` &&
- { echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos${UNAME_RELEASE}
- exit ;;
- Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit ;;
- Motorola:*:4.3:PL8-*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
- then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
- then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- else
- echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit ;;
- *:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit ;;
- ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
- i*86:AIX:*:*)
- echo i386-ibm-aix
- exit ;;
- ia64:AIX:*:*)
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
- exit ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
- then
- echo "$SYSTEM_NAME"
- else
- echo rs6000-ibm-aix3.2.5
- fi
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit ;;
- *:AIX:*:[456])
- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit ;;
- 9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/[678][0-9][0-9])
- if [ -x /usr/bin/getconf ]; then
- sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
- 532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
- 32) HP_ARCH="hppa2.0n" ;;
- 64) HP_ARCH="hppa2.0w" ;;
- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
- esac ;;
- esac
- fi
- if [ "${HP_ARCH}" = "" ]; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
-
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
-
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
-
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
-EOF
- (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
- test -z "$HP_ARCH" && HP_ARCH=hppa
- fi ;;
- esac
- if [ ${HP_ARCH} = "hppa2.0w" ]
- then
- eval $set_cc_for_build
-
- # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
- # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
- # generating 64-bit code. GNU and HP use different nomenclature:
- #
- # $ CC_FOR_BUILD=cc ./config.guess
- # => hppa2.0w-hp-hpux11.23
- # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
- # => hppa64-hp-hpux11.23
-
- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
- grep -q __LP64__
- then
- HP_ARCH="hppa2.0w"
- else
- HP_ARCH="hppa64"
- fi
- fi
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit ;;
- ia64:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux${HPUX_REV}
- exit ;;
- 3050*:HI-UX:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
- echo unknown-hitachi-hiuxwe2
- exit ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit ;;
- *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit ;;
- i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
- else
- echo ${UNAME_MACHINE}-unknown-osf1
- fi
- exit ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
- | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
- -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- *:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- 5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit ;;
- *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit ;;
- *:FreeBSD:*:*)
- case ${UNAME_MACHINE} in
- pc98)
- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- amd64)
- echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- *)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- esac
- exit ;;
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit ;;
- *:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit ;;
- i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
- exit ;;
- i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
- exit ;;
- *:Interix*:*)
- case ${UNAME_MACHINE} in
- x86)
- echo i586-pc-interix${UNAME_RELEASE}
- exit ;;
- authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix${UNAME_RELEASE}
- exit ;;
- IA64)
- echo ia64-unknown-interix${UNAME_RELEASE}
- exit ;;
- esac ;;
- [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
- echo i${UNAME_MACHINE}-pc-mks
- exit ;;
- 8664:Windows_NT:*)
- echo x86_64-pc-mks
- exit ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i586-pc-interix
- exit ;;
- i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit ;;
- amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-unknown-cygwin
- exit ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- *:GNU:*:*)
- # the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit ;;
- *:GNU/*:*:*)
- # other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
- exit ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit ;;
- alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
- EV5) UNAME_MACHINE=alphaev5 ;;
- EV56) UNAME_MACHINE=alphaev56 ;;
- PCA56) UNAME_MACHINE=alphapca56 ;;
- PCA57) UNAME_MACHINE=alphapca56 ;;
- EV6) UNAME_MACHINE=alphaev6 ;;
- EV67) UNAME_MACHINE=alphaev67 ;;
- EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
- objdump --private-headers /bin/sh | grep -q ld.so.1
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
- exit ;;
- arm*:Linux:*:*)
- eval $set_cc_for_build
- if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ARM_EABI__
- then
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- else
- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
- fi
- exit ;;
- avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- cris:Linux:*:*)
- echo cris-axis-linux-gnu
- exit ;;
- crisv32:Linux:*:*)
- echo crisv32-axis-linux-gnu
- exit ;;
- frv:Linux:*:*)
- echo frv-unknown-linux-gnu
- exit ;;
- i*86:Linux:*:*)
- LIBC=gnu
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #ifdef __dietlibc__
- LIBC=dietlibc
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
- exit ;;
- ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- mips:Linux:*:* | mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef ${UNAME_MACHINE}
- #undef ${UNAME_MACHINE}el
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=${UNAME_MACHINE}el
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=${UNAME_MACHINE}
- #else
- CPU=
- #endif
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
- ;;
- or32:Linux:*:*)
- echo or32-unknown-linux-gnu
- exit ;;
- padre:Linux:*:*)
- echo sparc-unknown-linux-gnu
- exit ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-gnu
- exit ;;
- parisc:Linux:*:* | hppa:Linux:*:*)
- # Look for CPU level
- case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-gnu ;;
- PA8*) echo hppa2.0-unknown-linux-gnu ;;
- *) echo hppa-unknown-linux-gnu ;;
- esac
- exit ;;
- ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
- exit ;;
- ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
- exit ;;
- s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
- exit ;;
- sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-gnu
- exit ;;
- x86_64:Linux:*:*)
- echo x86_64-unknown-linux-gnu
- exit ;;
- xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- i*86:DYNIX/ptx:4*:*)
- # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
- # earlier versions are messed up and put the nodename in both
- # sysname and nodename.
- echo i386-sequent-sysv4
- exit ;;
- i*86:UNIX_SV:4.2MP:2.*)
- # Unixware is an offshoot of SVR4, but it has its own version
- # number series starting with 2...
- # I am not positive that other SVR4 systems won't match this,
- # I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit ;;
- i*86:OS/2:*:*)
- # If we were able to find `uname', then EMX Unix compatibility
- # is probably installed.
- echo ${UNAME_MACHINE}-pc-os2-emx
- exit ;;
- i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
- exit ;;
- i*86:atheos:*:*)
- echo ${UNAME_MACHINE}-unknown-atheos
- exit ;;
- i*86:syllable:*:*)
- echo ${UNAME_MACHINE}-pc-syllable
- exit ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit ;;
- i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
- if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
- else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
- fi
- exit ;;
- i*86:*:5:[678]*)
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
- case `/bin/uname -X | grep "^Machine"` in
- *486*) UNAME_MACHINE=i486 ;;
- *Pentium) UNAME_MACHINE=i586 ;;
- *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
- esac
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit ;;
- i*86:*:3.2:*)
- if test -f /usr/options/cb.name; then
- UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
- elif /bin/uname -X 2>/dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
- (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
- && UNAME_MACHINE=i586
- (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
- && UNAME_MACHINE=i686
- (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
- && UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-pc-sysv32
- fi
- exit ;;
- pc:*:*:*)
- # Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i586.
- # Note: whatever this is, it MUST be the same as what config.sub
- # prints for the "djgpp" host, or else GDB configury will decide that
- # this is a cross-build.
- echo i586-pc-msdosdjgpp
- exit ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit ;;
- mc68k:UNIX:SYSTEM5:3.51m)
- echo m68k-convergent-sysv
- exit ;;
- M680?0:D-NIX:5.3:*)
- echo m68k-diab-dnix
- exit ;;
- M68*:*:R3V[5678]*:*)
- test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
- 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
- OS_REL=''
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4; exit; } ;;
- NCR*:*:4.2:* | MPRAS*:*:4.2:*)
- OS_REL='.3'
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
- m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit ;;
- TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
- exit ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <[email protected]>
- echo i586-unisys-sysv4
- exit ;;
- *:UNIX_System_V:4*:FTX*)
- # From Gerald Hewes <[email protected]>.
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit ;;
- *:*:*:FTX*)
- # From [email protected].
- echo i860-stratus-sysv4
- exit ;;
- i*86:VOS:*:*)
- # From [email protected].
- echo ${UNAME_MACHINE}-stratus-vos
- exit ;;
- *:VOS:*:*)
- # From [email protected].
- echo hppa1.1-stratus-vos
- exit ;;
- mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
- exit ;;
- news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
- else
- echo mips-unknown-sysv${UNAME_RELEASE}
- fi
- exit ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit ;;
- BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit ;;
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit ;;
- BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
- echo i586-pc-haiku
- exit ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux${UNAME_RELEASE}
- exit ;;
- Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit ;;
- *:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit ;;
- *:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- case $UNAME_PROCESSOR in
- i386)
- eval $set_cc_for_build
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- UNAME_PROCESSOR="x86_64"
- fi
- fi ;;
- unknown) UNAME_PROCESSOR=powerpc ;;
- esac
- echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
- exit ;;
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- UNAME_PROCESSOR=`uname -p`
- if test "$UNAME_PROCESSOR" = "x86"; then
- UNAME_PROCESSOR=i386
- UNAME_MACHINE=pc
- fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit ;;
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit ;;
- NSE-?:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk${UNAME_RELEASE}
- exit ;;
- NSR-?:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${UNAME_RELEASE}
- exit ;;
- *:NonStop-UX:*:*)
- echo mips-compaq-nonstopux
- exit ;;
- BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit ;;
- DS/*:UNIX_System_V:*:*)
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit ;;
- *:Plan9:*:*)
- # "uname -m" is not consistent, so use $cputype instead. 386
- # is converted to i386 for consistency with other x86
- # operating systems.
- if test "$cputype" = "386"; then
- UNAME_MACHINE=i386
- else
- UNAME_MACHINE="$cputype"
- fi
- echo ${UNAME_MACHINE}-unknown-plan9
- exit ;;
- *:TOPS-10:*:*)
- echo pdp10-unknown-tops10
- exit ;;
- *:TENEX:*:*)
- echo pdp10-unknown-tenex
- exit ;;
- KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- echo pdp10-dec-tops20
- exit ;;
- XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- echo pdp10-xkl-tops20
- exit ;;
- *:TOPS-20:*:*)
- echo pdp10-unknown-tops20
- exit ;;
- *:ITS:*:*)
- echo pdp10-unknown-its
- exit ;;
- SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
- exit ;;
- *:DragonFly:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit ;;
- *:*VMS:*:*)
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "${UNAME_MACHINE}" in
- A*) echo alpha-dec-vms ; exit ;;
- I*) echo ia64-dec-vms ; exit ;;
- V*) echo vax-dec-vms ; exit ;;
- esac ;;
- *:XENIX:*:SysV)
- echo i386-pc-xenix
- exit ;;
- i*86:skyos:*:*)
- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
- exit ;;
- i*86:rdos:*:*)
- echo ${UNAME_MACHINE}-pc-rdos
- exit ;;
- i*86:AROS:*:*)
- echo ${UNAME_MACHINE}-pc-aros
- exit ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-# include <sys/param.h>
-# if defined (BSD)
-# if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-# else
-# if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# endif
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# else
- printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- c34*)
- echo c34-convex-bsd
- exit ;;
- c38*)
- echo c38-convex-bsd
- exit ;;
- c4*)
- echo c4-convex-bsd
- exit ;;
- esac
-fi
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
-
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-and
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <[email protected]> in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo = `(hostinfo) 2>/dev/null`
-/bin/universe = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
+#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# Free Software Foundation, Inc. + +timestamp='2009-12-30' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Originally written by Per Bothner. Please send patches (context +# diff format) to <[email protected]> and include a ChangeLog +# entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to <[email protected]>." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free +Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# ([email protected] 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # [email protected] (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include <stdio.h> /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include <sys/systemcfg.h> + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[456]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include <stdlib.h> + #include <unistd.h> + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include <unistd.h> + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` + echo ${UNAME_MACHINE}-pc-isc$UNAME_REL + elif /bin/uname -X 2>/dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says <[email protected]> + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes <[email protected]>. + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From [email protected]. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From [email protected]. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From [email protected]. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + UNAME_PROCESSOR="x86_64" + fi + fi ;; + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c <<EOF +#ifdef _SEQUENT_ +# include <sys/types.h> +# include <sys/utsname.h> +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include <sys/param.h> + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include <sys/param.h> +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 <<EOF +$0: unable to guess system type + +This script, last modified $timestamp, has failed to recognize +the operating system you are using. It is advised that you +download the most up to date version of the config scripts from + + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +and + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +If the version you run ($0) is already up to date, please +send the following data and any information you think might be +pertinent to <[email protected]> in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/components/external/freetype/builds/unix/config.sub b/components/external/freetype/builds/unix/config.sub index 3fd6971b97..c2d125724c 100644 --- a/components/external/freetype/builds/unix/config.sub +++ b/components/external/freetype/builds/unix/config.sub @@ -1,1714 +1,1714 @@ -#! /bin/sh
-# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-# Free Software Foundation, Inc.
-
-timestamp='2010-01-22'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Please send patches to <[email protected]>. Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
- $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to <[email protected]>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit ;;
- --version | -v )
- echo "$version" ; exit ;;
- --help | --h* | -h )
- echo "$usage"; exit ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help"
- exit 1 ;;
-
- *local*)
- # First pass through any local machine types.
- echo $1
- exit ;;
-
- * )
- break ;;
- esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
- exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
- exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
- kopensolaris*-gnu* | \
- storm-chaos* | os2-emx* | rtmk-nova*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray | -microblaze)
- os=
- basic_machine=$1
- ;;
- -bluegene*)
- os=-cnk
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -chorusos*)
- os=-chorusos
- basic_machine=$1
- ;;
- -chorusrdb)
- os=-chorusrdb
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco6)
- os=-sco5v6
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5v6*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*)
- os=-lynxos
- ;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
- ;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
- ;;
- -psos*)
- os=-psos
- ;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- 1750a | 580 \
- | a29k \
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
- | am33_2.0 \
- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
- | bfin \
- | c4x | clipper \
- | d10v | d30v | dlx | dsp16xx \
- | fido | fr30 | frv \
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | i370 | i860 | i960 | ia64 \
- | ip2k | iq2000 \
- | lm32 \
- | m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | mcore | mep | metag \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64el \
- | mips64octeon | mips64octeonel \
- | mips64orion | mips64orionel \
- | mips64r5900 | mips64r5900el \
- | mips64vr | mips64vrel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
- | mipsisa32 | mipsisa32el \
- | mipsisa32r2 | mipsisa32r2el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipstx39 | mipstx39el \
- | mn10200 | mn10300 \
- | moxie \
- | mt \
- | msp430 \
- | nios | nios2 \
- | ns16k | ns32k \
- | or32 \
- | pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
- | pyramid \
- | rx \
- | score \
- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
- | sh64 | sh64le \
- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
- | spu | strongarm \
- | tahoe | thumb | tic4x | tic80 | tron \
- | ubicom32 \
- | v850 | v850e \
- | we32k \
- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
- | z8k | z80)
- basic_machine=$basic_machine-unknown
- ;;
- m6811 | m68hc11 | m6812 | m68hc12 | picochip)
- # Motorola 68HC11/12.
- basic_machine=$basic_machine-unknown
- os=-none
- ;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
- ;;
- ms1)
- basic_machine=mt-unknown
- ;;
-
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- 580-* \
- | a29k-* \
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
- | avr-* | avr32-* \
- | bfin-* | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
- | clipper-* | craynv-* | cydra-* \
- | d10v-* | d30v-* | dlx-* \
- | elxsi-* \
- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
- | h8300-* | h8500-* \
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
- | i*86-* | i860-* | i960-* | ia64-* \
- | ip2k-* | iq2000-* \
- | lm32-* \
- | m32c-* | m32r-* | m32rle-* \
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
- | mips16-* \
- | mips64-* | mips64el-* \
- | mips64octeon-* | mips64octeonel-* \
- | mips64orion-* | mips64orionel-* \
- | mips64r5900-* | mips64r5900el-* \
- | mips64vr-* | mips64vrel-* \
- | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* \
- | mips64vr5000-* | mips64vr5000el-* \
- | mips64vr5900-* | mips64vr5900el-* \
- | mipsisa32-* | mipsisa32el-* \
- | mipsisa32r2-* | mipsisa32r2el-* \
- | mipsisa64-* | mipsisa64el-* \
- | mipsisa64r2-* | mipsisa64r2el-* \
- | mipsisa64sb1-* | mipsisa64sb1el-* \
- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
- | mipstx39-* | mipstx39el-* \
- | mmix-* \
- | mt-* \
- | msp430-* \
- | nios-* | nios2-* \
- | none-* | np1-* | ns16k-* | ns32k-* \
- | orion-* \
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
- | pyramid-* \
- | romp-* | rs6000-* | rx-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
- | sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
- | tahoe-* | thumb-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
- | tile-* | tilegx-* \
- | tron-* \
- | ubicom32-* \
- | v850-* | v850e-* | vax-* \
- | we32k-* \
- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
- | xstormy16-* | xtensa*-* \
- | ymp-* \
- | z8k-* | z80-*)
- ;;
- # Recognize the basic CPU types without company name, with glob match.
- xtensa*)
- basic_machine=$basic_machine-unknown
- ;;
- # Recognize the various machine names and aliases which stand
- # for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
- ;;
- 3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- abacus)
- basic_machine=abacus-unknown
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amd64)
- basic_machine=x86_64-pc
- ;;
- amd64-*)
- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-unknown
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aros)
- basic_machine=i386-pc
- os=-aros
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- blackfin)
- basic_machine=bfin-unknown
- os=-linux
- ;;
- blackfin-*)
- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- bluegene*)
- basic_machine=powerpc-ibm
- os=-cnk
- ;;
- c90)
- basic_machine=c90-cray
- os=-unicos
- ;;
- cegcc)
- basic_machine=arm-unknown
- os=-cegcc
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | j90)
- basic_machine=j90-cray
- os=-unicos
- ;;
- craynv)
- basic_machine=craynv-cray
- os=-unicosmp
- ;;
- cr16)
- basic_machine=cr16-unknown
- os=-elf
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- crisv32 | crisv32-* | etraxfs*)
- basic_machine=crisv32-axis
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- crx)
- basic_machine=crx-unknown
- os=-elf
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
- ;;
- decsystem10* | dec10*)
- basic_machine=pdp10-dec
- os=-tops10
- ;;
- decsystem20* | dec20*)
- basic_machine=pdp10-dec
- os=-tops20
- ;;
- delta | 3300 | motorola-3300 | motorola-delta \
- | 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dicos)
- basic_machine=i686-pc
- os=-dicos
- ;;
- djgpp)
- basic_machine=i586-pc
- os=-msdosdjgpp
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
- ;;
- encore | umax | mmax)
- basic_machine=ns32k-encore
- ;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
- ;;
- fx2800)
- basic_machine=i860-alliant
- ;;
- genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=-go32
- ;;
- h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
- ;;
- hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
- ;;
- hp9k3[2-9][0-9])
- basic_machine=m68k-hp
- ;;
- hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
- ;;
- hp9k78[0-9] | hp78[0-9])
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
- ;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
- i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
- ;;
- i*86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
- ;;
- i*86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
- ;;
- i*86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
- ;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | vsta)
- basic_machine=i386-unknown
- os=-vsta
- ;;
- iris | iris4d)
- basic_machine=mips-sgi
- case $os in
- -irix*)
- ;;
- *)
- os=-irix4
- ;;
- esac
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- m68knommu)
- basic_machine=m68k-unknown
- os=-linux
- ;;
- m68knommu-*)
- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- microblaze)
- basic_machine=microblaze-xilinx
- ;;
- mingw32)
- basic_machine=i386-pc
- os=-mingw32
- ;;
- mingw32ce)
- basic_machine=arm-unknown
- os=-mingw32ce
- ;;
- miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=-morphos
- ;;
- msdos)
- basic_machine=i386-pc
- os=-msdos
- ;;
- ms1-*)
- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
- ;;
- news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
- ;;
- -ns2*)
- os=-nextstep2
- ;;
- *)
- os=-nextstep3
- ;;
- esac
- ;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=-nonstopux
- ;;
- np1)
- basic_machine=np1-gould
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
- ;;
- op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- openrisc | openrisc-*)
- basic_machine=or32-unknown
- ;;
- os400)
- basic_machine=powerpc-ibm
- os=-os400
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
- ;;
- pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- parisc)
- basic_machine=hppa-unknown
- os=-linux
- ;;
- parisc-*)
- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- pbd)
- basic_machine=sparc-tti
- ;;
- pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pc98)
- basic_machine=i386-pc
- ;;
- pc98-*)
- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium | p5 | k5 | k6 | nexgen | viac3)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86 | athlon | athlon_*)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2 | pentiumiii | pentium3)
- basic_machine=i686-pc
- ;;
- pentium4)
- basic_machine=i786-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-* | 6x86-* | athlon-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium4-*)
- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=power-ibm
- ;;
- ppc) basic_machine=powerpc-unknown
- ;;
- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppcle | powerpclittle | ppc-le | powerpc-little)
- basic_machine=powerpcle-unknown
- ;;
- ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64) basic_machine=powerpc64-unknown
- ;;
- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64le | powerpc64little | ppc64-le | powerpc64-little)
- basic_machine=powerpc64le-unknown
- ;;
- ppc64le-* | powerpc64little-*)
- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ps2)
- basic_machine=i386-ibm
- ;;
- pw32)
- basic_machine=i586-unknown
- os=-pw32
- ;;
- rdos)
- basic_machine=i386-pc
- os=-rdos
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- rm[46]00)
- basic_machine=mips-siemens
- ;;
- rtpc | rtpc-*)
- basic_machine=romp-ibm
- ;;
- s390 | s390-*)
- basic_machine=s390-ibm
- ;;
- s390x | s390x-*)
- basic_machine=s390x-ibm
- ;;
- sa29200)
- basic_machine=a29k-amd
- os=-udi
- ;;
- sb1)
- basic_machine=mipsisa64sb1-unknown
- ;;
- sb1el)
- basic_machine=mipsisa64sb1el-unknown
- ;;
- sde)
- basic_machine=mipsisa32-sde
- os=-elf
- ;;
- sei)
- basic_machine=mips-sei
- os=-seiux
- ;;
- sequent)
- basic_machine=i386-sequent
- ;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
- sh5el)
- basic_machine=sh5le-unknown
- ;;
- sh64)
- basic_machine=sh64-unknown
- ;;
- sparclite-wrs | simso-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
- ;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
- ;;
- spur)
- basic_machine=spur-unknown
- ;;
- st2000)
- basic_machine=m68k-tandem
- ;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
- ;;
- sun2)
- basic_machine=m68000-sun
- ;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
- ;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
- ;;
- sun4)
- basic_machine=sparc-sun
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- ;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
- ;;
- t3e)
- basic_machine=alphaev5-cray
- os=-unicos
- ;;
- t90)
- basic_machine=t90-cray
- os=-unicos
- ;;
- tic54x | c54x*)
- basic_machine=tic54x-unknown
- os=-coff
- ;;
- tic55x | c55x*)
- basic_machine=tic55x-unknown
- os=-coff
- ;;
- tic6x | c6x*)
- basic_machine=tic6x-unknown
- os=-coff
- ;;
- # This must be matched before tile*.
- tilegx*)
- basic_machine=tilegx-unknown
- os=-linux-gnu
- ;;
- tile*)
- basic_machine=tile-unknown
- os=-linux-gnu
- ;;
- tx39)
- basic_machine=mipstx39-unknown
- ;;
- tx39el)
- basic_machine=mipstx39el-unknown
- ;;
- toad1)
- basic_machine=pdp10-xkl
- os=-tops20
- ;;
- tower | tower-32)
- basic_machine=m68k-ncr
- ;;
- tpf)
- basic_machine=s390x-ibm
- os=-tpf
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
- ;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
- ;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=-vms
- ;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
- ;;
- w65*)
- basic_machine=w65-wdc
- os=-none
- ;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
- ;;
- xbox)
- basic_machine=i686-pc
- os=-mingw32
- ;;
- xps | xps100)
- basic_machine=xps100-honeywell
- ;;
- ymp)
- basic_machine=ymp-cray
- os=-unicos
- ;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
- ;;
- z80-*-coff)
- basic_machine=z80-unknown
- os=-sim
- ;;
- none)
- basic_machine=none-none
- os=-none
- ;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
- ;;
- op50n)
- basic_machine=hppa1.1-oki
- ;;
- op60c)
- basic_machine=hppa1.1-oki
- ;;
- romp)
- basic_machine=romp-ibm
- ;;
- mmix)
- basic_machine=mmix-knuth
- ;;
- rs6000)
- basic_machine=rs6000-ibm
- ;;
- vax)
- basic_machine=vax-dec
- ;;
- pdp10)
- # there are many clones, so DEC is not a safe bet
- basic_machine=pdp10-unknown
- ;;
- pdp11)
- basic_machine=pdp11-dec
- ;;
- we32k)
- basic_machine=we32k-att
- ;;
- sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
- basic_machine=sh-unknown
- ;;
- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
- basic_machine=sparc-sun
- ;;
- cydra)
- basic_machine=cydra-cydrome
- ;;
- orion)
- basic_machine=orion-highlevel
- ;;
- orion105)
- basic_machine=clipper-highlevel
- ;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
- ;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
- ;;
- *-unknown)
- # Make sure to match an already-canonicalized machine name.
- ;;
- *)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
- ;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
- ;;
- *)
- ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -auroraux)
- os=-auroraux
- ;;
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
- ;;
- -solaris)
- os=-solaris2
- ;;
- -svr4*)
- os=-sysv4
- ;;
- -unixware*)
- os=-sysv4.2uw
- ;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
- ;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
- | -sym* | -kopensolaris* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* | -aros* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
- | -openbsd* | -solidbsd* \
- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* | -cegcc* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- -qnx*)
- case $basic_machine in
- x86-* | i*86-*)
- ;;
- *)
- os=-nto$os
- ;;
- esac
- ;;
- -nto-qnx*)
- ;;
- -nto*)
- os=`echo $os | sed -e 's|nto|nto-qnx|'`
- ;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
- ;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
- ;;
- -linux-dietlibc)
- os=-linux-dietlibc
- ;;
- -linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
- ;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
- ;;
- -opened*)
- os=-openedition
- ;;
- -os400*)
- os=-os400
- ;;
- -wince*)
- os=-wince
- ;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
- -utek*)
- os=-bsd
- ;;
- -dynix*)
- os=-bsd
- ;;
- -acis*)
- os=-aos
- ;;
- -atheos*)
- os=-atheos
- ;;
- -syllable*)
- os=-syllable
- ;;
- -386bsd)
- os=-bsd
- ;;
- -ctix* | -uts*)
- os=-sysv
- ;;
- -nova*)
- os=-rtmk-nova
- ;;
- -ns2 )
- os=-nextstep2
- ;;
- -nsk*)
- os=-nsk
- ;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
- ;;
- -sinix*)
- os=-sysv4
- ;;
- -tpf*)
- os=-tpf
- ;;
- -triton*)
- os=-sysv3
- ;;
- -oss*)
- os=-sysv3
- ;;
- -svr4)
- os=-sysv4
- ;;
- -svr3)
- os=-sysv3
- ;;
- -sysvr4)
- os=-sysv4
- ;;
- # This must come after -sysvr4.
- -sysv*)
- ;;
- -ose*)
- os=-ose
- ;;
- -es1800*)
- os=-ose
- ;;
- -xenix)
- os=-xenix
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
- ;;
- -aros*)
- os=-aros
- ;;
- -kaos*)
- os=-kaos
- ;;
- -zvmoe)
- os=-zvmoe
- ;;
- -dicos*)
- os=-dicos
- ;;
- -nacl*)
- ;;
- -none)
- ;;
- *)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
- ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
- score-*)
- os=-elf
- ;;
- spu-*)
- os=-elf
- ;;
- *-acorn)
- os=-riscix1.2
- ;;
- arm*-rebel)
- os=-linux
- ;;
- arm*-semi)
- os=-aout
- ;;
- c4x-* | tic4x-*)
- os=-coff
- ;;
- # This must come before the *-dec entry.
- pdp10-*)
- os=-tops20
- ;;
- pdp11-*)
- os=-none
- ;;
- *-dec | vax-*)
- os=-ultrix4.2
- ;;
- m68*-apollo)
- os=-domain
- ;;
- i386-sun)
- os=-sunos4.0.2
- ;;
- m68000-sun)
- os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
- ;;
- m68*-cisco)
- os=-aout
- ;;
- mep-*)
- os=-elf
- ;;
- mips*-cisco)
- os=-elf
- ;;
- mips*-*)
- os=-elf
- ;;
- or32-*)
- os=-coff
- ;;
- *-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
- ;;
- sparc-* | *-sun)
- os=-sunos4.1.1
- ;;
- *-be)
- os=-beos
- ;;
- *-haiku)
- os=-haiku
- ;;
- *-ibm)
- os=-aix
- ;;
- *-knuth)
- os=-mmixware
- ;;
- *-wec)
- os=-proelf
- ;;
- *-winbond)
- os=-proelf
- ;;
- *-oki)
- os=-proelf
- ;;
- *-hp)
- os=-hpux
- ;;
- *-hitachi)
- os=-hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
- ;;
- *-cbm)
- os=-amigaos
- ;;
- *-dg)
- os=-dgux
- ;;
- *-dolphin)
- os=-sysv3
- ;;
- m68k-ccur)
- os=-rtu
- ;;
- m88k-omron*)
- os=-luna
- ;;
- *-next )
- os=-nextstep
- ;;
- *-sequent)
- os=-ptx
- ;;
- *-crds)
- os=-unos
- ;;
- *-ns)
- os=-genix
- ;;
- i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
- ;;
- *-gould)
- os=-sysv
- ;;
- *-highlevel)
- os=-bsd
- ;;
- *-encore)
- os=-bsd
- ;;
- *-sgi)
- os=-irix
- ;;
- *-siemens)
- os=-sysv4
- ;;
- *-masscomp)
- os=-rtu
- ;;
- f30[01]-fujitsu | f700-fujitsu)
- os=-uxpv
- ;;
- *-rom68k)
- os=-coff
- ;;
- *-*bug)
- os=-coff
- ;;
- *-apple)
- os=-macos
- ;;
- *-atari*)
- os=-mint
- ;;
- *)
- os=-none
- ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
- vendor=acorn
- ;;
- -sunos*)
- vendor=sun
- ;;
- -cnk*|-aix*)
- vendor=ibm
- ;;
- -beos*)
- vendor=be
- ;;
- -hpux*)
- vendor=hp
- ;;
- -mpeix*)
- vendor=hp
- ;;
- -hiux*)
- vendor=hitachi
- ;;
- -unos*)
- vendor=crds
- ;;
- -dgux*)
- vendor=dg
- ;;
- -luna*)
- vendor=omron
- ;;
- -genix*)
- vendor=ns
- ;;
- -mvs* | -opened*)
- vendor=ibm
- ;;
- -os400*)
- vendor=ibm
- ;;
- -ptx*)
- vendor=sequent
- ;;
- -tpf*)
- vendor=ibm
- ;;
- -vxsim* | -vxworks* | -windiss*)
- vendor=wrs
- ;;
- -aux*)
- vendor=apple
- ;;
- -hms*)
- vendor=hitachi
- ;;
- -mpw* | -macos*)
- vendor=apple
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- vendor=atari
- ;;
- -vos*)
- vendor=stratus
- ;;
- esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
- ;;
-esac
-
-echo $basic_machine$os
-exit
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
+#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# Free Software Foundation, Inc. + +timestamp='2010-01-22' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Please send patches to <[email protected]>. Submit a context +# diff and a properly formatted GNU ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to <[email protected]>." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free +Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nios | nios2 \ + | ns16k | ns32k \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e \ + | we32k \ + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12 | picochip) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile-* | tilegx-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze) + basic_machine=microblaze-xilinx + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + # This must be matched before tile*. + tilegx*) + basic_machine=tilegx-unknown + os=-linux-gnu + ;; + tile*) + basic_machine=tile-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/components/external/freetype/builds/unix/configure.ac b/components/external/freetype/builds/unix/configure.ac index aa490dbe3e..762d43dd6f 100644 --- a/components/external/freetype/builds/unix/configure.ac +++ b/components/external/freetype/builds/unix/configure.ac @@ -1,684 +1,684 @@ -# This file is part of the FreeType project.
-#
-# Process this file with autoconf to produce a configure script.
-#
-# Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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.
-
-AC_INIT([FreeType], [2.3.12], [[email protected]], [freetype])
-AC_CONFIG_SRCDIR([ftconfig.in])
-
-
-# Don't forget to update docs/VERSION.DLL!
-
-version_info='10:0:4'
-AC_SUBST([version_info])
-ft_version=`echo $version_info | tr : .`
-AC_SUBST([ft_version])
-
-
-# checks for system type
-
-AC_CANONICAL_HOST
-
-
-# checks for programs
-
-AC_PROG_CC
-AC_PROG_CPP
-AC_SUBST(EXEEXT)
-
-
-# checks for native programs to generate building tool
-
-if test ${cross_compiling} = yes; then
- AC_CHECK_PROG(CC_BUILD, ${build}-gcc, ${build}-gcc)
- test -z "${CC_BUILD}" && AC_CHECK_PROG(CC_BUILD, gcc, gcc)
- test -z "${CC_BUILD}" && AC_CHECK_PROG(CC_BUILD, cc, cc, , , /usr/ucb/cc)
- test -z "${CC_BUILD}" && AC_MSG_ERROR([cannot find native C compiler])
-
- AC_MSG_CHECKING([for suffix of native executables])
- rm -f a.* b.* a_out.exe conftest.*
- echo > conftest.c "int main() { return 0;}"
- ${CC_BUILD} conftest.c || AC_MSG_ERROR([native C compiler is not working])
- rm -f conftest.c
- if test -x a.out -o -x b.out -o -x conftest; then
- EXEEXT_BUILD=""
- elif test -x a_out.exe -o -x conftest.exe; then
- EXEEXT_BUILD=".exe"
- elif test -x conftest.* ; then
- EXEEXT_BUILD=`echo conftest.* | sed -n '1s/^.*\././'`
- fi
- rm -f a.* b.* a_out.exe conftest.*
- AC_MSG_RESULT($EXEEXT_BUILD)
-else
- CC_BUILD=${CC}
- EXEEXT_BUILD=${EXEEXT}
-fi
-
-AC_SUBST(CC_BUILD)
-AC_SUBST(EXEEXT_BUILD)
-
-
-
-# get compiler flags right
-
-if test "x$GCC" = xyes; then
- XX_CFLAGS="-Wall"
- XX_ANSIFLAGS="-pedantic -ansi"
-else
- case "$host" in
- *-dec-osf*)
- CFLAGS=
- XX_CFLAGS="-std1 -g3"
- XX_ANSIFLAGS=
- ;;
- *)
- XX_CFLAGS=
- XX_ANSIFLAGS=
- ;;
- esac
-fi
-AC_SUBST([XX_CFLAGS])
-AC_SUBST([XX_ANSIFLAGS])
-
-
-# auxiliary programs
-
-AC_CHECK_PROG([RMF], [rm], [rm -f])
-AC_CHECK_PROG([RMDIR], [rmdir], [rmdir])
-
-
-# Since this file will be finally moved to another directory we make
-# the path of the install script absolute. This small code snippet has
-# been taken from automake's `ylwrap' script.
-
-AC_PROG_INSTALL
-case "$INSTALL" in
-/*)
- ;;
-*/*)
- INSTALL="`pwd`/$INSTALL" ;;
-esac
-
-
-# checks for header files
-
-AC_HEADER_STDC
-AC_CHECK_HEADERS([fcntl.h unistd.h])
-
-
-# checks for typedefs, structures, and compiler characteristics
-
-AC_C_CONST
-AC_CHECK_SIZEOF([int])
-AC_CHECK_SIZEOF([long])
-
-
-# check whether cpp computation of size of int and long in ftconfig.in works
-
-AC_MSG_CHECKING([cpp computation of bit length in ftconfig.in works])
-orig_CPPFLAGS="${CPPFLAGS}"
-CPPFLAGS="-I${srcdir} -I. ${CPPFLAGS}"
-ac_clean_files="ft2build.h ftoption.h ftstdlib.h"
-touch ft2build.h ftoption.h ftstdlib.h
-
-cat > conftest.c <<\_ACEOF
-#include <limits.h>
-#define FT_CONFIG_OPTIONS_H "ftoption.h"
-#define FT_CONFIG_STANDARD_LIBRARY_H "ftstdlib.h"
-#define FT_UINT_MAX UINT_MAX
-#define FT_ULONG_MAX ULONG_MAX
-#include "ftconfig.in"
-_ACEOF
-echo >> conftest.c "#if FT_SIZEOF_INT == "${ac_cv_sizeof_int}
-echo >> conftest.c "ac_cpp_ft_sizeof_int="${ac_cv_sizeof_int}
-echo >> conftest.c "#endif"
-echo >> conftest.c "#if FT_SIZEOF_LONG == "${ac_cv_sizeof_long}
-echo >> conftest.c "ac_cpp_ft_sizeof_long="${ac_cv_sizeof_long}
-echo >> conftest.c "#endif"
-
-${CPP} ${CPPFLAGS} conftest.c | ${GREP} ac_cpp_ft > conftest.sh
-eval `cat conftest.sh`
-${RMF} conftest.c conftest.sh confft2build.h ftoption.h ftstdlib.h
-
-if test x != "x${ac_cpp_ft_sizeof_int}" \
- -a x != x"${ac_cpp_ft_sizeof_long}"; then
- unset ft_use_autoconf_sizeof_types
-else
- ft_use_autoconf_sizeof_types=yes
-fi
-
-AC_ARG_ENABLE(biarch-config,
-[ --enable-biarch-config install biarch ftconfig.h to support multiple
- architectures by single file], [], [])
-
-case :${ft_use_autoconf_sizeof_types}:${enable_biarch_config}: in
- :yes:yes:)
- AC_MSG_RESULT([broken but use it])
- unset ft_use_autoconf_sizeof_types
- ;;
- ::no:)
- AC_MSG_RESULT([works but ignore it])
- ft_use_autoconf_sizeof_types=yes
- ;;
- ::yes: | :::)
- AC_MSG_RESULT([yes])
- unset ft_use_autoconf_sizeof_types
- ;;
- *)
- AC_MSG_RESULT([no])
- ft_use_autoconf_sizeof_types=yes
- ;;
-esac
-
-if test x"${ft_use_autoconf_sizeof_types}" = xyes; then
- AC_DEFINE([FT_USE_AUTOCONF_SIZEOF_TYPES])
-fi
-
-CPPFLAGS="${orig_CPPFLAGS}"
-
-
-# checks for library functions
-
-# Here we check whether we can use our mmap file component.
-
-AC_FUNC_MMAP
-if test "$ac_cv_func_mmap_fixed_mapped" != yes; then
- FTSYS_SRC='$(BASE_DIR)/ftsystem.c'
-else
- FTSYS_SRC='$(BUILD_DIR)/ftsystem.c'
-
- AC_CHECK_DECLS([munmap],
- [],
- [],
- [
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <sys/mman.h>
-
- ])
-
- FT_MUNMAP_PARAM
-fi
-AC_SUBST([FTSYS_SRC])
-
-AC_CHECK_FUNCS([memcpy memmove])
-
-
-# check for system zlib
-
-# don't quote AS_HELP_STRING!
-AC_ARG_WITH([zlib],
- AS_HELP_STRING([--without-zlib],
- [use internal zlib instead of system-wide]))
-if test x$with_zlib != xno && test -z "$LIBZ"; then
- AC_CHECK_LIB([z], [gzsetparams], [AC_CHECK_HEADER([zlib.h], [LIBZ='-lz'])])
-fi
-if test x$with_zlib != xno && test -n "$LIBZ"; then
- CFLAGS="$CFLAGS -DFT_CONFIG_OPTION_SYSTEM_ZLIB"
- LDFLAGS="$LDFLAGS $LIBZ"
- SYSTEM_ZLIB=yes
-fi
-
-
-# Some options handling SDKs/archs in CFLAGS should be copied
-# to LDFLAGS. Apple TechNote 2137 recommends to include these
-# options in CFLAGS but not in LDFLAGS.
-
-save_config_args=$*
-set dummy ${CFLAGS}
-i=1
-while test $i -lt $#
-do
- c=$1
-
- case "${c}" in
- -isysroot|-arch) # options taking 1 argument
- a=$2
- AC_MSG_CHECKING([whether CFLAGS and LDFLAGS share ${c} ${a}])
- if expr " ${LDFLAGS} " : ".* ${c} *${a}.*" > /dev/null
- then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no, copy to LDFLAGS])
- LDFLAGS="${LDFLAGS} ${c} ${a}"
- fi
- shift 1
- ;;
- -m32|-m64) # options taking no argument
- AC_MSG_RESULT([whether CFLAGS and LDFLAGS share ${c}])
- if expr " ${LDFLAGS} " : ".* ${c} *${a}.*" > /dev/null
- then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no, copy to LDFLAGS])
- LDFLAGS="${LDFLAGS} ${c}"
- fi
- ;;
- # *)
- # AC_MSG_RESULT([${c} is not copied to LDFLAGS])
- # ;;
- esac
-
- shift 1
-done
-set ${save_config_args}
-
-
-# Whether to use Mac OS resource-based fonts.
-
-ftmac_c="" # src/base/ftmac.c should not be included in makefiles by default
-
-# don't quote AS_HELP_STRING!
-AC_ARG_WITH([old-mac-fonts],
- AS_HELP_STRING([--with-old-mac-fonts],
- [allow Mac resource-based fonts to be used]))
-if test x$with_old_mac_fonts = xyes; then
- orig_LDFLAGS="${LDFLAGS}"
- AC_MSG_CHECKING([CoreServices & ApplicationServices of Mac OS X])
- FT2_EXTRA_LIBS="-Wl,-framework,CoreServices -Wl,-framework,ApplicationServices"
- LDFLAGS="$LDFLAGS $FT2_EXTRA_LIBS"
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM([
-
-#if defined(__GNUC__) && defined(__APPLE_CC__)
-# include <CoreServices/CoreServices.h>
-# include <ApplicationServices/ApplicationServices.h>
-#else
-# include <ConditionalMacros.h>
-# include <Files.h>
-#endif
-
- ],
- [
-
- short res = 0;
-
-
- UseResFile( res );
-
- ])],
- [AC_MSG_RESULT([ok])
- ftmac_c='ftmac.c'
- AC_MSG_CHECKING([OS_INLINE macro is ANSI compatible])
- orig_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $XX_CFLAGS $XX_ANSIFLAGS"
- AC_COMPILE_IFELSE([
- AC_LANG_PROGRAM([
-
-#if defined(__GNUC__) && defined(__APPLE_CC__)
-# include <CoreServices/CoreServices.h>
-# include <ApplicationServices/ApplicationServices.h>
-#else
-# include <ConditionalMacros.h>
-# include <Files.h>
-#endif
-
- ],
- [
-
- /* OSHostByteOrder() is typed as OS_INLINE */
- int32_t os_byte_order = OSHostByteOrder();
-
-
- if ( OSBigEndian != os_byte_order )
- return 1;
-
- ])],
- [AC_MSG_RESULT([ok])
- CFLAGS="$orig_CFLAGS"
- CFLAGS="$CFLAGS -DHAVE_ANSI_OS_INLINE=1"
- ],
- [AC_MSG_RESULT([no, ANSI incompatible])
- CFLAGS="$orig_CFLAGS"
- ])
- AC_MSG_CHECKING([type ResourceIndex])
- orig_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $XX_CFLAGS $XX_ANSIFLAGS"
- AC_COMPILE_IFELSE([
- AC_LANG_PROGRAM([
-
-#if defined(__GNUC__) && defined(__APPLE_CC__)
-# include <CoreServices/CoreServices.h>
-# include <ApplicationServices/ApplicationServices.h>
-#else
-# include <ConditionalMacros.h>
-# include <Files.h>
-# include <Resources.h>
-#endif
-
- ],
- [
-
- ResourceIndex i = 0;
- return i;
-
- ])],
- [AC_MSG_RESULT([ok])
- CFLAGS="$orig_CFLAGS"
- CFLAGS="$CFLAGS -DHAVE_TYPE_RESOURCE_INDEX=1"
- ],
- [AC_MSG_RESULT([no])
- CFLAGS="$orig_CFLAGS"
- CFLAGS="$CFLAGS -DHAVE_TYPE_RESOURCE_INDEX=0"
- ])],
- [AC_MSG_RESULT([not found])
- FT2_EXTRA_LIBS=""
- LDFLAGS="${orig_LDFLAGS}"
- CFLAGS="$CFLAGS -DDARWIN_NO_CARBON"])
-else
- case x$host_os in
- xdarwin*)
- dnl AC_MSG_WARN([host system is MacOS but configured to build without Carbon])
- CFLAGS="$CFLAGS -DDARWIN_NO_CARBON"
- ;;
- *) ;;
- esac
-fi
-
-
-# Whether to use FileManager which is deprecated since Mac OS X 10.4.
-
-AC_ARG_WITH([fsspec],
- AS_HELP_STRING([--with-fsspec],
- [use obsolete FSSpec API of MacOS, if available (default=yes)]))
-if test x$with_fsspec = xno; then
- CFLAGS="$CFLAGS -DHAVE_FSSPEC=0"
-elif test x$with_old_mac_fonts = xyes -a x$with_fsspec != x; then
- AC_MSG_CHECKING([FSSpec-based FileManager])
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM([
-
-#if defined(__GNUC__) && defined(__APPLE_CC__)
-# include <CoreServices/CoreServices.h>
-# include <ApplicationServices/ApplicationServices.h>
-#else
-# include <ConditionalMacros.h>
-# include <Files.h>
-#endif
-
- ],
- [
-
- FCBPBPtr paramBlock;
- short vRefNum;
- long dirID;
- ConstStr255Param fileName;
- FSSpec* spec;
-
-
- /* FSSpec functions: deprecated since Mac OS X 10.4 */
- PBGetFCBInfoSync( paramBlock );
- FSMakeFSSpec( vRefNum, dirID, fileName, spec );
-
- ])],
- [AC_MSG_RESULT([ok])
- CFLAGS="$CFLAGS -DHAVE_FSSPEC=1"],
- [AC_MSG_RESULT([not found])
- CFLAGS="$CFLAGS -DHAVE_FSSPEC=0"])
-fi
-
-
-# Whether to use FileManager in Carbon since MacOS 9.x.
-
-AC_ARG_WITH([fsref],
- AS_HELP_STRING([--with-fsref],
- [use Carbon FSRef API of MacOS, if available (default=yes)]))
-if test x$with_fsref = xno; then
- AC_MSG_WARN([
-*** WARNING
- FreeType2 built without FSRef API cannot load
- data-fork fonts on MacOS, except of XXX.dfont.
- ])
- CFLAGS="$CFLAGS -DHAVE_FSREF=0"
-elif test x$with_old_mac_fonts = xyes -a x$with_fsref != x; then
- AC_MSG_CHECKING([FSRef-based FileManager])
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM([
-
-#if defined(__GNUC__) && defined(__APPLE_CC__)
-# include <CoreServices/CoreServices.h>
-# include <ApplicationServices/ApplicationServices.h>
-#else
-# include <ConditionalMacros.h>
-# include <Files.h>
-#endif
-
- ],
- [
-
- short vRefNum;
- long dirID;
- ConstStr255Param fileName;
-
- Boolean* isDirectory;
- UInt8* path;
- SInt16 desiredRefNum;
- SInt16* iterator;
- SInt16* actualRefNum;
- HFSUniStr255* outForkName;
- FSVolumeRefNum volume;
- FSCatalogInfoBitmap whichInfo;
- FSCatalogInfo* catalogInfo;
- FSForkInfo* forkInfo;
- FSRef* ref;
-
-#if HAVE_FSSPEC
- FSSpec* spec;
-#endif
-
- /* FSRef functions: no need to check? */
- FSGetForkCBInfo( desiredRefNum, volume, iterator,
- actualRefNum, forkInfo, ref,
- outForkName );
- FSPathMakeRef( path, ref, isDirectory );
-
-#if HAVE_FSSPEC
- FSpMakeFSRef ( spec, ref );
- FSGetCatalogInfo( ref, whichInfo, catalogInfo,
- outForkName, spec, ref );
-#endif
- ])],
- [AC_MSG_RESULT([ok])
- CFLAGS="$CFLAGS -DHAVE_FSREF=1"],
- [AC_MSG_RESULT([not found])
- CFLAGS="$CFLAGS -DHAVE_FSREF=0"])
-fi
-
-
-# Whether to use QuickDraw API in ToolBox which is deprecated since
-# Mac OS X 10.4.
-
-AC_ARG_WITH([quickdraw-toolbox],
- AS_HELP_STRING([--with-quickdraw-toolbox],
- [use MacOS QuickDraw in ToolBox, if available (default=yes)]))
-if test x$with_quickdraw_toolbox = xno; then
- CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_TOOLBOX=0"
-elif test x$with_old_mac_fonts = xyes -a x$with_quickdraw_toolbox != x; then
- AC_MSG_CHECKING([QuickDraw FontManager functions in ToolBox])
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM([
-
-#if defined(__GNUC__) && defined(__APPLE_CC__)
-# include <CoreServices/CoreServices.h>
-# include <ApplicationServices/ApplicationServices.h>
-#else
-# include <ConditionalMacros.h>
-# include <Fonts.h>
-#endif
-
- ],
- [
-
- Str255 familyName;
- SInt16 familyID = 0;
- FMInput* fmIn = NULL;
- FMOutput* fmOut = NULL;
-
-
- GetFontName( familyID, familyName );
- GetFNum( familyName, &familyID );
- fmOut = FMSwapFont( fmIn );
-
- ])],
- [AC_MSG_RESULT([ok])
- CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_TOOLBOX=1"],
- [AC_MSG_RESULT([not found])
- CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_TOOLBOX=0"])
-fi
-
-
-# Whether to use QuickDraw API in Carbon which is deprecated since
-# Mac OS X 10.4.
-
-AC_ARG_WITH([quickdraw-carbon],
- AS_HELP_STRING([--with-quickdraw-carbon],
- [use MacOS QuickDraw in Carbon, if available (default=yes)]))
-if test x$with_quickdraw_carbon = xno; then
- CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_CARBON=0"
-elif test x$with_old_mac_fonts = xyes -a x$with_quickdraw_carbon != x; then
- AC_MSG_CHECKING([QuickDraw FontManager functions in Carbon])
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM([
-
-#if defined(__GNUC__) && defined(__APPLE_CC__)
-# include <CoreServices/CoreServices.h>
-# include <ApplicationServices/ApplicationServices.h>
-#else
-# include <ConditionalMacros.h>
-# include <Fonts.h>
-#endif
-
- ],
- [
-
- FMFontFamilyIterator famIter;
- FMFontFamily family;
- Str255 famNameStr;
- FMFontFamilyInstanceIterator instIter;
- FMFontStyle style;
- FMFontSize size;
- FMFont font;
- FSSpec* pathSpec;
-
-
- FMCreateFontFamilyIterator( NULL, NULL, kFMUseGlobalScopeOption,
- &famIter );
- FMGetNextFontFamily( &famIter, &family );
- FMGetFontFamilyName( family, famNameStr );
- FMCreateFontFamilyInstanceIterator( family, &instIter );
- FMGetNextFontFamilyInstance( &instIter, &font, &style, &size );
- FMDisposeFontFamilyInstanceIterator( &instIter );
- FMDisposeFontFamilyIterator( &famIter );
- FMGetFontContainer( font, pathSpec );
-
- ])],
- [AC_MSG_RESULT([ok])
- CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_CARBON=1"],
- [AC_MSG_RESULT([not found])
- CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_CARBON=0"])
-fi
-
-
-# Whether to use AppleTypeService since Mac OS X.
-
-# don't quote AS_HELP_STRING!
-AC_ARG_WITH([ats],
- AS_HELP_STRING([--with-ats],
- [use AppleTypeService, if available (default=yes)]))
-if test x$with_ats = xno; then
- CFLAGS="$CFLAGS -DHAVE_ATS=0"
-elif test x$with_old_mac_fonts = xyes -a x$with_ats != x ; then
- AC_MSG_CHECKING([AppleTypeService functions])
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM([
-
-#if defined(__GNUC__) && defined(__APPLE_CC__)
-# include <CoreServices/CoreServices.h>
-# include <ApplicationServices/ApplicationServices.h>
-#else
-# include <ConditionalMacros.h>
-# include <Files.h>
-#endif
-
- ],
- [
-
- FSSpec* pathSpec;
-
-
- ATSFontFindFromName( NULL, kATSOptionFlagsUnRestrictedScope );
-#if HAVE_FSSPEC
- ATSFontGetFileSpecification( 0, pathSpec );
-#endif
-
- ])],
- [AC_MSG_RESULT([ok])
- CFLAGS="$CFLAGS -DHAVE_ATS=1"],
- [AC_MSG_RESULT([not found])
- CFLAGS="$CFLAGS -DHAVE_ATS=0"])
-fi
-
-case "$CFLAGS" in
- *HAVE_FSSPEC* | *HAVE_FSREF* | *HAVE_QUICKDRAW* | *HAVE_ATS* )
- AC_MSG_WARN([
-*** WARNING
- FSSpec/FSRef/QuickDraw/ATS options are explicitly given,
- thus it is recommended to replace src/base/ftmac.c by builds/mac/ftmac.c.
- ])
- CFLAGS="$CFLAGS "'-I$(TOP_DIR)/builds/mac/'
- ;;
- *)
- ;;
-esac
-
-
-AC_SUBST([ftmac_c])
-AC_SUBST([LIBZ])
-AC_SUBST([CFLAGS])
-AC_SUBST([LDFLAGS])
-AC_SUBST([FT2_EXTRA_LIBS])
-AC_SUBST([SYSTEM_ZLIB])
-
-
-LT_INIT(win32-dll)
-
-AC_SUBST([hardcode_libdir_flag_spec])
-AC_SUBST([wl])
-AC_SUBST([build_libtool_libs])
-
-
-# configuration file -- stay in 8.3 limit
-#
-# since #undef doesn't survive in configuration header files we replace
-# `/undef' with `#undef' after creating the output file
-
-AC_CONFIG_HEADERS([ftconfig.h:ftconfig.in],
- [mv ftconfig.h ftconfig.tmp
- sed 's|/undef|#undef|' < ftconfig.tmp > ftconfig.h
- rm ftconfig.tmp])
-
-# create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk'
-# and `builds/unix/unix-cc.mk' that will be used by the build system
-#
-AC_CONFIG_FILES([unix-cc.mk:unix-cc.in
- unix-def.mk:unix-def.in
- freetype-config
- freetype2.pc:freetype2.in])
-
-# re-generate the Jamfile to use libtool now
-#
-# AC_CONFIG_FILES([../../Jamfile:../../Jamfile.in])
-
-AC_OUTPUT
-
-# end of configure.raw
+# This file is part of the FreeType project. +# +# Process this file with autoconf to produce a configure script. +# +# Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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. + +AC_INIT([FreeType], [2.3.12], [[email protected]], [freetype]) +AC_CONFIG_SRCDIR([ftconfig.in]) + + +# Don't forget to update docs/VERSION.DLL! + +version_info='10:0:4' +AC_SUBST([version_info]) +ft_version=`echo $version_info | tr : .` +AC_SUBST([ft_version]) + + +# checks for system type + +AC_CANONICAL_HOST + + +# checks for programs + +AC_PROG_CC +AC_PROG_CPP +AC_SUBST(EXEEXT) + + +# checks for native programs to generate building tool + +if test ${cross_compiling} = yes; then + AC_CHECK_PROG(CC_BUILD, ${build}-gcc, ${build}-gcc) + test -z "${CC_BUILD}" && AC_CHECK_PROG(CC_BUILD, gcc, gcc) + test -z "${CC_BUILD}" && AC_CHECK_PROG(CC_BUILD, cc, cc, , , /usr/ucb/cc) + test -z "${CC_BUILD}" && AC_MSG_ERROR([cannot find native C compiler]) + + AC_MSG_CHECKING([for suffix of native executables]) + rm -f a.* b.* a_out.exe conftest.* + echo > conftest.c "int main() { return 0;}" + ${CC_BUILD} conftest.c || AC_MSG_ERROR([native C compiler is not working]) + rm -f conftest.c + if test -x a.out -o -x b.out -o -x conftest; then + EXEEXT_BUILD="" + elif test -x a_out.exe -o -x conftest.exe; then + EXEEXT_BUILD=".exe" + elif test -x conftest.* ; then + EXEEXT_BUILD=`echo conftest.* | sed -n '1s/^.*\././'` + fi + rm -f a.* b.* a_out.exe conftest.* + AC_MSG_RESULT($EXEEXT_BUILD) +else + CC_BUILD=${CC} + EXEEXT_BUILD=${EXEEXT} +fi + +AC_SUBST(CC_BUILD) +AC_SUBST(EXEEXT_BUILD) + + + +# get compiler flags right + +if test "x$GCC" = xyes; then + XX_CFLAGS="-Wall" + XX_ANSIFLAGS="-pedantic -ansi" +else + case "$host" in + *-dec-osf*) + CFLAGS= + XX_CFLAGS="-std1 -g3" + XX_ANSIFLAGS= + ;; + *) + XX_CFLAGS= + XX_ANSIFLAGS= + ;; + esac +fi +AC_SUBST([XX_CFLAGS]) +AC_SUBST([XX_ANSIFLAGS]) + + +# auxiliary programs + +AC_CHECK_PROG([RMF], [rm], [rm -f]) +AC_CHECK_PROG([RMDIR], [rmdir], [rmdir]) + + +# Since this file will be finally moved to another directory we make +# the path of the install script absolute. This small code snippet has +# been taken from automake's `ylwrap' script. + +AC_PROG_INSTALL +case "$INSTALL" in +/*) + ;; +*/*) + INSTALL="`pwd`/$INSTALL" ;; +esac + + +# checks for header files + +AC_HEADER_STDC +AC_CHECK_HEADERS([fcntl.h unistd.h]) + + +# checks for typedefs, structures, and compiler characteristics + +AC_C_CONST +AC_CHECK_SIZEOF([int]) +AC_CHECK_SIZEOF([long]) + + +# check whether cpp computation of size of int and long in ftconfig.in works + +AC_MSG_CHECKING([cpp computation of bit length in ftconfig.in works]) +orig_CPPFLAGS="${CPPFLAGS}" +CPPFLAGS="-I${srcdir} -I. ${CPPFLAGS}" +ac_clean_files="ft2build.h ftoption.h ftstdlib.h" +touch ft2build.h ftoption.h ftstdlib.h + +cat > conftest.c <<\_ACEOF +#include <limits.h> +#define FT_CONFIG_OPTIONS_H "ftoption.h" +#define FT_CONFIG_STANDARD_LIBRARY_H "ftstdlib.h" +#define FT_UINT_MAX UINT_MAX +#define FT_ULONG_MAX ULONG_MAX +#include "ftconfig.in" +_ACEOF +echo >> conftest.c "#if FT_SIZEOF_INT == "${ac_cv_sizeof_int} +echo >> conftest.c "ac_cpp_ft_sizeof_int="${ac_cv_sizeof_int} +echo >> conftest.c "#endif" +echo >> conftest.c "#if FT_SIZEOF_LONG == "${ac_cv_sizeof_long} +echo >> conftest.c "ac_cpp_ft_sizeof_long="${ac_cv_sizeof_long} +echo >> conftest.c "#endif" + +${CPP} ${CPPFLAGS} conftest.c | ${GREP} ac_cpp_ft > conftest.sh +eval `cat conftest.sh` +${RMF} conftest.c conftest.sh confft2build.h ftoption.h ftstdlib.h + +if test x != "x${ac_cpp_ft_sizeof_int}" \ + -a x != x"${ac_cpp_ft_sizeof_long}"; then + unset ft_use_autoconf_sizeof_types +else + ft_use_autoconf_sizeof_types=yes +fi + +AC_ARG_ENABLE(biarch-config, +[ --enable-biarch-config install biarch ftconfig.h to support multiple + architectures by single file], [], []) + +case :${ft_use_autoconf_sizeof_types}:${enable_biarch_config}: in + :yes:yes:) + AC_MSG_RESULT([broken but use it]) + unset ft_use_autoconf_sizeof_types + ;; + ::no:) + AC_MSG_RESULT([works but ignore it]) + ft_use_autoconf_sizeof_types=yes + ;; + ::yes: | :::) + AC_MSG_RESULT([yes]) + unset ft_use_autoconf_sizeof_types + ;; + *) + AC_MSG_RESULT([no]) + ft_use_autoconf_sizeof_types=yes + ;; +esac + +if test x"${ft_use_autoconf_sizeof_types}" = xyes; then + AC_DEFINE([FT_USE_AUTOCONF_SIZEOF_TYPES]) +fi + +CPPFLAGS="${orig_CPPFLAGS}" + + +# checks for library functions + +# Here we check whether we can use our mmap file component. + +AC_FUNC_MMAP +if test "$ac_cv_func_mmap_fixed_mapped" != yes; then + FTSYS_SRC='$(BASE_DIR)/ftsystem.c' +else + FTSYS_SRC='$(BUILD_DIR)/ftsystem.c' + + AC_CHECK_DECLS([munmap], + [], + [], + [ + +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif +#include <sys/mman.h> + + ]) + + FT_MUNMAP_PARAM +fi +AC_SUBST([FTSYS_SRC]) + +AC_CHECK_FUNCS([memcpy memmove]) + + +# check for system zlib + +# don't quote AS_HELP_STRING! +AC_ARG_WITH([zlib], + AS_HELP_STRING([--without-zlib], + [use internal zlib instead of system-wide])) +if test x$with_zlib != xno && test -z "$LIBZ"; then + AC_CHECK_LIB([z], [gzsetparams], [AC_CHECK_HEADER([zlib.h], [LIBZ='-lz'])]) +fi +if test x$with_zlib != xno && test -n "$LIBZ"; then + CFLAGS="$CFLAGS -DFT_CONFIG_OPTION_SYSTEM_ZLIB" + LDFLAGS="$LDFLAGS $LIBZ" + SYSTEM_ZLIB=yes +fi + + +# Some options handling SDKs/archs in CFLAGS should be copied +# to LDFLAGS. Apple TechNote 2137 recommends to include these +# options in CFLAGS but not in LDFLAGS. + +save_config_args=$* +set dummy ${CFLAGS} +i=1 +while test $i -lt $# +do + c=$1 + + case "${c}" in + -isysroot|-arch) # options taking 1 argument + a=$2 + AC_MSG_CHECKING([whether CFLAGS and LDFLAGS share ${c} ${a}]) + if expr " ${LDFLAGS} " : ".* ${c} *${a}.*" > /dev/null + then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no, copy to LDFLAGS]) + LDFLAGS="${LDFLAGS} ${c} ${a}" + fi + shift 1 + ;; + -m32|-m64) # options taking no argument + AC_MSG_RESULT([whether CFLAGS and LDFLAGS share ${c}]) + if expr " ${LDFLAGS} " : ".* ${c} *${a}.*" > /dev/null + then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no, copy to LDFLAGS]) + LDFLAGS="${LDFLAGS} ${c}" + fi + ;; + # *) + # AC_MSG_RESULT([${c} is not copied to LDFLAGS]) + # ;; + esac + + shift 1 +done +set ${save_config_args} + + +# Whether to use Mac OS resource-based fonts. + +ftmac_c="" # src/base/ftmac.c should not be included in makefiles by default + +# don't quote AS_HELP_STRING! +AC_ARG_WITH([old-mac-fonts], + AS_HELP_STRING([--with-old-mac-fonts], + [allow Mac resource-based fonts to be used])) +if test x$with_old_mac_fonts = xyes; then + orig_LDFLAGS="${LDFLAGS}" + AC_MSG_CHECKING([CoreServices & ApplicationServices of Mac OS X]) + FT2_EXTRA_LIBS="-Wl,-framework,CoreServices -Wl,-framework,ApplicationServices" + LDFLAGS="$LDFLAGS $FT2_EXTRA_LIBS" + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ + +#if defined(__GNUC__) && defined(__APPLE_CC__) +# include <CoreServices/CoreServices.h> +# include <ApplicationServices/ApplicationServices.h> +#else +# include <ConditionalMacros.h> +# include <Files.h> +#endif + + ], + [ + + short res = 0; + + + UseResFile( res ); + + ])], + [AC_MSG_RESULT([ok]) + ftmac_c='ftmac.c' + AC_MSG_CHECKING([OS_INLINE macro is ANSI compatible]) + orig_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $XX_CFLAGS $XX_ANSIFLAGS" + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([ + +#if defined(__GNUC__) && defined(__APPLE_CC__) +# include <CoreServices/CoreServices.h> +# include <ApplicationServices/ApplicationServices.h> +#else +# include <ConditionalMacros.h> +# include <Files.h> +#endif + + ], + [ + + /* OSHostByteOrder() is typed as OS_INLINE */ + int32_t os_byte_order = OSHostByteOrder(); + + + if ( OSBigEndian != os_byte_order ) + return 1; + + ])], + [AC_MSG_RESULT([ok]) + CFLAGS="$orig_CFLAGS" + CFLAGS="$CFLAGS -DHAVE_ANSI_OS_INLINE=1" + ], + [AC_MSG_RESULT([no, ANSI incompatible]) + CFLAGS="$orig_CFLAGS" + ]) + AC_MSG_CHECKING([type ResourceIndex]) + orig_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $XX_CFLAGS $XX_ANSIFLAGS" + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([ + +#if defined(__GNUC__) && defined(__APPLE_CC__) +# include <CoreServices/CoreServices.h> +# include <ApplicationServices/ApplicationServices.h> +#else +# include <ConditionalMacros.h> +# include <Files.h> +# include <Resources.h> +#endif + + ], + [ + + ResourceIndex i = 0; + return i; + + ])], + [AC_MSG_RESULT([ok]) + CFLAGS="$orig_CFLAGS" + CFLAGS="$CFLAGS -DHAVE_TYPE_RESOURCE_INDEX=1" + ], + [AC_MSG_RESULT([no]) + CFLAGS="$orig_CFLAGS" + CFLAGS="$CFLAGS -DHAVE_TYPE_RESOURCE_INDEX=0" + ])], + [AC_MSG_RESULT([not found]) + FT2_EXTRA_LIBS="" + LDFLAGS="${orig_LDFLAGS}" + CFLAGS="$CFLAGS -DDARWIN_NO_CARBON"]) +else + case x$host_os in + xdarwin*) + dnl AC_MSG_WARN([host system is MacOS but configured to build without Carbon]) + CFLAGS="$CFLAGS -DDARWIN_NO_CARBON" + ;; + *) ;; + esac +fi + + +# Whether to use FileManager which is deprecated since Mac OS X 10.4. + +AC_ARG_WITH([fsspec], + AS_HELP_STRING([--with-fsspec], + [use obsolete FSSpec API of MacOS, if available (default=yes)])) +if test x$with_fsspec = xno; then + CFLAGS="$CFLAGS -DHAVE_FSSPEC=0" +elif test x$with_old_mac_fonts = xyes -a x$with_fsspec != x; then + AC_MSG_CHECKING([FSSpec-based FileManager]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ + +#if defined(__GNUC__) && defined(__APPLE_CC__) +# include <CoreServices/CoreServices.h> +# include <ApplicationServices/ApplicationServices.h> +#else +# include <ConditionalMacros.h> +# include <Files.h> +#endif + + ], + [ + + FCBPBPtr paramBlock; + short vRefNum; + long dirID; + ConstStr255Param fileName; + FSSpec* spec; + + + /* FSSpec functions: deprecated since Mac OS X 10.4 */ + PBGetFCBInfoSync( paramBlock ); + FSMakeFSSpec( vRefNum, dirID, fileName, spec ); + + ])], + [AC_MSG_RESULT([ok]) + CFLAGS="$CFLAGS -DHAVE_FSSPEC=1"], + [AC_MSG_RESULT([not found]) + CFLAGS="$CFLAGS -DHAVE_FSSPEC=0"]) +fi + + +# Whether to use FileManager in Carbon since MacOS 9.x. + +AC_ARG_WITH([fsref], + AS_HELP_STRING([--with-fsref], + [use Carbon FSRef API of MacOS, if available (default=yes)])) +if test x$with_fsref = xno; then + AC_MSG_WARN([ +*** WARNING + FreeType2 built without FSRef API cannot load + data-fork fonts on MacOS, except of XXX.dfont. + ]) + CFLAGS="$CFLAGS -DHAVE_FSREF=0" +elif test x$with_old_mac_fonts = xyes -a x$with_fsref != x; then + AC_MSG_CHECKING([FSRef-based FileManager]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ + +#if defined(__GNUC__) && defined(__APPLE_CC__) +# include <CoreServices/CoreServices.h> +# include <ApplicationServices/ApplicationServices.h> +#else +# include <ConditionalMacros.h> +# include <Files.h> +#endif + + ], + [ + + short vRefNum; + long dirID; + ConstStr255Param fileName; + + Boolean* isDirectory; + UInt8* path; + SInt16 desiredRefNum; + SInt16* iterator; + SInt16* actualRefNum; + HFSUniStr255* outForkName; + FSVolumeRefNum volume; + FSCatalogInfoBitmap whichInfo; + FSCatalogInfo* catalogInfo; + FSForkInfo* forkInfo; + FSRef* ref; + +#if HAVE_FSSPEC + FSSpec* spec; +#endif + + /* FSRef functions: no need to check? */ + FSGetForkCBInfo( desiredRefNum, volume, iterator, + actualRefNum, forkInfo, ref, + outForkName ); + FSPathMakeRef( path, ref, isDirectory ); + +#if HAVE_FSSPEC + FSpMakeFSRef ( spec, ref ); + FSGetCatalogInfo( ref, whichInfo, catalogInfo, + outForkName, spec, ref ); +#endif + ])], + [AC_MSG_RESULT([ok]) + CFLAGS="$CFLAGS -DHAVE_FSREF=1"], + [AC_MSG_RESULT([not found]) + CFLAGS="$CFLAGS -DHAVE_FSREF=0"]) +fi + + +# Whether to use QuickDraw API in ToolBox which is deprecated since +# Mac OS X 10.4. + +AC_ARG_WITH([quickdraw-toolbox], + AS_HELP_STRING([--with-quickdraw-toolbox], + [use MacOS QuickDraw in ToolBox, if available (default=yes)])) +if test x$with_quickdraw_toolbox = xno; then + CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_TOOLBOX=0" +elif test x$with_old_mac_fonts = xyes -a x$with_quickdraw_toolbox != x; then + AC_MSG_CHECKING([QuickDraw FontManager functions in ToolBox]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ + +#if defined(__GNUC__) && defined(__APPLE_CC__) +# include <CoreServices/CoreServices.h> +# include <ApplicationServices/ApplicationServices.h> +#else +# include <ConditionalMacros.h> +# include <Fonts.h> +#endif + + ], + [ + + Str255 familyName; + SInt16 familyID = 0; + FMInput* fmIn = NULL; + FMOutput* fmOut = NULL; + + + GetFontName( familyID, familyName ); + GetFNum( familyName, &familyID ); + fmOut = FMSwapFont( fmIn ); + + ])], + [AC_MSG_RESULT([ok]) + CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_TOOLBOX=1"], + [AC_MSG_RESULT([not found]) + CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_TOOLBOX=0"]) +fi + + +# Whether to use QuickDraw API in Carbon which is deprecated since +# Mac OS X 10.4. + +AC_ARG_WITH([quickdraw-carbon], + AS_HELP_STRING([--with-quickdraw-carbon], + [use MacOS QuickDraw in Carbon, if available (default=yes)])) +if test x$with_quickdraw_carbon = xno; then + CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_CARBON=0" +elif test x$with_old_mac_fonts = xyes -a x$with_quickdraw_carbon != x; then + AC_MSG_CHECKING([QuickDraw FontManager functions in Carbon]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ + +#if defined(__GNUC__) && defined(__APPLE_CC__) +# include <CoreServices/CoreServices.h> +# include <ApplicationServices/ApplicationServices.h> +#else +# include <ConditionalMacros.h> +# include <Fonts.h> +#endif + + ], + [ + + FMFontFamilyIterator famIter; + FMFontFamily family; + Str255 famNameStr; + FMFontFamilyInstanceIterator instIter; + FMFontStyle style; + FMFontSize size; + FMFont font; + FSSpec* pathSpec; + + + FMCreateFontFamilyIterator( NULL, NULL, kFMUseGlobalScopeOption, + &famIter ); + FMGetNextFontFamily( &famIter, &family ); + FMGetFontFamilyName( family, famNameStr ); + FMCreateFontFamilyInstanceIterator( family, &instIter ); + FMGetNextFontFamilyInstance( &instIter, &font, &style, &size ); + FMDisposeFontFamilyInstanceIterator( &instIter ); + FMDisposeFontFamilyIterator( &famIter ); + FMGetFontContainer( font, pathSpec ); + + ])], + [AC_MSG_RESULT([ok]) + CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_CARBON=1"], + [AC_MSG_RESULT([not found]) + CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_CARBON=0"]) +fi + + +# Whether to use AppleTypeService since Mac OS X. + +# don't quote AS_HELP_STRING! +AC_ARG_WITH([ats], + AS_HELP_STRING([--with-ats], + [use AppleTypeService, if available (default=yes)])) +if test x$with_ats = xno; then + CFLAGS="$CFLAGS -DHAVE_ATS=0" +elif test x$with_old_mac_fonts = xyes -a x$with_ats != x ; then + AC_MSG_CHECKING([AppleTypeService functions]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ + +#if defined(__GNUC__) && defined(__APPLE_CC__) +# include <CoreServices/CoreServices.h> +# include <ApplicationServices/ApplicationServices.h> +#else +# include <ConditionalMacros.h> +# include <Files.h> +#endif + + ], + [ + + FSSpec* pathSpec; + + + ATSFontFindFromName( NULL, kATSOptionFlagsUnRestrictedScope ); +#if HAVE_FSSPEC + ATSFontGetFileSpecification( 0, pathSpec ); +#endif + + ])], + [AC_MSG_RESULT([ok]) + CFLAGS="$CFLAGS -DHAVE_ATS=1"], + [AC_MSG_RESULT([not found]) + CFLAGS="$CFLAGS -DHAVE_ATS=0"]) +fi + +case "$CFLAGS" in + *HAVE_FSSPEC* | *HAVE_FSREF* | *HAVE_QUICKDRAW* | *HAVE_ATS* ) + AC_MSG_WARN([ +*** WARNING + FSSpec/FSRef/QuickDraw/ATS options are explicitly given, + thus it is recommended to replace src/base/ftmac.c by builds/mac/ftmac.c. + ]) + CFLAGS="$CFLAGS "'-I$(TOP_DIR)/builds/mac/' + ;; + *) + ;; +esac + + +AC_SUBST([ftmac_c]) +AC_SUBST([LIBZ]) +AC_SUBST([CFLAGS]) +AC_SUBST([LDFLAGS]) +AC_SUBST([FT2_EXTRA_LIBS]) +AC_SUBST([SYSTEM_ZLIB]) + + +LT_INIT(win32-dll) + +AC_SUBST([hardcode_libdir_flag_spec]) +AC_SUBST([wl]) +AC_SUBST([build_libtool_libs]) + + +# configuration file -- stay in 8.3 limit +# +# since #undef doesn't survive in configuration header files we replace +# `/undef' with `#undef' after creating the output file + +AC_CONFIG_HEADERS([ftconfig.h:ftconfig.in], + [mv ftconfig.h ftconfig.tmp + sed 's|/undef|#undef|' < ftconfig.tmp > ftconfig.h + rm ftconfig.tmp]) + +# create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk' +# and `builds/unix/unix-cc.mk' that will be used by the build system +# +AC_CONFIG_FILES([unix-cc.mk:unix-cc.in + unix-def.mk:unix-def.in + freetype-config + freetype2.pc:freetype2.in]) + +# re-generate the Jamfile to use libtool now +# +# AC_CONFIG_FILES([../../Jamfile:../../Jamfile.in]) + +AC_OUTPUT + +# end of configure.raw diff --git a/components/external/freetype/builds/unix/configure.raw b/components/external/freetype/builds/unix/configure.raw index 4aec599a6c..ff16dfe330 100644 --- a/components/external/freetype/builds/unix/configure.raw +++ b/components/external/freetype/builds/unix/configure.raw @@ -1,684 +1,684 @@ -# This file is part of the FreeType project.
-#
-# Process this file with autoconf to produce a configure script.
-#
-# Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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.
-
-AC_INIT([FreeType], [@VERSION@], [[email protected]], [freetype])
-AC_CONFIG_SRCDIR([ftconfig.in])
-
-
-# Don't forget to update docs/VERSION.DLL!
-
-version_info='10:0:4'
-AC_SUBST([version_info])
-ft_version=`echo $version_info | tr : .`
-AC_SUBST([ft_version])
-
-
-# checks for system type
-
-AC_CANONICAL_HOST
-
-
-# checks for programs
-
-AC_PROG_CC
-AC_PROG_CPP
-AC_SUBST(EXEEXT)
-
-
-# checks for native programs to generate building tool
-
-if test ${cross_compiling} = yes; then
- AC_CHECK_PROG(CC_BUILD, ${build}-gcc, ${build}-gcc)
- test -z "${CC_BUILD}" && AC_CHECK_PROG(CC_BUILD, gcc, gcc)
- test -z "${CC_BUILD}" && AC_CHECK_PROG(CC_BUILD, cc, cc, , , /usr/ucb/cc)
- test -z "${CC_BUILD}" && AC_MSG_ERROR([cannot find native C compiler])
-
- AC_MSG_CHECKING([for suffix of native executables])
- rm -f a.* b.* a_out.exe conftest.*
- echo > conftest.c "int main() { return 0;}"
- ${CC_BUILD} conftest.c || AC_MSG_ERROR([native C compiler is not working])
- rm -f conftest.c
- if test -x a.out -o -x b.out -o -x conftest; then
- EXEEXT_BUILD=""
- elif test -x a_out.exe -o -x conftest.exe; then
- EXEEXT_BUILD=".exe"
- elif test -x conftest.* ; then
- EXEEXT_BUILD=`echo conftest.* | sed -n '1s/^.*\././'`
- fi
- rm -f a.* b.* a_out.exe conftest.*
- AC_MSG_RESULT($EXEEXT_BUILD)
-else
- CC_BUILD=${CC}
- EXEEXT_BUILD=${EXEEXT}
-fi
-
-AC_SUBST(CC_BUILD)
-AC_SUBST(EXEEXT_BUILD)
-
-
-
-# get compiler flags right
-
-if test "x$GCC" = xyes; then
- XX_CFLAGS="-Wall"
- XX_ANSIFLAGS="-pedantic -ansi"
-else
- case "$host" in
- *-dec-osf*)
- CFLAGS=
- XX_CFLAGS="-std1 -g3"
- XX_ANSIFLAGS=
- ;;
- *)
- XX_CFLAGS=
- XX_ANSIFLAGS=
- ;;
- esac
-fi
-AC_SUBST([XX_CFLAGS])
-AC_SUBST([XX_ANSIFLAGS])
-
-
-# auxiliary programs
-
-AC_CHECK_PROG([RMF], [rm], [rm -f])
-AC_CHECK_PROG([RMDIR], [rmdir], [rmdir])
-
-
-# Since this file will be finally moved to another directory we make
-# the path of the install script absolute. This small code snippet has
-# been taken from automake's `ylwrap' script.
-
-AC_PROG_INSTALL
-case "$INSTALL" in
-/*)
- ;;
-*/*)
- INSTALL="`pwd`/$INSTALL" ;;
-esac
-
-
-# checks for header files
-
-AC_HEADER_STDC
-AC_CHECK_HEADERS([fcntl.h unistd.h])
-
-
-# checks for typedefs, structures, and compiler characteristics
-
-AC_C_CONST
-AC_CHECK_SIZEOF([int])
-AC_CHECK_SIZEOF([long])
-
-
-# check whether cpp computation of size of int and long in ftconfig.in works
-
-AC_MSG_CHECKING([cpp computation of bit length in ftconfig.in works])
-orig_CPPFLAGS="${CPPFLAGS}"
-CPPFLAGS="-I${srcdir} -I. ${CPPFLAGS}"
-ac_clean_files="ft2build.h ftoption.h ftstdlib.h"
-touch ft2build.h ftoption.h ftstdlib.h
-
-cat > conftest.c <<\_ACEOF
-#include <limits.h>
-#define FT_CONFIG_OPTIONS_H "ftoption.h"
-#define FT_CONFIG_STANDARD_LIBRARY_H "ftstdlib.h"
-#define FT_UINT_MAX UINT_MAX
-#define FT_ULONG_MAX ULONG_MAX
-#include "ftconfig.in"
-_ACEOF
-echo >> conftest.c "#if FT_SIZEOF_INT == "${ac_cv_sizeof_int}
-echo >> conftest.c "ac_cpp_ft_sizeof_int="${ac_cv_sizeof_int}
-echo >> conftest.c "#endif"
-echo >> conftest.c "#if FT_SIZEOF_LONG == "${ac_cv_sizeof_long}
-echo >> conftest.c "ac_cpp_ft_sizeof_long="${ac_cv_sizeof_long}
-echo >> conftest.c "#endif"
-
-${CPP} ${CPPFLAGS} conftest.c | ${GREP} ac_cpp_ft > conftest.sh
-eval `cat conftest.sh`
-${RMF} conftest.c conftest.sh confft2build.h ftoption.h ftstdlib.h
-
-if test x != "x${ac_cpp_ft_sizeof_int}" \
- -a x != x"${ac_cpp_ft_sizeof_long}"; then
- unset ft_use_autoconf_sizeof_types
-else
- ft_use_autoconf_sizeof_types=yes
-fi
-
-AC_ARG_ENABLE(biarch-config,
-[ --enable-biarch-config install biarch ftconfig.h to support multiple
- architectures by single file], [], [])
-
-case :${ft_use_autoconf_sizeof_types}:${enable_biarch_config}: in
- :yes:yes:)
- AC_MSG_RESULT([broken but use it])
- unset ft_use_autoconf_sizeof_types
- ;;
- ::no:)
- AC_MSG_RESULT([works but ignore it])
- ft_use_autoconf_sizeof_types=yes
- ;;
- ::yes: | :::)
- AC_MSG_RESULT([yes])
- unset ft_use_autoconf_sizeof_types
- ;;
- *)
- AC_MSG_RESULT([no])
- ft_use_autoconf_sizeof_types=yes
- ;;
-esac
-
-if test x"${ft_use_autoconf_sizeof_types}" = xyes; then
- AC_DEFINE([FT_USE_AUTOCONF_SIZEOF_TYPES])
-fi
-
-CPPFLAGS="${orig_CPPFLAGS}"
-
-
-# checks for library functions
-
-# Here we check whether we can use our mmap file component.
-
-AC_FUNC_MMAP
-if test "$ac_cv_func_mmap_fixed_mapped" != yes; then
- FTSYS_SRC='$(BASE_DIR)/ftsystem.c'
-else
- FTSYS_SRC='$(BUILD_DIR)/ftsystem.c'
-
- AC_CHECK_DECLS([munmap],
- [],
- [],
- [
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <sys/mman.h>
-
- ])
-
- FT_MUNMAP_PARAM
-fi
-AC_SUBST([FTSYS_SRC])
-
-AC_CHECK_FUNCS([memcpy memmove])
-
-
-# check for system zlib
-
-# don't quote AS_HELP_STRING!
-AC_ARG_WITH([zlib],
- AS_HELP_STRING([--without-zlib],
- [use internal zlib instead of system-wide]))
-if test x$with_zlib != xno && test -z "$LIBZ"; then
- AC_CHECK_LIB([z], [gzsetparams], [AC_CHECK_HEADER([zlib.h], [LIBZ='-lz'])])
-fi
-if test x$with_zlib != xno && test -n "$LIBZ"; then
- CFLAGS="$CFLAGS -DFT_CONFIG_OPTION_SYSTEM_ZLIB"
- LDFLAGS="$LDFLAGS $LIBZ"
- SYSTEM_ZLIB=yes
-fi
-
-
-# Some options handling SDKs/archs in CFLAGS should be copied
-# to LDFLAGS. Apple TechNote 2137 recommends to include these
-# options in CFLAGS but not in LDFLAGS.
-
-save_config_args=$*
-set dummy ${CFLAGS}
-i=1
-while test $i -lt $#
-do
- c=$1
-
- case "${c}" in
- -isysroot|-arch) # options taking 1 argument
- a=$2
- AC_MSG_CHECKING([whether CFLAGS and LDFLAGS share ${c} ${a}])
- if expr " ${LDFLAGS} " : ".* ${c} *${a}.*" > /dev/null
- then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no, copy to LDFLAGS])
- LDFLAGS="${LDFLAGS} ${c} ${a}"
- fi
- shift 1
- ;;
- -m32|-m64) # options taking no argument
- AC_MSG_RESULT([whether CFLAGS and LDFLAGS share ${c}])
- if expr " ${LDFLAGS} " : ".* ${c} *${a}.*" > /dev/null
- then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no, copy to LDFLAGS])
- LDFLAGS="${LDFLAGS} ${c}"
- fi
- ;;
- # *)
- # AC_MSG_RESULT([${c} is not copied to LDFLAGS])
- # ;;
- esac
-
- shift 1
-done
-set ${save_config_args}
-
-
-# Whether to use Mac OS resource-based fonts.
-
-ftmac_c="" # src/base/ftmac.c should not be included in makefiles by default
-
-# don't quote AS_HELP_STRING!
-AC_ARG_WITH([old-mac-fonts],
- AS_HELP_STRING([--with-old-mac-fonts],
- [allow Mac resource-based fonts to be used]))
-if test x$with_old_mac_fonts = xyes; then
- orig_LDFLAGS="${LDFLAGS}"
- AC_MSG_CHECKING([CoreServices & ApplicationServices of Mac OS X])
- FT2_EXTRA_LIBS="-Wl,-framework,CoreServices -Wl,-framework,ApplicationServices"
- LDFLAGS="$LDFLAGS $FT2_EXTRA_LIBS"
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM([
-
-#if defined(__GNUC__) && defined(__APPLE_CC__)
-# include <CoreServices/CoreServices.h>
-# include <ApplicationServices/ApplicationServices.h>
-#else
-# include <ConditionalMacros.h>
-# include <Files.h>
-#endif
-
- ],
- [
-
- short res = 0;
-
-
- UseResFile( res );
-
- ])],
- [AC_MSG_RESULT([ok])
- ftmac_c='ftmac.c'
- AC_MSG_CHECKING([OS_INLINE macro is ANSI compatible])
- orig_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $XX_CFLAGS $XX_ANSIFLAGS"
- AC_COMPILE_IFELSE([
- AC_LANG_PROGRAM([
-
-#if defined(__GNUC__) && defined(__APPLE_CC__)
-# include <CoreServices/CoreServices.h>
-# include <ApplicationServices/ApplicationServices.h>
-#else
-# include <ConditionalMacros.h>
-# include <Files.h>
-#endif
-
- ],
- [
-
- /* OSHostByteOrder() is typed as OS_INLINE */
- int32_t os_byte_order = OSHostByteOrder();
-
-
- if ( OSBigEndian != os_byte_order )
- return 1;
-
- ])],
- [AC_MSG_RESULT([ok])
- CFLAGS="$orig_CFLAGS"
- CFLAGS="$CFLAGS -DHAVE_ANSI_OS_INLINE=1"
- ],
- [AC_MSG_RESULT([no, ANSI incompatible])
- CFLAGS="$orig_CFLAGS"
- ])
- AC_MSG_CHECKING([type ResourceIndex])
- orig_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $XX_CFLAGS $XX_ANSIFLAGS"
- AC_COMPILE_IFELSE([
- AC_LANG_PROGRAM([
-
-#if defined(__GNUC__) && defined(__APPLE_CC__)
-# include <CoreServices/CoreServices.h>
-# include <ApplicationServices/ApplicationServices.h>
-#else
-# include <ConditionalMacros.h>
-# include <Files.h>
-# include <Resources.h>
-#endif
-
- ],
- [
-
- ResourceIndex i = 0;
- return i;
-
- ])],
- [AC_MSG_RESULT([ok])
- CFLAGS="$orig_CFLAGS"
- CFLAGS="$CFLAGS -DHAVE_TYPE_RESOURCE_INDEX=1"
- ],
- [AC_MSG_RESULT([no])
- CFLAGS="$orig_CFLAGS"
- CFLAGS="$CFLAGS -DHAVE_TYPE_RESOURCE_INDEX=0"
- ])],
- [AC_MSG_RESULT([not found])
- FT2_EXTRA_LIBS=""
- LDFLAGS="${orig_LDFLAGS}"
- CFLAGS="$CFLAGS -DDARWIN_NO_CARBON"])
-else
- case x$host_os in
- xdarwin*)
- dnl AC_MSG_WARN([host system is MacOS but configured to build without Carbon])
- CFLAGS="$CFLAGS -DDARWIN_NO_CARBON"
- ;;
- *) ;;
- esac
-fi
-
-
-# Whether to use FileManager which is deprecated since Mac OS X 10.4.
-
-AC_ARG_WITH([fsspec],
- AS_HELP_STRING([--with-fsspec],
- [use obsolete FSSpec API of MacOS, if available (default=yes)]))
-if test x$with_fsspec = xno; then
- CFLAGS="$CFLAGS -DHAVE_FSSPEC=0"
-elif test x$with_old_mac_fonts = xyes -a x$with_fsspec != x; then
- AC_MSG_CHECKING([FSSpec-based FileManager])
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM([
-
-#if defined(__GNUC__) && defined(__APPLE_CC__)
-# include <CoreServices/CoreServices.h>
-# include <ApplicationServices/ApplicationServices.h>
-#else
-# include <ConditionalMacros.h>
-# include <Files.h>
-#endif
-
- ],
- [
-
- FCBPBPtr paramBlock;
- short vRefNum;
- long dirID;
- ConstStr255Param fileName;
- FSSpec* spec;
-
-
- /* FSSpec functions: deprecated since Mac OS X 10.4 */
- PBGetFCBInfoSync( paramBlock );
- FSMakeFSSpec( vRefNum, dirID, fileName, spec );
-
- ])],
- [AC_MSG_RESULT([ok])
- CFLAGS="$CFLAGS -DHAVE_FSSPEC=1"],
- [AC_MSG_RESULT([not found])
- CFLAGS="$CFLAGS -DHAVE_FSSPEC=0"])
-fi
-
-
-# Whether to use FileManager in Carbon since MacOS 9.x.
-
-AC_ARG_WITH([fsref],
- AS_HELP_STRING([--with-fsref],
- [use Carbon FSRef API of MacOS, if available (default=yes)]))
-if test x$with_fsref = xno; then
- AC_MSG_WARN([
-*** WARNING
- FreeType2 built without FSRef API cannot load
- data-fork fonts on MacOS, except of XXX.dfont.
- ])
- CFLAGS="$CFLAGS -DHAVE_FSREF=0"
-elif test x$with_old_mac_fonts = xyes -a x$with_fsref != x; then
- AC_MSG_CHECKING([FSRef-based FileManager])
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM([
-
-#if defined(__GNUC__) && defined(__APPLE_CC__)
-# include <CoreServices/CoreServices.h>
-# include <ApplicationServices/ApplicationServices.h>
-#else
-# include <ConditionalMacros.h>
-# include <Files.h>
-#endif
-
- ],
- [
-
- short vRefNum;
- long dirID;
- ConstStr255Param fileName;
-
- Boolean* isDirectory;
- UInt8* path;
- SInt16 desiredRefNum;
- SInt16* iterator;
- SInt16* actualRefNum;
- HFSUniStr255* outForkName;
- FSVolumeRefNum volume;
- FSCatalogInfoBitmap whichInfo;
- FSCatalogInfo* catalogInfo;
- FSForkInfo* forkInfo;
- FSRef* ref;
-
-#if HAVE_FSSPEC
- FSSpec* spec;
-#endif
-
- /* FSRef functions: no need to check? */
- FSGetForkCBInfo( desiredRefNum, volume, iterator,
- actualRefNum, forkInfo, ref,
- outForkName );
- FSPathMakeRef( path, ref, isDirectory );
-
-#if HAVE_FSSPEC
- FSpMakeFSRef ( spec, ref );
- FSGetCatalogInfo( ref, whichInfo, catalogInfo,
- outForkName, spec, ref );
-#endif
- ])],
- [AC_MSG_RESULT([ok])
- CFLAGS="$CFLAGS -DHAVE_FSREF=1"],
- [AC_MSG_RESULT([not found])
- CFLAGS="$CFLAGS -DHAVE_FSREF=0"])
-fi
-
-
-# Whether to use QuickDraw API in ToolBox which is deprecated since
-# Mac OS X 10.4.
-
-AC_ARG_WITH([quickdraw-toolbox],
- AS_HELP_STRING([--with-quickdraw-toolbox],
- [use MacOS QuickDraw in ToolBox, if available (default=yes)]))
-if test x$with_quickdraw_toolbox = xno; then
- CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_TOOLBOX=0"
-elif test x$with_old_mac_fonts = xyes -a x$with_quickdraw_toolbox != x; then
- AC_MSG_CHECKING([QuickDraw FontManager functions in ToolBox])
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM([
-
-#if defined(__GNUC__) && defined(__APPLE_CC__)
-# include <CoreServices/CoreServices.h>
-# include <ApplicationServices/ApplicationServices.h>
-#else
-# include <ConditionalMacros.h>
-# include <Fonts.h>
-#endif
-
- ],
- [
-
- Str255 familyName;
- SInt16 familyID = 0;
- FMInput* fmIn = NULL;
- FMOutput* fmOut = NULL;
-
-
- GetFontName( familyID, familyName );
- GetFNum( familyName, &familyID );
- fmOut = FMSwapFont( fmIn );
-
- ])],
- [AC_MSG_RESULT([ok])
- CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_TOOLBOX=1"],
- [AC_MSG_RESULT([not found])
- CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_TOOLBOX=0"])
-fi
-
-
-# Whether to use QuickDraw API in Carbon which is deprecated since
-# Mac OS X 10.4.
-
-AC_ARG_WITH([quickdraw-carbon],
- AS_HELP_STRING([--with-quickdraw-carbon],
- [use MacOS QuickDraw in Carbon, if available (default=yes)]))
-if test x$with_quickdraw_carbon = xno; then
- CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_CARBON=0"
-elif test x$with_old_mac_fonts = xyes -a x$with_quickdraw_carbon != x; then
- AC_MSG_CHECKING([QuickDraw FontManager functions in Carbon])
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM([
-
-#if defined(__GNUC__) && defined(__APPLE_CC__)
-# include <CoreServices/CoreServices.h>
-# include <ApplicationServices/ApplicationServices.h>
-#else
-# include <ConditionalMacros.h>
-# include <Fonts.h>
-#endif
-
- ],
- [
-
- FMFontFamilyIterator famIter;
- FMFontFamily family;
- Str255 famNameStr;
- FMFontFamilyInstanceIterator instIter;
- FMFontStyle style;
- FMFontSize size;
- FMFont font;
- FSSpec* pathSpec;
-
-
- FMCreateFontFamilyIterator( NULL, NULL, kFMUseGlobalScopeOption,
- &famIter );
- FMGetNextFontFamily( &famIter, &family );
- FMGetFontFamilyName( family, famNameStr );
- FMCreateFontFamilyInstanceIterator( family, &instIter );
- FMGetNextFontFamilyInstance( &instIter, &font, &style, &size );
- FMDisposeFontFamilyInstanceIterator( &instIter );
- FMDisposeFontFamilyIterator( &famIter );
- FMGetFontContainer( font, pathSpec );
-
- ])],
- [AC_MSG_RESULT([ok])
- CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_CARBON=1"],
- [AC_MSG_RESULT([not found])
- CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_CARBON=0"])
-fi
-
-
-# Whether to use AppleTypeService since Mac OS X.
-
-# don't quote AS_HELP_STRING!
-AC_ARG_WITH([ats],
- AS_HELP_STRING([--with-ats],
- [use AppleTypeService, if available (default=yes)]))
-if test x$with_ats = xno; then
- CFLAGS="$CFLAGS -DHAVE_ATS=0"
-elif test x$with_old_mac_fonts = xyes -a x$with_ats != x ; then
- AC_MSG_CHECKING([AppleTypeService functions])
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM([
-
-#if defined(__GNUC__) && defined(__APPLE_CC__)
-# include <CoreServices/CoreServices.h>
-# include <ApplicationServices/ApplicationServices.h>
-#else
-# include <ConditionalMacros.h>
-# include <Files.h>
-#endif
-
- ],
- [
-
- FSSpec* pathSpec;
-
-
- ATSFontFindFromName( NULL, kATSOptionFlagsUnRestrictedScope );
-#if HAVE_FSSPEC
- ATSFontGetFileSpecification( 0, pathSpec );
-#endif
-
- ])],
- [AC_MSG_RESULT([ok])
- CFLAGS="$CFLAGS -DHAVE_ATS=1"],
- [AC_MSG_RESULT([not found])
- CFLAGS="$CFLAGS -DHAVE_ATS=0"])
-fi
-
-case "$CFLAGS" in
- *HAVE_FSSPEC* | *HAVE_FSREF* | *HAVE_QUICKDRAW* | *HAVE_ATS* )
- AC_MSG_WARN([
-*** WARNING
- FSSpec/FSRef/QuickDraw/ATS options are explicitly given,
- thus it is recommended to replace src/base/ftmac.c by builds/mac/ftmac.c.
- ])
- CFLAGS="$CFLAGS "'-I$(TOP_DIR)/builds/mac/'
- ;;
- *)
- ;;
-esac
-
-
-AC_SUBST([ftmac_c])
-AC_SUBST([LIBZ])
-AC_SUBST([CFLAGS])
-AC_SUBST([LDFLAGS])
-AC_SUBST([FT2_EXTRA_LIBS])
-AC_SUBST([SYSTEM_ZLIB])
-
-
-LT_INIT(win32-dll)
-
-AC_SUBST([hardcode_libdir_flag_spec])
-AC_SUBST([wl])
-AC_SUBST([build_libtool_libs])
-
-
-# configuration file -- stay in 8.3 limit
-#
-# since #undef doesn't survive in configuration header files we replace
-# `/undef' with `#undef' after creating the output file
-
-AC_CONFIG_HEADERS([ftconfig.h:ftconfig.in],
- [mv ftconfig.h ftconfig.tmp
- sed 's|/undef|#undef|' < ftconfig.tmp > ftconfig.h
- rm ftconfig.tmp])
-
-# create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk'
-# and `builds/unix/unix-cc.mk' that will be used by the build system
-#
-AC_CONFIG_FILES([unix-cc.mk:unix-cc.in
- unix-def.mk:unix-def.in
- freetype-config
- freetype2.pc:freetype2.in])
-
-# re-generate the Jamfile to use libtool now
-#
-# AC_CONFIG_FILES([../../Jamfile:../../Jamfile.in])
-
-AC_OUTPUT
-
-# end of configure.raw
+# This file is part of the FreeType project. +# +# Process this file with autoconf to produce a configure script. +# +# Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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. + +AC_INIT([FreeType], [@VERSION@], [[email protected]], [freetype]) +AC_CONFIG_SRCDIR([ftconfig.in]) + + +# Don't forget to update docs/VERSION.DLL! + +version_info='10:0:4' +AC_SUBST([version_info]) +ft_version=`echo $version_info | tr : .` +AC_SUBST([ft_version]) + + +# checks for system type + +AC_CANONICAL_HOST + + +# checks for programs + +AC_PROG_CC +AC_PROG_CPP +AC_SUBST(EXEEXT) + + +# checks for native programs to generate building tool + +if test ${cross_compiling} = yes; then + AC_CHECK_PROG(CC_BUILD, ${build}-gcc, ${build}-gcc) + test -z "${CC_BUILD}" && AC_CHECK_PROG(CC_BUILD, gcc, gcc) + test -z "${CC_BUILD}" && AC_CHECK_PROG(CC_BUILD, cc, cc, , , /usr/ucb/cc) + test -z "${CC_BUILD}" && AC_MSG_ERROR([cannot find native C compiler]) + + AC_MSG_CHECKING([for suffix of native executables]) + rm -f a.* b.* a_out.exe conftest.* + echo > conftest.c "int main() { return 0;}" + ${CC_BUILD} conftest.c || AC_MSG_ERROR([native C compiler is not working]) + rm -f conftest.c + if test -x a.out -o -x b.out -o -x conftest; then + EXEEXT_BUILD="" + elif test -x a_out.exe -o -x conftest.exe; then + EXEEXT_BUILD=".exe" + elif test -x conftest.* ; then + EXEEXT_BUILD=`echo conftest.* | sed -n '1s/^.*\././'` + fi + rm -f a.* b.* a_out.exe conftest.* + AC_MSG_RESULT($EXEEXT_BUILD) +else + CC_BUILD=${CC} + EXEEXT_BUILD=${EXEEXT} +fi + +AC_SUBST(CC_BUILD) +AC_SUBST(EXEEXT_BUILD) + + + +# get compiler flags right + +if test "x$GCC" = xyes; then + XX_CFLAGS="-Wall" + XX_ANSIFLAGS="-pedantic -ansi" +else + case "$host" in + *-dec-osf*) + CFLAGS= + XX_CFLAGS="-std1 -g3" + XX_ANSIFLAGS= + ;; + *) + XX_CFLAGS= + XX_ANSIFLAGS= + ;; + esac +fi +AC_SUBST([XX_CFLAGS]) +AC_SUBST([XX_ANSIFLAGS]) + + +# auxiliary programs + +AC_CHECK_PROG([RMF], [rm], [rm -f]) +AC_CHECK_PROG([RMDIR], [rmdir], [rmdir]) + + +# Since this file will be finally moved to another directory we make +# the path of the install script absolute. This small code snippet has +# been taken from automake's `ylwrap' script. + +AC_PROG_INSTALL +case "$INSTALL" in +/*) + ;; +*/*) + INSTALL="`pwd`/$INSTALL" ;; +esac + + +# checks for header files + +AC_HEADER_STDC +AC_CHECK_HEADERS([fcntl.h unistd.h]) + + +# checks for typedefs, structures, and compiler characteristics + +AC_C_CONST +AC_CHECK_SIZEOF([int]) +AC_CHECK_SIZEOF([long]) + + +# check whether cpp computation of size of int and long in ftconfig.in works + +AC_MSG_CHECKING([cpp computation of bit length in ftconfig.in works]) +orig_CPPFLAGS="${CPPFLAGS}" +CPPFLAGS="-I${srcdir} -I. ${CPPFLAGS}" +ac_clean_files="ft2build.h ftoption.h ftstdlib.h" +touch ft2build.h ftoption.h ftstdlib.h + +cat > conftest.c <<\_ACEOF +#include <limits.h> +#define FT_CONFIG_OPTIONS_H "ftoption.h" +#define FT_CONFIG_STANDARD_LIBRARY_H "ftstdlib.h" +#define FT_UINT_MAX UINT_MAX +#define FT_ULONG_MAX ULONG_MAX +#include "ftconfig.in" +_ACEOF +echo >> conftest.c "#if FT_SIZEOF_INT == "${ac_cv_sizeof_int} +echo >> conftest.c "ac_cpp_ft_sizeof_int="${ac_cv_sizeof_int} +echo >> conftest.c "#endif" +echo >> conftest.c "#if FT_SIZEOF_LONG == "${ac_cv_sizeof_long} +echo >> conftest.c "ac_cpp_ft_sizeof_long="${ac_cv_sizeof_long} +echo >> conftest.c "#endif" + +${CPP} ${CPPFLAGS} conftest.c | ${GREP} ac_cpp_ft > conftest.sh +eval `cat conftest.sh` +${RMF} conftest.c conftest.sh confft2build.h ftoption.h ftstdlib.h + +if test x != "x${ac_cpp_ft_sizeof_int}" \ + -a x != x"${ac_cpp_ft_sizeof_long}"; then + unset ft_use_autoconf_sizeof_types +else + ft_use_autoconf_sizeof_types=yes +fi + +AC_ARG_ENABLE(biarch-config, +[ --enable-biarch-config install biarch ftconfig.h to support multiple + architectures by single file], [], []) + +case :${ft_use_autoconf_sizeof_types}:${enable_biarch_config}: in + :yes:yes:) + AC_MSG_RESULT([broken but use it]) + unset ft_use_autoconf_sizeof_types + ;; + ::no:) + AC_MSG_RESULT([works but ignore it]) + ft_use_autoconf_sizeof_types=yes + ;; + ::yes: | :::) + AC_MSG_RESULT([yes]) + unset ft_use_autoconf_sizeof_types + ;; + *) + AC_MSG_RESULT([no]) + ft_use_autoconf_sizeof_types=yes + ;; +esac + +if test x"${ft_use_autoconf_sizeof_types}" = xyes; then + AC_DEFINE([FT_USE_AUTOCONF_SIZEOF_TYPES]) +fi + +CPPFLAGS="${orig_CPPFLAGS}" + + +# checks for library functions + +# Here we check whether we can use our mmap file component. + +AC_FUNC_MMAP +if test "$ac_cv_func_mmap_fixed_mapped" != yes; then + FTSYS_SRC='$(BASE_DIR)/ftsystem.c' +else + FTSYS_SRC='$(BUILD_DIR)/ftsystem.c' + + AC_CHECK_DECLS([munmap], + [], + [], + [ + +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif +#include <sys/mman.h> + + ]) + + FT_MUNMAP_PARAM +fi +AC_SUBST([FTSYS_SRC]) + +AC_CHECK_FUNCS([memcpy memmove]) + + +# check for system zlib + +# don't quote AS_HELP_STRING! +AC_ARG_WITH([zlib], + AS_HELP_STRING([--without-zlib], + [use internal zlib instead of system-wide])) +if test x$with_zlib != xno && test -z "$LIBZ"; then + AC_CHECK_LIB([z], [gzsetparams], [AC_CHECK_HEADER([zlib.h], [LIBZ='-lz'])]) +fi +if test x$with_zlib != xno && test -n "$LIBZ"; then + CFLAGS="$CFLAGS -DFT_CONFIG_OPTION_SYSTEM_ZLIB" + LDFLAGS="$LDFLAGS $LIBZ" + SYSTEM_ZLIB=yes +fi + + +# Some options handling SDKs/archs in CFLAGS should be copied +# to LDFLAGS. Apple TechNote 2137 recommends to include these +# options in CFLAGS but not in LDFLAGS. + +save_config_args=$* +set dummy ${CFLAGS} +i=1 +while test $i -lt $# +do + c=$1 + + case "${c}" in + -isysroot|-arch) # options taking 1 argument + a=$2 + AC_MSG_CHECKING([whether CFLAGS and LDFLAGS share ${c} ${a}]) + if expr " ${LDFLAGS} " : ".* ${c} *${a}.*" > /dev/null + then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no, copy to LDFLAGS]) + LDFLAGS="${LDFLAGS} ${c} ${a}" + fi + shift 1 + ;; + -m32|-m64) # options taking no argument + AC_MSG_RESULT([whether CFLAGS and LDFLAGS share ${c}]) + if expr " ${LDFLAGS} " : ".* ${c} *${a}.*" > /dev/null + then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no, copy to LDFLAGS]) + LDFLAGS="${LDFLAGS} ${c}" + fi + ;; + # *) + # AC_MSG_RESULT([${c} is not copied to LDFLAGS]) + # ;; + esac + + shift 1 +done +set ${save_config_args} + + +# Whether to use Mac OS resource-based fonts. + +ftmac_c="" # src/base/ftmac.c should not be included in makefiles by default + +# don't quote AS_HELP_STRING! +AC_ARG_WITH([old-mac-fonts], + AS_HELP_STRING([--with-old-mac-fonts], + [allow Mac resource-based fonts to be used])) +if test x$with_old_mac_fonts = xyes; then + orig_LDFLAGS="${LDFLAGS}" + AC_MSG_CHECKING([CoreServices & ApplicationServices of Mac OS X]) + FT2_EXTRA_LIBS="-Wl,-framework,CoreServices -Wl,-framework,ApplicationServices" + LDFLAGS="$LDFLAGS $FT2_EXTRA_LIBS" + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ + +#if defined(__GNUC__) && defined(__APPLE_CC__) +# include <CoreServices/CoreServices.h> +# include <ApplicationServices/ApplicationServices.h> +#else +# include <ConditionalMacros.h> +# include <Files.h> +#endif + + ], + [ + + short res = 0; + + + UseResFile( res ); + + ])], + [AC_MSG_RESULT([ok]) + ftmac_c='ftmac.c' + AC_MSG_CHECKING([OS_INLINE macro is ANSI compatible]) + orig_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $XX_CFLAGS $XX_ANSIFLAGS" + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([ + +#if defined(__GNUC__) && defined(__APPLE_CC__) +# include <CoreServices/CoreServices.h> +# include <ApplicationServices/ApplicationServices.h> +#else +# include <ConditionalMacros.h> +# include <Files.h> +#endif + + ], + [ + + /* OSHostByteOrder() is typed as OS_INLINE */ + int32_t os_byte_order = OSHostByteOrder(); + + + if ( OSBigEndian != os_byte_order ) + return 1; + + ])], + [AC_MSG_RESULT([ok]) + CFLAGS="$orig_CFLAGS" + CFLAGS="$CFLAGS -DHAVE_ANSI_OS_INLINE=1" + ], + [AC_MSG_RESULT([no, ANSI incompatible]) + CFLAGS="$orig_CFLAGS" + ]) + AC_MSG_CHECKING([type ResourceIndex]) + orig_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $XX_CFLAGS $XX_ANSIFLAGS" + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([ + +#if defined(__GNUC__) && defined(__APPLE_CC__) +# include <CoreServices/CoreServices.h> +# include <ApplicationServices/ApplicationServices.h> +#else +# include <ConditionalMacros.h> +# include <Files.h> +# include <Resources.h> +#endif + + ], + [ + + ResourceIndex i = 0; + return i; + + ])], + [AC_MSG_RESULT([ok]) + CFLAGS="$orig_CFLAGS" + CFLAGS="$CFLAGS -DHAVE_TYPE_RESOURCE_INDEX=1" + ], + [AC_MSG_RESULT([no]) + CFLAGS="$orig_CFLAGS" + CFLAGS="$CFLAGS -DHAVE_TYPE_RESOURCE_INDEX=0" + ])], + [AC_MSG_RESULT([not found]) + FT2_EXTRA_LIBS="" + LDFLAGS="${orig_LDFLAGS}" + CFLAGS="$CFLAGS -DDARWIN_NO_CARBON"]) +else + case x$host_os in + xdarwin*) + dnl AC_MSG_WARN([host system is MacOS but configured to build without Carbon]) + CFLAGS="$CFLAGS -DDARWIN_NO_CARBON" + ;; + *) ;; + esac +fi + + +# Whether to use FileManager which is deprecated since Mac OS X 10.4. + +AC_ARG_WITH([fsspec], + AS_HELP_STRING([--with-fsspec], + [use obsolete FSSpec API of MacOS, if available (default=yes)])) +if test x$with_fsspec = xno; then + CFLAGS="$CFLAGS -DHAVE_FSSPEC=0" +elif test x$with_old_mac_fonts = xyes -a x$with_fsspec != x; then + AC_MSG_CHECKING([FSSpec-based FileManager]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ + +#if defined(__GNUC__) && defined(__APPLE_CC__) +# include <CoreServices/CoreServices.h> +# include <ApplicationServices/ApplicationServices.h> +#else +# include <ConditionalMacros.h> +# include <Files.h> +#endif + + ], + [ + + FCBPBPtr paramBlock; + short vRefNum; + long dirID; + ConstStr255Param fileName; + FSSpec* spec; + + + /* FSSpec functions: deprecated since Mac OS X 10.4 */ + PBGetFCBInfoSync( paramBlock ); + FSMakeFSSpec( vRefNum, dirID, fileName, spec ); + + ])], + [AC_MSG_RESULT([ok]) + CFLAGS="$CFLAGS -DHAVE_FSSPEC=1"], + [AC_MSG_RESULT([not found]) + CFLAGS="$CFLAGS -DHAVE_FSSPEC=0"]) +fi + + +# Whether to use FileManager in Carbon since MacOS 9.x. + +AC_ARG_WITH([fsref], + AS_HELP_STRING([--with-fsref], + [use Carbon FSRef API of MacOS, if available (default=yes)])) +if test x$with_fsref = xno; then + AC_MSG_WARN([ +*** WARNING + FreeType2 built without FSRef API cannot load + data-fork fonts on MacOS, except of XXX.dfont. + ]) + CFLAGS="$CFLAGS -DHAVE_FSREF=0" +elif test x$with_old_mac_fonts = xyes -a x$with_fsref != x; then + AC_MSG_CHECKING([FSRef-based FileManager]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ + +#if defined(__GNUC__) && defined(__APPLE_CC__) +# include <CoreServices/CoreServices.h> +# include <ApplicationServices/ApplicationServices.h> +#else +# include <ConditionalMacros.h> +# include <Files.h> +#endif + + ], + [ + + short vRefNum; + long dirID; + ConstStr255Param fileName; + + Boolean* isDirectory; + UInt8* path; + SInt16 desiredRefNum; + SInt16* iterator; + SInt16* actualRefNum; + HFSUniStr255* outForkName; + FSVolumeRefNum volume; + FSCatalogInfoBitmap whichInfo; + FSCatalogInfo* catalogInfo; + FSForkInfo* forkInfo; + FSRef* ref; + +#if HAVE_FSSPEC + FSSpec* spec; +#endif + + /* FSRef functions: no need to check? */ + FSGetForkCBInfo( desiredRefNum, volume, iterator, + actualRefNum, forkInfo, ref, + outForkName ); + FSPathMakeRef( path, ref, isDirectory ); + +#if HAVE_FSSPEC + FSpMakeFSRef ( spec, ref ); + FSGetCatalogInfo( ref, whichInfo, catalogInfo, + outForkName, spec, ref ); +#endif + ])], + [AC_MSG_RESULT([ok]) + CFLAGS="$CFLAGS -DHAVE_FSREF=1"], + [AC_MSG_RESULT([not found]) + CFLAGS="$CFLAGS -DHAVE_FSREF=0"]) +fi + + +# Whether to use QuickDraw API in ToolBox which is deprecated since +# Mac OS X 10.4. + +AC_ARG_WITH([quickdraw-toolbox], + AS_HELP_STRING([--with-quickdraw-toolbox], + [use MacOS QuickDraw in ToolBox, if available (default=yes)])) +if test x$with_quickdraw_toolbox = xno; then + CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_TOOLBOX=0" +elif test x$with_old_mac_fonts = xyes -a x$with_quickdraw_toolbox != x; then + AC_MSG_CHECKING([QuickDraw FontManager functions in ToolBox]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ + +#if defined(__GNUC__) && defined(__APPLE_CC__) +# include <CoreServices/CoreServices.h> +# include <ApplicationServices/ApplicationServices.h> +#else +# include <ConditionalMacros.h> +# include <Fonts.h> +#endif + + ], + [ + + Str255 familyName; + SInt16 familyID = 0; + FMInput* fmIn = NULL; + FMOutput* fmOut = NULL; + + + GetFontName( familyID, familyName ); + GetFNum( familyName, &familyID ); + fmOut = FMSwapFont( fmIn ); + + ])], + [AC_MSG_RESULT([ok]) + CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_TOOLBOX=1"], + [AC_MSG_RESULT([not found]) + CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_TOOLBOX=0"]) +fi + + +# Whether to use QuickDraw API in Carbon which is deprecated since +# Mac OS X 10.4. + +AC_ARG_WITH([quickdraw-carbon], + AS_HELP_STRING([--with-quickdraw-carbon], + [use MacOS QuickDraw in Carbon, if available (default=yes)])) +if test x$with_quickdraw_carbon = xno; then + CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_CARBON=0" +elif test x$with_old_mac_fonts = xyes -a x$with_quickdraw_carbon != x; then + AC_MSG_CHECKING([QuickDraw FontManager functions in Carbon]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ + +#if defined(__GNUC__) && defined(__APPLE_CC__) +# include <CoreServices/CoreServices.h> +# include <ApplicationServices/ApplicationServices.h> +#else +# include <ConditionalMacros.h> +# include <Fonts.h> +#endif + + ], + [ + + FMFontFamilyIterator famIter; + FMFontFamily family; + Str255 famNameStr; + FMFontFamilyInstanceIterator instIter; + FMFontStyle style; + FMFontSize size; + FMFont font; + FSSpec* pathSpec; + + + FMCreateFontFamilyIterator( NULL, NULL, kFMUseGlobalScopeOption, + &famIter ); + FMGetNextFontFamily( &famIter, &family ); + FMGetFontFamilyName( family, famNameStr ); + FMCreateFontFamilyInstanceIterator( family, &instIter ); + FMGetNextFontFamilyInstance( &instIter, &font, &style, &size ); + FMDisposeFontFamilyInstanceIterator( &instIter ); + FMDisposeFontFamilyIterator( &famIter ); + FMGetFontContainer( font, pathSpec ); + + ])], + [AC_MSG_RESULT([ok]) + CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_CARBON=1"], + [AC_MSG_RESULT([not found]) + CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_CARBON=0"]) +fi + + +# Whether to use AppleTypeService since Mac OS X. + +# don't quote AS_HELP_STRING! +AC_ARG_WITH([ats], + AS_HELP_STRING([--with-ats], + [use AppleTypeService, if available (default=yes)])) +if test x$with_ats = xno; then + CFLAGS="$CFLAGS -DHAVE_ATS=0" +elif test x$with_old_mac_fonts = xyes -a x$with_ats != x ; then + AC_MSG_CHECKING([AppleTypeService functions]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ + +#if defined(__GNUC__) && defined(__APPLE_CC__) +# include <CoreServices/CoreServices.h> +# include <ApplicationServices/ApplicationServices.h> +#else +# include <ConditionalMacros.h> +# include <Files.h> +#endif + + ], + [ + + FSSpec* pathSpec; + + + ATSFontFindFromName( NULL, kATSOptionFlagsUnRestrictedScope ); +#if HAVE_FSSPEC + ATSFontGetFileSpecification( 0, pathSpec ); +#endif + + ])], + [AC_MSG_RESULT([ok]) + CFLAGS="$CFLAGS -DHAVE_ATS=1"], + [AC_MSG_RESULT([not found]) + CFLAGS="$CFLAGS -DHAVE_ATS=0"]) +fi + +case "$CFLAGS" in + *HAVE_FSSPEC* | *HAVE_FSREF* | *HAVE_QUICKDRAW* | *HAVE_ATS* ) + AC_MSG_WARN([ +*** WARNING + FSSpec/FSRef/QuickDraw/ATS options are explicitly given, + thus it is recommended to replace src/base/ftmac.c by builds/mac/ftmac.c. + ]) + CFLAGS="$CFLAGS "'-I$(TOP_DIR)/builds/mac/' + ;; + *) + ;; +esac + + +AC_SUBST([ftmac_c]) +AC_SUBST([LIBZ]) +AC_SUBST([CFLAGS]) +AC_SUBST([LDFLAGS]) +AC_SUBST([FT2_EXTRA_LIBS]) +AC_SUBST([SYSTEM_ZLIB]) + + +LT_INIT(win32-dll) + +AC_SUBST([hardcode_libdir_flag_spec]) +AC_SUBST([wl]) +AC_SUBST([build_libtool_libs]) + + +# configuration file -- stay in 8.3 limit +# +# since #undef doesn't survive in configuration header files we replace +# `/undef' with `#undef' after creating the output file + +AC_CONFIG_HEADERS([ftconfig.h:ftconfig.in], + [mv ftconfig.h ftconfig.tmp + sed 's|/undef|#undef|' < ftconfig.tmp > ftconfig.h + rm ftconfig.tmp]) + +# create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk' +# and `builds/unix/unix-cc.mk' that will be used by the build system +# +AC_CONFIG_FILES([unix-cc.mk:unix-cc.in + unix-def.mk:unix-def.in + freetype-config + freetype2.pc:freetype2.in]) + +# re-generate the Jamfile to use libtool now +# +# AC_CONFIG_FILES([../../Jamfile:../../Jamfile.in]) + +AC_OUTPUT + +# end of configure.raw diff --git a/components/external/freetype/builds/unix/install-sh b/components/external/freetype/builds/unix/install-sh index 16c160754b..6781b987bd 100644 --- a/components/external/freetype/builds/unix/install-sh +++ b/components/external/freetype/builds/unix/install-sh @@ -1,520 +1,520 @@ -#!/bin/sh
-# install - install a program, script, or datafile
-
-scriptversion=2009-04-28.21; # UTC
-
-# This originates from X11R5 (mit/util/scripts/install.sh), which was
-# later released in X11R6 (xc/config/util/install.sh) with the
-# following copyright and license.
-#
-# Copyright (C) 1994 X Consortium
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to
-# deal in the Software without restriction, including without limitation the
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-# sell copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-# Except as contained in this notice, the name of the X Consortium shall not
-# be used in advertising or otherwise to promote the sale, use or other deal-
-# ings in this Software without prior written authorization from the X Consor-
-# tium.
-#
-#
-# FSF changes to this file are in the public domain.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.
-
-nl='
-'
-IFS=" "" $nl"
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit=${DOITPROG-}
-if test -z "$doit"; then
- doit_exec=exec
-else
- doit_exec=$doit
-fi
-
-# Put in absolute file names if you don't have them in your path;
-# or use environment vars.
-
-chgrpprog=${CHGRPPROG-chgrp}
-chmodprog=${CHMODPROG-chmod}
-chownprog=${CHOWNPROG-chown}
-cmpprog=${CMPPROG-cmp}
-cpprog=${CPPROG-cp}
-mkdirprog=${MKDIRPROG-mkdir}
-mvprog=${MVPROG-mv}
-rmprog=${RMPROG-rm}
-stripprog=${STRIPPROG-strip}
-
-posix_glob='?'
-initialize_posix_glob='
- test "$posix_glob" != "?" || {
- if (set -f) 2>/dev/null; then
- posix_glob=
- else
- posix_glob=:
- fi
- }
-'
-
-posix_mkdir=
-
-# Desired mode of installed file.
-mode=0755
-
-chgrpcmd=
-chmodcmd=$chmodprog
-chowncmd=
-mvcmd=$mvprog
-rmcmd="$rmprog -f"
-stripcmd=
-
-src=
-dst=
-dir_arg=
-dst_arg=
-
-copy_on_change=false
-no_target_directory=
-
-usage="\
-Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
- or: $0 [OPTION]... SRCFILES... DIRECTORY
- or: $0 [OPTION]... -t DIRECTORY SRCFILES...
- or: $0 [OPTION]... -d DIRECTORIES...
-
-In the 1st form, copy SRCFILE to DSTFILE.
-In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
-In the 4th, create DIRECTORIES.
-
-Options:
- --help display this help and exit.
- --version display version info and exit.
-
- -c (ignored)
- -C install only if different (preserve the last data modification time)
- -d create directories instead of installing files.
- -g GROUP $chgrpprog installed files to GROUP.
- -m MODE $chmodprog installed files to MODE.
- -o USER $chownprog installed files to USER.
- -s $stripprog installed files.
- -t DIRECTORY install into DIRECTORY.
- -T report an error if DSTFILE is a directory.
-
-Environment variables override the default commands:
- CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
- RMPROG STRIPPROG
-"
-
-while test $# -ne 0; do
- case $1 in
- -c) ;;
-
- -C) copy_on_change=true;;
-
- -d) dir_arg=true;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift;;
-
- --help) echo "$usage"; exit $?;;
-
- -m) mode=$2
- case $mode in
- *' '* | *' '* | *'
-'* | *'*'* | *'?'* | *'['*)
- echo "$0: invalid mode: $mode" >&2
- exit 1;;
- esac
- shift;;
-
- -o) chowncmd="$chownprog $2"
- shift;;
-
- -s) stripcmd=$stripprog;;
-
- -t) dst_arg=$2
- shift;;
-
- -T) no_target_directory=true;;
-
- --version) echo "$0 $scriptversion"; exit $?;;
-
- --) shift
- break;;
-
- -*) echo "$0: invalid option: $1" >&2
- exit 1;;
-
- *) break;;
- esac
- shift
-done
-
-if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
- # When -d is used, all remaining arguments are directories to create.
- # When -t is used, the destination is already specified.
- # Otherwise, the last argument is the destination. Remove it from $@.
- for arg
- do
- if test -n "$dst_arg"; then
- # $@ is not empty: it contains at least $arg.
- set fnord "$@" "$dst_arg"
- shift # fnord
- fi
- shift # arg
- dst_arg=$arg
- done
-fi
-
-if test $# -eq 0; then
- if test -z "$dir_arg"; then
- echo "$0: no input file specified." >&2
- exit 1
- fi
- # It's OK to call `install-sh -d' without argument.
- # This can happen when creating conditional directories.
- exit 0
-fi
-
-if test -z "$dir_arg"; then
- trap '(exit $?); exit' 1 2 13 15
-
- # Set umask so as not to create temps with too-generous modes.
- # However, 'strip' requires both read and write access to temps.
- case $mode in
- # Optimize common cases.
- *644) cp_umask=133;;
- *755) cp_umask=22;;
-
- *[0-7])
- if test -z "$stripcmd"; then
- u_plus_rw=
- else
- u_plus_rw='% 200'
- fi
- cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
- *)
- if test -z "$stripcmd"; then
- u_plus_rw=
- else
- u_plus_rw=,u+rw
- fi
- cp_umask=$mode$u_plus_rw;;
- esac
-fi
-
-for src
-do
- # Protect names starting with `-'.
- case $src in
- -*) src=./$src;;
- esac
-
- if test -n "$dir_arg"; then
- dst=$src
- dstdir=$dst
- test -d "$dstdir"
- dstdir_status=$?
- else
-
- # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
- # might cause directories to be created, which would be especially bad
- # if $src (and thus $dsttmp) contains '*'.
- if test ! -f "$src" && test ! -d "$src"; then
- echo "$0: $src does not exist." >&2
- exit 1
- fi
-
- if test -z "$dst_arg"; then
- echo "$0: no destination specified." >&2
- exit 1
- fi
-
- dst=$dst_arg
- # Protect names starting with `-'.
- case $dst in
- -*) dst=./$dst;;
- esac
-
- # If destination is a directory, append the input filename; won't work
- # if double slashes aren't ignored.
- if test -d "$dst"; then
- if test -n "$no_target_directory"; then
- echo "$0: $dst_arg: Is a directory" >&2
- exit 1
- fi
- dstdir=$dst
- dst=$dstdir/`basename "$src"`
- dstdir_status=0
- else
- # Prefer dirname, but fall back on a substitute if dirname fails.
- dstdir=`
- (dirname "$dst") 2>/dev/null ||
- expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$dst" : 'X\(//\)[^/]' \| \
- X"$dst" : 'X\(//\)$' \| \
- X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
- echo X"$dst" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'
- `
-
- test -d "$dstdir"
- dstdir_status=$?
- fi
- fi
-
- obsolete_mkdir_used=false
-
- if test $dstdir_status != 0; then
- case $posix_mkdir in
- '')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
- # With -d, create the new directory with the user-specified mode.
- # Otherwise, rely on $mkdir_umask.
- if test -n "$dir_arg"; then
- mkdir_mode=-m$mode
- else
- mkdir_mode=
- fi
-
- posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- if (umask $mkdir_umask &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writeable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- ls_ld_tmpdir=`ls -ld "$tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/d" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
- fi
- trap '' 0;;
- esac;;
- esac
-
- if
- $posix_mkdir && (
- umask $mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
- )
- then :
- else
-
- # The umask is ridiculous, or mkdir does not conform to POSIX,
- # or it failed possibly due to a race condition. Create the
- # directory the slow way, step by step, checking for races as we go.
-
- case $dstdir in
- /*) prefix='/';;
- -*) prefix='./';;
- *) prefix='';;
- esac
-
- eval "$initialize_posix_glob"
-
- oIFS=$IFS
- IFS=/
- $posix_glob set -f
- set fnord $dstdir
- shift
- $posix_glob set +f
- IFS=$oIFS
-
- prefixes=
-
- for d
- do
- test -z "$d" && continue
-
- prefix=$prefix$d
- if test -d "$prefix"; then
- prefixes=
- else
- if $posix_mkdir; then
- (umask=$mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
- # Don't fail if two instances are running concurrently.
- test -d "$prefix" || exit 1
- else
- case $prefix in
- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
- *) qprefix=$prefix;;
- esac
- prefixes="$prefixes '$qprefix'"
- fi
- fi
- prefix=$prefix/
- done
-
- if test -n "$prefixes"; then
- # Don't fail if two instances are running concurrently.
- (umask $mkdir_umask &&
- eval "\$doit_exec \$mkdirprog $prefixes") ||
- test -d "$dstdir" || exit 1
- obsolete_mkdir_used=true
- fi
- fi
- fi
-
- if test -n "$dir_arg"; then
- { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
- { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
- { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
- test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
- else
-
- # Make a couple of temp file names in the proper directory.
- dsttmp=$dstdir/_inst.$$_
- rmtmp=$dstdir/_rm.$$_
-
- # Trap to clean up those temp files at exit.
- trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-
- # Copy the file name to the temp name.
- (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
-
- # and set any options; do chmod last to preserve setuid bits.
- #
- # If any of these fail, we abort the whole thing. If we want to
- # ignore errors from any of these, just make sure not to ignore
- # errors from the above "$doit $cpprog $src $dsttmp" command.
- #
- { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
- { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
- { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
- { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
-
- # If -C, don't bother to copy if it wouldn't change the file.
- if $copy_on_change &&
- old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
- new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
-
- eval "$initialize_posix_glob" &&
- $posix_glob set -f &&
- set X $old && old=:$2:$4:$5:$6 &&
- set X $new && new=:$2:$4:$5:$6 &&
- $posix_glob set +f &&
-
- test "$old" = "$new" &&
- $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
- then
- rm -f "$dsttmp"
- else
- # Rename the file to the real destination.
- $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
-
- # The rename failed, perhaps because mv can't rename something else
- # to itself, or perhaps because mv is so ancient that it does not
- # support -f.
- {
- # Now remove or move aside any old file at destination location.
- # We try this two ways since rm can't unlink itself on some
- # systems and the destination file might be busy for other
- # reasons. In this case, the final cleanup might fail but the new
- # file should still install successfully.
- {
- test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
- { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
- } ||
- { echo "$0: cannot unlink or rename $dst" >&2
- (exit 1); exit 1
- }
- } &&
-
- # Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dst"
- }
- fi || exit 1
-
- trap '' 0
- fi
-done
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
+#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2009-04-28.21; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +no_target_directory= + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) dst_arg=$2 + shift;; + + -T) no_target_directory=true;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call `install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + trap '(exit $?); exit' 1 2 13 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names starting with `-'. + case $src in + -*) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + + dst=$dst_arg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst;; + esac + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + -*) prefix='./';; + *) prefix='';; + esac + + eval "$initialize_posix_glob" + + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir + shift + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test -z "$d" && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob set +f && + + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/components/external/freetype/builds/unix/mkinstalldirs b/components/external/freetype/builds/unix/mkinstalldirs index d3ddb21039..ef7e16fdaf 100644 --- a/components/external/freetype/builds/unix/mkinstalldirs +++ b/components/external/freetype/builds/unix/mkinstalldirs @@ -1,161 +1,161 @@ -#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-
-scriptversion=2006-05-11.19
-
-# Original author: Noah Friedman <[email protected]>
-# Created: 1993-05-16
-# Public domain.
-#
-# This file is maintained in Automake, please report
-# bugs to <[email protected]> or send patches to
-# <[email protected]>.
-
-nl='
-'
-IFS=" "" $nl"
-errstatus=0
-dirmode=
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
-
-Create each directory DIR (with mode MODE, if specified), including all
-leading file name components.
-
-Report bugs to <[email protected]>."
-
-# process command line arguments
-while test $# -gt 0 ; do
- case $1 in
- -h | --help | --h*) # -h for help
- echo "$usage"
- exit $?
- ;;
- -m) # -m PERM arg
- shift
- test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
- dirmode=$1
- shift
- ;;
- --version)
- echo "$0 $scriptversion"
- exit $?
- ;;
- --) # stop option processing
- shift
- break
- ;;
- -*) # unknown option
- echo "$usage" 1>&2
- exit 1
- ;;
- *) # first non-opt arg
- break
- ;;
- esac
-done
-
-for file
-do
- if test -d "$file"; then
- shift
- else
- break
- fi
-done
-
-case $# in
- 0) exit 0 ;;
-esac
-
-# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
-# mkdir -p a/c at the same time, both will detect that a is missing,
-# one will create a, then the other will try to create a and die with
-# a "File exists" error. This is a problem when calling mkinstalldirs
-# from a parallel make. We use --version in the probe to restrict
-# ourselves to GNU mkdir, which is thread-safe.
-case $dirmode in
- '')
- if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- echo "mkdir -p -- $*"
- exec mkdir -p -- "$@"
- else
- # On NextStep and OpenStep, the `mkdir' command does not
- # recognize any option. It will interpret all options as
- # directories to create, and then abort because `.' already
- # exists.
- test -d ./-p && rmdir ./-p
- test -d ./--version && rmdir ./--version
- fi
- ;;
- *)
- if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
- test ! -d ./--version; then
- echo "mkdir -m $dirmode -p -- $*"
- exec mkdir -m "$dirmode" -p -- "$@"
- else
- # Clean up after NextStep and OpenStep mkdir.
- for d in ./-m ./-p ./--version "./$dirmode";
- do
- test -d $d && rmdir $d
- done
- fi
- ;;
-esac
-
-for file
-do
- case $file in
- /*) pathcomp=/ ;;
- *) pathcomp= ;;
- esac
- oIFS=$IFS
- IFS=/
- set fnord $file
- shift
- IFS=$oIFS
-
- for d
- do
- test "x$d" = x && continue
-
- pathcomp=$pathcomp$d
- case $pathcomp in
- -*) pathcomp=./$pathcomp ;;
- esac
-
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp"
-
- mkdir "$pathcomp" || lasterr=$?
-
- if test ! -d "$pathcomp"; then
- errstatus=$lasterr
- else
- if test ! -z "$dirmode"; then
- echo "chmod $dirmode $pathcomp"
- lasterr=
- chmod "$dirmode" "$pathcomp" || lasterr=$?
-
- if test ! -z "$lasterr"; then
- errstatus=$lasterr
- fi
- fi
- fi
- fi
-
- pathcomp=$pathcomp/
- done
-done
-
-exit $errstatus
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
+#! /bin/sh +# mkinstalldirs --- make directory hierarchy + +scriptversion=2006-05-11.19 + +# Original author: Noah Friedman <[email protected]> +# Created: 1993-05-16 +# Public domain. +# +# This file is maintained in Automake, please report +# bugs to <[email protected]> or send patches to +# <[email protected]>. + +nl=' +' +IFS=" "" $nl" +errstatus=0 +dirmode= + +usage="\ +Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... + +Create each directory DIR (with mode MODE, if specified), including all +leading file name components. + +Report bugs to <[email protected]>." + +# process command line arguments +while test $# -gt 0 ; do + case $1 in + -h | --help | --h*) # -h for help + echo "$usage" + exit $? + ;; + -m) # -m PERM arg + shift + test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } + dirmode=$1 + shift + ;; + --version) + echo "$0 $scriptversion" + exit $? + ;; + --) # stop option processing + shift + break + ;; + -*) # unknown option + echo "$usage" 1>&2 + exit 1 + ;; + *) # first non-opt arg + break + ;; + esac +done + +for file +do + if test -d "$file"; then + shift + else + break + fi +done + +case $# in + 0) exit 0 ;; +esac + +# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and +# mkdir -p a/c at the same time, both will detect that a is missing, +# one will create a, then the other will try to create a and die with +# a "File exists" error. This is a problem when calling mkinstalldirs +# from a parallel make. We use --version in the probe to restrict +# ourselves to GNU mkdir, which is thread-safe. +case $dirmode in + '') + if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then + echo "mkdir -p -- $*" + exec mkdir -p -- "$@" + else + # On NextStep and OpenStep, the `mkdir' command does not + # recognize any option. It will interpret all options as + # directories to create, and then abort because `.' already + # exists. + test -d ./-p && rmdir ./-p + test -d ./--version && rmdir ./--version + fi + ;; + *) + if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && + test ! -d ./--version; then + echo "mkdir -m $dirmode -p -- $*" + exec mkdir -m "$dirmode" -p -- "$@" + else + # Clean up after NextStep and OpenStep mkdir. + for d in ./-m ./-p ./--version "./$dirmode"; + do + test -d $d && rmdir $d + done + fi + ;; +esac + +for file +do + case $file in + /*) pathcomp=/ ;; + *) pathcomp= ;; + esac + oIFS=$IFS + IFS=/ + set fnord $file + shift + IFS=$oIFS + + for d + do + test "x$d" = x && continue + + pathcomp=$pathcomp$d + case $pathcomp in + -*) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + else + if test ! -z "$dirmode"; then + echo "chmod $dirmode $pathcomp" + lasterr= + chmod "$dirmode" "$pathcomp" || lasterr=$? + + if test ! -z "$lasterr"; then + errstatus=$lasterr + fi + fi + fi + fi + + pathcomp=$pathcomp/ + done +done + +exit $errstatus + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/components/external/freetype/builds/win32/visualc/freetype.sln b/components/external/freetype/builds/win32/visualc/freetype.sln index c137b6fb5b..2c7445c628 100644 --- a/components/external/freetype/builds/win32/visualc/freetype.sln +++ b/components/external/freetype/builds/win32/visualc/freetype.sln @@ -1,33 +1,33 @@ -Microsoft Visual Studio Solution File, Format Version 8.00
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "freetype.vcproj", "{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfiguration) = preSolution
- Debug = Debug
- Debug Multithreaded = Debug Multithreaded
- Debug Singlethreaded = Debug Singlethreaded
- Release = Release
- Release Multithreaded = Release Multithreaded
- Release Singlethreaded = Release Singlethreaded
- EndGlobalSection
- GlobalSection(ProjectConfiguration) = postSolution
- {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug.ActiveCfg = Debug|Win32
- {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug.Build.0 = Debug|Win32
- {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug Multithreaded.ActiveCfg = Debug Multithreaded|Win32
- {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug Multithreaded.Build.0 = Debug Multithreaded|Win32
- {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug Singlethreaded.ActiveCfg = Debug Singlethreaded|Win32
- {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug Singlethreaded.Build.0 = Debug Singlethreaded|Win32
- {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release.ActiveCfg = Release|Win32
- {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release.Build.0 = Release|Win32
- {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release Multithreaded.ActiveCfg = Release Multithreaded|Win32
- {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release Multithreaded.Build.0 = Release Multithreaded|Win32
- {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release Singlethreaded.ActiveCfg = Release Singlethreaded|Win32
- {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release Singlethreaded.Build.0 = Release Singlethreaded|Win32
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- EndGlobalSection
- GlobalSection(ExtensibilityAddIns) = postSolution
- EndGlobalSection
-EndGlobal
+Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "freetype.vcproj", "{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Debug Multithreaded = Debug Multithreaded + Debug Singlethreaded = Debug Singlethreaded + Release = Release + Release Multithreaded = Release Multithreaded + Release Singlethreaded = Release Singlethreaded + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug.ActiveCfg = Debug|Win32 + {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug.Build.0 = Debug|Win32 + {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug Multithreaded.ActiveCfg = Debug Multithreaded|Win32 + {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug Multithreaded.Build.0 = Debug Multithreaded|Win32 + {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug Singlethreaded.ActiveCfg = Debug Singlethreaded|Win32 + {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug Singlethreaded.Build.0 = Debug Singlethreaded|Win32 + {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release.ActiveCfg = Release|Win32 + {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release.Build.0 = Release|Win32 + {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release Multithreaded.ActiveCfg = Release Multithreaded|Win32 + {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release Multithreaded.Build.0 = Release Multithreaded|Win32 + {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release Singlethreaded.ActiveCfg = Release Singlethreaded|Win32 + {C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release Singlethreaded.Build.0 = Release Singlethreaded|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/components/external/freetype/builds/win32/visualc/freetype.vcproj b/components/external/freetype/builds/win32/visualc/freetype.vcproj index 2767987dd5..08bc48f677 100644 --- a/components/external/freetype/builds/win32/visualc/freetype.vcproj +++ b/components/external/freetype/builds/win32/visualc/freetype.vcproj @@ -1,2412 +1,2412 @@ -<?xml version="1.0" encoding="gb2312"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="7.10"
- Name="freetype"
- SccProjectName=""
- SccLocalPath="">
- <Platforms>
- <Platform
- Name="Win32"/>
- </Platforms>
- <Configurations>
- <Configuration
- Name="Release|Win32"
- OutputDirectory=".\..\..\..\objs\release"
- IntermediateDirectory=".\..\..\..\objs\release"
- ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="1"
- ImproveFloatingPointConsistency="TRUE"
- AdditionalIncludeDirectories="..\..\..\include"
- PreprocessorDefinitions="NDEBUG;WIN32;_LIB;FT2_BUILD_LIBRARY"
- StringPooling="TRUE"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="TRUE"
- DisableLanguageExtensions="TRUE"
- PrecompiledHeaderFile=".\..\..\..\objs\release/freetype.pch"
- AssemblerListingLocation=".\..\..\..\objs\release/"
- ObjectFile=".\..\..\..\objs\release/"
- ProgramDataBaseFileName=".\..\..\..\objs\release/"
- WarningLevel="4"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLibrarianTool"
- OutputFile="..\..\..\objs\freetype2312.lib"
- SuppressStartupBanner="TRUE"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1033"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="Release Multithreaded|Win32"
- OutputDirectory=".\..\..\..\objs\release_mt"
- IntermediateDirectory=".\..\..\..\objs\release_mt"
- ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="1"
- ImproveFloatingPointConsistency="TRUE"
- AdditionalIncludeDirectories="..\..\..\include"
- PreprocessorDefinitions="NDEBUG;WIN32;_LIB;FT2_BUILD_LIBRARY"
- StringPooling="TRUE"
- RuntimeLibrary="0"
- EnableFunctionLevelLinking="TRUE"
- DisableLanguageExtensions="TRUE"
- PrecompiledHeaderFile=".\..\..\..\objs\release_mt/freetype.pch"
- AssemblerListingLocation=".\..\..\..\objs\release_mt/"
- ObjectFile=".\..\..\..\objs\release_mt/"
- ProgramDataBaseFileName=".\..\..\..\objs\release_mt/"
- WarningLevel="4"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLibrarianTool"
- OutputFile="..\..\..\objs\freetype2312MT.lib"
- SuppressStartupBanner="TRUE"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1033"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="Release Singlethreaded|Win32"
- OutputDirectory=".\..\..\..\objs\release_st"
- IntermediateDirectory=".\..\..\..\objs\release_st"
- ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="1"
- ImproveFloatingPointConsistency="TRUE"
- AdditionalIncludeDirectories="..\..\..\include"
- PreprocessorDefinitions="NDEBUG;WIN32;_LIB;FT2_BUILD_LIBRARY"
- StringPooling="TRUE"
- RuntimeLibrary="4"
- EnableFunctionLevelLinking="TRUE"
- DisableLanguageExtensions="TRUE"
- PrecompiledHeaderFile=".\..\..\..\objs\release_st/freetype.pch"
- AssemblerListingLocation=".\..\..\..\objs\release_st/"
- ObjectFile=".\..\..\..\objs\release_st/"
- ProgramDataBaseFileName=".\..\..\..\objs\release_st/"
- WarningLevel="4"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLibrarianTool"
- OutputFile="..\..\..\objs\freetype2312ST.lib"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1033"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory=".\..\..\..\objs\debug"
- IntermediateDirectory=".\..\..\..\objs\debug"
- ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- ImproveFloatingPointConsistency="TRUE"
- AdditionalIncludeDirectories="..\..\..\include"
- PreprocessorDefinitions="_DEBUG;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;WIN32;_LIB;FT2_BUILD_LIBRARY"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- DisableLanguageExtensions="TRUE"
- PrecompiledHeaderFile=".\..\..\..\objs\debug/freetype.pch"
- AssemblerListingLocation=".\..\..\..\objs\debug/"
- ObjectFile=".\..\..\..\objs\debug/"
- ProgramDataBaseFileName=".\..\..\..\objs\debug/"
- WarningLevel="4"
- DebugInformationFormat="1"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLibrarianTool"
- OutputFile="..\..\..\objs\freetype2312_D.lib"
- SuppressStartupBanner="TRUE"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1033"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="Debug Singlethreaded|Win32"
- OutputDirectory=".\..\..\..\objs\debug_st"
- IntermediateDirectory=".\..\..\..\objs\debug_st"
- ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- ImproveFloatingPointConsistency="TRUE"
- AdditionalIncludeDirectories="..\..\..\include"
- PreprocessorDefinitions="_DEBUG;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;WIN32;_LIB;FT2_BUILD_LIBRARY"
- BasicRuntimeChecks="3"
- RuntimeLibrary="5"
- DisableLanguageExtensions="TRUE"
- PrecompiledHeaderFile=".\..\..\..\objs\debug_st/freetype.pch"
- AssemblerListingLocation=".\..\..\..\objs\debug_st/"
- ObjectFile=".\..\..\..\objs\debug_st/"
- ProgramDataBaseFileName=".\..\..\..\objs\debug_st/"
- WarningLevel="4"
- DebugInformationFormat="1"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLibrarianTool"
- OutputFile="..\..\..\objs\freetype2312ST_D.lib"
- SuppressStartupBanner="TRUE"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1033"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="Debug Multithreaded|Win32"
- OutputDirectory=".\..\..\..\objs\debug_mt"
- IntermediateDirectory=".\..\..\..\objs\debug_mt"
- ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- ImproveFloatingPointConsistency="TRUE"
- AdditionalIncludeDirectories="..\..\..\include"
- PreprocessorDefinitions="_DEBUG;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;WIN32;_LIB;FT2_BUILD_LIBRARY"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- DisableLanguageExtensions="TRUE"
- PrecompiledHeaderFile=".\..\..\..\objs\debug_mt/freetype.pch"
- AssemblerListingLocation=".\..\..\..\objs\debug_mt/"
- ObjectFile=".\..\..\..\objs\debug_mt/"
- ProgramDataBaseFileName=".\..\..\..\objs\debug_mt/"
- WarningLevel="4"
- DebugInformationFormat="1"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLibrarianTool"
- OutputFile="..\..\..\objs\freetype2312MT_D.lib"
- SuppressStartupBanner="TRUE"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1033"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
- <File
- RelativePath="..\..\..\src\autofit\autofit.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\bdf\bdf.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\cff\cff.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\ftbase.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\ftbbox.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\ftbdf.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\ftbitmap.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\cache\ftcache.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\ftdebug.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- DisableLanguageExtensions="FALSE"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- DisableLanguageExtensions="FALSE"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- DisableLanguageExtensions="FALSE"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"
- DisableLanguageExtensions="FALSE"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"
- DisableLanguageExtensions="FALSE"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"
- DisableLanguageExtensions="FALSE"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\ftfstype.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\ftgasp.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\ftglyph.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\ftgxval.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\gzip\ftgzip.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\ftinit.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\lzw\ftlzw.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\ftmm.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\ftotval.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\ftpfr.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\ftstroke.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\ftsynth.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\ftsystem.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\fttype1.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\ftwinfnt.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\base\ftxf86.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\pcf\pcf.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\pfr\pfr.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\psaux\psaux.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\pshinter\pshinter.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\psnames\psmodule.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\raster\raster.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\sfnt\sfnt.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\smooth\smooth.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\truetype\truetype.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\type1\type1.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\cid\type1cid.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\type42\type42.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\..\src\winfonts\winfnt.c">
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Singlethreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Debug Multithreaded|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- BasicRuntimeChecks="3"/>
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl">
- <File
- RelativePath="..\..\..\include\ft2build.h">
- </File>
- <File
- RelativePath="..\..\..\include\freetype\config\ftconfig.h">
- </File>
- <File
- RelativePath="..\..\..\include\freetype\config\ftheader.h">
- </File>
- <File
- RelativePath="..\..\..\include\freetype\config\ftmodule.h">
- </File>
- <File
- RelativePath="..\..\..\include\freetype\config\ftoption.h">
- </File>
- <File
- RelativePath="..\..\..\include\freetype\config\ftstdlib.h">
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="gb2312"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="7.10" + Name="freetype" + SccProjectName="" + SccLocalPath=""> + <Platforms> + <Platform + Name="Win32"/> + </Platforms> + <Configurations> + <Configuration + Name="Release|Win32" + OutputDirectory=".\..\..\..\objs\release" + IntermediateDirectory=".\..\..\..\objs\release" + ConfigurationType="4" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="FALSE" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + ImproveFloatingPointConsistency="TRUE" + AdditionalIncludeDirectories="..\..\..\include" + PreprocessorDefinitions="NDEBUG;WIN32;_LIB;FT2_BUILD_LIBRARY" + StringPooling="TRUE" + RuntimeLibrary="2" + EnableFunctionLevelLinking="TRUE" + DisableLanguageExtensions="TRUE" + PrecompiledHeaderFile=".\..\..\..\objs\release/freetype.pch" + AssemblerListingLocation=".\..\..\..\objs\release/" + ObjectFile=".\..\..\..\objs\release/" + ProgramDataBaseFileName=".\..\..\..\objs\release/" + WarningLevel="4" + CompileAs="0"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLibrarianTool" + OutputFile="..\..\..\objs\freetype2312.lib" + SuppressStartupBanner="TRUE"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + <Configuration + Name="Release Multithreaded|Win32" + OutputDirectory=".\..\..\..\objs\release_mt" + IntermediateDirectory=".\..\..\..\objs\release_mt" + ConfigurationType="4" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="FALSE" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + ImproveFloatingPointConsistency="TRUE" + AdditionalIncludeDirectories="..\..\..\include" + PreprocessorDefinitions="NDEBUG;WIN32;_LIB;FT2_BUILD_LIBRARY" + StringPooling="TRUE" + RuntimeLibrary="0" + EnableFunctionLevelLinking="TRUE" + DisableLanguageExtensions="TRUE" + PrecompiledHeaderFile=".\..\..\..\objs\release_mt/freetype.pch" + AssemblerListingLocation=".\..\..\..\objs\release_mt/" + ObjectFile=".\..\..\..\objs\release_mt/" + ProgramDataBaseFileName=".\..\..\..\objs\release_mt/" + WarningLevel="4" + CompileAs="0"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLibrarianTool" + OutputFile="..\..\..\objs\freetype2312MT.lib" + SuppressStartupBanner="TRUE"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + <Configuration + Name="Release Singlethreaded|Win32" + OutputDirectory=".\..\..\..\objs\release_st" + IntermediateDirectory=".\..\..\..\objs\release_st" + ConfigurationType="4" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="FALSE" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + ImproveFloatingPointConsistency="TRUE" + AdditionalIncludeDirectories="..\..\..\include" + PreprocessorDefinitions="NDEBUG;WIN32;_LIB;FT2_BUILD_LIBRARY" + StringPooling="TRUE" + RuntimeLibrary="4" + EnableFunctionLevelLinking="TRUE" + DisableLanguageExtensions="TRUE" + PrecompiledHeaderFile=".\..\..\..\objs\release_st/freetype.pch" + AssemblerListingLocation=".\..\..\..\objs\release_st/" + ObjectFile=".\..\..\..\objs\release_st/" + ProgramDataBaseFileName=".\..\..\..\objs\release_st/" + WarningLevel="4" + CompileAs="0"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLibrarianTool" + OutputFile="..\..\..\objs\freetype2312ST.lib"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + <Configuration + Name="Debug|Win32" + OutputDirectory=".\..\..\..\objs\debug" + IntermediateDirectory=".\..\..\..\objs\debug" + ConfigurationType="4" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="FALSE" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + ImproveFloatingPointConsistency="TRUE" + AdditionalIncludeDirectories="..\..\..\include" + PreprocessorDefinitions="_DEBUG;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;WIN32;_LIB;FT2_BUILD_LIBRARY" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + DisableLanguageExtensions="TRUE" + PrecompiledHeaderFile=".\..\..\..\objs\debug/freetype.pch" + AssemblerListingLocation=".\..\..\..\objs\debug/" + ObjectFile=".\..\..\..\objs\debug/" + ProgramDataBaseFileName=".\..\..\..\objs\debug/" + WarningLevel="4" + DebugInformationFormat="1" + CompileAs="0"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLibrarianTool" + OutputFile="..\..\..\objs\freetype2312_D.lib" + SuppressStartupBanner="TRUE"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + <Configuration + Name="Debug Singlethreaded|Win32" + OutputDirectory=".\..\..\..\objs\debug_st" + IntermediateDirectory=".\..\..\..\objs\debug_st" + ConfigurationType="4" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="FALSE" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + ImproveFloatingPointConsistency="TRUE" + AdditionalIncludeDirectories="..\..\..\include" + PreprocessorDefinitions="_DEBUG;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;WIN32;_LIB;FT2_BUILD_LIBRARY" + BasicRuntimeChecks="3" + RuntimeLibrary="5" + DisableLanguageExtensions="TRUE" + PrecompiledHeaderFile=".\..\..\..\objs\debug_st/freetype.pch" + AssemblerListingLocation=".\..\..\..\objs\debug_st/" + ObjectFile=".\..\..\..\objs\debug_st/" + ProgramDataBaseFileName=".\..\..\..\objs\debug_st/" + WarningLevel="4" + DebugInformationFormat="1" + CompileAs="0"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLibrarianTool" + OutputFile="..\..\..\objs\freetype2312ST_D.lib" + SuppressStartupBanner="TRUE"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + <Configuration + Name="Debug Multithreaded|Win32" + OutputDirectory=".\..\..\..\objs\debug_mt" + IntermediateDirectory=".\..\..\..\objs\debug_mt" + ConfigurationType="4" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="FALSE" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + ImproveFloatingPointConsistency="TRUE" + AdditionalIncludeDirectories="..\..\..\include" + PreprocessorDefinitions="_DEBUG;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;WIN32;_LIB;FT2_BUILD_LIBRARY" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + DisableLanguageExtensions="TRUE" + PrecompiledHeaderFile=".\..\..\..\objs\debug_mt/freetype.pch" + AssemblerListingLocation=".\..\..\..\objs\debug_mt/" + ObjectFile=".\..\..\..\objs\debug_mt/" + ProgramDataBaseFileName=".\..\..\..\objs\debug_mt/" + WarningLevel="4" + DebugInformationFormat="1" + CompileAs="0"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLibrarianTool" + OutputFile="..\..\..\objs\freetype2312MT_D.lib" + SuppressStartupBanner="TRUE"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"> + <File + RelativePath="..\..\..\src\autofit\autofit.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\bdf\bdf.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\cff\cff.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\ftbase.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\ftbbox.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\ftbdf.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\ftbitmap.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\cache\ftcache.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\ftdebug.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + DisableLanguageExtensions="FALSE"/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + DisableLanguageExtensions="FALSE"/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + DisableLanguageExtensions="FALSE"/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3" + DisableLanguageExtensions="FALSE"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3" + DisableLanguageExtensions="FALSE"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3" + DisableLanguageExtensions="FALSE"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\ftfstype.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\ftgasp.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\ftglyph.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\ftgxval.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\gzip\ftgzip.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\ftinit.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\lzw\ftlzw.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\ftmm.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\ftotval.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\ftpfr.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\ftstroke.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\ftsynth.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\ftsystem.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\fttype1.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\ftwinfnt.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\base\ftxf86.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\pcf\pcf.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\pfr\pfr.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\psaux\psaux.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\pshinter\pshinter.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\psnames\psmodule.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\raster\raster.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\sfnt\sfnt.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\smooth\smooth.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\truetype\truetype.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\type1\type1.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\cid\type1cid.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\type42\type42.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + <File + RelativePath="..\..\..\src\winfonts\winfnt.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Release Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + AdditionalIncludeDirectories="" + PreprocessorDefinitions=""/> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Singlethreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + <FileConfiguration + Name="Debug Multithreaded|Win32"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + BasicRuntimeChecks="3"/> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl"> + <File + RelativePath="..\..\..\include\ft2build.h"> + </File> + <File + RelativePath="..\..\..\include\freetype\config\ftconfig.h"> + </File> + <File + RelativePath="..\..\..\include\freetype\config\ftheader.h"> + </File> + <File + RelativePath="..\..\..\include\freetype\config\ftmodule.h"> + </File> + <File + RelativePath="..\..\..\include\freetype\config\ftoption.h"> + </File> + <File + RelativePath="..\..\..\include\freetype\config\ftstdlib.h"> + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/components/external/freetype/configure b/components/external/freetype/configure index 0e94c78537..2efa269679 100644 --- a/components/external/freetype/configure +++ b/components/external/freetype/configure @@ -1,120 +1,120 @@ -#!/bin/sh
-#
-# Copyright 2002, 2003, 2004, 2005, 2006, 2008, 2009 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.
-#
-#
-# Call the `configure' script located in `builds/unix'.
-#
-
-rm -f config.mk builds/unix/unix-def.mk builds/unix/unix-cc.mk
-
-if test "x$GNUMAKE" = x; then
- GNUMAKE=make
-fi
-
-if test -z "`$GNUMAKE -v 2>/dev/null | grep GNU`"; then
- if test -z "`$GNUMAKE -v 2>/dev/null | grep makepp`"; then
- echo "GNU make (>= 3.80) or makepp (>= 1.19) is required to build FreeType2." >&2
- echo "Please try" >&2
- echo " \`GNUMAKE=<GNU make command name> $0'." >&2
- echo "or >&2"
- echo " \`GNUMAKE=\"makepp --norc-substitution\" $0'." >&2
- exit 1
- fi
-fi
-
-# Get `dirname' functionality. This is taken and adapted from autoconf's
-# m4sh.m4 (_AS_EXPR_PREPARE, AS_DIRNAME_EXPR, and AS_DIRNAME_SED).
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- ft_expr=expr
-else
- ft_expr=false
-fi
-
-ft2_dir=`(dirname "$0") 2>/dev/null ||
- $ft_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$0" : 'X\(//\)[^/]' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
- echo X"$0" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-abs_curr_dir=`pwd`
-abs_ft2_dir=`cd "$ft2_dir" && pwd`
-
-# `--srcdir=' option can override abs_ft2_dir
-
-if test $# -gt 0; then
- for x in "$@"; do
- case x"$x" in
- x--srcdir=*)
- abs_ft2_dir=`echo $x | sed 's/^--srcdir=//'` ;;
- esac
- done
-fi
-
-# build a dummy Makefile if we are not building in the source tree
-
-if test "$abs_curr_dir" != "$abs_ft2_dir"; then
- mkdir reference
- if test ! -r $abs_curr_dir/modules.cfg; then
- echo "Copying \`modules.cfg'"
- cp $abs_ft2_dir/modules.cfg $abs_curr_dir
- fi
- echo "Generating \`Makefile'"
- echo "TOP_DIR := $abs_ft2_dir" > Makefile
- echo "OBJ_DIR := $abs_curr_dir" >> Makefile
- echo "OBJ_BUILD := \$(OBJ_DIR)" >> Makefile
- echo "DOC_DIR := \$(OBJ_DIR)/reference" >> Makefile
- echo "LIBTOOL := \$(OBJ_DIR)/libtool" >> Makefile
- echo "ifndef FT2DEMOS" >> Makefile
- echo " include \$(TOP_DIR)/Makefile" >> Makefile
- echo "else" >> Makefile
- echo " TOP_DIR_2 := \$(TOP_DIR)/../ft2demos" >> Makefile
- echo " PROJECT := freetype" >> Makefile
- echo " CONFIG_MK := \$(OBJ_DIR)/config.mk" >> Makefile
- echo " include \$(TOP_DIR_2)/Makefile" >> Makefile
- echo "endif" >> Makefile
-fi
-
-# call make
-
-CFG=
-# work around zsh bug which doesn't like `${1+"$@"}'
-case $# in
-0) ;;
-*) for x in "$@"; do
- case x"$x" in
- x--srcdir=* ) CFG="$CFG '$x'/builds/unix" ;;
- *) CFG="$CFG '$x'" ;;
- esac
- done ;;
-esac
-CFG=$CFG $GNUMAKE setup unix
-
-# eof
+#!/bin/sh +# +# Copyright 2002, 2003, 2004, 2005, 2006, 2008, 2009 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. +# +# +# Call the `configure' script located in `builds/unix'. +# + +rm -f config.mk builds/unix/unix-def.mk builds/unix/unix-cc.mk + +if test "x$GNUMAKE" = x; then + GNUMAKE=make +fi + +if test -z "`$GNUMAKE -v 2>/dev/null | grep GNU`"; then + if test -z "`$GNUMAKE -v 2>/dev/null | grep makepp`"; then + echo "GNU make (>= 3.80) or makepp (>= 1.19) is required to build FreeType2." >&2 + echo "Please try" >&2 + echo " \`GNUMAKE=<GNU make command name> $0'." >&2 + echo "or >&2" + echo " \`GNUMAKE=\"makepp --norc-substitution\" $0'." >&2 + exit 1 + fi +fi + +# Get `dirname' functionality. This is taken and adapted from autoconf's +# m4sh.m4 (_AS_EXPR_PREPARE, AS_DIRNAME_EXPR, and AS_DIRNAME_SED). + +if expr a : '\(a\)' >/dev/null 2>&1; then + ft_expr=expr +else + ft_expr=false +fi + +ft2_dir=`(dirname "$0") 2>/dev/null || + $ft_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || + echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +abs_curr_dir=`pwd` +abs_ft2_dir=`cd "$ft2_dir" && pwd` + +# `--srcdir=' option can override abs_ft2_dir + +if test $# -gt 0; then + for x in "$@"; do + case x"$x" in + x--srcdir=*) + abs_ft2_dir=`echo $x | sed 's/^--srcdir=//'` ;; + esac + done +fi + +# build a dummy Makefile if we are not building in the source tree + +if test "$abs_curr_dir" != "$abs_ft2_dir"; then + mkdir reference + if test ! -r $abs_curr_dir/modules.cfg; then + echo "Copying \`modules.cfg'" + cp $abs_ft2_dir/modules.cfg $abs_curr_dir + fi + echo "Generating \`Makefile'" + echo "TOP_DIR := $abs_ft2_dir" > Makefile + echo "OBJ_DIR := $abs_curr_dir" >> Makefile + echo "OBJ_BUILD := \$(OBJ_DIR)" >> Makefile + echo "DOC_DIR := \$(OBJ_DIR)/reference" >> Makefile + echo "LIBTOOL := \$(OBJ_DIR)/libtool" >> Makefile + echo "ifndef FT2DEMOS" >> Makefile + echo " include \$(TOP_DIR)/Makefile" >> Makefile + echo "else" >> Makefile + echo " TOP_DIR_2 := \$(TOP_DIR)/../ft2demos" >> Makefile + echo " PROJECT := freetype" >> Makefile + echo " CONFIG_MK := \$(OBJ_DIR)/config.mk" >> Makefile + echo " include \$(TOP_DIR_2)/Makefile" >> Makefile + echo "endif" >> Makefile +fi + +# call make + +CFG= +# work around zsh bug which doesn't like `${1+"$@"}' +case $# in +0) ;; +*) for x in "$@"; do + case x"$x" in + x--srcdir=* ) CFG="$CFG '$x'/builds/unix" ;; + *) CFG="$CFG '$x'" ;; + esac + done ;; +esac +CFG=$CFG $GNUMAKE setup unix + +# eof diff --git a/components/external/freetype/docs/CHANGES b/components/external/freetype/docs/CHANGES index 52312141b9..018d16c577 100644 --- a/components/external/freetype/docs/CHANGES +++ b/components/external/freetype/docs/CHANGES @@ -1,3396 +1,3396 @@ -CHANGES BETWEEN 2.3.11 and 2.3.12
-
- I. IMPORTANT CHANGES
-
- - For `FT_Open_Face', new parameters are available to ignore
- preferred family names: FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY and
- FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY.
-
- II. MISCELLANEOUS
-
- - Support for incremental font loading (controlled with the
- FT_CONFIG_OPTION_INCREMENTAL macro) is now active by default.
-
- - Better support for vertical metrics.
-
- - Various minor bug fixes.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.3.10 and 2.3.11
-
- I. IMPORTANT BUG FIXES
-
- - Version 2.3.10 broke PCF support.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.3.10 and 2.3.9
-
- I. IMPORTANT BUG FIXES
-
- - If all ASCII digits in a font have the same (unscaled) width,
- the autohinter respects this and won't change it.
-
- - TrueType fonts are now rasterized correctly if the horizontal
- and vertical resolution differ.
-
- - Type 1 fonts are now handled with increased precision internally
- to avoid serious rounding issues if non-integral coordinates are
- encountered.
-
- - Horizontally condensed CFF fonts (using the font matrix) were
- rendered incorrectly. This bug has been introduced after
- release 2.3.5.
-
-
- II. IMPORTANT CHANGES
-
- - Support for the SFNT cmap 13 table format (as defined by the new
- OpenType 1.6 specification) has been added.
-
- - B/W rasterization of well-hinted TrueType fonts at small sizes
- has been greatly improved.
-
- - Calculation of vertical metrics in OpenType fonts has been
- improved.
-
-
- III. MISCELLANEOUS
-
- - It is now possible to change the emboldening factor in the
- `ftview' demo program with keys `e' and `E'.
-
- - It is now possible to change the slant value in the `ftview'
- demo program with keys `s' and `S'.
-
- - The 5-levels grayscale mode of the `ftraster' module (which
- FreeType doesn't use by default) was broken since version 2.3.0.
-
- - Compilation of the `ftgrays' and `ftraster' modules was broken
- in stand-alone mode.
-
- - Various fixes for compilation on 64bit and 16bit architectures.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.3.9 and 2.3.8
-
- I. IMPORTANT BUG FIXES
-
- - Very unfortunately, FreeType 2.3.8 contained a change that broke
- its official ABI. The end result is that programs compiled
- against previous versions of the library, but dynamically linked
- to 2.3.8 can experience memory corruption if they call the
- `FT_Get_PS_Font_Info' function.
-
- We recommend all users to upgrade to 2.3.9 as soon as possible,
- or to downgrade to a previous release of the library if this is
- not an option.
-
- The origin of the bug is that a new field was added to the
- publicly defined `PS_FontInfoRec' structure. Unfortunately,
- objects of this type can be stack or heap allocated by callers
- of `FT_Get_PS_Font_Info', resulting in a memory buffer
- overwrite with its implementation in 2.3.8.
-
- If you want to know whether your code is vulnerable to this
- issue, simply search for the substrings `PS_FontInfo' and
- `PS_Font_Info' in your source code. If none is found, your code
- is safe and is not affected.
-
- The FreeType team apologizes for the problem.
-
- - The POSIX support of MacOS resource-fork fonts (Suitcase fonts
- and LaserWriter Type1 PostScript fonts) was broken in 2.3.8. If
- FreeType2 is built without Carbon framework, these fonts are not
- handled correctly. Version 2.3.7 didn't have this bug.
-
- - `FT_Get_Advance' (and `FT_Get_Advances') returned bad values for
- almost all font formats except TrueType fonts.
-
- - Fix a bug in the SFNT kerning table loader/parser which could
- crash the engine if certain malformed tables were encountered.
-
- - Composite SFNT bitmaps are now handled correctly.
-
-
- II. IMPORTANT CHANGES
-
- - The new functions `FT_Get_CID_Is_Internally_CID_keyed' and
- `FT_Get_CID_From_Glyph_Index' can be used to access CID-keyed
- CFF fonts via CID values. This code has been contributed by
- Michael Toftdal.
-
-
- III. MISCELLANEOUS
-
- - `FT_Outline_Get_InsideBorder' returns FT_STROKER_BORDER_RIGHT
- for empty outlines. This was incorrectly documented.
-
- - The `ftview' demo program now supports UTF-8 encoded strings.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.3.8 and 2.3.7
-
- I. IMPORTANT BUG FIXES
-
- - CID-keyed fonts in an SFNT wrapper were not handled correctly.
-
- - The smooth renderer produced truncated images (on the right) for
- outline parts with negative horizontal values. Most fonts don't
- contain outlines left to the y coordinate axis, but the effect
- was very noticeable for outlines processed with FT_Glyph_Stroke,
- using thick strokes.
-
- - `FT_Get_TrueType_Engine_Type' returned a wrong value if both
- configuration macros TT_CONFIG_OPTION_BYTECODE_INTERPRETER and
- TT_CONFIG_OPTION_UNPATENTED_HINTING were defined.
-
- - The `face_index' field in the `FT_Face' structure wasn't
- initialized properly after calling FT_Open_Face and friends with
- a positive face index for CFFs, WinFNTs, and, most importantly,
- for TrueType Collections (TTCs).
-
-
- II. IMPORTANT CHANGES
-
- - Rudimentary support for Type 1 fonts and CID-keyed Type 1 fonts
- in an SFNT wrapper has been added -- such fonts are used on the
- Mac. The core SFNT tables `TYP1' and `CID ' are passed to the
- PS Type 1 and CID-keyed PS font drivers; other tables (`ALMX',
- `BBOX', etc.) are not supported yet.
-
- - A new interface to extract advance values of glyphs without
- loading their outlines has been added. The functions are called
- `FT_Get_Advance' and `FT_Get_Advances'; they are defined in file
- `ftadvanc.h' (to be accessed as FT_ADVANCES_H).
-
- - A new function `FT_Get_FSType_Flags' (in FT_FREETYPE_H) has been
- contributed by David Bevan to access the embedding and
- subsetting restriction information of fonts.
-
-
- III. MISCELLANEOUS
-
- - FT_MulFix is now an inlined function; by default, assembler code
- is provided for x86 and ARM. See FT_CONFIG_OPTION_INLINE_MULFIX
- and FT_CONFIG_OPTION_NO_ASSEMBLER (in ftoption.h) for more.
-
- - The handling of `tricky' fonts (this is, fonts which don't work
- with the autohinter, needing the font format's hinting engine)
- has been generalized and changed slightly:
-
- . A new face flag FT_FACE_FLAG_TRICKY indicates that the font
- format's hinting engine is necessary for correct rendering.
- The macro FT_IS_TRICKY can be used to check this flag.
-
- . FT_LOAD_NO_HINTING is now ignored for tricky fonts. To really
- force raw loading of such fonts (without hinting), both
- FT_LOAD_NO_HINTING and FT_LOAD_NO_AUTOHINT must be used --
- this is something which you probably never want to do.
-
- . Tricky TrueType fonts always use the bytecode interpreter,
- either the patented or unpatented version.
-
- - The function `FT_GlyphSlot_Own_Bitmap' has been moved from
- FT_SYNTHESIS_H to FT_BITMAP_H; it is now part of the `official'
- API. (The functions in FT_SYNTHESIS_H are still subject to
- change, however.)
-
- - In the `ftdiff' demo program you can now toggle the use of
- FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH with key `a'.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.3.7 and 2.3.6
-
- I. IMPORTANT BUG FIXES
-
- - If the library was compiled on an i386 platform using gcc, and
- compiler option -O3 was given, `FT_MulFix' sometimes returned
- incorrect results which could have caused problems with
- `FT_Request_Metrics' and `FT_Select_Metrics', returning an
- incorrect descender size.
-
- - Pure CFFs without subfonts were scaled incorrectly if the font
- matrix was non-standard. This bug has been introduced in
- version 2.3.6.
-
- - The `style_name' field in the `FT_FaceRec' structure often
- contained a wrong value for Type 1 fonts. This misbehaviour
- has been introduced in version 2.3.6 while trying to fix
- another problem. [Note, however, that this value is
- informative only since the used algorithm to extract it is
- very simplistic.]
-
-
- II. IMPORTANT CHANGES
-
- - Two new macros, FT_OUTLINE_SMART_DROPOUTS and
- FT_OUTLINE_EXCLUDE_STUBS, have been introduced. Together with
- FT_OUTLINE_IGNORE_DROPOUTS (which was ignored previously) it is
- now possible to control the dropout mode of the `raster' module
- (for B&W rasterization), using the `flags' field in the
- `FT_Outline' structure.
-
- - The TrueType bytecode interpreter now passes the dropout mode to
- the B&W rasterizer. This greatly increases the output for small
- ppem values of many fonts like `pala.ttf'.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.3.6 and 2.3.5
-
- I. IMPORTANT BUG FIXES
-
- - A bunch of potential security problems have been found. All
- users should update.
-
- - Microsoft Unicode cmaps in TrueType fonts are now always
- preferred over Apple cmaps. This is not a bug per se, but there
- exist some buggy fonts created for MS which have broken Apple
- cmaps. This affects only the automatic selection of FreeType;
- it's always possible to manually select an Apple Unicode cmap if
- desired.
-
- - Many bug fixes to the TrueType bytecode interpreter.
-
- - Improved Mac support.
-
- - Subsetted CID-keyed CFFs are now supported correctly.
-
- - CID-keyed CFFs with subfonts which are scaled in a non-standard
- way are now handled correctly.
-
- - A call to FT_Open_Face with `face_index' < 0 crashed FreeType if
- the font was a Windows (bitmap) FNT/FON.
-
-
- II. IMPORTANT CHANGES
-
- - The new function `FT_Get_CID_Registry_Ordering_Supplement' gives
- access to those fields in a CID-keyed font. The code has been
- contributed by Derek Clegg.
-
- - George Williams contributed code to validate the new `MATH'
- OpenType table (within the `otvalid' module). The `ftvalid'
- demo program has been extended accordingly.
-
- - An API for cmap 14 support (for Unicode Variant Selectors, UVS)
- has been contributed by George Williams.
-
- - A new face flag FT_FACE_FLAG_CID_KEYED has been added, together
- with a macro FT_IS_CID_KEYED which evaluates to 1 if the font is
- CID-keyed.
-
-
- III. MISCELLANEOUS
-
- - Build support for symbian has been contributed.
-
- - Better WGL4 glyph name support, contributed by Sergey Tolstov.
-
- - Debugging output of the various FT_TRACEX macros is now sent to
- stderr.
-
- - The `ftview' demo program now provides artificial slanting too.
-
- - The `ftvalid' demo program has a new option `-f' to select the
- font index.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.3.5 and 2.3.4
-
- I. IMPORTANT BUG FIXES
-
- - Some subglyphs in TrueType fonts were handled incorrectly due to
- a missing graphics state reinitialization.
-
- - Large .Z files (as distributed with some X11 packages) weren't
- handled correctly, making FreeType increase the heap stack in an
- endless loop.
-
- - A large number of bugs have been fixed to avoid crashes and
- endless loops with invalid fonts.
-
-
- II. IMPORTANT CHANGES
-
- - The two new cache functions `FTC_ImageCache_LookupScaler' and
- `FTC_SBit_Cache_LookupScaler' have been added to allow lookup of
- glyphs using an `FTC_Scaler' object; this makes it possible to
- use fractional pixel sizes in the cache. The demo programs have
- been updated accordingly to use this feature.
-
- - A new API `FT_Get_CMap_Format' has been added to get the cmap
- format of a TrueType font. This is useful in handling PDF
- files. The code has been contributed by Derek Clegg.
-
- - The auto-hinter now produces better output by default for
- non-Latin scripts like Indic. This was done by using the CJK
- hinting module as the default instead of the Latin one. Thanks
- to Rahul Bhalerao for this suggestion.
-
- - A new API `FT_Face_CheckTrueTypePatents' has been added to find
- out whether a given TrueType font uses patented bytecode
- instructions. The `ft2demos' bundle contains a new program
- called `ftpatchk' which demonstrates its usage.
-
- - A new API `FT_Face_SetUnpatentedHinting' has been added to
- enable or disable the unpatented hinter.
-
- - Support for Windows FON files in PE format has been contributed
- by Dmitry Timoshkov.
-
-
- III. MISCELLANEOUS
-
- - Vincent Richomme contributed Visual C++ project files for Pocket
- PCs.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.3.4 and 2.3.3
-
- I. IMPORTANT BUG FIXES
-
- - A serious bug in the handling of bitmap fonts (and bitmap
- strikes of outline fonts) has been introduced in 2.3.3.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.3.3 and 2.3.2
-
- I. IMPORTANT BUG FIXES
-
- - Remove a serious regression in the TrueType bytecode interpreter
- that was introduced in version 2.3.2. Note that this does not
- disable the improvements introduced to the interpreter in
- version 2.3.2, only some ill cases that occurred with certain
- fonts (though a few popular ones).
-
- - The auto-hinter now ignores single-point contours for computing
- blue zones. This bug created `wavy' baselines when rendering
- text with various fonts that use these contours to model
- mark-attach points (these are points that are never rasterized
- and are placed outside of the glyph's real outline).
-
- - The `rsb_delta' and `lsb_delta' glyph slot fields are now set to
- zero for mono-spaced fonts. Otherwise code that uses them would
- essentially ruin the fixed-advance property.
-
- - Fix CVE-2007-1351 which can cause an integer overflow while
- parsing BDF fonts, leading to a potentially exploitable heap
- overflow condition.
-
-
- II. MISCELLANEOUS
-
- - Fixed compilation issues on some 64-bit platforms (see ChangeLog
- for details).
-
- - A new demo program `ftdiff' has been added to compare TrueType
- hinting, FreeType's auto hinting, and rendering without hinting
- in three columns.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.3.2 and 2.3.1
-
- I. IMPORTANT BUG FIXES
-
- - FreeType returned incorrect kerning information from TrueType
- fonts when the bytecode interpreter was enabled. This happened
- due to a typo introduced in version 2.3.0.
-
- - Negative kerning values from PFM files are now reported
- correctly (they were read as 16-bit unsigned values from the
- file).
-
- - Fixed a small memory leak when `FT_Init_FreeType' failed for
- some reason.
-
- - The Postscript hinter placed and sized very thin and ghost stems
- incorrectly.
-
- - The TrueType bytecode interpreter has been fixed to get rid of
- most of the rare differences seen in comparison to the Windows
- font loader.
-
-
- II. IMPORTANT CHANGES
-
- - The auto-hinter now better deals with serifs and corner cases
- (e.g., glyph '9' in Arial at 9pt, 96dpi). It also improves
- spacing adjustments and doesn't change widths for non-spacing
- glyphs.
-
- - Many Mac-specific functions are deprecated (but still
- available); modern replacements have been provided for them.
- See the documentation in file `ftmac.h'.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.3.1 and 2.3.0
-
- I. IMPORTANT BUG FIXES
-
- - The TrueType interpreter sometimes returned incorrect horizontal
- metrics due to a bug in the handling of the SHZ instruction.
-
- - A typo in a security check introduced after version 2.2.1
- prevented FreeType to render some glyphs in CFF fonts.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.3.0 and 2.2.1
-
- I. IMPORTANT BUG FIXES
-
- - The PCF font loader is now much more robust while loading
- malformed font files.
-
- - Various memory leaks have been found and fixed.
-
- - The TrueType name loader now deals properly with some fonts that
- encode their names in UTF-16 (the specification was vague, and
- the code incorrectly assumed UCS-4).
-
- - Fixed the TrueType bytecode loader to deal properly with subtle
- monochrome/gray issues when scaling the CVT. Some fonts
- exhibited bad rendering artifacts otherwise.
-
- - `FT_GlyphSlot_Embolden' now supports vertical layouts correctly
- (it mangled the vertical advance height).
-
- - Fixed byte endian issues of `ftmac.c' to support Mac OS X on
- i386.
-
- - The PFR font loader no longer erroneously tags font files
- without any outlines as FT_FACE_FLAG_SCALABLE.
-
-
- II. NEW API FUNCTIONS
-
- - `FT_Library_SetLcdFilter' allows you to select a special filter
- to be applied to the bitmaps generated by `FT_Render_Glyph' if
- one of the FT_RENDER_MODE_LCD and FT_RENDER_MODE_LCD_V modes has
- been selected. This filter is used to reduce color fringes;
- several settings are available through the FT_LCD_FILTER_XXX
- enumeration.
-
- Its declaration and documentation can be found in file
- `include/freetype/ftlcdfil.h' (to be accessed with macro
- FT_LCD_FILTER_H).
-
- *IMPORTANT*: This function returns an error
- (FT_Err_Unimplemented_Feature) in default builds of the library
- for patent reasons. See below.
-
- - `FT_Get_Gasp' allows you to query the flags of the TrueType
- `gasp' table for a given character pixel size. This is useful
- to duplicate the text rendering of MS Windows when the native
- bytecode interpreter is enabled (which isn't the default for
- other patent reasons).
-
- Its declaration and documentation can be found in file
- `include/freetype/ftgasp.h' (to be accessed with macro
- FT_GASP_H).
-
-
- III. IMPORTANT CHANGES
-
- - The auto-hinter has been tuned a lot to improve its results with
- serif fonts, resulting in much better font rendering of many web
- pages.
-
- - The unpatented hinter is now part of the default build of the
- library; we have added code to automatically support `tricky'
- fonts that need it.
-
- This means that FreeType should `just work' with certain Asian
- fonts, like MingLiU, which cannot properly be loaded without a
- bytecode interpreter, but which fortunately do not use any of
- the patented bytecode opcodes. We detect these fonts by name,
- so please report any font file that doesn't seem to work with
- FreeType, and we shall do what we can to support it in a next
- release.
-
- Note that the API hasn't changed, so you can still force
- unpatented hinting with a special parameter to `FT_Open_Face' as
- well. This might be useful in same cases; for example, a PDF
- reader might present a user option to activate it to deal with
- certain `tricky' embedded fonts which cannot be clearly
- identified.
-
- If you are a developer for embedded systems, you might want to
- *disable* the feature to save code space by undefining
- TT_CONFIG_OPTION_UNPATENTED_HINTING in file `ftoption.h'.
-
- - LCD-optimized rendering is now *disabled* in all default builds
- of the library, mainly due to patent issues. For more
- information see:
-
- http://lists.gnu.org/archive/html/freetype/2006-09/msg00064.html
-
- A new configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING
- has been introduced in `ftoption.h'; manually define it in this
- file if you want to re-enable the feature.
-
- The change only affects the implementation, not the FreeType
- API. This means that clients don't need to be modified, because
- the library still generates LCD decimated bitmaps, but with the
- added constraint that R=G=B on each triplet.
-
- The displayed result should be equal to normal anti-aliased
- rendering.
-
- Additionally, if FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not
- defined, the new `FT_Library_SetLcdFilter' function returns the
- FT_Err_Unimplemented_Feature error code.
-
- - Some computation bugs in the TrueType bytecode interpreter were
- found, which allow us to get rid of very subtle and rare
- differences we had experienced with the Windows renderer.
-
- - It is now possible to cross-compile the library easily. See the
- file `docs/INSTALL.CROSS' for details.
-
- - The file `src/base/ftmac.c' now contains code for Mac OS X only;
- its deprecated function `FT_GetFile_From_Mac_Font_Name' always
- returns an error even if the QuickDraw framework is available.
- The previous version has been moved to `builds/mac/ftmac.c'.
-
- Selecting configure option `--with-quickdraw-carbon' makes the
- build process use the original `ftmac.c' file instead of the Mac
- OS X-only version.
-
-
- IV. MISCELLANEOUS
-
- - Various performance and memory footprint optimizations have been
- performed on the TrueType and CFF font loaders, sometimes with
- very drastic benefits (e.g., the TrueType loader is now about
- 25% faster; FreeType should use less heap memory under nearly
- all conditions).
-
- - The anti-aliased rasterizer has been optimized and is now 15% to
- 25% percent faster than in previous versions, depending on
- content.
-
- - The Type 1 loader has been improved; as an example, it now skips
- top-level dictionaries properly.
-
- - Better support for Mac fonts on POSIX systems, plus compilation
- fixes for Mac OS X on ppc64 where `ftmac.c' cannot be built.
-
- - Configuration without `--with-old-mac-fonts' does not include
- `ftmac.c' (this was the behaviour in FreeType version 2.1.10).
-
- - The TrueTypeGX validator (gxvalid) checks the order of glyph IDs
- in the kern table.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.2.1 and 2.2
-
- I. IMPORTANT BUG FIXES
-
- - Various integer overflows have been fixed.
-
- - PFB fonts with MacOS resource fork weren't handled correctly on
- non-MacOS platforms.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.2 and 2.1.10
-
-(not released officially)
-
- I. IMPORTANT BUG FIXES
-
- - Vertical metrics for SFNT fonts were incorrect sometimes.
-
- - The FT_HAS_KERNING macro always returned 0.
-
- - CFF OpenType fonts didn't return correct vertical metrics for
- glyphs with outlines.
-
- - If FreeType was compiled without hinters, all font formats based
- on PS outlines weren't scaled correctly.
-
-
- II. IMPORTANT CHANGES
-
- - Version 2.2 no longer exposes its internals, this is, the header
- files located in the `include/freetype/internal' directory of
- the source package are not copied anymore by the `make install'
- command. Consequently, a number of rogue clients which directly
- access FreeType's internal functions and structures won't
- compile without modification.
-
- We provide patches for most of those rogue clients. See the
- following page for more information:
-
- http://www.freetype.org/freetype2/patches/rogue-patches.html
-
- Note that, as a convenience to our Unix desktop users, version
- 2.2 is *binary* compatible with FreeType 2.1.7, which means that
- installing this release on an existing distribution shall not
- break any working desktop.
-
- - FreeType's build mechanism has been redesigned. With GNU make
- it is now sufficient in most cases to edit two files:
- `modules.cfg', to select the library components, and the
- configuration file `include/freetype/config/ftoption.h' (which
- can be copied to the objects directory). Removing unused module
- directories to prevent its compilation and editing
- `include/freetype/config/ftmodule.h' is no longer necessary.
-
- - The LIGHT hinting algorithm produces more pleasant results.
- Also, using the FT_LOAD_TARGET_LIGHT flags within FT_Load_Glyph
- always forces auto-hinting, as a special exception. This allows
- you to experiment with it even if you have enabled the TrueType
- bytecode interpreter in your build.
-
- - The auto hinter now employs a new algorithm for CJK fonts, based
- on Akito Hirai's patch. Note that this only works for fonts
- with a Unicode charmap at the moment.
-
- - The following callback function types have changed slightly (by
- adding the `const' keyword where appropriate):
-
- FT_Outline_MoveToFunc
- FT_Outline_LineToFunc
- FT_Outline_ConicToFunc
- FT_Outline_CubicToFunc
- FT_SpanFunc
- FT_Raster_RenderFunc
-
- FT_Glyph_TransformFunc
- FT_Renderer_RenderFunc
- FT_Renderer_TransformFunc
-
- Note that this doesn't affect binary backward compatibility.
-
- - On MacOS, new APIs have been added as replacements for legacy
- APIs: `FT_New_Face_From_FSRef' for `FT_New_Face_From_FSSpec',
- and `FT_GetFile_From_Mac_ATS_Name' for
- `FT_GetFile_From_Mac_Name'. Legacy APIs are still available, if
- FreeType is built without disabling them.
-
- - A new API `FT_Select_Size' has been added to select a bitmap
- strike by its index. Code using other functions to select
- bitmap strikes should be updated to use this function.
-
- - A new API `FT_Get_SubGlyph_Info' has been added to retrieve
- subglyph data. This can be used by rogue clients which used to
- access the internal headers to get the corresponding data.
-
- - In 2.1.10, the behaviour of `FT_Set_Pixel_Sizes' was changed for
- BDF/PCF fonts, and only for them. This causes inconsistency.
- In this release, we undo the change. The intent of the change
- in 2.1.10 is to allow size selection through real dimensions,
- which can now be done through `FT_Request_Size'.
-
- - Some security issues were discovered and fixed in the CFF and
- Type 1 loader, causing crashes of FreeType by malformed font
- files.
-
-
- III. MISCELLANEOUS
-
- - The documentation for FT_LOAD_TARGET_XXX and FT_RENDER_MODE_XXX
- values now better reflects its usage and differences: One set is
- used to specify the hinting algorithm, the other to specify the
- pixel rendering mode.
-
- - `FT_New_Face' and `FT_New_Face_From_FSSpec' in ftmac.c have been
- changed to count supported scalable faces (sfnt, LWFN) only, and
- to return the number of available faces via face->num_faces.
- Unsupported bitmap faces (fbit, NFNT) are ignored.
-
- - builds/unix/configure has been improved for MacOS X. It now
- automatically checks available functions in Carbon library, and
- prepare to use newest functions by default. Options to specify
- the dependencies of each Carbon APIs (FSSpec, FSRef, old/new
- QuickDraw, ATS) are available too. By manual disabling of all
- QuickDraw functionality, FreeType can be built without
- `deprecated function' warnings on MacOS 10.4.x, but
- FT_GetFile_Mac_Name in ftmac.c then is changed to a dummy
- function, and returns an `unimplemented' error. For details see
- builds/mac/README.
-
- - SFNT cmap handling has been improved, mainly to run much faster
- with CJK fonts.
-
- - A new function `FT_Get_TrueType_Engine_Type (declared in
- `FT_MODULE_H') is provided to determine the status of the
- TrueType bytecode interpreter compiled into the library
- (patented, unpatented, unimplemented).
-
- - Vertical metrics of glyphs are synthesized if the font does not
- provide such information. You can tell whether the metrics are
- synthesized or not by checking the FT_FACE_FLAG_VERTICAL flag of
- the face.
-
- - The demo programs `ftview' and `ftstring' have been rewritten
- for better readability. `ftview' has a new switch `-p' to test
- FT_New_Memory_Face (instead of FT_New_Face).
-
- - FreeType now honours bit 1 in the `head' table of TrueType fonts
- (meaning `left sidebearing point at x=0'). This helps with some
- buggy fonts.
-
- - Rudimentary support for Adobe's new `SING Glyphlet' format. See
-
- http://www.adobe.com/products/indesign/sing_gaiji.html
-
- for more information.
-
- - The `ftdump' program from the `ft2demos' bundle now shows some
- information about charmaps. It also supports a new switch `-v'
- to increase verbosity.
-
- - Better AFM support. This includes track kerning support.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.1.10 and 2.1.9
-
- I. IMPORTANT BUG FIXES
-
- - The size comparison for BDF and PCF files could fail sometimes.
-
- - Some CFF files were still not loaded correctly. Patch from
- Derek Noonburg.
-
- - The stroker still had some serious bugs.
-
- - Boris Letocha fixed a bug in the TrueType interpreter: The
- NPUSHW instruction wasn't skipped correctly in IF clauses. Some
- fonts like `Helvetica 75 Bold' failed.
-
- - Another serious bug in handling TrueType hints caused many
- distortions. It has been introduced in version 2.1.8, and it is
- highly recommended to upgrade.
-
- - FreeType didn't properly parse empty Type 1 glyphs.
-
- - An unbound dynamic buffer growth was fixed in the PFR loader.
-
- - Several bugs have been fixed in the cache sub-system.
-
- - FreeType behaved incorrectly when resizing two distinct but very
- close character pixel sizes through `FT_Set_Char_Size' (Savannah
- bug #12263).
-
- - The auto-hinter didn't work properly for fonts without a Unicode
- charmap -- it even refused to load the glyphs.
-
-
- II. IMPORTANT CHANGES
-
- - Many fixes have been applied to drastically reduce the amount of
- heap memory used by FreeType, especially when using
- memory-mapped font files (which is the default on Unix systems
- which support them).
-
- - The auto-hinter has been replaced with a new module, called the
- `auto-fitter'. It consumes less memory than its predecessor,
- and it is prepared to support non-latin scripts better in next
- releases.
-
- - George Williams contributed code to read kerning data from PFM
- files.
-
- - FreeType now uses the TT_NAME_ID_PREFERRED_FAMILY and
- TT_NAME_ID_PREFERRED_SUBFAMILY strings (if available) for
- setting family and style in SFNT fonts (patch from Kornfeld
- Eliyahu Peter).
-
- - A new API `FT_Sfnt_Table_Info' (in FT_TRUETYPE_TABLES_H) has
- been added to retrieve name and size information of SFNT tables.
-
- - A new API `FT_OpenType_Validate' (in FT_OPENTYPE_VALIDATE_H) has
- been added to validate OpenType tables (BASE, GDEF, GPOS, GSUB,
- JSTF). After validation it is no longer necessary to check
- for errors in those tables while accessing them.
-
- Note that this module might be moved to another library in the
- future to avoid a tight dependency between FreeType and the
- OpenType specification.
-
- - A new API in FT_BITMAP_H (`FT_Bitmap_New', `FT_Bitmap_Convert',
- `FT_Bitmap_Copy', `FT_Bitmap_Embolden', `FT_Bitmap_Done') has
- been added. Its use is to convert an FT_Bitmap structure in
- 1bpp, 2bpp, 4bpp, or 8bpp format into another 8bpp FT_Bitmap,
- probably using a different pitch, and to further manipulate it.
-
- - A new API `FT_Outline_Embolden' (in FT_OUTLINE_H) gives finer
- control how outlines are embolded.
-
- - `FT_GlyphSlot_Embolden' (in FT_SYNTHESIS_H) now handles bitmaps
- also (code contributed by Chia I Wu). Note that this function
- is still experimental and may be replaced with a better API.
-
- - The method how BDF and PCF bitmap fonts are accessed has been
- refined. Formerly, FT_Set_Pixel_Sizes and FT_Set_Char_Size
- were synonyms in FreeType's BDF and PCF interface. This has
- changed now. FT_Set_Pixel_Sizes should be used to select the
- actual font dimensions (the `strike', which is the sum of the
- `FONT_ASCENT' and `FONT_DESCENT' properties), while
- FT_Set_Char_Size selects the `nominal' size (the `PIXELSIZE'
- property). In both functions, the width parameter is ignored.
-
-
- III. MISCELLANEOUS
-
- - The BDF driver no longer converts all returned bitmaps with a
- depth of 2bpp or 4bpp to a depth of 8bpp. The documentation has
- not mentioned this explicitly, but implementors might have
- relied on this after looking into the source files.
-
- - A new option `--ftversion' has been added to freetype-config to
- return the FreeType version.
-
- - The memory debugger has been updated to dump allocation
- statistics on all allocation sources in the library. This is
- useful to spot greedy allocations when loading and processing
- fonts.
-
- - We removed a huge array of constant pointers to constant strings
- in the `psnames' module. The problem was that compilations in
- PIC mode (i.e., when generating a Unix shared object/dll) put
- the array into the non-shared writable section of the library
- since absolute pointers are not relocatable by nature.
-
- This reduces the memory consumption by approximately 16KByte per
- process linked to FreeType. We now also store the array in a
- compressed form (as a trie) which saves about 20KByte of code as
- well.
-
- - Kirill Smelkov provided patches to make src/raster/ftraster.c
- compile stand-alone again.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.1.9 and 2.1.8
-
- I. IMPORTANT BUG FIXES
-
- - The function `FT_Get_CharMap_Index' was only declared, without
- any real code. For consistency, it has been renamed to
- `FT_Get_Charmap_Index'. (This function is needed to implement
- cmap caches.)
-
- - `FT_Outline_Get_BBox' sometimes returned incorrect values for
- conic outlines (e.g., for TrueType fonts).
-
- - Handling of `bhed' table has been fixed.
-
- - The TrueType driver with enabled byte code interpreter sometimes
- returned artifacts due to incorrect rounding. This bug has been
- introduced after version 2.1.4.
-
- - The BDF driver dropped the last glyph in the font.
-
- - The BDF driver now uses the DEFAULT_CHAR property (if available)
- to select a glyph shape for the undefined glyph.
-
- - The stroker failed for closed outlines and single points.
-
-
- II. IMPORTANT CHANGES
-
- - George Williams contributed code to handle Apple's font
- distortion technology found in GX fonts (`avar', `cvar', `fvar',
- and `gvar' tables; the Multiple Masters API has been slightly
- extended to cope with the new functionality).
-
- - The `FT_GlyphSlotRec' structure has been extended: The elements
- `lsb_delta' and `rsb_delta' give the difference between hinted
- and unhinted left and right side bearings if autohinting is
- active. Using those values can improve the inter-letter spacing
- considerably. See the documentation of `FT_GlyphSlotRec' and
- the `ftstring' demo program how to use it.
-
- - Loading TrueType and Type 1 fonts has been made much faster.
-
- - The stroker is no longer experimental (but the cache subsystem
- still is).
-
-
- III. MISCELLANEOUS
-
- - A new documentation file `formats.txt' describes various font
- formats supported (and not supported) by FreeType.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.1.8 and 2.1.7
-
- I. IMPORTANT BUG FIXES
-
- - The native TrueType hinter contained some bugs which prevented
- some fonts to be rendered correctly, most notably Legendum.otf.
-
- - The PostScript hinter now produces improved results.
-
- - The linear advance width and height values were incorrectly
- rounded, making them virtually unusable if not loaded with
- FT_LOAD_LINEAR_DESIGN.
-
- - Indexing CID-keyed CFF fonts is now working: The glyph index is
- correctly treated as a CID, similar to FreeType's CID driver
- module. Note that CID CMap support is still missing.
-
- - The FT_FACE_FLAGS_GLYPH_NAMES flag is now set correctly for all
- font formats.
-
- - Some subsetted Type 1 fonts weren't parsed correctly. This bug
- has been introduced in 2.1.7. In summary, the Type 1 parser has
- become more robust.
-
- - Non-decimal numbers weren't parsed correctly in PS fonts.
-
- - The WinFNT driver now correctly reports FT_ENCODING_NONE for all
- but one encoding. Use the new FT_WinFNT_ID_XXX values together
- with `FT_Get_WinFNT_Header' to get the WinFNT charset ID.
-
- - The descender metrics (face->size->metrics.descender) for WinFNT
- bitmap fonts had the wrong sign.
-
- - The (emulated) `seac' support for CFF fonts was broken.
-
- - The `flex' operator didn't work for CFF fonts.
-
- - PS glyphs which use the `hintmask' operator haven't been
- rendered correctly in some cases.
-
- - Metrics for BDF and PCF bitmap font formats have been fixed.
-
- - Autohinting is now disabled for glyphs which are vertically
- distorted or mirrored (using a transformation matrix). This
- fixes a bug which produced zero-height glyphs.
-
- - The `freetype-config' script now handles --prefix and
- --exec-prefix correctly; it also returns the proper --rpath (or
- -R) value if FreeType has been built as a shared library.
-
-
- II. IMPORTANT CHANGES
-
- - Both PCF and BDF drivers now handle the SETWIDTH_NAME and
- ADD_STYLE_NAME properties. Values are appended to
- face->style_name; example: `Bold SemiCondensed'.
-
- - The PCF driver now handles bitmap fonts compressed with the LZW
- algorithm (extension .pcf.Z, compressed with `compress').
-
- - A new API function `FT_Get_CMap_Language_ID' (declared in
- `tttables.h') is available to get the language ID of a
- TrueType/SFNT cmap.
-
- - The hexadecimal format of data after the `StartData' command in
- CID-keyed Type 1 fonts is now supported. While this can't occur
- in file-based fonts, it can happen in document-embedded
- resources of PostScript documents.
-
- - Embedded bitmaps in SFNT-based CFF fonts are now supported.
-
- - A simple API is now available to control FreeType's tracing
- mechanism if compiled with FT_DEBUG_LEVEL_TRACE. See the file
- `ftdebug.h' for more details.
-
- - YAMATO Masatake contributed improved handling of MacOS resource
- forks on non-MacOS platforms (for example, Linux can mount MacOS
- file systems).
-
- - Support for MacOS has been improved; there is now a new function
- `FT_New_Face_From_FSSpec' similar to `FT_New_Face' except that
- it accepts an FSSpec instead of a path.
-
- - The cache sub-system has been rewritten.
-
- - There is now support for deinstallation of faces.
-
- - A new API function `FTC_Manager_RemoveFaceID' has been added
- to delete all `idle' nodes that correspond to a given
- FTC_FaceID. All `locked' nodes (i.e., those with a reference
- count > 0), will be modified to prevent them from appearing in
- further lookups (they will be cleaned normally when their
- reference count reaches 0).
-
- - There is now support for point scaling (i.e., providing
- character sizes in points + dpis, instead of pixels).
-
- - Three abstract cache classes are now available:
-
- FTC_GCache: Used to store one glyph item per cache node,
- with the ability to group common attributes into
- `families'. This replaces the old
- FTC_GlyphCache class.
-
- FTC_ICache: Used to store one FT_Glyph per cache node. This
- extends FTC_GCache. Family definition, family
- comparison, and glyph loading are however left
- to sub-classes.
-
- FTC_SCache: Used to store up to 16 small bitmaps per cache
- node. This extends FTC_GCache. Family
- definition, family comparison and glyph loading
- are however left to sub-classes.
-
- - The file `src/cache/ftcbasic.c' implements:
-
- FTC_ImageCache: Extends FTC_ICache; implements family
- definitions and glyph loading similar to the
- old API.
-
- FTC_SBitCache: Extends FTC_SCache, implements family
- definitions and glyph loading similar to the
- old API
-
- Client applications should be able to extend FTC_GCache,
- FTC_ICache, or FTC_SCache much more easily (i.e., less code to
- write, and less callbacks). For example, one could envision
- caches that are capable of storing transformed (obliqued),
- stroked, emboldened, or colored glyph images. Use
- `ftcbasic.c' as an example.
-
- - All public APIs are now in `include/freetype/ftcache.h', (to
- be accessed as `FT_CACHE_H'). The contents of
- `include/freetype/cache/' is only needed by applications that
- wish to implement their own caches.
-
- - There were some major performance improvements through the use
- of various programming tricks. Cache hits are up to 70%
- faster than in the old code.
-
- - The FTC_CMapCache has been simplified. Charmaps can only be
- accessed by index right now. There is also a new API named
- `FT_Charmap_GetIndex' for this purpose.
-
- - The demo programs have been updated to the new code. The
- previous versions will not work with the current one.
-
- - Using an invalid face index in FT_Open_Face and friends now
- causes an error even if the font contains a single face only.
-
-
- III. MISCELLANEOUS
-
- - Wolfgang Domröse contributed support files for building FreeType
- on the Atari using the PureC compiler. Note that the Atari is a
- 16bit platform.
-
- - Vitaliy Pasternak contributed project files for VS.NET 2003.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.1.7 and 2.1.6
-
- I. IMPORTANT BUG FIXES
-
- - Updated to newest libtool version, fixing build problems on
- various platforms.
-
- - On Unix platforms, `make install' didn't copy the correct
- `ftconfig.h' file.
-
- Note that version 2.1.7 contains the same library C source code as
- version 2.1.6.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.1.6 and 2.1.5
-
- I. IMPORTANT BUG FIXES
-
- - The PFR font driver didn't load kerning tables correctly, and
- the functions in FT_PFR_H didn't work at all.
-
- - Type 1 font files in binary format (PFB) with an end-of-file
- indicator weren't accepted by the FreeType engine.
-
- - Fonts which contain /PaintType and /StrokeWidth no longer cause
- a segfault. This bug has been introduced in version 2.1.5.
-
- - Fonts loaded with FT_LOAD_RENDER no longer cause strange
- results. This bug has been introduced in version 2.1.5.
-
- - Some Windows (bitmap) FNT/FON files couldn't be handled
- correctly.
-
-
- II. IMPORTANT CHANGES
-
- - The internal module API has been heavily changed in favor of
- massive simplifications within the font engine. This also means
- that authors of third-party modules must adapt their code to the
- new scheme.
-
- NOTE: THE NEW SCHEME IS NOT COMPLETED YET. PLEASE WAIT UNTIL A
- FINAL ANNOUNCEMENT!
-
- - The PostScript parser has been enhanced to handle comments and
- strings correctly. Additionally, more syntax forms are
- recognized.
-
- - Added the optional unpatented hinting system for TrueType. It
- allows typefaces which need hinting to produce correct glyph
- forms (e.g., Chinese typefaces from Dynalab) to work acceptably
- without infringing Apple patents. This system is compiled only
- if TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING is defined in
- ftoption.h (activated by default).
-
-
- III. MISCELLANEOUS
-
- - There is now a guard in the public header files to protect
- against inclusion of freetype.h from FreeType 1.
-
- - Direct inclusion of freetype.h and other public header files no
- longer works. You have to use the documented scheme
-
- #include <ft2build.h>
- #include FT_FREETYPE_H
-
- to load freetype.h with a symbolic name. This protects against
- renaming of public header files (which shouldn't happen but
- actually has, avoiding two public header files with the same
- name).
-
-
-======================================================================
-
-CHANGES BETWEEN 2.1.5 and 2.1.4
-
- I. IMPORTANT BUG FIXES
-
- - Parsing the /CIDFontName field now removes the leading slash to
- be in sync with other font drivers.
-
- - gzip support was buggy. Some fonts could not be read.
-
- - Fonts which have nested subglyphs more than one level deep no
- longer cause a segfault.
-
- - Creation of synthetic cmaps for fonts in CFF format was broken
- partially.
-
- - Numeric font dictionary entries for synthetic fonts are no
- longer overwritten.
-
- - The font matrix wasn't applied to the advance width for Type1,
- CID, and CFF fonts. This caused problems when loading certain
- synthetic Type 1 fonts like `Helvetica Narrow'.
-
- - The test for the charset registry in BDF and PCF fonts is now
- case-insensitive.
-
- - FT_Vector_Rotate sometimes returned strange values due to
- rounding errors.
-
- - The PCF driver now returns the correct number of glyphs
- (including an artificial `notdef' glyph at index 0).
-
- - FreeType now supports buggy CMaps which are contained in many
- CJK fonts from Dynalab.
-
- - Opening an invalid font on a Mac caused a segfault due to
- double-freeing memory.
-
- - BDF fonts with more than 32768 glyphs weren't supported
- properly.
-
-
- II. IMPORTANT CHANGES
-
- - Accessing bitmap font formats has been synchronized. To do that
- the FT_Bitmap_Size structure has been extended to contain new
- fields `size', `x_ppem', and `y_ppem'.
-
- - The FNT driver now returns multiple faces, not multiple strikes.
-
- - The `psnames' module has been updated to the Adobe Glyph List
- version 2.0.
-
- - The `psnames' module now understands `uXXXX[X[X]]' glyph names.
-
- - The algorithm for guessing the font style has been improved.
-
- - For fonts in SFNT format, root->height is no longer increased if
- the line gap is zero. There exist fonts (containing e.g. form
- drawing characters) which intentionally have a zero line gap
- value.
-
- - ft_glyph_bbox_xxx flags are now deprecated in favour of
- FT_GLYPH_BBOX_XXX.
-
- - ft_module_xxx flags are now deprecated in favour of
- FT_MODULE_XXX.
-
- - FT_ENCODING_MS_{SJIS,GB2312,BIG5,WANSUNG,JOHAB} are now
- deprecated in favour of
- FT_ENCODING_{SJIS,GB2312,GIB5,WANSONG,JOHAB} -- those encodings
- are not specific to Microsoft.
-
-
- III. MISCELLANEOUS
-
- - The autohinter has been further improved; for example, `m'
- glyphs now retain its vertical symmetry.
-
- - Partial support of Mac fonts on non-Mac platforms.
-
- - `make refdoc' (after first `make') builds the HTML
- documentation. You need Python for this.
-
- - The make build system should now work more reliably on DOS-like
- platforms.
-
- - Support for EMX gcc and Watson C/C++ compilers on MS-DOS has
- been added.
-
- - Better VMS build support.
-
- - Support for the pkg-config package by providing a `freetype.pc'
- file.
-
- - New configure option --with-old-mac-fonts for Darwin.
-
- - Some source files have been renamed (mainly to fit into the 8.3
- naming scheme).
-
-
-======================================================================
-
-CHANGES BETWEEN 2.1.4 and 2.1.3
-
- I. IMPORTANT BUG FIXES
-
- - Updated to newest libtool version, fixing build problems on
- various platforms.
-
- - A fix in the Gzip stream reader: It couldn't read certain .gz
- files properly due to a small typo. In certain cases, FreeType
- could also loop endlessly when trying to load tiny gzipped
- files.
-
- - The configure script now tries to use the system-wide zlib when
- it finds one (instead of the copy found in src/gzip). And
- `freetype-config' has been updated to return relevant flags in
- this case when invoked with `--libs' (e.g. `-lzlib').
-
- - Certain fonts couldn't be loaded by 2.1.3 because they lacked a
- Unicode charmap (e.g. SYMBOL.TTF). FreeType erroneously
- rejected them.
-
- - The CFF loader was modified to accept fonts which only contain a
- subset of their reference charset. This prevented the correct
- use of PDF-embedded fonts.
-
- - The logic to detect Unicode charmaps has been modified. This is
- required to support fonts which include both 16-bit and 32-bit
- charmaps (like very recent asian ones) using the new 10 and 12
- SFNT formats.
-
- - The TrueType loader now limits the depth of composite glyphs.
- This is necessary to prevent broken fonts to break the engine by
- blowing the stack with recursive glyph definitions.
-
- - The CMap cache is now capable of managing UCS-4 character codes
- that are mapped through extended charmaps in recent
- TrueType/OpenType fonts.
-
- - The cache sub-system now properly manages out-of-memory
- conditions instead of blindly reporting them to the caller.
- This means that it will try to empty the cache before restarting
- its allocations to see if that can help.
-
- - The PFR driver didn't return the list of available embedded
- bitmaps properly.
-
- - There was a nasty memory leak when using embedded bitmaps in
- certain font formats.
-
-
- II. IMPORTANT CHANGES
-
- - David Chester contributed some enhancements to the auto-hinter
- that significantly increase the quality of its output. The
- Postscript hinter was also improved in several ways.
-
- - The FT_RENDER_MODE_LIGHT render mode was implemented.
-
- - A new API function called `FT_Get_BDF_Property' has been added
- to FT_BDF_H to retrieve BDF properties from BDF _and_ PCF font
- files. THIS IS STILL EXPERIMENTAL, since it hasn't been
- properly tested yet.
-
- - A Windows FNT specific API has been added, mostly to access font
- headers. This is used by Wine.
-
- - TrueType tables without an `hmtx' table are now tolerated when
- an incremental interface is used. This happens for certain
- Type42 fonts passed from Ghostscript to FreeType.
-
- - The PFR font driver is now capable of returning the font family
- and style names when they are available (instead of the sole
- `FontID'). This is performed by parsing an *undocumented*
- portion of the font file!
-
-
- III. MISCELLANEOUS
-
- - The path stroker in FT_STROKER_H has entered beta stage. It now
- works very well, but its interface might change a bit in the
- future. More on this in later releases.
-
- - The documentation for FT_Size_Metrics didn't appear properly in
- the API reference.
-
- - The file docs/VERSION.DLL has been updated to explain versioning
- with FreeType (i.e., comparing release/libtool/so numbers, and
- how to use them in autoconf scripts).
-
- - The installation documentation has been seriously revamped.
- Everything is now in the `docs' directory.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.1.3 and 2.1.2
-
- I. IMPORTANT BUG FIXES
-
- - FT_Vector_Transform had been incorrectly modified in 2.1.2,
- resulting in incorrect transformations being applied (for
- example, rotations were processed in opposite angles).
-
- - The format 8 and 12 TrueType charmap enumeration routines have
- been fixed (FT_Get_Next_Char returned invalid values).
-
- - The PFR font driver returned incorrect advance widths if the
- outline and metrics resolution defined in the font file were
- different.
-
- - FT_Glyph_To_Bitmap now returns successfully when called with an
- FT_BitmapGlyph argument (it previously returned an error).
-
- - A bug in the Type 1 loader that prevented valid font bounding
- boxes to be loaded from multiple master fonts.
-
- - The SFNT validation code has been rewritten. FreeType can now
- load `broken' fonts that were usable on Windows, but not with
- previous versions of the library.
-
- - The computation of bearings in the BDF driver has been fixed.
-
- - The Postscript hinter crashed when trying to hint certain glyphs
- (more precisely, when trying to apply hints to an empty glyph
- outline).
-
- - The TrueType glyph loader now supports composites in `Apple
- format' (they differ slightly from Microsoft/OpenType ones in
- the way transformation offsets are computed).
-
- - FreeType was very slow at opening certain asian CID/CFF fonts,
- due to fixed increment in dynamic array re-allocations. This
- has been changed to exponential behaviour to get acceptable
- performance.
-
-
-
- II. IMPORTANT CHANGES
-
- - The PCF driver now supports gzip-compressed font files natively.
- This means that you will be able to use all these bitmap fonts
- that come with XFree86 with FreeType (and libXft/libXft2, by
- extension).
-
- - The automatic and postscript hinters have both been updated.
- This results in a relatively important increase of rendering
- quality since many nasty defaults have been suppressed. Please
- visit the web page:
-
- http://www.freetype.org/hinting/smooth-hinting.html
-
- for additional details on this topic.
-
- - The `load_flags' parameter of `FT_Load_Glyph' is now an FT_Int32
- (instead of just being an FT_Int). This breaks source and
- binary compatibility for 16bit systems only, while retaining
- both of them for 32 and 64 bit ones.
-
- Some new flags have been added consequently:
-
- FT_LOAD_NO_AUTOHINT :: Disable the use of the auto-hinter
- (but not native format hinters).
-
- FT_LOAD_TARGET_NORMAL :: Hint and render for normal
- anti-aliased displays.
-
- FT_LOAD_TARGET_MONO :: Hint and render for 1-bit displays.
-
- FT_LOAD_TARGET_LCD :: Hint and render for horizontal RGB or
- BGR sub-pixel displays (like LCD
- screens). THIS IS STILL
- EXPERIMENTAL!
-
- FT_LOAD_TARGET_LCD_V :: Same as FT_LOAD_TARGET_LCD, for
- vertical sub-pixel displays (like
- rotated LCD screens). THIS IS STILL
- EXPERIMENTAL!
-
- FT_LOAD_MONOCHROME is still supported, but only affects
- rendering, not the hinting.
-
- Note that the `ftview' demo program available in the `ft2demos'
- package has been updated to support LCD-optimized display on
- non-paletted displays (under Win32 and X11).
-
- - The PFR driver now supports embedded bitmaps (all formats
- supported), and returns correct kerning metrics for all glyphs.
-
- - The TrueType charmap loader now supports certain `broken' fonts
- that load under Windows without problems.
-
- - The cache API has been slightly modified (it's still a beta!):
-
- - The type FTC_ImageDesc has been removed; it is now replaced
- by FTC_ImageTypeRec. Note that one of its fields is a
- `load_flag' parameter for FT_Load_Glyph.
-
- - The field `num_grays' of FT_SBitRec has been changed to
- `max_grays' in order to fit within a single byte. Its
- maximum value is thus 255 (instead of 256 as previously).
-
-
- III. MISCELLANEOUS
-
- - Added support for the DESTDIR variable during `make install'.
- This simplifies packaging of FreeType.
-
- - Included modified copies of the ZLib sources in `src/gzip' in
- order to support gzip-compressed PCF fonts. We do not use the
- system-provided zlib for now, though this is a probable
- enhancement for future releases.
-
- - The DocMaker tool used to generate the on-line API reference has
- been completely rewritten. It is now located in
- `src/tools/docmaker/docmaker.py'. Features:
-
- - better cross-referenced output
- - more polished output
- - uses Python regular expressions (though it didn't speed the
- program)
- - much more modular structure, which allows for different
- `backends' in order to generate HTML, XML, or whatever
- format.
-
- One can regenerate the API reference by calling:
-
- python src/tools/docmaker/docmaker.py \
- --prefix=ft2 \
- --title=FreeType-2.1.3 \
- --output=<outputdirectory>
- include/freetype/*.h \
- include/freetype/config/*.h \
- include/freetype/cache/*.h
-
- - A new, experimental, support for incremental font loading (i.e.,
- loading of fonts where the glyphs are not in the font file
- itself, but provided by an external component, like a Postscript
- interpreter) has been added by Graham Asher. This is still work
- in progress, however.
-
- - A new, EXPERIMENTAL, path stroker has been added. It doesn't
- suffer from severe rounding errors and treat bezier arcs
- directly. Still work in progress (i.e. not part of the official
- API). See the file <freetype/ftstroker.h> for some of the
- details.
-
- - The massive re-formatting of sources and internal re-design is
- still under-way. Many internal functions, constants, and types
- have been renamed.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.1.2 and 2.1.1
-
- I. IMPORTANT BUG FIXES
-
- - Many font drivers didn't select a Unicode charmap by default
- when a new face was opened (with the FT_CONFIG_OPTION_USE_CMAPS
- options enabled), causing many applications to not be able to
- display text correctly with the 2.1.x releases.
-
- - The PFR driver had a bug in its composite loading code that
- produces incorrectly placed accents with many fonts.
-
- - The Type42 driver crashed sometimes due to a nasty bug.
-
- - The Type 1 custom encoding charmap didn't handle the case where
- the first glyph index wasn't 0.
-
- - A serious typo in the TrueType composite loader produced
- incorrectly placed glyphs in fonts like `Wingdings' and a few
- others.
-
-
- II. MISCELLANEOUS
-
- - The Win32 Visual C++ project file has been updated to include
- the PFR driver as well.
-
- - `freetype.m4' is now installed by default by `make install' on
- Unix systems.
-
- - The function FT_Get_PS_Font_Info now works with CID and Type42
- fonts as well.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.1.1 and 2.1.0
-
- I. IMPORTANT BUG FIXES
-
- - The `version_info' returned by `freetype-config' in 2.1.0
- returned an invalid value. It now returns 9:1:3 (2.0.9 returned
- 9:0:3).
-
- - Version 2.1.0 couldn't be linked against applications on Win32
- and Amiga systems due to a new debug function that wasn't
- properly propagated to the system-specific directory in
- `builds'.
-
- - Various MacOS and Mac OS X specific fixes.
-
- - Fixed a bug in the TrueType charmap validation routines that
- made version 2.1.0 too restrictive -- many popular fonts have
- been rejected.
-
- - There was still a very small difference between the monochrome
- glyph bitmaps produced by FreeType 1.x and FreeType 2.x with the
- bytecode interpreter enabled. This was caused by an invalid
- flag setting in the TrueType glyph loader, making the rasterizer
- change its drop-out control mode. Now the results should
- _really_ be completely identical.
-
- - The TrueType name table loader has been improved to support many
- popular though buggy Asian fonts. It now ignores empty name
- entries, invalid pointer offsets and a few other incorrect
- subtleties. Moreover, name strings are now loaded on demand,
- which reduces the memory load of many faces (e.g. the ARIAL.TTF
- font file contains a 10kByte name table with 70 names).
-
- - Fixed a bug in the Postscript hinter that prevented family blues
- substitution to happen correctly.
-
-
- II. NEW FEATURES
-
- - Three new font drivers in this release:
-
- * A BDF font driver, contributed by Franco Zappa Nardelli,
- heavily modified by Werner Lemberg. It also supports
- anti-aliased bitmaps (using a slightly extended BDF format).
-
- * A Type42 font driver, contributed by Roberto Alameda. It is
- still experimental but seems to work relatively well.
-
- * A PFR font driver, contributed by David Turner himself. It
- doesn't support PFR hinting -- note that BitStream has at
- least two patents on this format!
-
-
- III. MISCELLANEOUS
-
- - The cache sub-system has been optimized in important ways.
- Cache hits are now significantly faster. For example, using the
- CMap cache is about twice faster than calling FT_Get_Char_Index
- on most platforms. Similarly, using an SBit cache is about five
- times faster than loading the bitmaps from a bitmap file, and
- 300 to 500 times faster than generating them from a scalable
- format.
-
- Note that you should recompile your sources if you designed a
- custom cache class for the FT2 Cache subsystem, since the
- changes performed are source, but not binary, compatible.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.1.0 and 2.0.9
-
- I. IMPORTANT BUG FIXES
-
- - The TrueType bytecode interpreter has been fixed to produce
- _exactly_ the same output as FreeType 1.x. Previous differences
- were due to slightly distinct fixed-point computation routines
- used to perform dot products and vector length measurements.
-
- It seems that native TrueType hinting is _extremely_ sensitive
- to rounding errors. The required vector computation routines
- have been optimized and placed within the `ttinterp.c' file.
-
- - Fixed the parsing of accelerator tables in the PCF font driver.
-
- - Fixed the Type1 glyph loader routine used to compute the font's
- maximum advance width.
-
-
- II. NEW FEATURES
-
- - The `configure' script used on Unix systems has been modified to
- check that GNU Make is being used to build the library.
- Otherwise, it will display a message proposing to use the
- GNUMAKE environment variable to name it.
-
- The Unix-specific file README.UNX has been modified accordingly.
-
-
- III. MISCELLANEOUS
-
- - The FreeType License in `docs/FTL.TXT' has been updated to
- include a proposed preferred disclaimer. If you are using
- FreeType in your products, you are encouraged (but not mandated)
- to use the following text in your documentation:
-
- """
- Portions of this software are copyright © 1996-2002 The
- FreeType Project (www.freetype.org). All rights reserved.
- """
-
- - The default size of the render pool has been reduced to 16kByte.
- This shouldn't result in any noticeable performance penalty,
- unless you are using the engine as-is to render very large and
- complex glyphs.
-
- - The FreeType 2 redesign has begun. More information can be
- found at this URL:
-
- http://www.freetype.org/freetype2/redesign.html
-
- The following internal changes have been performed within the
- sources of this release:
-
- - Many internal types have been renamed to increase
- consistency. The following should be true, except for
- public types:
-
- * All structure types have a name ending in `Rec' (short
- for `record').
-
- * A pointer-to-structure type has the same name as the
- structure, _without_ the `Rec' suffix.
-
- Example:
-
- typedef struct FooRec_
- {
- ...
-
- } FooRec, *Foo;
-
- - Many internal macros have been renamed to increase
- consistency. The following should be true:
-
- * All macros have a name beginning with `FT_'. This
- required a few changes like
-
- ALLOC => FT_ALLOC
- FREE => FT_FREE
- REALLOC => FT_REALLOC
-
- * All macros are completely UPPERCASE. This required a
- few changes like:
-
- READ_Short => FT_READ_SHORT
- NEXT_Short => FT_NEXT_SHORT
- GET_ULongLE => FT_GET_ULONG_LE
- MEM_Set => FT_MEM_SET
- MEM_Copy => FT_MEM_COPY
- etc.
-
- * Whenever possible, all macro names follow the
- FT_<OBJECT>_<METHOD> pattern. For example
-
- ACCESS_Frame => FT_FRAME_ENTER
- FORGET_Frame => FT_FRAME_EXIT
- EXTRACT_Frame => FT_FRAME_EXTRACT
- RELEASE_Frame => FT_FRAME_RELEASE
-
- FILE_Pos => FT_STREAM_POS
- FILE_Seek => FT_STREAM_SEEK
- FILE_Read => FT_STREAM_READ
- FILE_ReadAt => FT_STREAM_READ_AT
- READ_Fields => FT_STREAM_READ_FIELDS
-
- - Many internal functions have been renamed to follow the
- FT_<Object>_<Method> pattern. For example:
-
- FT_Seek_Stream => FT_Stream_Seek
- FT_Read_Stream_At => FT_Stream_ReadAt
- FT_Done_Stream => FT_Stream_Close
- FT_New_Stream => FT_Stream_Open
- FT_New_Memory_Stream => FT_Stream_OpenMemory
- FT_Extract_Frame => FT_Stream_ExtractFrame
-
- Note that method names do not contain `_'.
-
- - The FT_ALLOC_ARRAY and FT_REALLOC_ARRAY have been replaced
- with FT_NEW_ARRAY and FT_RENEW_ARRAY which do not take a
- type as the fourth argument. Instead, the array element
- type size is computed automatically from the type of the
- target pointer used.
-
- - A new object class, FT_CMap, has been introduced. These
- internal objects are used to model character maps. This
- eases the support of additional charmap types within the
- engine.
-
- - A new configuration file named `ftstdlib.h' has been added
- to `include/freetype/config'. It is used to define aliases
- for _every_ routine of the ISO C library that the font
- engine uses. Each aliases has a `ft_' prefix
- (e.g. `ft_strlen' is an alias for `strlen').
-
- This is used to ease the porting of FreeType 2 to exotic
- runtime environments where the ISO C Library isn't available
- (e.g. XFree86 extension modules).
-
- More details are available in the `ChangeLog' file.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.0.9 and 2.0.8
-
- I. IMPORTANT BUG FIXES
-
- - Certain fonts like `foxjump.ttf' contain broken name tables with
- invalid entries and wild offsets. This caused FreeType to crash
- when trying to load them.
-
- The SFNT `name' table loader has been fixed to be able to
- support these strange fonts.
-
- Moreover, the code in charge of processing this table has been
- changed to always favour Windows-formatted entries over other
- ones. Hence, a font that works on Windows but not on the Mac
- will load cleanly in FreeType and report accurate values for
- Family & PostScript names.
-
- - The CID font driver has been fixed. It unfortunately returned a
- Postscript Font name with a leading slash, as in
- `/MunhwaGothic-Regular'.
-
- - FreeType 2 should now compile fine on AIX 4.3.3 as a shared
- library.
-
- - A bug in the Postscript hinter has been found and fixed,
- removing un-even stem widths at small pixel sizes (like 14-17).
-
- This improves the quality of a certain number of Postscript
- fonts.
-
-
- II. NEW FEATURES
-
- - A new function named `FT_Library_Version' has been added to
- return the current library's major, minor, and patch version
- numbers. This is important since the macros FREETYPE_MAJOR,
- FREETYPE_MINOR, and FREETYPE_PATCH cannot be used when the
- library is dynamically linked by a program.
-
- - Two new APIs have been added: `FT_Get_First_Char' and
- `FT_Get_Next_Char'.
-
- Together, these can be used to iterate efficiently over the
- currently selected charmap of a given face. Read the API
- reference for more details.
-
-
- III. MISCELLANEOUS
-
- - The FreeType sources are under heavy internal re-factoring. As
- a consequence, we have created a branch named `STABLE' on the
- CVS to hold all future releases/fixes in the 2.0.x family.
-
- The HEAD branch now contains the re-factored sources and
- shouldn't be used for testing or packaging new releases. In
- case you would like to access the 2.0.9 sources from our CVS
- repository, use the tag `VER-2-0-9'.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.0.8 and 2.0.7
-
- I. IMPORTANT BUG FIXES
-
- - There was a small but nasty bug in `freetype-config.in' which
- caused the `freetype-config' script to fail on Unix.
-
- This didn't prevent the installation of the library or even its
- execution, but caused problems when trying to compile many Unix
- packages that depend on it.
-
- - Some TrueType or OpenType fonts embedded in PDF documents do not
- have a 'cmap', 'post' and 'name' as is required by the
- specification. FreeType no longer refuses to load such fonts.
-
- - Various fixes to the PCF font driver.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.0.7 and 2.0.6
-
- I. IMPORTANT BUG FIXES
-
- - Fixed two bugs in the Type 1 font driver. The first one
- resulted in a memory leak in subtle cases. The other one caused
- FreeType to crash when trying to load `.gsf' files (Ghostscript
- so-called Postscript fonts).
-
- (This made _many_ KDE applications crash on certain systems.
- FreeType _is_ becoming a critical system component on Linux :-)
-
- - Fixed a memory leak in the CFF font driver.
-
- - Fixed a memory leak in the PCF font driver.
-
- - Fixed the Visual C++ project file
- `builds/win32/visualc/freetype.dsp' since it didn't include the
- Postscript hinter component, causing errors at build time.
-
- - Fixed a small rendering bug in the anti-aliased renderer that
- only occurred when trying to draw thin (less than 1 pixel)
- strokes.
-
- - Fixed `builds/unix/freetype2.a4' which is used to generate a
- valid `freetype2.m4' for use with autoconf.
-
- - Fixed the OpenVMS Makefiles.
-
-
- II. MISCELLANEOUS
-
- - Added `configure' and `install' scripts to the top-level
- directory. A GNU-style installation is thus now easily possible
- with
-
- ./configure <options>
- make
- make install
-
-
-======================================================================
-
-CHANGES BETWEEN 2.0.6 and 2.0.5
-
- I. IMPORTANT BUG FIXES
-
- - It wasn't possible to load embedded bitmaps when the auto-hinter
- was used. This is now fixed.
-
- - The TrueType font driver didn't load some composites properly
- (the sub-glyphs were slightly shifted, and this was only
- noticeable when using monochrome rendering).
-
- - Various fixes to the auto-hinter. They merely improve the
- output of sans-serif fonts. Note that there are still problems
- with serifed fonts and composites (accented characters).
-
- - All scalable font drivers erroneously returned un-fitted glyph
- advances when hinting was requested. This created problems for
- a number of layout applications. This is a very old bug that
- got undetected mainly because most test/demo program perform
- rounding explicitly or implicitly (through the cache).
-
- - `FT_Glyph_To_Bitmap' did erroneously modify the source glyph in
- certain cases.
-
- - `glnames.py' still contained a bug that made FreeType return
- invalid names for certain glyphs.
-
- - The library crashed when loading certain Type 1 fonts like
- `sadn.pfb' (`Stalingrad Normal'), which appear to contain
- pathetic font info dictionaries.
-
- - The TrueType glyph loader is now much more paranoid and checks
- everything when loading a given glyph image. This was necessary
- to avoid problems (crashes and/or memory overwrites) with broken
- fonts that came from a really buggy automatic font converter.
-
-
- II. IMPORTANT UPDATES AND NEW FEATURES
-
- - Important updates to the Mac-specific parts of the library.
-
- - The caching sub-system has been completely re-designed, and its
- API has evolved (the old one is still supported for backward
- compatibility).
-
- The documentation for it is not yet completed, sorry. For now,
- you are encouraged to continue using the old API. However, the
- ftview demo program in the ft2demos package has already been
- updated to use the new caching functions.
-
- - A new charmap cache is provided too. See `FTC_CMapCache'. This
- is useful to perform character code -> glyph index translations
- quickly, without the need for an opened FT_Face.
-
- - A NEW POSTSCRIPT HINTER module has been added to support native
- hints in the following formats: PostScript Type 1, PostScript
- CID, and CFF/CEF.
-
- Please test! Note that the auto-hinter produces better results
- for a number of badly-hinted fonts (mostly auto-generated ones)
- though.
-
- - A memory debugger is now part of the standard FreeType sources.
- To enable it, define FT_DEBUG_MEMORY in
- <freetype/config/ftoption.h>, and recompile the library.
-
- Additionally, define the _environment_ variable FT_DEBUG_MEMORY
- and run any program using FreeType. When the library is exited,
- a summary of memory footprints and possible leaks will be
- displayed.
-
- This works transparently with _any_ program that uses FreeType.
- However, you will need a lot of memory to use this (allocated
- blocks are never released to the heap to detect double deletes
- easily).
-
-
- III. MISCELLANEOUS
-
- - We are aware of subtle differences between the output of
- FreeType versions 1 and 2 when it comes to monochrome
- TrueType-hinted glyphs. These are most probably due to small
- differences in the monochrome rasterizers and will be worked out
- in an upcoming release.
-
- - We have decided to fork the sources in a `stable' branch, and an
- `unstable' one, since FreeType is becoming a critical component
- of many Unix systems.
-
- The next bug-fix releases of the library will be named 2.0.7,
- 2.0.8, etc., while the `2.1' branch will contain a version of
- the sources where we will start major reworking of the library's
- internals, in order to produce FreeType 2.2.0 (or even 3.0) in a
- more distant future.
-
- We also hope that this scheme will allow much more frequent
- releases than in the past.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.0.5 and 2.0.4
-
- NOTE THAT 2.0.5 DOES NOT CONTAIN THE POSTSCRIPT HINTER. THIS MODULE
- WILL BE PART OF THE NEXT RELEASE (EITHER 2.0.6 or 2.1)
-
- - Fixed a bug that made certain glyphs, like `Cacute', `cacute' and
- `lslash' unavailable from Unicode charmaps of Postscript fonts.
- This prevented the correct display of Polish text, for example.
-
- - The kerning table of Type 1 fonts was loaded by FreeType, when its
- AFM file was attached to its face, but the
- FT_FACE_FLAG_HAS_KERNING bit flags was not set correctly,
- preventing FT_Get_Kerning to return meaningful values.
-
- - Improved SFNT (TrueType & OpenType) charmap support. Slightly
- better performance, as well as support for the new formats defined
- by the OpenType 1.3 specification (8, 10, and 12)
-
- - Fixed a serious typo in `src/base/ftcalc.c' which caused invalid
- computations in certain rare cases, producing ugly artefacts.
-
- - The size of the EM square is computed with a more accurate
- algorithm for Postscript fonts. The old one caused slight errors
- with embedded fonts found in PDF documents.
-
- - Fixed a bug in the cache manager that prevented normal LRU
- behaviour within the cache manager, causing unnecessary reloads
- (for FT_Face and FT_Size objects only).
-
- - Added a new function named `FT_Get_Name_Index' to retrieve the
- glyph index of a given glyph name, when found in a face.
-
- - Added a new function named `FT_Get_Postscript_Name' to retrieve
- the `unique' Postscript font name of a given face.
-
- - Added a new public header size named FT_SIZES_H (or
- <freetype/ftsizes.h>) providing new FT_Size-management functions:
- FT_New_Size, FT_Activate_Size, FT_Done_Size.
-
- - Fixed a reallocation bug that generated a dangling pointer (and
- possibly memory leaks) with Postscript fonts (in
- src/psaux/psobjs.c).
-
- - Many fixes for 16-bit correctness.
-
- - Removed many pedantic compiler warnings from the sources.
-
- - Added an Amiga build directory in `builds/amiga'.
-
-
-======================================================================
-
-CHANGES BETWEEN 2.0.4 and 2.0.3
-
- - Fixed a rather annoying bug that was introduced in 2.0.3. Namely,
- the font transformation set through FT_Set_Transform was applied
- twice to auto-hinted glyphs, resulting in incorrectly rotated text
- output.
-
- - Fixed _many_ compiler warnings. FT2 should now compile cleanly
- with Visual C++'s most pedantic warning level (/W4). It already
- compiled fine with GCC and a few other compilers.
-
- - Fixed a bug that prevented the linear advance width of composite
- TrueType glyphs to be correctly returned.
-
- - Fixed the Visual C++ project files located in
- `builds/win32/visualc' (previous versions used older names of the
- library).
-
- - Many 32-bit constants have an `L' appended to their value, in
- order to improve the 16-bitness of the code. Someone is actually
- trying to use FT2 on an Atari ST machine!
-
- - Updated the `builds/detect.mk' file in order to automatically
- build FT2 on AIX systems. AIX uses `/usr/sbin/init' instead of
- `/sbin/init' and wasn't previously detected as a Unix platform by
- the FreeType build system.
-
- - Updated the Unix-specific portions of the build system (new
- libtool version, etc.).
-
- - The SFNT kerning loader now ensures that the table is sorted
- (since some problem fonts do not meet this requirement).
-
-
-=======================================================================
-
-CHANGES BETWEEN 2.0.3 and 2.0.2
-
- I. CHANGES TO THE MODULES / FONT DRIVERS
-
- - THE AUTO-HINTER HAS BEEN SLIGHTLY IMPROVED, in order to fix
- several annoying artefacts, mainly:
-
- - Blue zone alignment of horizontal stems wasn't performed
- correctly, resulting in artefacts like the `d' being placed
- one pixel below the `b' in some fonts like Time New Roman.
-
- - Overshoot thresholding wasn't performed correctly, creating
- unpleasant artefacts at large character pixel sizes.
-
- - Composite glyph loading has been simplified. This gets rid
- of various artefacts where the components of a composite
- glyphs were not correctly spaced.
-
- These are the last changes to the current auto-hinting module.
- A new hinting sub-system is currently in the work in order to
- support native hints in Type 1 / CFF / OpenType fonts, as well
- as globally improve rendering.
-
- - The PCF driver has been fixed. It reported invalid glyph
- dimensions for the fonts available on Solaris.
-
- - The Type 1, CID and CFF drivers have been modified to fix the
- computation of the EM size.
-
- - The Type 1 driver has been fixed to avoid a dangerous bug that
- crashed the library with non-conforming fonts (i.e. ones that do
- not place the .notdef glyph at position 0).
-
- - The TrueType driver had a rather subtle bug (dangling pointer
- when loading composite glyphs) that could crash the library in
- rare occasions!
-
-
- II. HIGH-LEVEL API CHANGES
-
- - The error code enumeration values have been changed. An error
- value is decomposed in a generic error code, and a module
- number. see <freetype/fterrors.h> for details.
-
- - A new public header file has been introduced, named
- FT_TRIGONOMETRY_H (include/freetype/fttrig.h), providing
- trigonometric functions to compute sines, cosines, arctangents,
- etc. with 16.16 fixed precision. The implementation is based on
- the CORDIC algorithm and is very fast while being sufficiently
- accurate.
-
-
- III. INTERNALS
-
- - Added BeOS-specific files in the old build sub-system. Note
- that no changes were required to compile the library with Jam.
-
- - The configuration is now capable of automatically detecting
- 64-bit integers on a set of predefined compilers (GCC, Visual
- C++, Borland C++) and will use them by default. This provides a
- small performance boost.
-
- - A small memory leak that happened when opening 0-sized files
- (duh!) have been fixed.
-
- - Fixed bezier stack depth bug in the routines provided by the
- FT_BBOX_H header file. Also fixed similar bugs in the
- rasterizers.
-
- - The outline bounding box code has been rewritten to use direct
- computations, instead of bezier sub-division, to compute the
- exact bounding box of glyphs. This is slightly slower but more
- accurate.
-
- - The build system has been improved and fixed, mainly to support
- `make' on Windows 2000 correctly, avoid problems with `make
- distclean' on non Unix systems, etc.
-
- - Hexadecimal constants have been suffixed with `U' to avoid
- problems with certain compilers on 64-bit platforms.
-
- - A new directory named `src/tools' has been created. It contains
- Python scripts and simple unit test programs used to develop the
- library.
-
- - The DocMaker tool has been moved from `docs' to `src/tools' and
- has been updated with the following:
-
- - Now accepts the `--title=XXXX' or `-t XXXX' option from the
- command line to set the project's name in the generated API
- reference.
-
- - Now accepts the `--output=DIR' or `-o DIR' option from the
- command line to set the output directory for all generated
- HTML files.
-
- - Now accepts the `--prefix=XXXX' or `-p XXX' option from the
- command line to set the file prefix to use for all
- generated HTML files.
-
- - Now generates the current time/data on each generated page
- in order to distinguish between versions.
-
- DocMaker can be used with other projects now, not only FT2
- (e.g. MLib, FTLayout, etc.).
-
-
-======================================================================
-
-CHANGES BETWEEN 2.0.2 and 2.0.1
-
- I. CHANGES TO THE MODULES / FONT DRIVERS
-
- - THE TRUETYPE BYTECODE INTERPRETER IS NOW TURNED OFF, in order to
- avoid legal problems with the Apple patents. It seems that we
- mistakenly turned this option on in previous releases of the
- build.
-
- Note that if you want to use the bytecode interpreter in order
- to get high-quality TrueType rendering, you will need to toggle
- by hand the definition of the
- TT_CONFIG_OPTION_BYTECODE_INTERPRETER macro in the file
- `include/freetype/config/ftoption.h'.
-
- - The CFF driver has been improved by Tom Kacvinsky and Sander van
- der Wal:
-
- * Support for `seac' emulation.
- * Support for `dotsection'.
- * Support for retrieving glyph names through
- `FT_Get_Glyph_Name'.
-
- The first two items are necessary to correctly a large number of
- Type 1 fonts converted to the CFF formats by Adobe Acrobat.
-
- - The Type 1 driver was also improved by Tom & others:
-
- * Better EM size computation.
- * Better support for synthetic (transformed) fonts.
- * The Type 1 driver returns the charstrings corresponding to
- each glyph in the `glyph->control_data' field after a call to
- `FT_Load_Glyph' (thanks Ha Shao).
-
- - Various other bugfixes, including the following:
-
- * Fixed a nasty memory leak in the Type 1 driver.
- * The autohinter and the pcf driver used static writable data
- when they shouldn't.
- * Many casts were added to make the code more 64-bits safe. It
- also now compiles on Windows XP 64-bits without warnings.
- * Some incorrect writable statics were removed in the `autohint'
- and `pcf' drivers. FreeType 2 now compiles on Epoc again.
-
-
- II. CHANGES TO THE HIGH-LEVEL API
-
- - The library header files inclusion scheme has been changed. The
- old scheme looked like:
-
- #include <freetype/freetype.h>
- #include <freetype/ftglyph.h>
- #include <freetype/ftcache.h>
- #include <freetype/cache/ftimage.h>
-
- Now you should use:
-
- #include <ft2build.h>
- #include FT_FREETYPE_H
- #include FT_GLYPH_H
- #include FT_CACHE_H
- #include FT_CACHE_IMAGE_H
-
- NOTE THAT THE OLD INCLUSION SCHEME WILL STILL WORK WITH THIS
- RELEASE. HOWEVER, WE DO NOT GUARANTEE THAT THIS WILL STILL BE
- TRUE IN THE NEXT ONE (A.K.A. FREETYPE 2.1).
-
- The file <ft2build.h> is used to define the header filename
- macros. The complete and commented list of macros is available
- in the API reference under the section name `Header File Macros'
- in Chapter I.
-
- For more information, see section I of the following document:
-
- http://www.freetype.org/
- freetype2/docs/tutorial/step1.html
-
- or
-
- http://freetype.sourceforge.net/
- freetype2/docs/tutorial/step1.html
-
- - Many, many comments have been added to the public source file in
- order to automatically generate the API Reference through the
- `docmaker.py' Python script.
-
- The latter has been updated to support the grouping of sections
- in chapters and better index sort. See:
-
- http://www.freetype.org/freetype2/docs/reference/ft2-toc.html
-
-
- III. CHANGES TO THE BUILD PROCESS
-
- - If you are not building FreeType 2 with its own build system
- (but with your own Makefiles or project files), you will need to
- be aware that the build process has changed a little bit.
-
- You don't need to put the `src' directory in the include path
- when compiling any FT2 component. Instead, simply put the
- component's directory in the current include path.
-
- So, if you were doing something like:
-
- cc -c -Iinclude -Isrc src/base/ftbase.c
-
- change the line to:
-
- cc -c -Iinclude -Isrc/base src/base/ftbase.c
-
- If you were doing something like:
-
- cd src/base
- cc -c -I../../include -I.. ftbase.c
-
- change it to:
-
- cd src/base
- cc -c -I../../include ftbase.c
-
-
-======================================================================
-
-CHANGES BETWEEN 2.0.1 and 2.0
-
- 2.0.1 introduces a few changes:
-
- - Fixed many bugs related to the support of CFF / OpenType fonts.
- These formats are now much better supported though there is
- still work planned to deal with charset tables and PDF-embedded
- CFF files that use the old `seac' command.
-
- - The library could not be compiled in debug mode with a very
- small number of C compilers whose pre-processors didn't
- implement the `##' directive correctly (i.e. per se the ANSI C
- specification!) An elegant fix was found.
-
- - Added support for the free Borland command-line C++ Builder
- compiler. Use `make setup bcc32'. Also fixed a few source
- lines that generated new warnings with BCC32.
-
- - Fixed a bug in FT_Outline_Get_BBox when computing the extrema of
- a conic Bezier arc.
-
- - Updated the INSTALL file to add IDE compilation.
-
- - Other minor bug fixes, from invalid Type 1 style flags to
- correct support of synthetic (obliqued) fonts in the
- auto-hinter, better support for embedded bitmaps in a SFNT font.
-
- - Fixed some problems with `freetype-config'.
-
- Finally, the `standard' scheme for including FreeType headers is now
- gradually changing, but this will be explained in a later release
- (probably 2.0.2).
-
- And very special thanks to Tom Kacvinsky and YAMANO-UCHI Hidetoshi
- for their contributions!
-
-
-======================================================================
-
-CHANGES BETWEEN beta8 and 2.0
-
- - Changed the default installation path for public headers from
- `include/freetype' to `include/freetype2'.
-
- Also added a new `freetype-config' that is automatically generated
- and installed on Unix and Cygwin systems. The script itself is
- used to retrieve the current install path, C compilation flags as
- well as linker flags.
-
- - Fixed several small bugs:
-
- * Incorrect max advance width for fixed-pitch Type 1 fonts.
- * Incorrect glyph names for certain TrueType fonts.
- * The glyph advance was not copied when FT_Glyph_To_Bitmap was
- called.
- * The linearHoriAdvance and linearVertAdvance fields were not
- correctly returned for glyphs processed by the auto-hinter.
- * `type1z' renamed back to `type1'; the old `type1' module has
- been removed.
-
- - Revamped the build system to make it a lot more generic. This
- will allow us to re-use nearly un-modified in lots of other
- projects (including FreeType Layout).
-
- - Changed `cid' to use `psaux' too.
-
- - Added the cache sub-system. See <freetype/ftcache.h> as well as
- the sources in `src/cache'. Note that it compiles but is still
- untested for now.
-
- - Updated `docs/docmaker.py', a draft API reference is available at
- http://www.freetype.org/ft2api.html.
-
- - Changed `type1' to use `psaux'.
-
- - Created a new module named `psaux' to hold the Type 1 & Type 2
- parsing routines. It should be used by `type1', `cid', and `cff'
- in the future.
-
- - Fixed an important bug in `FT_Glyph_Get_CBox'.
-
- - Fixed some compiler warnings that happened since the TrueType
- bytecode decoder was deactivated by default.
-
- - Fixed two memory leaks:
-
- * The memory manager (16 bytes) isn't released in
- FT_Done_FreeType!
- * Using custom input streams, the copy of the original stream was
- never released.
-
- - Fixed the auto-hinter by performing automatic computation of the
- `filling direction' of each glyph. This is done through a simple
- and fast approximation, and seems to work (problems spotted by
- Werner though). The Arphic fonts are a lot nicer though there are
- still a lot of things to do to handle Asian fonts correctly.
-
-
-======================================================================
-
-BETA-8 (RELEASE CANDIDATE) CHANGES
-
- - Deactivated the TrueType bytecode interpreter by default.
-
- - Deactivated the `src/type1' font driver. Now `src/type1z' is used
- by default.
-
- - Updates to the build system. We now compile the library correctly
- under Unix system through `configure' which is automatically
- called on the first `make' invocation.
-
- - Added the auto-hinting module! Fixing some bugs here and there.
-
- - Found some bugs in the composite loader (seac) of the Type1-based
- font drivers.
-
- - Renamed the directory `freetype2/config' to `freetype2/builds' and
- updated all relevant files.
-
- - Found a memory leak in the `type1' driver.
-
- - Incorporated Tom's patches to support flex operators correctly in
- OpenType/CFF fonts. Now all I need is to support pure CFF and CEF
- fonts to be done with this driver :-)
-
- - Added the Windows FNT/FON driver in `src/winfonts'. For now, it
- always `simulates' a Unicode charmap, so it shouldn't be
- considered completed right now.
-
- It is there to be more a proof of concept than anything else
- anyway. The driver is a single C source file, that compiles to 3
- Kb of code.
-
- I'm still working on the PCF/BDF drivers, but I'm too lazy to
- finish them now.
-
- - CHANGES TO THE HIGH-LEVEL API
-
- * FT_Get_Kerning has a new parameter that allows you to select the
- coordinates of the kerning vector (font units, scaled, scaled +
- grid-fitted).
- * The outline functions are now in <freetype/ftoutln.h> and not
- part of <freetype/freetype.h> anymore.
- * <freetype/ftmodule.h> now contains declarations for
- FT_New_Library, FT_Done_Library, FT_Add_Default_Modules.
- * The so-called convenience functions have moved from `ftoutln.c'
- to `ftglyph.c', and are thus available with this optional
- component of the library. They are declared in
- <freetype/ftglyph.h> now.
- * Anti-aliased rendering is now the default for FT_Render_Glyph
- (i.e. corresponds to render_mode == 0 == ft_render_mode_normal).
- To generate a monochrome bitmap, use ft_render_mode_mono, or the
- FT_LOAD_MONOCHROME flag in FT_Load_Glyph/FT_Load_Char.
- FT_LOAD_ANTI_ALIAS is still defined, but values to 0.
- * <freetype/freetype.h> now include <freetype/config/ftconfig.h>,
- solving a few headaches :-)
- * The type FT_GlyphSlotRec has now a `library' field.
-
- - CHANGES TO THE `ftglyph.h' API
-
- This API has been severely modified in order to make it simpler,
- clearer, and more efficient. It certainly now looks like a real
- `glyph factory' object, and allows client applications to manage
- (i.e. transform, bbox and render) glyph images without ever
- knowing their original format.
-
- - Added support for CID-keyed fonts to the CFF driver. Maybe
- support for pure CFF + CEF fonts should come in?
-
- - Cleaned up source code in order to avoid two functions with the
- same name. Also changed the names of the files in `type1z' from
- `t1XXXX' to `z1XXXX' in order to avoid any conflicts.
-
- `make multi' now works well :-)
-
- Also removed the use of `cidafm' for now, even if the source files
- are still there. This functionality will certainly go into a
- specific module.
-
- - ADDED SUPPORT FOR THE AUTO-HINTER
-
- It works :-) I have a demo program which simply is a copy of
- `ftview' that does a `FT_Add_Module(library,
- &autohinter_module_class)' after library initialization, and Type
- 1 & OpenType/CFF fonts are now hinted.
-
- CID fonts are not hinted, as they include no charmap and the
- auto-hinter doesn't include `generic' global metrics computations
- yet.
-
- Now, I need to release this thing to the FreeType 2 source.
-
- - CHANGES TO THE RENDERER MODULES
-
- The monochrome and smooth renderers are now in two distinct
- directories, namely `src/raster1' and `src/smooth'. Note that the
- old `src/renderer' is now gone.
-
- I ditched the 5-gray-levels renderers. Basically, it involved a
- simple #define toggle in 'src/raster1/ftraster.c'.
-
- FT_Render_Glyph, FT_Outline_Render & FT_Outline_Get_Bitmap now
- select the best renderer available, depending on render mode. If
- the current renderer for a given glyph image format isn't capable
- of supporting the render mode, another one will be found in the
- library's list. This means that client applications do not need
- to switch or set the renderers themselves (as in the latest
- change), they'll get what they want automatically. At last.
-
- Changed the demo programs accordingly.
-
- - MAJOR INTERNAL REDESIGN:
-
- A lot of internal modifications have been performed lately on the
- source in order to provide the following enhancements:
-
- * More generic module support:
-
- The FT_Module type is now defined to represent a handle to a
- given module. The file <freetype/ftmodule.h> contains the
- FT_Module_Class definition, as well as the module-loading public
- API.
-
- The FT_Driver type is still defined, and still represents a
- pointer to a font driver. Note that FT_Add_Driver is replaced
- by FT_Add_Module, FT_Get_Driver by FT_Get_Module, etc.
-
- * Support for generic glyph image types:
-
- The FT_Renderer type is a pointer to a module used to perform
- various operations on glyph image.
-
- Each renderer is capable of handling images in a single format
- (e.g. ft_glyph_format_outline). Its functions are used to:
-
- - transform an glyph image
- - render a glyph image into a bitmap
- - return the control box (dimensions) of a given glyph image
-
- The scan converters `ftraster.c' and `ftgrays.c' have been moved
- to the new directory `src/renderer', and are used to provide two
- default renderer modules.
-
- One corresponds to the `standard' scan-converter, the other to
- the `smooth' one.
-
- he current renderer can be set through the new function
- FT_Set_Renderer.
-
- The old raster-related function FT_Set_Raster, FT_Get_Raster and
- FT_Set_Raster_Mode have now disappeared, in favor of the new:
-
- FT_Get_Renderer
- FT_Set_Renderer
-
- See the file <freetype/ftrender.h> for more details.
-
- These changes were necessary to properly support different
- scalable formats in the future, like bi-color glyphs, etc.
-
- * Glyph loader object:
-
- A new internal object, called a 'glyph loader' has been
- introduced in the base layer. It is used by all scalable format
- font drivers to load glyphs and composites.
-
- This object has been created to reduce the code size of each
- driver, as each one of them basically re-implemented its
- functionality.
-
- See <freetype/internal/ftobjs.h> and the FT_GlyphLoader type for
- more information.
-
- * FT_GlyphSlot has new fields:
-
- In order to support extended features (see below), the
- FT_GlyphSlot structure has a few new fields:
-
- linearHoriAdvance:
-
- This field gives the linearly scaled (i.e. scaled but
- unhinted) advance width for the glyph, expressed as a 16.16
- fixed pixel value. This is useful to perform WYSIWYG text.
-
- linearVertAdvance:
- This field gives the linearly scaled advance height for the
- glyph (relevant in vertical glyph layouts only). This is
- useful to perform WYSIWYG text.
-
- Note that the two above field replace the removed `metrics2'
- field in the glyph slot.
-
- advance:
- This field is a vector that gives the transformed advance for
- the glyph. By default, it corresponds to the advance width,
- unless FT_LOAD_VERTICAL_LAYOUT was specified when calling
- FT_Load_Glyph or FT_Load_Char.
-
- bitmap_left:
- This field gives the distance in integer pixels from the
- current pen position to the left-most pixel of a glyph image
- IF IT IS A BITMAP. It is only valid when the `format' field
- is set to `ft_glyph_format_bitmap', for example, after calling
- the new function FT_Render_Glyph.
-
- bitmap_top:
- This field gives the distance in integer pixels from the
- current pen position (located on the baseline) to the top-most
- pixel of the glyph image IF IT IS A BITMAP. Positive values
- correspond to upwards Y.
-
- loader:
- This is a new private field for the glyph slot. Client
- applications should not touch it.
-
-
- * Support for transforms and direct rendering in FT_Load_Glyph:
-
- Most of the functionality found in <freetype/ftglyph.h> has been
- moved to the core library. Hence, the following:
-
- - A transform can be specified for a face through
- FT_Set_Transform. this transform is applied by FT_Load_Glyph
- to scalable glyph images (i.e. NOT TO BITMAPS) before the
- function returns, unless the bit flag FT_LOAD_IGNORE_TRANSFORM
- was set in the load flags.
-
- - Once a glyph image has been loaded, it can be directly
- converted to a bitmap by using the new FT_Render_Glyph
- function. Note that this function takes the glyph image from
- the glyph slot, and converts it to a bitmap whose properties
- are returned in `face.glyph.bitmap', `face.glyph.bitmap_left'
- and `face.glyph.bitmap_top'. The original native image might
- be lost after the conversion.
-
- - When using the new bit flag FT_LOAD_RENDER, the FT_Load_Glyph
- and FT_Load_Char functions will call FT_Render_Glyph
- automatically when needed.
-
- - Reformatted all modules source code in order to get rid of the
- basic data types redifinitions (i.e. `TT_Int' instead of `FT_Int',
- `T1_Fixed' instead of `FT_Fixed'). Hence the format-specific
- prefixes like `TT_', `T1_', `T2_' and `CID_' are only used for
- relevant structures.
-
-
-======================================================================
-
-OLD CHANGES FOR BETA 7
-
- - bug-fixed the OpenType/CFF parser. It now loads and displays my
- two fonts nicely, but I'm pretty certain that more testing is
- needed :-)
-
- - fixed the crummy Type 1 hinter, it now handles accented characters
- correctly (well, the accent is not always well placed, but that's
- another problem..)
-
- - added the CID-keyed Type 1 driver in `src/cid'. Works pretty well
- for only 13 Kb of code ;-) Doesn't read AFM files though, nor the
- really useful CMAP files..
-
- - fixed two bugs in the smooth renderer (src/base/ftgrays.c).
- Thanks to Boris Letocha for spotting them and providing a fix.
-
- - fixed potential `divide by zero' bugs in ftcalc.c.
-
- - added source code for the OpenType/CFF driver (still incomplete
- though..)
-
- - modified the SFNT driver slightly to perform more robust header
- checks in TT_Load_SFNT_Header. This prevents certain font files
- (e.g. some Type 1 Multiple Masters) from being incorrectly
- `recognized' as TrueType font files..
-
- - moved a lot of stuff from the TrueType driver to the SFNT module,
- this allows greater code re-use between font drivers
- (e.g. TrueType, OpenType, Compact-TrueType, etc..)
-
- - added a tiny segment cache to the SFNT Charmap 4 decoder, in order
- to minimally speed it up..
-
- - added support for Multiple Master fonts in `type1z'. There is
- also a new file named <freetype/ftmm.h> which defines functions to
- manage them from client applications.
-
- The new file `src/base/ftmm.c' is also optional to the engine..
-
- - various formatting changes (e.g. EXPORT_DEF -> FT_EXPORT_DEF) +
- small bug fixes in FT_Load_Glyph, the `type1' driver, etc..
-
- - a minor fix to the Type 1 driver to let them apply the font matrix
- correctly (used for many oblique fonts..)
-
- - some fixes for 64-bit systems (mainly changing some FT_TRACE calls
- to use %p instead of %lx). Thanks to Karl Robillard.
-
- - fixed some bugs in the sbit loader (src/base/sfnt/ttsbit.c) +
- added a new flag, FT_LOAD_CROP_BITMAP to query that bitmaps be
- cropped when loaded from a file (maybe I should move the bitmap
- cropper to the base layer ??).
-
- - changed the default number of gray levels of the smooth renderer
- to 256 (instead of the previous 128). Of course, the human eye
- can't see any difference ;-)
-
- - removed TT_MAX_SUBGLYPHS, there is no static limit on the number
- of subglyphs in a TrueType font now..
-
-
-======================================================================
-
-OLD CHANGES 16 May 2000
-
- - tagged `BETA-6' in the CVS tree. This one is a serious release
- candidate even though it doesn't incorporate the auto-hinter yet..
-
- - various obsolete files were removed, and copyright header updated
-
- - finally updated the standard raster to fix the monochrome
- rendering bug + re-enable support for 5-gray levels anti-aliasing
- (suck, suck..)
-
- - created new header files, and modified sources accordingly:
-
- <freetype/fttypes.h>
- - simple FreeType types, without the API
- <freetype/internal/ftmemory.h>
- - definition of memory-management macros
-
- - added the `DSIG' (OpenType Digital Signature) tag to
- <freetype/tttags.h>
-
- - light update/cleaning of the build system + changes to the sources
- in order to get rid of _all_ compiler warnings with three
- compilers, i.e:
-
- gcc with `-ansi -pedantic -Wall -W', Visual C++ with `/W3 /WX' and
- LCC
-
- IMPORTANT NOTE FOR WIN32-LCC USERS:
- |
- | It seems the C pre-processor that comes with LCC is broken, it
- | doesn't recognize the ANSI standard directives # and ##
- | correctly when one of the argument is a macro. Also,
- | something like:
- |
- | #define F(x) print##x
- |
- | F(("hello"))
- |
- | will get incorrectly translated to:
- |
- | print "hello")
- |
- | by its pre-processor. For this reason, you simply cannot build
- | FreeType 2 in debug mode with this compiler..
-
- - yet another massive grunt work. I've changed the definition of
- the EXPORT_DEF, EXPORT_FUNC, BASE_DEF & BASE_FUNC macros. These
- now take an argument, which is the function's return value type.
-
- This is necessary to compile FreeType as a DLL on Windows and
- OS/2. Depending on the compiler used, a compiler-specific keyword
- like __export or __system must be placed before (VisualC++) or
- after (BorlandC++) the type..
-
- Of course, this needed a lot of changes throughout the source code
- to make it compile again... All cleaned up now, apparently..
-
- Note also that there is a new EXPORT_VAR macro defined to allow
- the _declaration_ of an exportable public (constant)
- variable. This is the case of the raster interfaces (see
- ftraster.h and ftgrays.h), as well as each module's interface (see
- sfdriver.h, psdriver.h, etc..)
-
- - new feature: it is now possible to pass extra parameters to font
- drivers when creating a new face object. For now,
- this capability is unused. It could however prove to
- be useful in a near future..
-
- the FT_Open_Args structure was changes, as well as the internal
- driver interface (the specific `init_face' module function has
- now a different signature).
-
- - updated the tutorial (not finished though).
-
- - updated the top-level BUILD document
-
- - fixed a potential memory leak that could occur when loading
- embedded bitmaps.
-
- - added the declaration of FT_New_Memory_Face in
- <freetype/freetype.h>, as it was missing from the public header
- (the implementation was already in `ftobjs.c').
-
- - the file <freetype/fterrors.h> has been seriously updated in order
- to allow the automatic generation of error message tables. See
- the comments within it for more information.
-
- - major directory hierarchy re-organisation. This was done for two
- things:
-
- * first, to ease the `manual' compilation of the library by
- requiring at lot less include paths :-)
-
- * second, to allow external programs to effectively access
- internal data fields. For example, this can be extremely
- useful if someone wants to write a font producer or a font
- manager on top of FreeType.
-
- Basically, you should now use the 'freetype/' prefix for header
- inclusion, as in:
-
- #include <freetype/freetype.h>
- #include <freetype/ftglyph.h>
-
- Some new include sub-directories are available:
-
- a. the `freetype/config' directory, contains two files used to
- configure the build of the library. Client applications
- should not need to look at these normally, but they can if
- they want.
-
- #include <freetype/config/ftoption.h>
- #include <freetype/config/ftconfig.h>
-
- b. the `freetype/internal' directory, contains header files that
- describes library internals. These are the header files that
- were previously found in the `src/base' and `src/shared'
- directories.
-
-
- As usual, the build system and the demos have been updated to
- reflect the change..
-
- Here's a layout of the new directory hierarchy:
-
- TOP_DIR
- include/
- freetype/
- freetype.h
- ...
- config/
- ftoption.h
- ftconfig.h
- ftmodule.h
-
- internal/
- ftobjs.h
- ftstream.h
- ftcalc.h
- ...
-
- src/
- base/
- ...
-
- sfnt/
- psnames/
- truetype/
- type1/
- type1z/
-
-
- Compiling a module is now much easier, for example, the following
- should work when in the TOP_DIR directory on an ANSI build:
-
- gcc -c -I./include -I./src/base src/base/ftbase.c
- gcc -c -I./include -I./src/sfnt src/sfnt/sfnt.c
- etc..
-
- (of course, using -Iconfig/<system> if you provide system-specific
- configuration files).
-
- - updated the structure of FT_Outline_Funcs in order to allow direct
- coordinate scaling within the outline decomposition routine (this
- is important for virtual `on' points with TrueType outlines) +
- updates to the rasters to support this..
-
- - updated the OS/2 table loading code in `src/sfnt/ttload.c' in
- order to support version 2 of the table (see OpenType 1.2 spec)
-
- - created `include/tttables.h' and `include/t1tables.h' to allow
- client applications to access some of the SFNT and T1 tables of a
- face with a procedural interface (see `FT_Get_Sfnt_Table') +
- updates to internal source files to reflect the change..
-
- - some cleanups in the source code to get rid of warnings when
- compiling with the `-Wall -W -ansi -pedantic' options in gcc.
-
- - debugged and moved the smooth renderer to `src/base/ftgrays.c' and
- its header to `include/ftgrays.h'
-
- - updated TT_MAX_SUBGLYPHS to 96 as some CJK fonts have composites
- with up to 80 sub-glyphs !! Thanks to Werner
-
-
-======================================================================
-
-OLD CHANGES - 14-apr-2000
-
- - fixed a bug in the TrueType glyph loader that prevented the
- correct loading of some CJK glyphs in mingli.ttf
-
- - improved the standard Type 1 hinter in `src/type1'
-
- - fixed two bugs in the experimental Type 1 driver in `src/type1z'
- to handle the new XFree86 4.0 fonts (and a few other ones..)
-
- - the smooth renderer is now complete and supports sub-banding to
- render large glyphs at high speed. However, it is still located
- in `demos/src/ftgrays.c' and should move to the library itself in
- the next beta. NOTE: The smooth renderer doesn't compile in
- stand-alone mode anymore, but this should be fixed RSN..
-
- - introduced convenience functions to more easily deal with glyph
- images, see `include/ftglyph.h' for more details, as well as the
- new demo program named `demos/src/ftstring.c' that demonstrates
- its use
-
- - implemented FT_LOAD_NO_RECURSE in both the TrueType and Type 1
- drivers (this is required by the auto-hinter to improve its
- results).
-
- - changed the raster interface, in order to allow client
- applications to provide their own span-drawing callbacks.
- However, only the smooth renderer supports this. See
- `FT_Raster_Params' in the file `include/ftimage.h'.
-
- - fixed a small bug in FT_MulFix that caused incorrect transform
- computation!
-
- - Note: The tutorial is out-of-date.
-
-
-======================================================================
-
-OLD CHANGES - 12-mar-2000
-
- - changed the layout of configuration files : now, all ANSI
- configuration files are located in
- `freetype2/config'. System-specific over-rides can be placed in
- `freetype2/config/<system>'.
-
- - moved all configuration macros to `config/ftoption.h'
-
- - improvements in the Type 1 driver with AFM support
-
- - changed the fields in the FT_Outline structure : the old `flags'
- array is re-named `tags', while all ancient flags are encoded into
- a single unsigned int named `flags'.
-
- - introduced new flags in FT_Outline.flags (see
- ft_outline_.... enums in `ftimage.h').
-
- - changed outline functions to `FT_Outline_<action>' syntax
-
- - added a smooth anti-alias renderer to the demonstration programs
-
- - added Mac graphics driver (thanks Just)
-
- - FT_Open_Face changed in order to received a pointer to a
- FT_Open_Args descriptor..
-
- - various cleanups, a few more API functions implemented (see
- FT_Attach_File)
-
- - updated some docs
-
-
-======================================================================
-
-OLD CHANGES - 22-feb-2000
-
- - introduced the `psnames' module. It is used to:
-
- o convert a Postscript glyph name into the equivalent Unicode
- character code (used by the Type 1 driver(s) to synthesize on
- the fly a Unicode charmap).
-
- o provide an interface to retrieve the Postscript names of the
- Macintosh, Adobe Standard & Adobe Expert character codes.
- (the Macintosh names are used by the SFNT-module postscript
- names support routines, while the other two tables are used by
- the Type 1 driver(s)).
-
- - introduced the `type1z' alternate Type 1 driver. This is a (still
- experimental) driver for the Type 1 format that will ultimately
- replace the one in `src/type1'. It uses pattern matching to load
- data from the font, instead of a finite state analyzer. It works
- much better than the `old' driver with `broken' fonts. It is also
- much smaller (under 15 Kb).
-
- - the Type 1 drivers (both in `src/type1' and `src/type1z') are
- nearly complete. They both provide automatic Unicode charmap
- synthesis through the `psnames' module. No re-encoding vector is
- needed. (note that they still leak memory due to some code
- missing, and I'm getting lazy).
-
- Trivial AFM support has been added to read kerning information but
- wasn't exactly tested as it should ;-)
-
- - The TrueType glyph loader has been seriously rewritten (see the
- file `src/truetype/ttgload.c'. It is now much, much simpler as
- well as easier to read, maintain and understand :-) Preliminary
- versions introduced a memory leak that has been reported by Jack
- Davis, and is now fixed..
-
- - introduced the new `ft_glyph_format_plotter', used to represent
- stroked outlines like Windows `Vector' fonts, and certain Type 1
- fonts like `Hershey'. The corresponding raster will be written
- soon.
-
- - FT_New_Memory_Face is gone. Likewise, FT_Open_Face has a new
- interface that uses a structure to describe the input stream, the
- driver (if required), etc..
-
-
-TODO
-
- - Write FT_Get_Glyph_Bitmap and FT_Load_Glyph_Bitmap
-
- - Add a function like FT_Load_Character(face, char_code, load_flags)
- that would really embed a call to FT_Get_Char_Index then
- FT_Load_Glyph to ease developer's work.
-
- - Update the tutorial!
-
- - consider adding support for Multiple Master fonts in the Type 1
- drivers.
-
- - Test the AFM routines of the Type 1 drivers to check that kerning
- information is returned correctly.
-
- - write a decent auto-gridding component !! We need this to release
- FreeType 2.0 gold !
-
-
-less urgent needs:
-
- - add a CFF/Type2 driver
- - add a BDF driver
- - add a FNT/PCF/HBF driver
- - add a Speedo driver from the X11 sources
-
-
-======================================================================
-
-OLDER CHANGES - 27-jan-2000
-
- - updated the `sfnt' module interface to allow several SFNT-based
- drivers to co-exist peacefully
-
- - updated the `T1_Face' type to better separate Postscript font
- content from the rest of the FT_Face structure. Might be used
- later by the CFF/Type2 driver..
-
- - added an experimental replacement Type 1 driver featuring advanced
- (and speedy) pattern matching to retrieve the data from postscript
- fonts.
-
- - very minor changes in the implementation of FT_Set_Char_Size and
- FT_Set_Pixel_Sizes (they now implement default to lighten the font
- driver's code).
-
-
-======================================================================
-
-OLD MESSAGE
-
-This file summarizes the changes that occurred since the last `beta'
-of FreeType 2. Because the list is important, it has been divided into
-separate sections:
-
-Table Of Contents:
-
- I High-Level Interface (easier !)
- II Directory Structure
- III Glyph Image Formats
- IV Build System
- V Portability
- VI Font Drivers
-
-
-----------------------------------------------------------------------
-
-High-Level Interface:
-
- The high-level API has been considerably simplified. Here is how:
-
- - resource objects have disappeared. this means that face objects
- can now be created with a single function call (see FT_New_Face
- and FT_Open_Face)
-
- - when calling either FT_New_Face & FT_Open_Face, a size object
- and a glyph slot object are automatically created for the face,
- and can be accessed through `face->glyph' and `face->size' if
- one really needs to. In most cases, there's no need to call
- FT_New_Size or FT_New_Glyph.
-
- - similarly, FT_Load_Glyph now only takes a `face' argument
- (instead of a glyph slot and a size). Also, its `result'
- parameter is gone, as the glyph image type is returned in the
- field `face->glyph.format'
-
- - the list of available charmaps is directly accessible through
- `face->charmaps', counting `face->num_charmaps' elements. Each
- charmap has an 'encoding' field which specifies which known
- encoding it deals with. Valid values are, for example:
-
- ft_encoding_unicode (for ASCII, Latin-1 and Unicode)
- ft_encoding_apple_roman
- ft_encoding_sjis
- ft_encoding_adobe_standard
- ft_encoding_adobe_expert
-
- other values may be added in the future. Each charmap still
- holds its `platform_id' and `encoding_id' values in case the
- encoding is too exotic for the current library
-
-
-----------------------------------------------------------------------
-
-Directory Structure:
-
- Should seem obvious to most of you:
-
- freetype/
- config/ -- configuration sub-makefiles
- ansi/
- unix/ -- platform-specific configuration files
- win32/
- os2/
- msdos/
-
- include/ -- public header files, those to be included
- directly by client apps
-
- src/ -- sources of the library
- base/ -- the base layer
- sfnt/ -- the sfnt `driver' (see the drivers section
- below)
- truetype/ -- the truetype driver
- type1/ -- the type1 driver
- shared/ -- some header files shared between drivers
-
- demos/ -- demos/tools
-
- docs/ -- documentation (a bit empty for now)
-
-
-----------------------------------------------------------------------
-
-Glyph Image Formats:
-
- Drivers are now able to register new glyph image formats within the
- library. For now, the base layer supports of course bitmaps and
- vector outlines, but one could imagine something different like
- colored bitmaps, bi-color vectors or whatever else (Metafonts anyone
- ??).
-
- See the file `include/ftimage.h'. Note also that the type
- FT_Raster_Map is gone, and is now replaced by FT_Bitmap, which
- should encompass all known bitmap types.
-
- Each new image format must provide at least one `raster', i.e. a
- module capable of transforming the glyph image into a bitmap. It's
- also possible to change the default raster used for a given glyph
- image format.
-
- The default outline scan-converter now uses 128 levels of grays by
- default, which tends to smooth many things. Note that the demo
- programs have been updated significantly in order to display these..
-
-
-----------------------------------------------------------------------
-
-Build system:
-
- You still need GNU Make to build the library. The build system has
- been very seriously re-vamped in order to provide things like :
-
- - automatic host platform detection (reverting to 'config/ansi' if
- it is not detected, with pseudo-standard compilation flags)
-
- - the ability to compile from the Makefiles with very different and
- exotic compilers. Note that linking the library can be difficult
- for some platforms.
-
- For example, the file `config/win32/lcclib.bat' is invoked by the
- build system to create the `.lib' file with LCC-Win32 because its
- librarian has too many flaws to be invoked directly from the
- Makefile.
-
- Here's how it works:
-
- - the first time you type `make', the build system runs a series of
- sub-makefiles in order to detect your host platform. It then
- dumps what it found, and creates a file called `config.mk' in the
- current directory. This is a sub-Makefile used to define many
- important Make variables used to build the library.
-
- - the second time, the build system detects the `config.mk' then use
- it to build the library. All object files go into 'obj' by
- default, as well as the library file, but this can easily be
- changed.
-
- Note that you can run `make setup' to force another host platform
- detection even if a `config.mk' is present in the current
- directory. Another solution is simply to delete the file, then
- re-run make.
-
- Finally, the default compiler for all platforms is gcc (for now,
- this will hopefully changed in the future). You can however specify
- a different compiler by specifying it after the 'setup' target as
- in:
-
- gnumake setup lcc on Win32 to use the LCC compiler
- gnumake setup visualc on Win32 to use Visual C++
-
- See the file `config/<system>/detect.mk' for a list of supported
- compilers for your platforms.
-
- It should be relatively easy to write new detection rules files and
- config.mk..
-
- Finally, to build the demo programs, go to `demos' and launch GNU
- Make, it will use the `config.mk' in the top directory to build the
- test programs..
-
-
-----------------------------------------------------------------------
-
-Portability:
-
- In the previous beta, a single FT_System object was used to
- encompass all low-level operations like thread synchronisation,
- memory management and i/o access. This has been greatly simplified:
-
- - thread synchronisation has been dropped, for the simple reason
- that the library is already re-entrant, and that if you really
- need two threads accessing the same FT_Library, you should
- really synchronize access to it yourself with a simple mutex.
-
- - memory management is performed through a very simple object
- called `FT_Memory', which really is a table containing a table
- of pointers to functions like malloc, realloc and free as well
- as some user data (closure).
-
- - resources have disappeared (they created more problems than they
- solved), and i/o management have been simplified greatly as a
- result. Streams are defined through FT_Stream objects, which
- can be either memory-based or disk-based.
-
- Note that each face has its own stream, which is closed only
- when the face object is destroyed. Hence, a function like
- TT_Flush_Face in 1.x cannot be directly supported. However, if
- you really need something like this, you can easily tailor your
- own streams to achieve the same feature at a lower level (and
- use FT_Open_Face instead of FT_New_Face to create the face).
-
- See the file `include/ftsystem.h' for more details, as well as the
- implementations found in `config/unix' and `config/ansi'.
-
-
-----------------------------------------------------------------------
-
-Font Drivers:
-
- The Font Driver interface has been modified in order to support
- extensions & versioning.
-
-
- The list of the font drivers that are statically linked to the
- library at compile time is managed through a new configuration file
- called `config/<platform>/ftmodule.h'.
-
- This file is autogenerated when invoking `make modules'. This
- target will parse all sub-directories of 'src', looking for a
- `module.mk' rules file, used to describe the driver to the build
- system.
-
- Hence, one should call `make modules' each time a font driver is
- added or removed from the `src' directory.
-
- Finally, this version provides a `pseudo-driver' in `src/sfnt'.
- This driver doesn't support font files directly, but provides
- services used by all TrueType-like font drivers. Hence, its code is
- shared between the TrueType & OpenType font formats, and possibly
- more formats to come if we're lucky..
-
-
-----------------------------------------------------------------------
-
-Extensions support:
-
- The extensions support is inspired by the one found in 1.x.
-
- Now, each font driver has its own `extension registry', which lists
- which extensions are available for the font faces managed by the
- driver.
-
- Extension ids are now strings, rather than 4-byte tags, as this is
- usually more readable.
-
- Each extension has:
- - some data, associated to each face object
- - an interface (table of function pointers)
-
- An extension that is format-specific should simply register itself
- to the correct font driver. Here is some example code:
-
- // Registering an extensions
- //
- FT_Error FT_Init_XXXX_Extension( FT_Library library )
- {
- FT_DriverInterface* tt_driver;
-
- driver = FT_Get_Driver( library, "truetype" );
- if (!driver) return FT_Err_Unimplemented_Feature;
-
- return FT_Register_Extension( driver, &extension_class );
- }
-
-
- // Implementing the extensions
- //
- FT_Error FT_Proceed_Extension_XXX( FT_Face face )
- {
- FT_XXX_Extension ext;
- FT_XXX_Extension_Interface ext_interface;
-
- ext = FT_Get_Extension( face, "extensionid", &ext_interface );
- if (!ext) return error;
-
- return ext_interface->do_it(ext);
- }
-
-------------------------------------------------------------------------
-
-Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 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.
-
-
-Local Variables:
-version-control: never
-coding: utf-8
-End:
-
---- end of CHANGES ---
+CHANGES BETWEEN 2.3.11 and 2.3.12 + + I. IMPORTANT CHANGES + + - For `FT_Open_Face', new parameters are available to ignore + preferred family names: FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY and + FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY. + + II. MISCELLANEOUS + + - Support for incremental font loading (controlled with the + FT_CONFIG_OPTION_INCREMENTAL macro) is now active by default. + + - Better support for vertical metrics. + + - Various minor bug fixes. + + +====================================================================== + +CHANGES BETWEEN 2.3.10 and 2.3.11 + + I. IMPORTANT BUG FIXES + + - Version 2.3.10 broke PCF support. + + +====================================================================== + +CHANGES BETWEEN 2.3.10 and 2.3.9 + + I. IMPORTANT BUG FIXES + + - If all ASCII digits in a font have the same (unscaled) width, + the autohinter respects this and won't change it. + + - TrueType fonts are now rasterized correctly if the horizontal + and vertical resolution differ. + + - Type 1 fonts are now handled with increased precision internally + to avoid serious rounding issues if non-integral coordinates are + encountered. + + - Horizontally condensed CFF fonts (using the font matrix) were + rendered incorrectly. This bug has been introduced after + release 2.3.5. + + + II. IMPORTANT CHANGES + + - Support for the SFNT cmap 13 table format (as defined by the new + OpenType 1.6 specification) has been added. + + - B/W rasterization of well-hinted TrueType fonts at small sizes + has been greatly improved. + + - Calculation of vertical metrics in OpenType fonts has been + improved. + + + III. MISCELLANEOUS + + - It is now possible to change the emboldening factor in the + `ftview' demo program with keys `e' and `E'. + + - It is now possible to change the slant value in the `ftview' + demo program with keys `s' and `S'. + + - The 5-levels grayscale mode of the `ftraster' module (which + FreeType doesn't use by default) was broken since version 2.3.0. + + - Compilation of the `ftgrays' and `ftraster' modules was broken + in stand-alone mode. + + - Various fixes for compilation on 64bit and 16bit architectures. + + +====================================================================== + +CHANGES BETWEEN 2.3.9 and 2.3.8 + + I. IMPORTANT BUG FIXES + + - Very unfortunately, FreeType 2.3.8 contained a change that broke + its official ABI. The end result is that programs compiled + against previous versions of the library, but dynamically linked + to 2.3.8 can experience memory corruption if they call the + `FT_Get_PS_Font_Info' function. + + We recommend all users to upgrade to 2.3.9 as soon as possible, + or to downgrade to a previous release of the library if this is + not an option. + + The origin of the bug is that a new field was added to the + publicly defined `PS_FontInfoRec' structure. Unfortunately, + objects of this type can be stack or heap allocated by callers + of `FT_Get_PS_Font_Info', resulting in a memory buffer + overwrite with its implementation in 2.3.8. + + If you want to know whether your code is vulnerable to this + issue, simply search for the substrings `PS_FontInfo' and + `PS_Font_Info' in your source code. If none is found, your code + is safe and is not affected. + + The FreeType team apologizes for the problem. + + - The POSIX support of MacOS resource-fork fonts (Suitcase fonts + and LaserWriter Type1 PostScript fonts) was broken in 2.3.8. If + FreeType2 is built without Carbon framework, these fonts are not + handled correctly. Version 2.3.7 didn't have this bug. + + - `FT_Get_Advance' (and `FT_Get_Advances') returned bad values for + almost all font formats except TrueType fonts. + + - Fix a bug in the SFNT kerning table loader/parser which could + crash the engine if certain malformed tables were encountered. + + - Composite SFNT bitmaps are now handled correctly. + + + II. IMPORTANT CHANGES + + - The new functions `FT_Get_CID_Is_Internally_CID_keyed' and + `FT_Get_CID_From_Glyph_Index' can be used to access CID-keyed + CFF fonts via CID values. This code has been contributed by + Michael Toftdal. + + + III. MISCELLANEOUS + + - `FT_Outline_Get_InsideBorder' returns FT_STROKER_BORDER_RIGHT + for empty outlines. This was incorrectly documented. + + - The `ftview' demo program now supports UTF-8 encoded strings. + + +====================================================================== + +CHANGES BETWEEN 2.3.8 and 2.3.7 + + I. IMPORTANT BUG FIXES + + - CID-keyed fonts in an SFNT wrapper were not handled correctly. + + - The smooth renderer produced truncated images (on the right) for + outline parts with negative horizontal values. Most fonts don't + contain outlines left to the y coordinate axis, but the effect + was very noticeable for outlines processed with FT_Glyph_Stroke, + using thick strokes. + + - `FT_Get_TrueType_Engine_Type' returned a wrong value if both + configuration macros TT_CONFIG_OPTION_BYTECODE_INTERPRETER and + TT_CONFIG_OPTION_UNPATENTED_HINTING were defined. + + - The `face_index' field in the `FT_Face' structure wasn't + initialized properly after calling FT_Open_Face and friends with + a positive face index for CFFs, WinFNTs, and, most importantly, + for TrueType Collections (TTCs). + + + II. IMPORTANT CHANGES + + - Rudimentary support for Type 1 fonts and CID-keyed Type 1 fonts + in an SFNT wrapper has been added -- such fonts are used on the + Mac. The core SFNT tables `TYP1' and `CID ' are passed to the + PS Type 1 and CID-keyed PS font drivers; other tables (`ALMX', + `BBOX', etc.) are not supported yet. + + - A new interface to extract advance values of glyphs without + loading their outlines has been added. The functions are called + `FT_Get_Advance' and `FT_Get_Advances'; they are defined in file + `ftadvanc.h' (to be accessed as FT_ADVANCES_H). + + - A new function `FT_Get_FSType_Flags' (in FT_FREETYPE_H) has been + contributed by David Bevan to access the embedding and + subsetting restriction information of fonts. + + + III. MISCELLANEOUS + + - FT_MulFix is now an inlined function; by default, assembler code + is provided for x86 and ARM. See FT_CONFIG_OPTION_INLINE_MULFIX + and FT_CONFIG_OPTION_NO_ASSEMBLER (in ftoption.h) for more. + + - The handling of `tricky' fonts (this is, fonts which don't work + with the autohinter, needing the font format's hinting engine) + has been generalized and changed slightly: + + . A new face flag FT_FACE_FLAG_TRICKY indicates that the font + format's hinting engine is necessary for correct rendering. + The macro FT_IS_TRICKY can be used to check this flag. + + . FT_LOAD_NO_HINTING is now ignored for tricky fonts. To really + force raw loading of such fonts (without hinting), both + FT_LOAD_NO_HINTING and FT_LOAD_NO_AUTOHINT must be used -- + this is something which you probably never want to do. + + . Tricky TrueType fonts always use the bytecode interpreter, + either the patented or unpatented version. + + - The function `FT_GlyphSlot_Own_Bitmap' has been moved from + FT_SYNTHESIS_H to FT_BITMAP_H; it is now part of the `official' + API. (The functions in FT_SYNTHESIS_H are still subject to + change, however.) + + - In the `ftdiff' demo program you can now toggle the use of + FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH with key `a'. + + +====================================================================== + +CHANGES BETWEEN 2.3.7 and 2.3.6 + + I. IMPORTANT BUG FIXES + + - If the library was compiled on an i386 platform using gcc, and + compiler option -O3 was given, `FT_MulFix' sometimes returned + incorrect results which could have caused problems with + `FT_Request_Metrics' and `FT_Select_Metrics', returning an + incorrect descender size. + + - Pure CFFs without subfonts were scaled incorrectly if the font + matrix was non-standard. This bug has been introduced in + version 2.3.6. + + - The `style_name' field in the `FT_FaceRec' structure often + contained a wrong value for Type 1 fonts. This misbehaviour + has been introduced in version 2.3.6 while trying to fix + another problem. [Note, however, that this value is + informative only since the used algorithm to extract it is + very simplistic.] + + + II. IMPORTANT CHANGES + + - Two new macros, FT_OUTLINE_SMART_DROPOUTS and + FT_OUTLINE_EXCLUDE_STUBS, have been introduced. Together with + FT_OUTLINE_IGNORE_DROPOUTS (which was ignored previously) it is + now possible to control the dropout mode of the `raster' module + (for B&W rasterization), using the `flags' field in the + `FT_Outline' structure. + + - The TrueType bytecode interpreter now passes the dropout mode to + the B&W rasterizer. This greatly increases the output for small + ppem values of many fonts like `pala.ttf'. + + +====================================================================== + +CHANGES BETWEEN 2.3.6 and 2.3.5 + + I. IMPORTANT BUG FIXES + + - A bunch of potential security problems have been found. All + users should update. + + - Microsoft Unicode cmaps in TrueType fonts are now always + preferred over Apple cmaps. This is not a bug per se, but there + exist some buggy fonts created for MS which have broken Apple + cmaps. This affects only the automatic selection of FreeType; + it's always possible to manually select an Apple Unicode cmap if + desired. + + - Many bug fixes to the TrueType bytecode interpreter. + + - Improved Mac support. + + - Subsetted CID-keyed CFFs are now supported correctly. + + - CID-keyed CFFs with subfonts which are scaled in a non-standard + way are now handled correctly. + + - A call to FT_Open_Face with `face_index' < 0 crashed FreeType if + the font was a Windows (bitmap) FNT/FON. + + + II. IMPORTANT CHANGES + + - The new function `FT_Get_CID_Registry_Ordering_Supplement' gives + access to those fields in a CID-keyed font. The code has been + contributed by Derek Clegg. + + - George Williams contributed code to validate the new `MATH' + OpenType table (within the `otvalid' module). The `ftvalid' + demo program has been extended accordingly. + + - An API for cmap 14 support (for Unicode Variant Selectors, UVS) + has been contributed by George Williams. + + - A new face flag FT_FACE_FLAG_CID_KEYED has been added, together + with a macro FT_IS_CID_KEYED which evaluates to 1 if the font is + CID-keyed. + + + III. MISCELLANEOUS + + - Build support for symbian has been contributed. + + - Better WGL4 glyph name support, contributed by Sergey Tolstov. + + - Debugging output of the various FT_TRACEX macros is now sent to + stderr. + + - The `ftview' demo program now provides artificial slanting too. + + - The `ftvalid' demo program has a new option `-f' to select the + font index. + + +====================================================================== + +CHANGES BETWEEN 2.3.5 and 2.3.4 + + I. IMPORTANT BUG FIXES + + - Some subglyphs in TrueType fonts were handled incorrectly due to + a missing graphics state reinitialization. + + - Large .Z files (as distributed with some X11 packages) weren't + handled correctly, making FreeType increase the heap stack in an + endless loop. + + - A large number of bugs have been fixed to avoid crashes and + endless loops with invalid fonts. + + + II. IMPORTANT CHANGES + + - The two new cache functions `FTC_ImageCache_LookupScaler' and + `FTC_SBit_Cache_LookupScaler' have been added to allow lookup of + glyphs using an `FTC_Scaler' object; this makes it possible to + use fractional pixel sizes in the cache. The demo programs have + been updated accordingly to use this feature. + + - A new API `FT_Get_CMap_Format' has been added to get the cmap + format of a TrueType font. This is useful in handling PDF + files. The code has been contributed by Derek Clegg. + + - The auto-hinter now produces better output by default for + non-Latin scripts like Indic. This was done by using the CJK + hinting module as the default instead of the Latin one. Thanks + to Rahul Bhalerao for this suggestion. + + - A new API `FT_Face_CheckTrueTypePatents' has been added to find + out whether a given TrueType font uses patented bytecode + instructions. The `ft2demos' bundle contains a new program + called `ftpatchk' which demonstrates its usage. + + - A new API `FT_Face_SetUnpatentedHinting' has been added to + enable or disable the unpatented hinter. + + - Support for Windows FON files in PE format has been contributed + by Dmitry Timoshkov. + + + III. MISCELLANEOUS + + - Vincent Richomme contributed Visual C++ project files for Pocket + PCs. + + +====================================================================== + +CHANGES BETWEEN 2.3.4 and 2.3.3 + + I. IMPORTANT BUG FIXES + + - A serious bug in the handling of bitmap fonts (and bitmap + strikes of outline fonts) has been introduced in 2.3.3. + + +====================================================================== + +CHANGES BETWEEN 2.3.3 and 2.3.2 + + I. IMPORTANT BUG FIXES + + - Remove a serious regression in the TrueType bytecode interpreter + that was introduced in version 2.3.2. Note that this does not + disable the improvements introduced to the interpreter in + version 2.3.2, only some ill cases that occurred with certain + fonts (though a few popular ones). + + - The auto-hinter now ignores single-point contours for computing + blue zones. This bug created `wavy' baselines when rendering + text with various fonts that use these contours to model + mark-attach points (these are points that are never rasterized + and are placed outside of the glyph's real outline). + + - The `rsb_delta' and `lsb_delta' glyph slot fields are now set to + zero for mono-spaced fonts. Otherwise code that uses them would + essentially ruin the fixed-advance property. + + - Fix CVE-2007-1351 which can cause an integer overflow while + parsing BDF fonts, leading to a potentially exploitable heap + overflow condition. + + + II. MISCELLANEOUS + + - Fixed compilation issues on some 64-bit platforms (see ChangeLog + for details). + + - A new demo program `ftdiff' has been added to compare TrueType + hinting, FreeType's auto hinting, and rendering without hinting + in three columns. + + +====================================================================== + +CHANGES BETWEEN 2.3.2 and 2.3.1 + + I. IMPORTANT BUG FIXES + + - FreeType returned incorrect kerning information from TrueType + fonts when the bytecode interpreter was enabled. This happened + due to a typo introduced in version 2.3.0. + + - Negative kerning values from PFM files are now reported + correctly (they were read as 16-bit unsigned values from the + file). + + - Fixed a small memory leak when `FT_Init_FreeType' failed for + some reason. + + - The Postscript hinter placed and sized very thin and ghost stems + incorrectly. + + - The TrueType bytecode interpreter has been fixed to get rid of + most of the rare differences seen in comparison to the Windows + font loader. + + + II. IMPORTANT CHANGES + + - The auto-hinter now better deals with serifs and corner cases + (e.g., glyph '9' in Arial at 9pt, 96dpi). It also improves + spacing adjustments and doesn't change widths for non-spacing + glyphs. + + - Many Mac-specific functions are deprecated (but still + available); modern replacements have been provided for them. + See the documentation in file `ftmac.h'. + + +====================================================================== + +CHANGES BETWEEN 2.3.1 and 2.3.0 + + I. IMPORTANT BUG FIXES + + - The TrueType interpreter sometimes returned incorrect horizontal + metrics due to a bug in the handling of the SHZ instruction. + + - A typo in a security check introduced after version 2.2.1 + prevented FreeType to render some glyphs in CFF fonts. + + +====================================================================== + +CHANGES BETWEEN 2.3.0 and 2.2.1 + + I. IMPORTANT BUG FIXES + + - The PCF font loader is now much more robust while loading + malformed font files. + + - Various memory leaks have been found and fixed. + + - The TrueType name loader now deals properly with some fonts that + encode their names in UTF-16 (the specification was vague, and + the code incorrectly assumed UCS-4). + + - Fixed the TrueType bytecode loader to deal properly with subtle + monochrome/gray issues when scaling the CVT. Some fonts + exhibited bad rendering artifacts otherwise. + + - `FT_GlyphSlot_Embolden' now supports vertical layouts correctly + (it mangled the vertical advance height). + + - Fixed byte endian issues of `ftmac.c' to support Mac OS X on + i386. + + - The PFR font loader no longer erroneously tags font files + without any outlines as FT_FACE_FLAG_SCALABLE. + + + II. NEW API FUNCTIONS + + - `FT_Library_SetLcdFilter' allows you to select a special filter + to be applied to the bitmaps generated by `FT_Render_Glyph' if + one of the FT_RENDER_MODE_LCD and FT_RENDER_MODE_LCD_V modes has + been selected. This filter is used to reduce color fringes; + several settings are available through the FT_LCD_FILTER_XXX + enumeration. + + Its declaration and documentation can be found in file + `include/freetype/ftlcdfil.h' (to be accessed with macro + FT_LCD_FILTER_H). + + *IMPORTANT*: This function returns an error + (FT_Err_Unimplemented_Feature) in default builds of the library + for patent reasons. See below. + + - `FT_Get_Gasp' allows you to query the flags of the TrueType + `gasp' table for a given character pixel size. This is useful + to duplicate the text rendering of MS Windows when the native + bytecode interpreter is enabled (which isn't the default for + other patent reasons). + + Its declaration and documentation can be found in file + `include/freetype/ftgasp.h' (to be accessed with macro + FT_GASP_H). + + + III. IMPORTANT CHANGES + + - The auto-hinter has been tuned a lot to improve its results with + serif fonts, resulting in much better font rendering of many web + pages. + + - The unpatented hinter is now part of the default build of the + library; we have added code to automatically support `tricky' + fonts that need it. + + This means that FreeType should `just work' with certain Asian + fonts, like MingLiU, which cannot properly be loaded without a + bytecode interpreter, but which fortunately do not use any of + the patented bytecode opcodes. We detect these fonts by name, + so please report any font file that doesn't seem to work with + FreeType, and we shall do what we can to support it in a next + release. + + Note that the API hasn't changed, so you can still force + unpatented hinting with a special parameter to `FT_Open_Face' as + well. This might be useful in same cases; for example, a PDF + reader might present a user option to activate it to deal with + certain `tricky' embedded fonts which cannot be clearly + identified. + + If you are a developer for embedded systems, you might want to + *disable* the feature to save code space by undefining + TT_CONFIG_OPTION_UNPATENTED_HINTING in file `ftoption.h'. + + - LCD-optimized rendering is now *disabled* in all default builds + of the library, mainly due to patent issues. For more + information see: + + http://lists.gnu.org/archive/html/freetype/2006-09/msg00064.html + + A new configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING + has been introduced in `ftoption.h'; manually define it in this + file if you want to re-enable the feature. + + The change only affects the implementation, not the FreeType + API. This means that clients don't need to be modified, because + the library still generates LCD decimated bitmaps, but with the + added constraint that R=G=B on each triplet. + + The displayed result should be equal to normal anti-aliased + rendering. + + Additionally, if FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not + defined, the new `FT_Library_SetLcdFilter' function returns the + FT_Err_Unimplemented_Feature error code. + + - Some computation bugs in the TrueType bytecode interpreter were + found, which allow us to get rid of very subtle and rare + differences we had experienced with the Windows renderer. + + - It is now possible to cross-compile the library easily. See the + file `docs/INSTALL.CROSS' for details. + + - The file `src/base/ftmac.c' now contains code for Mac OS X only; + its deprecated function `FT_GetFile_From_Mac_Font_Name' always + returns an error even if the QuickDraw framework is available. + The previous version has been moved to `builds/mac/ftmac.c'. + + Selecting configure option `--with-quickdraw-carbon' makes the + build process use the original `ftmac.c' file instead of the Mac + OS X-only version. + + + IV. MISCELLANEOUS + + - Various performance and memory footprint optimizations have been + performed on the TrueType and CFF font loaders, sometimes with + very drastic benefits (e.g., the TrueType loader is now about + 25% faster; FreeType should use less heap memory under nearly + all conditions). + + - The anti-aliased rasterizer has been optimized and is now 15% to + 25% percent faster than in previous versions, depending on + content. + + - The Type 1 loader has been improved; as an example, it now skips + top-level dictionaries properly. + + - Better support for Mac fonts on POSIX systems, plus compilation + fixes for Mac OS X on ppc64 where `ftmac.c' cannot be built. + + - Configuration without `--with-old-mac-fonts' does not include + `ftmac.c' (this was the behaviour in FreeType version 2.1.10). + + - The TrueTypeGX validator (gxvalid) checks the order of glyph IDs + in the kern table. + + +====================================================================== + +CHANGES BETWEEN 2.2.1 and 2.2 + + I. IMPORTANT BUG FIXES + + - Various integer overflows have been fixed. + + - PFB fonts with MacOS resource fork weren't handled correctly on + non-MacOS platforms. + + +====================================================================== + +CHANGES BETWEEN 2.2 and 2.1.10 + +(not released officially) + + I. IMPORTANT BUG FIXES + + - Vertical metrics for SFNT fonts were incorrect sometimes. + + - The FT_HAS_KERNING macro always returned 0. + + - CFF OpenType fonts didn't return correct vertical metrics for + glyphs with outlines. + + - If FreeType was compiled without hinters, all font formats based + on PS outlines weren't scaled correctly. + + + II. IMPORTANT CHANGES + + - Version 2.2 no longer exposes its internals, this is, the header + files located in the `include/freetype/internal' directory of + the source package are not copied anymore by the `make install' + command. Consequently, a number of rogue clients which directly + access FreeType's internal functions and structures won't + compile without modification. + + We provide patches for most of those rogue clients. See the + following page for more information: + + http://www.freetype.org/freetype2/patches/rogue-patches.html + + Note that, as a convenience to our Unix desktop users, version + 2.2 is *binary* compatible with FreeType 2.1.7, which means that + installing this release on an existing distribution shall not + break any working desktop. + + - FreeType's build mechanism has been redesigned. With GNU make + it is now sufficient in most cases to edit two files: + `modules.cfg', to select the library components, and the + configuration file `include/freetype/config/ftoption.h' (which + can be copied to the objects directory). Removing unused module + directories to prevent its compilation and editing + `include/freetype/config/ftmodule.h' is no longer necessary. + + - The LIGHT hinting algorithm produces more pleasant results. + Also, using the FT_LOAD_TARGET_LIGHT flags within FT_Load_Glyph + always forces auto-hinting, as a special exception. This allows + you to experiment with it even if you have enabled the TrueType + bytecode interpreter in your build. + + - The auto hinter now employs a new algorithm for CJK fonts, based + on Akito Hirai's patch. Note that this only works for fonts + with a Unicode charmap at the moment. + + - The following callback function types have changed slightly (by + adding the `const' keyword where appropriate): + + FT_Outline_MoveToFunc + FT_Outline_LineToFunc + FT_Outline_ConicToFunc + FT_Outline_CubicToFunc + FT_SpanFunc + FT_Raster_RenderFunc + + FT_Glyph_TransformFunc + FT_Renderer_RenderFunc + FT_Renderer_TransformFunc + + Note that this doesn't affect binary backward compatibility. + + - On MacOS, new APIs have been added as replacements for legacy + APIs: `FT_New_Face_From_FSRef' for `FT_New_Face_From_FSSpec', + and `FT_GetFile_From_Mac_ATS_Name' for + `FT_GetFile_From_Mac_Name'. Legacy APIs are still available, if + FreeType is built without disabling them. + + - A new API `FT_Select_Size' has been added to select a bitmap + strike by its index. Code using other functions to select + bitmap strikes should be updated to use this function. + + - A new API `FT_Get_SubGlyph_Info' has been added to retrieve + subglyph data. This can be used by rogue clients which used to + access the internal headers to get the corresponding data. + + - In 2.1.10, the behaviour of `FT_Set_Pixel_Sizes' was changed for + BDF/PCF fonts, and only for them. This causes inconsistency. + In this release, we undo the change. The intent of the change + in 2.1.10 is to allow size selection through real dimensions, + which can now be done through `FT_Request_Size'. + + - Some security issues were discovered and fixed in the CFF and + Type 1 loader, causing crashes of FreeType by malformed font + files. + + + III. MISCELLANEOUS + + - The documentation for FT_LOAD_TARGET_XXX and FT_RENDER_MODE_XXX + values now better reflects its usage and differences: One set is + used to specify the hinting algorithm, the other to specify the + pixel rendering mode. + + - `FT_New_Face' and `FT_New_Face_From_FSSpec' in ftmac.c have been + changed to count supported scalable faces (sfnt, LWFN) only, and + to return the number of available faces via face->num_faces. + Unsupported bitmap faces (fbit, NFNT) are ignored. + + - builds/unix/configure has been improved for MacOS X. It now + automatically checks available functions in Carbon library, and + prepare to use newest functions by default. Options to specify + the dependencies of each Carbon APIs (FSSpec, FSRef, old/new + QuickDraw, ATS) are available too. By manual disabling of all + QuickDraw functionality, FreeType can be built without + `deprecated function' warnings on MacOS 10.4.x, but + FT_GetFile_Mac_Name in ftmac.c then is changed to a dummy + function, and returns an `unimplemented' error. For details see + builds/mac/README. + + - SFNT cmap handling has been improved, mainly to run much faster + with CJK fonts. + + - A new function `FT_Get_TrueType_Engine_Type (declared in + `FT_MODULE_H') is provided to determine the status of the + TrueType bytecode interpreter compiled into the library + (patented, unpatented, unimplemented). + + - Vertical metrics of glyphs are synthesized if the font does not + provide such information. You can tell whether the metrics are + synthesized or not by checking the FT_FACE_FLAG_VERTICAL flag of + the face. + + - The demo programs `ftview' and `ftstring' have been rewritten + for better readability. `ftview' has a new switch `-p' to test + FT_New_Memory_Face (instead of FT_New_Face). + + - FreeType now honours bit 1 in the `head' table of TrueType fonts + (meaning `left sidebearing point at x=0'). This helps with some + buggy fonts. + + - Rudimentary support for Adobe's new `SING Glyphlet' format. See + + http://www.adobe.com/products/indesign/sing_gaiji.html + + for more information. + + - The `ftdump' program from the `ft2demos' bundle now shows some + information about charmaps. It also supports a new switch `-v' + to increase verbosity. + + - Better AFM support. This includes track kerning support. + + +====================================================================== + +CHANGES BETWEEN 2.1.10 and 2.1.9 + + I. IMPORTANT BUG FIXES + + - The size comparison for BDF and PCF files could fail sometimes. + + - Some CFF files were still not loaded correctly. Patch from + Derek Noonburg. + + - The stroker still had some serious bugs. + + - Boris Letocha fixed a bug in the TrueType interpreter: The + NPUSHW instruction wasn't skipped correctly in IF clauses. Some + fonts like `Helvetica 75 Bold' failed. + + - Another serious bug in handling TrueType hints caused many + distortions. It has been introduced in version 2.1.8, and it is + highly recommended to upgrade. + + - FreeType didn't properly parse empty Type 1 glyphs. + + - An unbound dynamic buffer growth was fixed in the PFR loader. + + - Several bugs have been fixed in the cache sub-system. + + - FreeType behaved incorrectly when resizing two distinct but very + close character pixel sizes through `FT_Set_Char_Size' (Savannah + bug #12263). + + - The auto-hinter didn't work properly for fonts without a Unicode + charmap -- it even refused to load the glyphs. + + + II. IMPORTANT CHANGES + + - Many fixes have been applied to drastically reduce the amount of + heap memory used by FreeType, especially when using + memory-mapped font files (which is the default on Unix systems + which support them). + + - The auto-hinter has been replaced with a new module, called the + `auto-fitter'. It consumes less memory than its predecessor, + and it is prepared to support non-latin scripts better in next + releases. + + - George Williams contributed code to read kerning data from PFM + files. + + - FreeType now uses the TT_NAME_ID_PREFERRED_FAMILY and + TT_NAME_ID_PREFERRED_SUBFAMILY strings (if available) for + setting family and style in SFNT fonts (patch from Kornfeld + Eliyahu Peter). + + - A new API `FT_Sfnt_Table_Info' (in FT_TRUETYPE_TABLES_H) has + been added to retrieve name and size information of SFNT tables. + + - A new API `FT_OpenType_Validate' (in FT_OPENTYPE_VALIDATE_H) has + been added to validate OpenType tables (BASE, GDEF, GPOS, GSUB, + JSTF). After validation it is no longer necessary to check + for errors in those tables while accessing them. + + Note that this module might be moved to another library in the + future to avoid a tight dependency between FreeType and the + OpenType specification. + + - A new API in FT_BITMAP_H (`FT_Bitmap_New', `FT_Bitmap_Convert', + `FT_Bitmap_Copy', `FT_Bitmap_Embolden', `FT_Bitmap_Done') has + been added. Its use is to convert an FT_Bitmap structure in + 1bpp, 2bpp, 4bpp, or 8bpp format into another 8bpp FT_Bitmap, + probably using a different pitch, and to further manipulate it. + + - A new API `FT_Outline_Embolden' (in FT_OUTLINE_H) gives finer + control how outlines are embolded. + + - `FT_GlyphSlot_Embolden' (in FT_SYNTHESIS_H) now handles bitmaps + also (code contributed by Chia I Wu). Note that this function + is still experimental and may be replaced with a better API. + + - The method how BDF and PCF bitmap fonts are accessed has been + refined. Formerly, FT_Set_Pixel_Sizes and FT_Set_Char_Size + were synonyms in FreeType's BDF and PCF interface. This has + changed now. FT_Set_Pixel_Sizes should be used to select the + actual font dimensions (the `strike', which is the sum of the + `FONT_ASCENT' and `FONT_DESCENT' properties), while + FT_Set_Char_Size selects the `nominal' size (the `PIXELSIZE' + property). In both functions, the width parameter is ignored. + + + III. MISCELLANEOUS + + - The BDF driver no longer converts all returned bitmaps with a + depth of 2bpp or 4bpp to a depth of 8bpp. The documentation has + not mentioned this explicitly, but implementors might have + relied on this after looking into the source files. + + - A new option `--ftversion' has been added to freetype-config to + return the FreeType version. + + - The memory debugger has been updated to dump allocation + statistics on all allocation sources in the library. This is + useful to spot greedy allocations when loading and processing + fonts. + + - We removed a huge array of constant pointers to constant strings + in the `psnames' module. The problem was that compilations in + PIC mode (i.e., when generating a Unix shared object/dll) put + the array into the non-shared writable section of the library + since absolute pointers are not relocatable by nature. + + This reduces the memory consumption by approximately 16KByte per + process linked to FreeType. We now also store the array in a + compressed form (as a trie) which saves about 20KByte of code as + well. + + - Kirill Smelkov provided patches to make src/raster/ftraster.c + compile stand-alone again. + + +====================================================================== + +CHANGES BETWEEN 2.1.9 and 2.1.8 + + I. IMPORTANT BUG FIXES + + - The function `FT_Get_CharMap_Index' was only declared, without + any real code. For consistency, it has been renamed to + `FT_Get_Charmap_Index'. (This function is needed to implement + cmap caches.) + + - `FT_Outline_Get_BBox' sometimes returned incorrect values for + conic outlines (e.g., for TrueType fonts). + + - Handling of `bhed' table has been fixed. + + - The TrueType driver with enabled byte code interpreter sometimes + returned artifacts due to incorrect rounding. This bug has been + introduced after version 2.1.4. + + - The BDF driver dropped the last glyph in the font. + + - The BDF driver now uses the DEFAULT_CHAR property (if available) + to select a glyph shape for the undefined glyph. + + - The stroker failed for closed outlines and single points. + + + II. IMPORTANT CHANGES + + - George Williams contributed code to handle Apple's font + distortion technology found in GX fonts (`avar', `cvar', `fvar', + and `gvar' tables; the Multiple Masters API has been slightly + extended to cope with the new functionality). + + - The `FT_GlyphSlotRec' structure has been extended: The elements + `lsb_delta' and `rsb_delta' give the difference between hinted + and unhinted left and right side bearings if autohinting is + active. Using those values can improve the inter-letter spacing + considerably. See the documentation of `FT_GlyphSlotRec' and + the `ftstring' demo program how to use it. + + - Loading TrueType and Type 1 fonts has been made much faster. + + - The stroker is no longer experimental (but the cache subsystem + still is). + + + III. MISCELLANEOUS + + - A new documentation file `formats.txt' describes various font + formats supported (and not supported) by FreeType. + + +====================================================================== + +CHANGES BETWEEN 2.1.8 and 2.1.7 + + I. IMPORTANT BUG FIXES + + - The native TrueType hinter contained some bugs which prevented + some fonts to be rendered correctly, most notably Legendum.otf. + + - The PostScript hinter now produces improved results. + + - The linear advance width and height values were incorrectly + rounded, making them virtually unusable if not loaded with + FT_LOAD_LINEAR_DESIGN. + + - Indexing CID-keyed CFF fonts is now working: The glyph index is + correctly treated as a CID, similar to FreeType's CID driver + module. Note that CID CMap support is still missing. + + - The FT_FACE_FLAGS_GLYPH_NAMES flag is now set correctly for all + font formats. + + - Some subsetted Type 1 fonts weren't parsed correctly. This bug + has been introduced in 2.1.7. In summary, the Type 1 parser has + become more robust. + + - Non-decimal numbers weren't parsed correctly in PS fonts. + + - The WinFNT driver now correctly reports FT_ENCODING_NONE for all + but one encoding. Use the new FT_WinFNT_ID_XXX values together + with `FT_Get_WinFNT_Header' to get the WinFNT charset ID. + + - The descender metrics (face->size->metrics.descender) for WinFNT + bitmap fonts had the wrong sign. + + - The (emulated) `seac' support for CFF fonts was broken. + + - The `flex' operator didn't work for CFF fonts. + + - PS glyphs which use the `hintmask' operator haven't been + rendered correctly in some cases. + + - Metrics for BDF and PCF bitmap font formats have been fixed. + + - Autohinting is now disabled for glyphs which are vertically + distorted or mirrored (using a transformation matrix). This + fixes a bug which produced zero-height glyphs. + + - The `freetype-config' script now handles --prefix and + --exec-prefix correctly; it also returns the proper --rpath (or + -R) value if FreeType has been built as a shared library. + + + II. IMPORTANT CHANGES + + - Both PCF and BDF drivers now handle the SETWIDTH_NAME and + ADD_STYLE_NAME properties. Values are appended to + face->style_name; example: `Bold SemiCondensed'. + + - The PCF driver now handles bitmap fonts compressed with the LZW + algorithm (extension .pcf.Z, compressed with `compress'). + + - A new API function `FT_Get_CMap_Language_ID' (declared in + `tttables.h') is available to get the language ID of a + TrueType/SFNT cmap. + + - The hexadecimal format of data after the `StartData' command in + CID-keyed Type 1 fonts is now supported. While this can't occur + in file-based fonts, it can happen in document-embedded + resources of PostScript documents. + + - Embedded bitmaps in SFNT-based CFF fonts are now supported. + + - A simple API is now available to control FreeType's tracing + mechanism if compiled with FT_DEBUG_LEVEL_TRACE. See the file + `ftdebug.h' for more details. + + - YAMATO Masatake contributed improved handling of MacOS resource + forks on non-MacOS platforms (for example, Linux can mount MacOS + file systems). + + - Support for MacOS has been improved; there is now a new function + `FT_New_Face_From_FSSpec' similar to `FT_New_Face' except that + it accepts an FSSpec instead of a path. + + - The cache sub-system has been rewritten. + + - There is now support for deinstallation of faces. + + - A new API function `FTC_Manager_RemoveFaceID' has been added + to delete all `idle' nodes that correspond to a given + FTC_FaceID. All `locked' nodes (i.e., those with a reference + count > 0), will be modified to prevent them from appearing in + further lookups (they will be cleaned normally when their + reference count reaches 0). + + - There is now support for point scaling (i.e., providing + character sizes in points + dpis, instead of pixels). + + - Three abstract cache classes are now available: + + FTC_GCache: Used to store one glyph item per cache node, + with the ability to group common attributes into + `families'. This replaces the old + FTC_GlyphCache class. + + FTC_ICache: Used to store one FT_Glyph per cache node. This + extends FTC_GCache. Family definition, family + comparison, and glyph loading are however left + to sub-classes. + + FTC_SCache: Used to store up to 16 small bitmaps per cache + node. This extends FTC_GCache. Family + definition, family comparison and glyph loading + are however left to sub-classes. + + - The file `src/cache/ftcbasic.c' implements: + + FTC_ImageCache: Extends FTC_ICache; implements family + definitions and glyph loading similar to the + old API. + + FTC_SBitCache: Extends FTC_SCache, implements family + definitions and glyph loading similar to the + old API + + Client applications should be able to extend FTC_GCache, + FTC_ICache, or FTC_SCache much more easily (i.e., less code to + write, and less callbacks). For example, one could envision + caches that are capable of storing transformed (obliqued), + stroked, emboldened, or colored glyph images. Use + `ftcbasic.c' as an example. + + - All public APIs are now in `include/freetype/ftcache.h', (to + be accessed as `FT_CACHE_H'). The contents of + `include/freetype/cache/' is only needed by applications that + wish to implement their own caches. + + - There were some major performance improvements through the use + of various programming tricks. Cache hits are up to 70% + faster than in the old code. + + - The FTC_CMapCache has been simplified. Charmaps can only be + accessed by index right now. There is also a new API named + `FT_Charmap_GetIndex' for this purpose. + + - The demo programs have been updated to the new code. The + previous versions will not work with the current one. + + - Using an invalid face index in FT_Open_Face and friends now + causes an error even if the font contains a single face only. + + + III. MISCELLANEOUS + + - Wolfgang Domröse contributed support files for building FreeType + on the Atari using the PureC compiler. Note that the Atari is a + 16bit platform. + + - Vitaliy Pasternak contributed project files for VS.NET 2003. + + +====================================================================== + +CHANGES BETWEEN 2.1.7 and 2.1.6 + + I. IMPORTANT BUG FIXES + + - Updated to newest libtool version, fixing build problems on + various platforms. + + - On Unix platforms, `make install' didn't copy the correct + `ftconfig.h' file. + + Note that version 2.1.7 contains the same library C source code as + version 2.1.6. + + +====================================================================== + +CHANGES BETWEEN 2.1.6 and 2.1.5 + + I. IMPORTANT BUG FIXES + + - The PFR font driver didn't load kerning tables correctly, and + the functions in FT_PFR_H didn't work at all. + + - Type 1 font files in binary format (PFB) with an end-of-file + indicator weren't accepted by the FreeType engine. + + - Fonts which contain /PaintType and /StrokeWidth no longer cause + a segfault. This bug has been introduced in version 2.1.5. + + - Fonts loaded with FT_LOAD_RENDER no longer cause strange + results. This bug has been introduced in version 2.1.5. + + - Some Windows (bitmap) FNT/FON files couldn't be handled + correctly. + + + II. IMPORTANT CHANGES + + - The internal module API has been heavily changed in favor of + massive simplifications within the font engine. This also means + that authors of third-party modules must adapt their code to the + new scheme. + + NOTE: THE NEW SCHEME IS NOT COMPLETED YET. PLEASE WAIT UNTIL A + FINAL ANNOUNCEMENT! + + - The PostScript parser has been enhanced to handle comments and + strings correctly. Additionally, more syntax forms are + recognized. + + - Added the optional unpatented hinting system for TrueType. It + allows typefaces which need hinting to produce correct glyph + forms (e.g., Chinese typefaces from Dynalab) to work acceptably + without infringing Apple patents. This system is compiled only + if TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING is defined in + ftoption.h (activated by default). + + + III. MISCELLANEOUS + + - There is now a guard in the public header files to protect + against inclusion of freetype.h from FreeType 1. + + - Direct inclusion of freetype.h and other public header files no + longer works. You have to use the documented scheme + + #include <ft2build.h> + #include FT_FREETYPE_H + + to load freetype.h with a symbolic name. This protects against + renaming of public header files (which shouldn't happen but + actually has, avoiding two public header files with the same + name). + + +====================================================================== + +CHANGES BETWEEN 2.1.5 and 2.1.4 + + I. IMPORTANT BUG FIXES + + - Parsing the /CIDFontName field now removes the leading slash to + be in sync with other font drivers. + + - gzip support was buggy. Some fonts could not be read. + + - Fonts which have nested subglyphs more than one level deep no + longer cause a segfault. + + - Creation of synthetic cmaps for fonts in CFF format was broken + partially. + + - Numeric font dictionary entries for synthetic fonts are no + longer overwritten. + + - The font matrix wasn't applied to the advance width for Type1, + CID, and CFF fonts. This caused problems when loading certain + synthetic Type 1 fonts like `Helvetica Narrow'. + + - The test for the charset registry in BDF and PCF fonts is now + case-insensitive. + + - FT_Vector_Rotate sometimes returned strange values due to + rounding errors. + + - The PCF driver now returns the correct number of glyphs + (including an artificial `notdef' glyph at index 0). + + - FreeType now supports buggy CMaps which are contained in many + CJK fonts from Dynalab. + + - Opening an invalid font on a Mac caused a segfault due to + double-freeing memory. + + - BDF fonts with more than 32768 glyphs weren't supported + properly. + + + II. IMPORTANT CHANGES + + - Accessing bitmap font formats has been synchronized. To do that + the FT_Bitmap_Size structure has been extended to contain new + fields `size', `x_ppem', and `y_ppem'. + + - The FNT driver now returns multiple faces, not multiple strikes. + + - The `psnames' module has been updated to the Adobe Glyph List + version 2.0. + + - The `psnames' module now understands `uXXXX[X[X]]' glyph names. + + - The algorithm for guessing the font style has been improved. + + - For fonts in SFNT format, root->height is no longer increased if + the line gap is zero. There exist fonts (containing e.g. form + drawing characters) which intentionally have a zero line gap + value. + + - ft_glyph_bbox_xxx flags are now deprecated in favour of + FT_GLYPH_BBOX_XXX. + + - ft_module_xxx flags are now deprecated in favour of + FT_MODULE_XXX. + + - FT_ENCODING_MS_{SJIS,GB2312,BIG5,WANSUNG,JOHAB} are now + deprecated in favour of + FT_ENCODING_{SJIS,GB2312,GIB5,WANSONG,JOHAB} -- those encodings + are not specific to Microsoft. + + + III. MISCELLANEOUS + + - The autohinter has been further improved; for example, `m' + glyphs now retain its vertical symmetry. + + - Partial support of Mac fonts on non-Mac platforms. + + - `make refdoc' (after first `make') builds the HTML + documentation. You need Python for this. + + - The make build system should now work more reliably on DOS-like + platforms. + + - Support for EMX gcc and Watson C/C++ compilers on MS-DOS has + been added. + + - Better VMS build support. + + - Support for the pkg-config package by providing a `freetype.pc' + file. + + - New configure option --with-old-mac-fonts for Darwin. + + - Some source files have been renamed (mainly to fit into the 8.3 + naming scheme). + + +====================================================================== + +CHANGES BETWEEN 2.1.4 and 2.1.3 + + I. IMPORTANT BUG FIXES + + - Updated to newest libtool version, fixing build problems on + various platforms. + + - A fix in the Gzip stream reader: It couldn't read certain .gz + files properly due to a small typo. In certain cases, FreeType + could also loop endlessly when trying to load tiny gzipped + files. + + - The configure script now tries to use the system-wide zlib when + it finds one (instead of the copy found in src/gzip). And + `freetype-config' has been updated to return relevant flags in + this case when invoked with `--libs' (e.g. `-lzlib'). + + - Certain fonts couldn't be loaded by 2.1.3 because they lacked a + Unicode charmap (e.g. SYMBOL.TTF). FreeType erroneously + rejected them. + + - The CFF loader was modified to accept fonts which only contain a + subset of their reference charset. This prevented the correct + use of PDF-embedded fonts. + + - The logic to detect Unicode charmaps has been modified. This is + required to support fonts which include both 16-bit and 32-bit + charmaps (like very recent asian ones) using the new 10 and 12 + SFNT formats. + + - The TrueType loader now limits the depth of composite glyphs. + This is necessary to prevent broken fonts to break the engine by + blowing the stack with recursive glyph definitions. + + - The CMap cache is now capable of managing UCS-4 character codes + that are mapped through extended charmaps in recent + TrueType/OpenType fonts. + + - The cache sub-system now properly manages out-of-memory + conditions instead of blindly reporting them to the caller. + This means that it will try to empty the cache before restarting + its allocations to see if that can help. + + - The PFR driver didn't return the list of available embedded + bitmaps properly. + + - There was a nasty memory leak when using embedded bitmaps in + certain font formats. + + + II. IMPORTANT CHANGES + + - David Chester contributed some enhancements to the auto-hinter + that significantly increase the quality of its output. The + Postscript hinter was also improved in several ways. + + - The FT_RENDER_MODE_LIGHT render mode was implemented. + + - A new API function called `FT_Get_BDF_Property' has been added + to FT_BDF_H to retrieve BDF properties from BDF _and_ PCF font + files. THIS IS STILL EXPERIMENTAL, since it hasn't been + properly tested yet. + + - A Windows FNT specific API has been added, mostly to access font + headers. This is used by Wine. + + - TrueType tables without an `hmtx' table are now tolerated when + an incremental interface is used. This happens for certain + Type42 fonts passed from Ghostscript to FreeType. + + - The PFR font driver is now capable of returning the font family + and style names when they are available (instead of the sole + `FontID'). This is performed by parsing an *undocumented* + portion of the font file! + + + III. MISCELLANEOUS + + - The path stroker in FT_STROKER_H has entered beta stage. It now + works very well, but its interface might change a bit in the + future. More on this in later releases. + + - The documentation for FT_Size_Metrics didn't appear properly in + the API reference. + + - The file docs/VERSION.DLL has been updated to explain versioning + with FreeType (i.e., comparing release/libtool/so numbers, and + how to use them in autoconf scripts). + + - The installation documentation has been seriously revamped. + Everything is now in the `docs' directory. + + +====================================================================== + +CHANGES BETWEEN 2.1.3 and 2.1.2 + + I. IMPORTANT BUG FIXES + + - FT_Vector_Transform had been incorrectly modified in 2.1.2, + resulting in incorrect transformations being applied (for + example, rotations were processed in opposite angles). + + - The format 8 and 12 TrueType charmap enumeration routines have + been fixed (FT_Get_Next_Char returned invalid values). + + - The PFR font driver returned incorrect advance widths if the + outline and metrics resolution defined in the font file were + different. + + - FT_Glyph_To_Bitmap now returns successfully when called with an + FT_BitmapGlyph argument (it previously returned an error). + + - A bug in the Type 1 loader that prevented valid font bounding + boxes to be loaded from multiple master fonts. + + - The SFNT validation code has been rewritten. FreeType can now + load `broken' fonts that were usable on Windows, but not with + previous versions of the library. + + - The computation of bearings in the BDF driver has been fixed. + + - The Postscript hinter crashed when trying to hint certain glyphs + (more precisely, when trying to apply hints to an empty glyph + outline). + + - The TrueType glyph loader now supports composites in `Apple + format' (they differ slightly from Microsoft/OpenType ones in + the way transformation offsets are computed). + + - FreeType was very slow at opening certain asian CID/CFF fonts, + due to fixed increment in dynamic array re-allocations. This + has been changed to exponential behaviour to get acceptable + performance. + + + + II. IMPORTANT CHANGES + + - The PCF driver now supports gzip-compressed font files natively. + This means that you will be able to use all these bitmap fonts + that come with XFree86 with FreeType (and libXft/libXft2, by + extension). + + - The automatic and postscript hinters have both been updated. + This results in a relatively important increase of rendering + quality since many nasty defaults have been suppressed. Please + visit the web page: + + http://www.freetype.org/hinting/smooth-hinting.html + + for additional details on this topic. + + - The `load_flags' parameter of `FT_Load_Glyph' is now an FT_Int32 + (instead of just being an FT_Int). This breaks source and + binary compatibility for 16bit systems only, while retaining + both of them for 32 and 64 bit ones. + + Some new flags have been added consequently: + + FT_LOAD_NO_AUTOHINT :: Disable the use of the auto-hinter + (but not native format hinters). + + FT_LOAD_TARGET_NORMAL :: Hint and render for normal + anti-aliased displays. + + FT_LOAD_TARGET_MONO :: Hint and render for 1-bit displays. + + FT_LOAD_TARGET_LCD :: Hint and render for horizontal RGB or + BGR sub-pixel displays (like LCD + screens). THIS IS STILL + EXPERIMENTAL! + + FT_LOAD_TARGET_LCD_V :: Same as FT_LOAD_TARGET_LCD, for + vertical sub-pixel displays (like + rotated LCD screens). THIS IS STILL + EXPERIMENTAL! + + FT_LOAD_MONOCHROME is still supported, but only affects + rendering, not the hinting. + + Note that the `ftview' demo program available in the `ft2demos' + package has been updated to support LCD-optimized display on + non-paletted displays (under Win32 and X11). + + - The PFR driver now supports embedded bitmaps (all formats + supported), and returns correct kerning metrics for all glyphs. + + - The TrueType charmap loader now supports certain `broken' fonts + that load under Windows without problems. + + - The cache API has been slightly modified (it's still a beta!): + + - The type FTC_ImageDesc has been removed; it is now replaced + by FTC_ImageTypeRec. Note that one of its fields is a + `load_flag' parameter for FT_Load_Glyph. + + - The field `num_grays' of FT_SBitRec has been changed to + `max_grays' in order to fit within a single byte. Its + maximum value is thus 255 (instead of 256 as previously). + + + III. MISCELLANEOUS + + - Added support for the DESTDIR variable during `make install'. + This simplifies packaging of FreeType. + + - Included modified copies of the ZLib sources in `src/gzip' in + order to support gzip-compressed PCF fonts. We do not use the + system-provided zlib for now, though this is a probable + enhancement for future releases. + + - The DocMaker tool used to generate the on-line API reference has + been completely rewritten. It is now located in + `src/tools/docmaker/docmaker.py'. Features: + + - better cross-referenced output + - more polished output + - uses Python regular expressions (though it didn't speed the + program) + - much more modular structure, which allows for different + `backends' in order to generate HTML, XML, or whatever + format. + + One can regenerate the API reference by calling: + + python src/tools/docmaker/docmaker.py \ + --prefix=ft2 \ + --title=FreeType-2.1.3 \ + --output=<outputdirectory> + include/freetype/*.h \ + include/freetype/config/*.h \ + include/freetype/cache/*.h + + - A new, experimental, support for incremental font loading (i.e., + loading of fonts where the glyphs are not in the font file + itself, but provided by an external component, like a Postscript + interpreter) has been added by Graham Asher. This is still work + in progress, however. + + - A new, EXPERIMENTAL, path stroker has been added. It doesn't + suffer from severe rounding errors and treat bezier arcs + directly. Still work in progress (i.e. not part of the official + API). See the file <freetype/ftstroker.h> for some of the + details. + + - The massive re-formatting of sources and internal re-design is + still under-way. Many internal functions, constants, and types + have been renamed. + + +====================================================================== + +CHANGES BETWEEN 2.1.2 and 2.1.1 + + I. IMPORTANT BUG FIXES + + - Many font drivers didn't select a Unicode charmap by default + when a new face was opened (with the FT_CONFIG_OPTION_USE_CMAPS + options enabled), causing many applications to not be able to + display text correctly with the 2.1.x releases. + + - The PFR driver had a bug in its composite loading code that + produces incorrectly placed accents with many fonts. + + - The Type42 driver crashed sometimes due to a nasty bug. + + - The Type 1 custom encoding charmap didn't handle the case where + the first glyph index wasn't 0. + + - A serious typo in the TrueType composite loader produced + incorrectly placed glyphs in fonts like `Wingdings' and a few + others. + + + II. MISCELLANEOUS + + - The Win32 Visual C++ project file has been updated to include + the PFR driver as well. + + - `freetype.m4' is now installed by default by `make install' on + Unix systems. + + - The function FT_Get_PS_Font_Info now works with CID and Type42 + fonts as well. + + +====================================================================== + +CHANGES BETWEEN 2.1.1 and 2.1.0 + + I. IMPORTANT BUG FIXES + + - The `version_info' returned by `freetype-config' in 2.1.0 + returned an invalid value. It now returns 9:1:3 (2.0.9 returned + 9:0:3). + + - Version 2.1.0 couldn't be linked against applications on Win32 + and Amiga systems due to a new debug function that wasn't + properly propagated to the system-specific directory in + `builds'. + + - Various MacOS and Mac OS X specific fixes. + + - Fixed a bug in the TrueType charmap validation routines that + made version 2.1.0 too restrictive -- many popular fonts have + been rejected. + + - There was still a very small difference between the monochrome + glyph bitmaps produced by FreeType 1.x and FreeType 2.x with the + bytecode interpreter enabled. This was caused by an invalid + flag setting in the TrueType glyph loader, making the rasterizer + change its drop-out control mode. Now the results should + _really_ be completely identical. + + - The TrueType name table loader has been improved to support many + popular though buggy Asian fonts. It now ignores empty name + entries, invalid pointer offsets and a few other incorrect + subtleties. Moreover, name strings are now loaded on demand, + which reduces the memory load of many faces (e.g. the ARIAL.TTF + font file contains a 10kByte name table with 70 names). + + - Fixed a bug in the Postscript hinter that prevented family blues + substitution to happen correctly. + + + II. NEW FEATURES + + - Three new font drivers in this release: + + * A BDF font driver, contributed by Franco Zappa Nardelli, + heavily modified by Werner Lemberg. It also supports + anti-aliased bitmaps (using a slightly extended BDF format). + + * A Type42 font driver, contributed by Roberto Alameda. It is + still experimental but seems to work relatively well. + + * A PFR font driver, contributed by David Turner himself. It + doesn't support PFR hinting -- note that BitStream has at + least two patents on this format! + + + III. MISCELLANEOUS + + - The cache sub-system has been optimized in important ways. + Cache hits are now significantly faster. For example, using the + CMap cache is about twice faster than calling FT_Get_Char_Index + on most platforms. Similarly, using an SBit cache is about five + times faster than loading the bitmaps from a bitmap file, and + 300 to 500 times faster than generating them from a scalable + format. + + Note that you should recompile your sources if you designed a + custom cache class for the FT2 Cache subsystem, since the + changes performed are source, but not binary, compatible. + + +====================================================================== + +CHANGES BETWEEN 2.1.0 and 2.0.9 + + I. IMPORTANT BUG FIXES + + - The TrueType bytecode interpreter has been fixed to produce + _exactly_ the same output as FreeType 1.x. Previous differences + were due to slightly distinct fixed-point computation routines + used to perform dot products and vector length measurements. + + It seems that native TrueType hinting is _extremely_ sensitive + to rounding errors. The required vector computation routines + have been optimized and placed within the `ttinterp.c' file. + + - Fixed the parsing of accelerator tables in the PCF font driver. + + - Fixed the Type1 glyph loader routine used to compute the font's + maximum advance width. + + + II. NEW FEATURES + + - The `configure' script used on Unix systems has been modified to + check that GNU Make is being used to build the library. + Otherwise, it will display a message proposing to use the + GNUMAKE environment variable to name it. + + The Unix-specific file README.UNX has been modified accordingly. + + + III. MISCELLANEOUS + + - The FreeType License in `docs/FTL.TXT' has been updated to + include a proposed preferred disclaimer. If you are using + FreeType in your products, you are encouraged (but not mandated) + to use the following text in your documentation: + + """ + Portions of this software are copyright © 1996-2002 The + FreeType Project (www.freetype.org). All rights reserved. + """ + + - The default size of the render pool has been reduced to 16kByte. + This shouldn't result in any noticeable performance penalty, + unless you are using the engine as-is to render very large and + complex glyphs. + + - The FreeType 2 redesign has begun. More information can be + found at this URL: + + http://www.freetype.org/freetype2/redesign.html + + The following internal changes have been performed within the + sources of this release: + + - Many internal types have been renamed to increase + consistency. The following should be true, except for + public types: + + * All structure types have a name ending in `Rec' (short + for `record'). + + * A pointer-to-structure type has the same name as the + structure, _without_ the `Rec' suffix. + + Example: + + typedef struct FooRec_ + { + ... + + } FooRec, *Foo; + + - Many internal macros have been renamed to increase + consistency. The following should be true: + + * All macros have a name beginning with `FT_'. This + required a few changes like + + ALLOC => FT_ALLOC + FREE => FT_FREE + REALLOC => FT_REALLOC + + * All macros are completely UPPERCASE. This required a + few changes like: + + READ_Short => FT_READ_SHORT + NEXT_Short => FT_NEXT_SHORT + GET_ULongLE => FT_GET_ULONG_LE + MEM_Set => FT_MEM_SET + MEM_Copy => FT_MEM_COPY + etc. + + * Whenever possible, all macro names follow the + FT_<OBJECT>_<METHOD> pattern. For example + + ACCESS_Frame => FT_FRAME_ENTER + FORGET_Frame => FT_FRAME_EXIT + EXTRACT_Frame => FT_FRAME_EXTRACT + RELEASE_Frame => FT_FRAME_RELEASE + + FILE_Pos => FT_STREAM_POS + FILE_Seek => FT_STREAM_SEEK + FILE_Read => FT_STREAM_READ + FILE_ReadAt => FT_STREAM_READ_AT + READ_Fields => FT_STREAM_READ_FIELDS + + - Many internal functions have been renamed to follow the + FT_<Object>_<Method> pattern. For example: + + FT_Seek_Stream => FT_Stream_Seek + FT_Read_Stream_At => FT_Stream_ReadAt + FT_Done_Stream => FT_Stream_Close + FT_New_Stream => FT_Stream_Open + FT_New_Memory_Stream => FT_Stream_OpenMemory + FT_Extract_Frame => FT_Stream_ExtractFrame + + Note that method names do not contain `_'. + + - The FT_ALLOC_ARRAY and FT_REALLOC_ARRAY have been replaced + with FT_NEW_ARRAY and FT_RENEW_ARRAY which do not take a + type as the fourth argument. Instead, the array element + type size is computed automatically from the type of the + target pointer used. + + - A new object class, FT_CMap, has been introduced. These + internal objects are used to model character maps. This + eases the support of additional charmap types within the + engine. + + - A new configuration file named `ftstdlib.h' has been added + to `include/freetype/config'. It is used to define aliases + for _every_ routine of the ISO C library that the font + engine uses. Each aliases has a `ft_' prefix + (e.g. `ft_strlen' is an alias for `strlen'). + + This is used to ease the porting of FreeType 2 to exotic + runtime environments where the ISO C Library isn't available + (e.g. XFree86 extension modules). + + More details are available in the `ChangeLog' file. + + +====================================================================== + +CHANGES BETWEEN 2.0.9 and 2.0.8 + + I. IMPORTANT BUG FIXES + + - Certain fonts like `foxjump.ttf' contain broken name tables with + invalid entries and wild offsets. This caused FreeType to crash + when trying to load them. + + The SFNT `name' table loader has been fixed to be able to + support these strange fonts. + + Moreover, the code in charge of processing this table has been + changed to always favour Windows-formatted entries over other + ones. Hence, a font that works on Windows but not on the Mac + will load cleanly in FreeType and report accurate values for + Family & PostScript names. + + - The CID font driver has been fixed. It unfortunately returned a + Postscript Font name with a leading slash, as in + `/MunhwaGothic-Regular'. + + - FreeType 2 should now compile fine on AIX 4.3.3 as a shared + library. + + - A bug in the Postscript hinter has been found and fixed, + removing un-even stem widths at small pixel sizes (like 14-17). + + This improves the quality of a certain number of Postscript + fonts. + + + II. NEW FEATURES + + - A new function named `FT_Library_Version' has been added to + return the current library's major, minor, and patch version + numbers. This is important since the macros FREETYPE_MAJOR, + FREETYPE_MINOR, and FREETYPE_PATCH cannot be used when the + library is dynamically linked by a program. + + - Two new APIs have been added: `FT_Get_First_Char' and + `FT_Get_Next_Char'. + + Together, these can be used to iterate efficiently over the + currently selected charmap of a given face. Read the API + reference for more details. + + + III. MISCELLANEOUS + + - The FreeType sources are under heavy internal re-factoring. As + a consequence, we have created a branch named `STABLE' on the + CVS to hold all future releases/fixes in the 2.0.x family. + + The HEAD branch now contains the re-factored sources and + shouldn't be used for testing or packaging new releases. In + case you would like to access the 2.0.9 sources from our CVS + repository, use the tag `VER-2-0-9'. + + +====================================================================== + +CHANGES BETWEEN 2.0.8 and 2.0.7 + + I. IMPORTANT BUG FIXES + + - There was a small but nasty bug in `freetype-config.in' which + caused the `freetype-config' script to fail on Unix. + + This didn't prevent the installation of the library or even its + execution, but caused problems when trying to compile many Unix + packages that depend on it. + + - Some TrueType or OpenType fonts embedded in PDF documents do not + have a 'cmap', 'post' and 'name' as is required by the + specification. FreeType no longer refuses to load such fonts. + + - Various fixes to the PCF font driver. + + +====================================================================== + +CHANGES BETWEEN 2.0.7 and 2.0.6 + + I. IMPORTANT BUG FIXES + + - Fixed two bugs in the Type 1 font driver. The first one + resulted in a memory leak in subtle cases. The other one caused + FreeType to crash when trying to load `.gsf' files (Ghostscript + so-called Postscript fonts). + + (This made _many_ KDE applications crash on certain systems. + FreeType _is_ becoming a critical system component on Linux :-) + + - Fixed a memory leak in the CFF font driver. + + - Fixed a memory leak in the PCF font driver. + + - Fixed the Visual C++ project file + `builds/win32/visualc/freetype.dsp' since it didn't include the + Postscript hinter component, causing errors at build time. + + - Fixed a small rendering bug in the anti-aliased renderer that + only occurred when trying to draw thin (less than 1 pixel) + strokes. + + - Fixed `builds/unix/freetype2.a4' which is used to generate a + valid `freetype2.m4' for use with autoconf. + + - Fixed the OpenVMS Makefiles. + + + II. MISCELLANEOUS + + - Added `configure' and `install' scripts to the top-level + directory. A GNU-style installation is thus now easily possible + with + + ./configure <options> + make + make install + + +====================================================================== + +CHANGES BETWEEN 2.0.6 and 2.0.5 + + I. IMPORTANT BUG FIXES + + - It wasn't possible to load embedded bitmaps when the auto-hinter + was used. This is now fixed. + + - The TrueType font driver didn't load some composites properly + (the sub-glyphs were slightly shifted, and this was only + noticeable when using monochrome rendering). + + - Various fixes to the auto-hinter. They merely improve the + output of sans-serif fonts. Note that there are still problems + with serifed fonts and composites (accented characters). + + - All scalable font drivers erroneously returned un-fitted glyph + advances when hinting was requested. This created problems for + a number of layout applications. This is a very old bug that + got undetected mainly because most test/demo program perform + rounding explicitly or implicitly (through the cache). + + - `FT_Glyph_To_Bitmap' did erroneously modify the source glyph in + certain cases. + + - `glnames.py' still contained a bug that made FreeType return + invalid names for certain glyphs. + + - The library crashed when loading certain Type 1 fonts like + `sadn.pfb' (`Stalingrad Normal'), which appear to contain + pathetic font info dictionaries. + + - The TrueType glyph loader is now much more paranoid and checks + everything when loading a given glyph image. This was necessary + to avoid problems (crashes and/or memory overwrites) with broken + fonts that came from a really buggy automatic font converter. + + + II. IMPORTANT UPDATES AND NEW FEATURES + + - Important updates to the Mac-specific parts of the library. + + - The caching sub-system has been completely re-designed, and its + API has evolved (the old one is still supported for backward + compatibility). + + The documentation for it is not yet completed, sorry. For now, + you are encouraged to continue using the old API. However, the + ftview demo program in the ft2demos package has already been + updated to use the new caching functions. + + - A new charmap cache is provided too. See `FTC_CMapCache'. This + is useful to perform character code -> glyph index translations + quickly, without the need for an opened FT_Face. + + - A NEW POSTSCRIPT HINTER module has been added to support native + hints in the following formats: PostScript Type 1, PostScript + CID, and CFF/CEF. + + Please test! Note that the auto-hinter produces better results + for a number of badly-hinted fonts (mostly auto-generated ones) + though. + + - A memory debugger is now part of the standard FreeType sources. + To enable it, define FT_DEBUG_MEMORY in + <freetype/config/ftoption.h>, and recompile the library. + + Additionally, define the _environment_ variable FT_DEBUG_MEMORY + and run any program using FreeType. When the library is exited, + a summary of memory footprints and possible leaks will be + displayed. + + This works transparently with _any_ program that uses FreeType. + However, you will need a lot of memory to use this (allocated + blocks are never released to the heap to detect double deletes + easily). + + + III. MISCELLANEOUS + + - We are aware of subtle differences between the output of + FreeType versions 1 and 2 when it comes to monochrome + TrueType-hinted glyphs. These are most probably due to small + differences in the monochrome rasterizers and will be worked out + in an upcoming release. + + - We have decided to fork the sources in a `stable' branch, and an + `unstable' one, since FreeType is becoming a critical component + of many Unix systems. + + The next bug-fix releases of the library will be named 2.0.7, + 2.0.8, etc., while the `2.1' branch will contain a version of + the sources where we will start major reworking of the library's + internals, in order to produce FreeType 2.2.0 (or even 3.0) in a + more distant future. + + We also hope that this scheme will allow much more frequent + releases than in the past. + + +====================================================================== + +CHANGES BETWEEN 2.0.5 and 2.0.4 + + NOTE THAT 2.0.5 DOES NOT CONTAIN THE POSTSCRIPT HINTER. THIS MODULE + WILL BE PART OF THE NEXT RELEASE (EITHER 2.0.6 or 2.1) + + - Fixed a bug that made certain glyphs, like `Cacute', `cacute' and + `lslash' unavailable from Unicode charmaps of Postscript fonts. + This prevented the correct display of Polish text, for example. + + - The kerning table of Type 1 fonts was loaded by FreeType, when its + AFM file was attached to its face, but the + FT_FACE_FLAG_HAS_KERNING bit flags was not set correctly, + preventing FT_Get_Kerning to return meaningful values. + + - Improved SFNT (TrueType & OpenType) charmap support. Slightly + better performance, as well as support for the new formats defined + by the OpenType 1.3 specification (8, 10, and 12) + + - Fixed a serious typo in `src/base/ftcalc.c' which caused invalid + computations in certain rare cases, producing ugly artefacts. + + - The size of the EM square is computed with a more accurate + algorithm for Postscript fonts. The old one caused slight errors + with embedded fonts found in PDF documents. + + - Fixed a bug in the cache manager that prevented normal LRU + behaviour within the cache manager, causing unnecessary reloads + (for FT_Face and FT_Size objects only). + + - Added a new function named `FT_Get_Name_Index' to retrieve the + glyph index of a given glyph name, when found in a face. + + - Added a new function named `FT_Get_Postscript_Name' to retrieve + the `unique' Postscript font name of a given face. + + - Added a new public header size named FT_SIZES_H (or + <freetype/ftsizes.h>) providing new FT_Size-management functions: + FT_New_Size, FT_Activate_Size, FT_Done_Size. + + - Fixed a reallocation bug that generated a dangling pointer (and + possibly memory leaks) with Postscript fonts (in + src/psaux/psobjs.c). + + - Many fixes for 16-bit correctness. + + - Removed many pedantic compiler warnings from the sources. + + - Added an Amiga build directory in `builds/amiga'. + + +====================================================================== + +CHANGES BETWEEN 2.0.4 and 2.0.3 + + - Fixed a rather annoying bug that was introduced in 2.0.3. Namely, + the font transformation set through FT_Set_Transform was applied + twice to auto-hinted glyphs, resulting in incorrectly rotated text + output. + + - Fixed _many_ compiler warnings. FT2 should now compile cleanly + with Visual C++'s most pedantic warning level (/W4). It already + compiled fine with GCC and a few other compilers. + + - Fixed a bug that prevented the linear advance width of composite + TrueType glyphs to be correctly returned. + + - Fixed the Visual C++ project files located in + `builds/win32/visualc' (previous versions used older names of the + library). + + - Many 32-bit constants have an `L' appended to their value, in + order to improve the 16-bitness of the code. Someone is actually + trying to use FT2 on an Atari ST machine! + + - Updated the `builds/detect.mk' file in order to automatically + build FT2 on AIX systems. AIX uses `/usr/sbin/init' instead of + `/sbin/init' and wasn't previously detected as a Unix platform by + the FreeType build system. + + - Updated the Unix-specific portions of the build system (new + libtool version, etc.). + + - The SFNT kerning loader now ensures that the table is sorted + (since some problem fonts do not meet this requirement). + + +======================================================================= + +CHANGES BETWEEN 2.0.3 and 2.0.2 + + I. CHANGES TO THE MODULES / FONT DRIVERS + + - THE AUTO-HINTER HAS BEEN SLIGHTLY IMPROVED, in order to fix + several annoying artefacts, mainly: + + - Blue zone alignment of horizontal stems wasn't performed + correctly, resulting in artefacts like the `d' being placed + one pixel below the `b' in some fonts like Time New Roman. + + - Overshoot thresholding wasn't performed correctly, creating + unpleasant artefacts at large character pixel sizes. + + - Composite glyph loading has been simplified. This gets rid + of various artefacts where the components of a composite + glyphs were not correctly spaced. + + These are the last changes to the current auto-hinting module. + A new hinting sub-system is currently in the work in order to + support native hints in Type 1 / CFF / OpenType fonts, as well + as globally improve rendering. + + - The PCF driver has been fixed. It reported invalid glyph + dimensions for the fonts available on Solaris. + + - The Type 1, CID and CFF drivers have been modified to fix the + computation of the EM size. + + - The Type 1 driver has been fixed to avoid a dangerous bug that + crashed the library with non-conforming fonts (i.e. ones that do + not place the .notdef glyph at position 0). + + - The TrueType driver had a rather subtle bug (dangling pointer + when loading composite glyphs) that could crash the library in + rare occasions! + + + II. HIGH-LEVEL API CHANGES + + - The error code enumeration values have been changed. An error + value is decomposed in a generic error code, and a module + number. see <freetype/fterrors.h> for details. + + - A new public header file has been introduced, named + FT_TRIGONOMETRY_H (include/freetype/fttrig.h), providing + trigonometric functions to compute sines, cosines, arctangents, + etc. with 16.16 fixed precision. The implementation is based on + the CORDIC algorithm and is very fast while being sufficiently + accurate. + + + III. INTERNALS + + - Added BeOS-specific files in the old build sub-system. Note + that no changes were required to compile the library with Jam. + + - The configuration is now capable of automatically detecting + 64-bit integers on a set of predefined compilers (GCC, Visual + C++, Borland C++) and will use them by default. This provides a + small performance boost. + + - A small memory leak that happened when opening 0-sized files + (duh!) have been fixed. + + - Fixed bezier stack depth bug in the routines provided by the + FT_BBOX_H header file. Also fixed similar bugs in the + rasterizers. + + - The outline bounding box code has been rewritten to use direct + computations, instead of bezier sub-division, to compute the + exact bounding box of glyphs. This is slightly slower but more + accurate. + + - The build system has been improved and fixed, mainly to support + `make' on Windows 2000 correctly, avoid problems with `make + distclean' on non Unix systems, etc. + + - Hexadecimal constants have been suffixed with `U' to avoid + problems with certain compilers on 64-bit platforms. + + - A new directory named `src/tools' has been created. It contains + Python scripts and simple unit test programs used to develop the + library. + + - The DocMaker tool has been moved from `docs' to `src/tools' and + has been updated with the following: + + - Now accepts the `--title=XXXX' or `-t XXXX' option from the + command line to set the project's name in the generated API + reference. + + - Now accepts the `--output=DIR' or `-o DIR' option from the + command line to set the output directory for all generated + HTML files. + + - Now accepts the `--prefix=XXXX' or `-p XXX' option from the + command line to set the file prefix to use for all + generated HTML files. + + - Now generates the current time/data on each generated page + in order to distinguish between versions. + + DocMaker can be used with other projects now, not only FT2 + (e.g. MLib, FTLayout, etc.). + + +====================================================================== + +CHANGES BETWEEN 2.0.2 and 2.0.1 + + I. CHANGES TO THE MODULES / FONT DRIVERS + + - THE TRUETYPE BYTECODE INTERPRETER IS NOW TURNED OFF, in order to + avoid legal problems with the Apple patents. It seems that we + mistakenly turned this option on in previous releases of the + build. + + Note that if you want to use the bytecode interpreter in order + to get high-quality TrueType rendering, you will need to toggle + by hand the definition of the + TT_CONFIG_OPTION_BYTECODE_INTERPRETER macro in the file + `include/freetype/config/ftoption.h'. + + - The CFF driver has been improved by Tom Kacvinsky and Sander van + der Wal: + + * Support for `seac' emulation. + * Support for `dotsection'. + * Support for retrieving glyph names through + `FT_Get_Glyph_Name'. + + The first two items are necessary to correctly a large number of + Type 1 fonts converted to the CFF formats by Adobe Acrobat. + + - The Type 1 driver was also improved by Tom & others: + + * Better EM size computation. + * Better support for synthetic (transformed) fonts. + * The Type 1 driver returns the charstrings corresponding to + each glyph in the `glyph->control_data' field after a call to + `FT_Load_Glyph' (thanks Ha Shao). + + - Various other bugfixes, including the following: + + * Fixed a nasty memory leak in the Type 1 driver. + * The autohinter and the pcf driver used static writable data + when they shouldn't. + * Many casts were added to make the code more 64-bits safe. It + also now compiles on Windows XP 64-bits without warnings. + * Some incorrect writable statics were removed in the `autohint' + and `pcf' drivers. FreeType 2 now compiles on Epoc again. + + + II. CHANGES TO THE HIGH-LEVEL API + + - The library header files inclusion scheme has been changed. The + old scheme looked like: + + #include <freetype/freetype.h> + #include <freetype/ftglyph.h> + #include <freetype/ftcache.h> + #include <freetype/cache/ftimage.h> + + Now you should use: + + #include <ft2build.h> + #include FT_FREETYPE_H + #include FT_GLYPH_H + #include FT_CACHE_H + #include FT_CACHE_IMAGE_H + + NOTE THAT THE OLD INCLUSION SCHEME WILL STILL WORK WITH THIS + RELEASE. HOWEVER, WE DO NOT GUARANTEE THAT THIS WILL STILL BE + TRUE IN THE NEXT ONE (A.K.A. FREETYPE 2.1). + + The file <ft2build.h> is used to define the header filename + macros. The complete and commented list of macros is available + in the API reference under the section name `Header File Macros' + in Chapter I. + + For more information, see section I of the following document: + + http://www.freetype.org/ + freetype2/docs/tutorial/step1.html + + or + + http://freetype.sourceforge.net/ + freetype2/docs/tutorial/step1.html + + - Many, many comments have been added to the public source file in + order to automatically generate the API Reference through the + `docmaker.py' Python script. + + The latter has been updated to support the grouping of sections + in chapters and better index sort. See: + + http://www.freetype.org/freetype2/docs/reference/ft2-toc.html + + + III. CHANGES TO THE BUILD PROCESS + + - If you are not building FreeType 2 with its own build system + (but with your own Makefiles or project files), you will need to + be aware that the build process has changed a little bit. + + You don't need to put the `src' directory in the include path + when compiling any FT2 component. Instead, simply put the + component's directory in the current include path. + + So, if you were doing something like: + + cc -c -Iinclude -Isrc src/base/ftbase.c + + change the line to: + + cc -c -Iinclude -Isrc/base src/base/ftbase.c + + If you were doing something like: + + cd src/base + cc -c -I../../include -I.. ftbase.c + + change it to: + + cd src/base + cc -c -I../../include ftbase.c + + +====================================================================== + +CHANGES BETWEEN 2.0.1 and 2.0 + + 2.0.1 introduces a few changes: + + - Fixed many bugs related to the support of CFF / OpenType fonts. + These formats are now much better supported though there is + still work planned to deal with charset tables and PDF-embedded + CFF files that use the old `seac' command. + + - The library could not be compiled in debug mode with a very + small number of C compilers whose pre-processors didn't + implement the `##' directive correctly (i.e. per se the ANSI C + specification!) An elegant fix was found. + + - Added support for the free Borland command-line C++ Builder + compiler. Use `make setup bcc32'. Also fixed a few source + lines that generated new warnings with BCC32. + + - Fixed a bug in FT_Outline_Get_BBox when computing the extrema of + a conic Bezier arc. + + - Updated the INSTALL file to add IDE compilation. + + - Other minor bug fixes, from invalid Type 1 style flags to + correct support of synthetic (obliqued) fonts in the + auto-hinter, better support for embedded bitmaps in a SFNT font. + + - Fixed some problems with `freetype-config'. + + Finally, the `standard' scheme for including FreeType headers is now + gradually changing, but this will be explained in a later release + (probably 2.0.2). + + And very special thanks to Tom Kacvinsky and YAMANO-UCHI Hidetoshi + for their contributions! + + +====================================================================== + +CHANGES BETWEEN beta8 and 2.0 + + - Changed the default installation path for public headers from + `include/freetype' to `include/freetype2'. + + Also added a new `freetype-config' that is automatically generated + and installed on Unix and Cygwin systems. The script itself is + used to retrieve the current install path, C compilation flags as + well as linker flags. + + - Fixed several small bugs: + + * Incorrect max advance width for fixed-pitch Type 1 fonts. + * Incorrect glyph names for certain TrueType fonts. + * The glyph advance was not copied when FT_Glyph_To_Bitmap was + called. + * The linearHoriAdvance and linearVertAdvance fields were not + correctly returned for glyphs processed by the auto-hinter. + * `type1z' renamed back to `type1'; the old `type1' module has + been removed. + + - Revamped the build system to make it a lot more generic. This + will allow us to re-use nearly un-modified in lots of other + projects (including FreeType Layout). + + - Changed `cid' to use `psaux' too. + + - Added the cache sub-system. See <freetype/ftcache.h> as well as + the sources in `src/cache'. Note that it compiles but is still + untested for now. + + - Updated `docs/docmaker.py', a draft API reference is available at + http://www.freetype.org/ft2api.html. + + - Changed `type1' to use `psaux'. + + - Created a new module named `psaux' to hold the Type 1 & Type 2 + parsing routines. It should be used by `type1', `cid', and `cff' + in the future. + + - Fixed an important bug in `FT_Glyph_Get_CBox'. + + - Fixed some compiler warnings that happened since the TrueType + bytecode decoder was deactivated by default. + + - Fixed two memory leaks: + + * The memory manager (16 bytes) isn't released in + FT_Done_FreeType! + * Using custom input streams, the copy of the original stream was + never released. + + - Fixed the auto-hinter by performing automatic computation of the + `filling direction' of each glyph. This is done through a simple + and fast approximation, and seems to work (problems spotted by + Werner though). The Arphic fonts are a lot nicer though there are + still a lot of things to do to handle Asian fonts correctly. + + +====================================================================== + +BETA-8 (RELEASE CANDIDATE) CHANGES + + - Deactivated the TrueType bytecode interpreter by default. + + - Deactivated the `src/type1' font driver. Now `src/type1z' is used + by default. + + - Updates to the build system. We now compile the library correctly + under Unix system through `configure' which is automatically + called on the first `make' invocation. + + - Added the auto-hinting module! Fixing some bugs here and there. + + - Found some bugs in the composite loader (seac) of the Type1-based + font drivers. + + - Renamed the directory `freetype2/config' to `freetype2/builds' and + updated all relevant files. + + - Found a memory leak in the `type1' driver. + + - Incorporated Tom's patches to support flex operators correctly in + OpenType/CFF fonts. Now all I need is to support pure CFF and CEF + fonts to be done with this driver :-) + + - Added the Windows FNT/FON driver in `src/winfonts'. For now, it + always `simulates' a Unicode charmap, so it shouldn't be + considered completed right now. + + It is there to be more a proof of concept than anything else + anyway. The driver is a single C source file, that compiles to 3 + Kb of code. + + I'm still working on the PCF/BDF drivers, but I'm too lazy to + finish them now. + + - CHANGES TO THE HIGH-LEVEL API + + * FT_Get_Kerning has a new parameter that allows you to select the + coordinates of the kerning vector (font units, scaled, scaled + + grid-fitted). + * The outline functions are now in <freetype/ftoutln.h> and not + part of <freetype/freetype.h> anymore. + * <freetype/ftmodule.h> now contains declarations for + FT_New_Library, FT_Done_Library, FT_Add_Default_Modules. + * The so-called convenience functions have moved from `ftoutln.c' + to `ftglyph.c', and are thus available with this optional + component of the library. They are declared in + <freetype/ftglyph.h> now. + * Anti-aliased rendering is now the default for FT_Render_Glyph + (i.e. corresponds to render_mode == 0 == ft_render_mode_normal). + To generate a monochrome bitmap, use ft_render_mode_mono, or the + FT_LOAD_MONOCHROME flag in FT_Load_Glyph/FT_Load_Char. + FT_LOAD_ANTI_ALIAS is still defined, but values to 0. + * <freetype/freetype.h> now include <freetype/config/ftconfig.h>, + solving a few headaches :-) + * The type FT_GlyphSlotRec has now a `library' field. + + - CHANGES TO THE `ftglyph.h' API + + This API has been severely modified in order to make it simpler, + clearer, and more efficient. It certainly now looks like a real + `glyph factory' object, and allows client applications to manage + (i.e. transform, bbox and render) glyph images without ever + knowing their original format. + + - Added support for CID-keyed fonts to the CFF driver. Maybe + support for pure CFF + CEF fonts should come in? + + - Cleaned up source code in order to avoid two functions with the + same name. Also changed the names of the files in `type1z' from + `t1XXXX' to `z1XXXX' in order to avoid any conflicts. + + `make multi' now works well :-) + + Also removed the use of `cidafm' for now, even if the source files + are still there. This functionality will certainly go into a + specific module. + + - ADDED SUPPORT FOR THE AUTO-HINTER + + It works :-) I have a demo program which simply is a copy of + `ftview' that does a `FT_Add_Module(library, + &autohinter_module_class)' after library initialization, and Type + 1 & OpenType/CFF fonts are now hinted. + + CID fonts are not hinted, as they include no charmap and the + auto-hinter doesn't include `generic' global metrics computations + yet. + + Now, I need to release this thing to the FreeType 2 source. + + - CHANGES TO THE RENDERER MODULES + + The monochrome and smooth renderers are now in two distinct + directories, namely `src/raster1' and `src/smooth'. Note that the + old `src/renderer' is now gone. + + I ditched the 5-gray-levels renderers. Basically, it involved a + simple #define toggle in 'src/raster1/ftraster.c'. + + FT_Render_Glyph, FT_Outline_Render & FT_Outline_Get_Bitmap now + select the best renderer available, depending on render mode. If + the current renderer for a given glyph image format isn't capable + of supporting the render mode, another one will be found in the + library's list. This means that client applications do not need + to switch or set the renderers themselves (as in the latest + change), they'll get what they want automatically. At last. + + Changed the demo programs accordingly. + + - MAJOR INTERNAL REDESIGN: + + A lot of internal modifications have been performed lately on the + source in order to provide the following enhancements: + + * More generic module support: + + The FT_Module type is now defined to represent a handle to a + given module. The file <freetype/ftmodule.h> contains the + FT_Module_Class definition, as well as the module-loading public + API. + + The FT_Driver type is still defined, and still represents a + pointer to a font driver. Note that FT_Add_Driver is replaced + by FT_Add_Module, FT_Get_Driver by FT_Get_Module, etc. + + * Support for generic glyph image types: + + The FT_Renderer type is a pointer to a module used to perform + various operations on glyph image. + + Each renderer is capable of handling images in a single format + (e.g. ft_glyph_format_outline). Its functions are used to: + + - transform an glyph image + - render a glyph image into a bitmap + - return the control box (dimensions) of a given glyph image + + The scan converters `ftraster.c' and `ftgrays.c' have been moved + to the new directory `src/renderer', and are used to provide two + default renderer modules. + + One corresponds to the `standard' scan-converter, the other to + the `smooth' one. + + he current renderer can be set through the new function + FT_Set_Renderer. + + The old raster-related function FT_Set_Raster, FT_Get_Raster and + FT_Set_Raster_Mode have now disappeared, in favor of the new: + + FT_Get_Renderer + FT_Set_Renderer + + See the file <freetype/ftrender.h> for more details. + + These changes were necessary to properly support different + scalable formats in the future, like bi-color glyphs, etc. + + * Glyph loader object: + + A new internal object, called a 'glyph loader' has been + introduced in the base layer. It is used by all scalable format + font drivers to load glyphs and composites. + + This object has been created to reduce the code size of each + driver, as each one of them basically re-implemented its + functionality. + + See <freetype/internal/ftobjs.h> and the FT_GlyphLoader type for + more information. + + * FT_GlyphSlot has new fields: + + In order to support extended features (see below), the + FT_GlyphSlot structure has a few new fields: + + linearHoriAdvance: + + This field gives the linearly scaled (i.e. scaled but + unhinted) advance width for the glyph, expressed as a 16.16 + fixed pixel value. This is useful to perform WYSIWYG text. + + linearVertAdvance: + This field gives the linearly scaled advance height for the + glyph (relevant in vertical glyph layouts only). This is + useful to perform WYSIWYG text. + + Note that the two above field replace the removed `metrics2' + field in the glyph slot. + + advance: + This field is a vector that gives the transformed advance for + the glyph. By default, it corresponds to the advance width, + unless FT_LOAD_VERTICAL_LAYOUT was specified when calling + FT_Load_Glyph or FT_Load_Char. + + bitmap_left: + This field gives the distance in integer pixels from the + current pen position to the left-most pixel of a glyph image + IF IT IS A BITMAP. It is only valid when the `format' field + is set to `ft_glyph_format_bitmap', for example, after calling + the new function FT_Render_Glyph. + + bitmap_top: + This field gives the distance in integer pixels from the + current pen position (located on the baseline) to the top-most + pixel of the glyph image IF IT IS A BITMAP. Positive values + correspond to upwards Y. + + loader: + This is a new private field for the glyph slot. Client + applications should not touch it. + + + * Support for transforms and direct rendering in FT_Load_Glyph: + + Most of the functionality found in <freetype/ftglyph.h> has been + moved to the core library. Hence, the following: + + - A transform can be specified for a face through + FT_Set_Transform. this transform is applied by FT_Load_Glyph + to scalable glyph images (i.e. NOT TO BITMAPS) before the + function returns, unless the bit flag FT_LOAD_IGNORE_TRANSFORM + was set in the load flags. + + - Once a glyph image has been loaded, it can be directly + converted to a bitmap by using the new FT_Render_Glyph + function. Note that this function takes the glyph image from + the glyph slot, and converts it to a bitmap whose properties + are returned in `face.glyph.bitmap', `face.glyph.bitmap_left' + and `face.glyph.bitmap_top'. The original native image might + be lost after the conversion. + + - When using the new bit flag FT_LOAD_RENDER, the FT_Load_Glyph + and FT_Load_Char functions will call FT_Render_Glyph + automatically when needed. + + - Reformatted all modules source code in order to get rid of the + basic data types redifinitions (i.e. `TT_Int' instead of `FT_Int', + `T1_Fixed' instead of `FT_Fixed'). Hence the format-specific + prefixes like `TT_', `T1_', `T2_' and `CID_' are only used for + relevant structures. + + +====================================================================== + +OLD CHANGES FOR BETA 7 + + - bug-fixed the OpenType/CFF parser. It now loads and displays my + two fonts nicely, but I'm pretty certain that more testing is + needed :-) + + - fixed the crummy Type 1 hinter, it now handles accented characters + correctly (well, the accent is not always well placed, but that's + another problem..) + + - added the CID-keyed Type 1 driver in `src/cid'. Works pretty well + for only 13 Kb of code ;-) Doesn't read AFM files though, nor the + really useful CMAP files.. + + - fixed two bugs in the smooth renderer (src/base/ftgrays.c). + Thanks to Boris Letocha for spotting them and providing a fix. + + - fixed potential `divide by zero' bugs in ftcalc.c. + + - added source code for the OpenType/CFF driver (still incomplete + though..) + + - modified the SFNT driver slightly to perform more robust header + checks in TT_Load_SFNT_Header. This prevents certain font files + (e.g. some Type 1 Multiple Masters) from being incorrectly + `recognized' as TrueType font files.. + + - moved a lot of stuff from the TrueType driver to the SFNT module, + this allows greater code re-use between font drivers + (e.g. TrueType, OpenType, Compact-TrueType, etc..) + + - added a tiny segment cache to the SFNT Charmap 4 decoder, in order + to minimally speed it up.. + + - added support for Multiple Master fonts in `type1z'. There is + also a new file named <freetype/ftmm.h> which defines functions to + manage them from client applications. + + The new file `src/base/ftmm.c' is also optional to the engine.. + + - various formatting changes (e.g. EXPORT_DEF -> FT_EXPORT_DEF) + + small bug fixes in FT_Load_Glyph, the `type1' driver, etc.. + + - a minor fix to the Type 1 driver to let them apply the font matrix + correctly (used for many oblique fonts..) + + - some fixes for 64-bit systems (mainly changing some FT_TRACE calls + to use %p instead of %lx). Thanks to Karl Robillard. + + - fixed some bugs in the sbit loader (src/base/sfnt/ttsbit.c) + + added a new flag, FT_LOAD_CROP_BITMAP to query that bitmaps be + cropped when loaded from a file (maybe I should move the bitmap + cropper to the base layer ??). + + - changed the default number of gray levels of the smooth renderer + to 256 (instead of the previous 128). Of course, the human eye + can't see any difference ;-) + + - removed TT_MAX_SUBGLYPHS, there is no static limit on the number + of subglyphs in a TrueType font now.. + + +====================================================================== + +OLD CHANGES 16 May 2000 + + - tagged `BETA-6' in the CVS tree. This one is a serious release + candidate even though it doesn't incorporate the auto-hinter yet.. + + - various obsolete files were removed, and copyright header updated + + - finally updated the standard raster to fix the monochrome + rendering bug + re-enable support for 5-gray levels anti-aliasing + (suck, suck..) + + - created new header files, and modified sources accordingly: + + <freetype/fttypes.h> + - simple FreeType types, without the API + <freetype/internal/ftmemory.h> + - definition of memory-management macros + + - added the `DSIG' (OpenType Digital Signature) tag to + <freetype/tttags.h> + + - light update/cleaning of the build system + changes to the sources + in order to get rid of _all_ compiler warnings with three + compilers, i.e: + + gcc with `-ansi -pedantic -Wall -W', Visual C++ with `/W3 /WX' and + LCC + + IMPORTANT NOTE FOR WIN32-LCC USERS: + | + | It seems the C pre-processor that comes with LCC is broken, it + | doesn't recognize the ANSI standard directives # and ## + | correctly when one of the argument is a macro. Also, + | something like: + | + | #define F(x) print##x + | + | F(("hello")) + | + | will get incorrectly translated to: + | + | print "hello") + | + | by its pre-processor. For this reason, you simply cannot build + | FreeType 2 in debug mode with this compiler.. + + - yet another massive grunt work. I've changed the definition of + the EXPORT_DEF, EXPORT_FUNC, BASE_DEF & BASE_FUNC macros. These + now take an argument, which is the function's return value type. + + This is necessary to compile FreeType as a DLL on Windows and + OS/2. Depending on the compiler used, a compiler-specific keyword + like __export or __system must be placed before (VisualC++) or + after (BorlandC++) the type.. + + Of course, this needed a lot of changes throughout the source code + to make it compile again... All cleaned up now, apparently.. + + Note also that there is a new EXPORT_VAR macro defined to allow + the _declaration_ of an exportable public (constant) + variable. This is the case of the raster interfaces (see + ftraster.h and ftgrays.h), as well as each module's interface (see + sfdriver.h, psdriver.h, etc..) + + - new feature: it is now possible to pass extra parameters to font + drivers when creating a new face object. For now, + this capability is unused. It could however prove to + be useful in a near future.. + + the FT_Open_Args structure was changes, as well as the internal + driver interface (the specific `init_face' module function has + now a different signature). + + - updated the tutorial (not finished though). + + - updated the top-level BUILD document + + - fixed a potential memory leak that could occur when loading + embedded bitmaps. + + - added the declaration of FT_New_Memory_Face in + <freetype/freetype.h>, as it was missing from the public header + (the implementation was already in `ftobjs.c'). + + - the file <freetype/fterrors.h> has been seriously updated in order + to allow the automatic generation of error message tables. See + the comments within it for more information. + + - major directory hierarchy re-organisation. This was done for two + things: + + * first, to ease the `manual' compilation of the library by + requiring at lot less include paths :-) + + * second, to allow external programs to effectively access + internal data fields. For example, this can be extremely + useful if someone wants to write a font producer or a font + manager on top of FreeType. + + Basically, you should now use the 'freetype/' prefix for header + inclusion, as in: + + #include <freetype/freetype.h> + #include <freetype/ftglyph.h> + + Some new include sub-directories are available: + + a. the `freetype/config' directory, contains two files used to + configure the build of the library. Client applications + should not need to look at these normally, but they can if + they want. + + #include <freetype/config/ftoption.h> + #include <freetype/config/ftconfig.h> + + b. the `freetype/internal' directory, contains header files that + describes library internals. These are the header files that + were previously found in the `src/base' and `src/shared' + directories. + + + As usual, the build system and the demos have been updated to + reflect the change.. + + Here's a layout of the new directory hierarchy: + + TOP_DIR + include/ + freetype/ + freetype.h + ... + config/ + ftoption.h + ftconfig.h + ftmodule.h + + internal/ + ftobjs.h + ftstream.h + ftcalc.h + ... + + src/ + base/ + ... + + sfnt/ + psnames/ + truetype/ + type1/ + type1z/ + + + Compiling a module is now much easier, for example, the following + should work when in the TOP_DIR directory on an ANSI build: + + gcc -c -I./include -I./src/base src/base/ftbase.c + gcc -c -I./include -I./src/sfnt src/sfnt/sfnt.c + etc.. + + (of course, using -Iconfig/<system> if you provide system-specific + configuration files). + + - updated the structure of FT_Outline_Funcs in order to allow direct + coordinate scaling within the outline decomposition routine (this + is important for virtual `on' points with TrueType outlines) + + updates to the rasters to support this.. + + - updated the OS/2 table loading code in `src/sfnt/ttload.c' in + order to support version 2 of the table (see OpenType 1.2 spec) + + - created `include/tttables.h' and `include/t1tables.h' to allow + client applications to access some of the SFNT and T1 tables of a + face with a procedural interface (see `FT_Get_Sfnt_Table') + + updates to internal source files to reflect the change.. + + - some cleanups in the source code to get rid of warnings when + compiling with the `-Wall -W -ansi -pedantic' options in gcc. + + - debugged and moved the smooth renderer to `src/base/ftgrays.c' and + its header to `include/ftgrays.h' + + - updated TT_MAX_SUBGLYPHS to 96 as some CJK fonts have composites + with up to 80 sub-glyphs !! Thanks to Werner + + +====================================================================== + +OLD CHANGES - 14-apr-2000 + + - fixed a bug in the TrueType glyph loader that prevented the + correct loading of some CJK glyphs in mingli.ttf + + - improved the standard Type 1 hinter in `src/type1' + + - fixed two bugs in the experimental Type 1 driver in `src/type1z' + to handle the new XFree86 4.0 fonts (and a few other ones..) + + - the smooth renderer is now complete and supports sub-banding to + render large glyphs at high speed. However, it is still located + in `demos/src/ftgrays.c' and should move to the library itself in + the next beta. NOTE: The smooth renderer doesn't compile in + stand-alone mode anymore, but this should be fixed RSN.. + + - introduced convenience functions to more easily deal with glyph + images, see `include/ftglyph.h' for more details, as well as the + new demo program named `demos/src/ftstring.c' that demonstrates + its use + + - implemented FT_LOAD_NO_RECURSE in both the TrueType and Type 1 + drivers (this is required by the auto-hinter to improve its + results). + + - changed the raster interface, in order to allow client + applications to provide their own span-drawing callbacks. + However, only the smooth renderer supports this. See + `FT_Raster_Params' in the file `include/ftimage.h'. + + - fixed a small bug in FT_MulFix that caused incorrect transform + computation! + + - Note: The tutorial is out-of-date. + + +====================================================================== + +OLD CHANGES - 12-mar-2000 + + - changed the layout of configuration files : now, all ANSI + configuration files are located in + `freetype2/config'. System-specific over-rides can be placed in + `freetype2/config/<system>'. + + - moved all configuration macros to `config/ftoption.h' + + - improvements in the Type 1 driver with AFM support + + - changed the fields in the FT_Outline structure : the old `flags' + array is re-named `tags', while all ancient flags are encoded into + a single unsigned int named `flags'. + + - introduced new flags in FT_Outline.flags (see + ft_outline_.... enums in `ftimage.h'). + + - changed outline functions to `FT_Outline_<action>' syntax + + - added a smooth anti-alias renderer to the demonstration programs + + - added Mac graphics driver (thanks Just) + + - FT_Open_Face changed in order to received a pointer to a + FT_Open_Args descriptor.. + + - various cleanups, a few more API functions implemented (see + FT_Attach_File) + + - updated some docs + + +====================================================================== + +OLD CHANGES - 22-feb-2000 + + - introduced the `psnames' module. It is used to: + + o convert a Postscript glyph name into the equivalent Unicode + character code (used by the Type 1 driver(s) to synthesize on + the fly a Unicode charmap). + + o provide an interface to retrieve the Postscript names of the + Macintosh, Adobe Standard & Adobe Expert character codes. + (the Macintosh names are used by the SFNT-module postscript + names support routines, while the other two tables are used by + the Type 1 driver(s)). + + - introduced the `type1z' alternate Type 1 driver. This is a (still + experimental) driver for the Type 1 format that will ultimately + replace the one in `src/type1'. It uses pattern matching to load + data from the font, instead of a finite state analyzer. It works + much better than the `old' driver with `broken' fonts. It is also + much smaller (under 15 Kb). + + - the Type 1 drivers (both in `src/type1' and `src/type1z') are + nearly complete. They both provide automatic Unicode charmap + synthesis through the `psnames' module. No re-encoding vector is + needed. (note that they still leak memory due to some code + missing, and I'm getting lazy). + + Trivial AFM support has been added to read kerning information but + wasn't exactly tested as it should ;-) + + - The TrueType glyph loader has been seriously rewritten (see the + file `src/truetype/ttgload.c'. It is now much, much simpler as + well as easier to read, maintain and understand :-) Preliminary + versions introduced a memory leak that has been reported by Jack + Davis, and is now fixed.. + + - introduced the new `ft_glyph_format_plotter', used to represent + stroked outlines like Windows `Vector' fonts, and certain Type 1 + fonts like `Hershey'. The corresponding raster will be written + soon. + + - FT_New_Memory_Face is gone. Likewise, FT_Open_Face has a new + interface that uses a structure to describe the input stream, the + driver (if required), etc.. + + +TODO + + - Write FT_Get_Glyph_Bitmap and FT_Load_Glyph_Bitmap + + - Add a function like FT_Load_Character(face, char_code, load_flags) + that would really embed a call to FT_Get_Char_Index then + FT_Load_Glyph to ease developer's work. + + - Update the tutorial! + + - consider adding support for Multiple Master fonts in the Type 1 + drivers. + + - Test the AFM routines of the Type 1 drivers to check that kerning + information is returned correctly. + + - write a decent auto-gridding component !! We need this to release + FreeType 2.0 gold ! + + +less urgent needs: + + - add a CFF/Type2 driver + - add a BDF driver + - add a FNT/PCF/HBF driver + - add a Speedo driver from the X11 sources + + +====================================================================== + +OLDER CHANGES - 27-jan-2000 + + - updated the `sfnt' module interface to allow several SFNT-based + drivers to co-exist peacefully + + - updated the `T1_Face' type to better separate Postscript font + content from the rest of the FT_Face structure. Might be used + later by the CFF/Type2 driver.. + + - added an experimental replacement Type 1 driver featuring advanced + (and speedy) pattern matching to retrieve the data from postscript + fonts. + + - very minor changes in the implementation of FT_Set_Char_Size and + FT_Set_Pixel_Sizes (they now implement default to lighten the font + driver's code). + + +====================================================================== + +OLD MESSAGE + +This file summarizes the changes that occurred since the last `beta' +of FreeType 2. Because the list is important, it has been divided into +separate sections: + +Table Of Contents: + + I High-Level Interface (easier !) + II Directory Structure + III Glyph Image Formats + IV Build System + V Portability + VI Font Drivers + + +---------------------------------------------------------------------- + +High-Level Interface: + + The high-level API has been considerably simplified. Here is how: + + - resource objects have disappeared. this means that face objects + can now be created with a single function call (see FT_New_Face + and FT_Open_Face) + + - when calling either FT_New_Face & FT_Open_Face, a size object + and a glyph slot object are automatically created for the face, + and can be accessed through `face->glyph' and `face->size' if + one really needs to. In most cases, there's no need to call + FT_New_Size or FT_New_Glyph. + + - similarly, FT_Load_Glyph now only takes a `face' argument + (instead of a glyph slot and a size). Also, its `result' + parameter is gone, as the glyph image type is returned in the + field `face->glyph.format' + + - the list of available charmaps is directly accessible through + `face->charmaps', counting `face->num_charmaps' elements. Each + charmap has an 'encoding' field which specifies which known + encoding it deals with. Valid values are, for example: + + ft_encoding_unicode (for ASCII, Latin-1 and Unicode) + ft_encoding_apple_roman + ft_encoding_sjis + ft_encoding_adobe_standard + ft_encoding_adobe_expert + + other values may be added in the future. Each charmap still + holds its `platform_id' and `encoding_id' values in case the + encoding is too exotic for the current library + + +---------------------------------------------------------------------- + +Directory Structure: + + Should seem obvious to most of you: + + freetype/ + config/ -- configuration sub-makefiles + ansi/ + unix/ -- platform-specific configuration files + win32/ + os2/ + msdos/ + + include/ -- public header files, those to be included + directly by client apps + + src/ -- sources of the library + base/ -- the base layer + sfnt/ -- the sfnt `driver' (see the drivers section + below) + truetype/ -- the truetype driver + type1/ -- the type1 driver + shared/ -- some header files shared between drivers + + demos/ -- demos/tools + + docs/ -- documentation (a bit empty for now) + + +---------------------------------------------------------------------- + +Glyph Image Formats: + + Drivers are now able to register new glyph image formats within the + library. For now, the base layer supports of course bitmaps and + vector outlines, but one could imagine something different like + colored bitmaps, bi-color vectors or whatever else (Metafonts anyone + ??). + + See the file `include/ftimage.h'. Note also that the type + FT_Raster_Map is gone, and is now replaced by FT_Bitmap, which + should encompass all known bitmap types. + + Each new image format must provide at least one `raster', i.e. a + module capable of transforming the glyph image into a bitmap. It's + also possible to change the default raster used for a given glyph + image format. + + The default outline scan-converter now uses 128 levels of grays by + default, which tends to smooth many things. Note that the demo + programs have been updated significantly in order to display these.. + + +---------------------------------------------------------------------- + +Build system: + + You still need GNU Make to build the library. The build system has + been very seriously re-vamped in order to provide things like : + + - automatic host platform detection (reverting to 'config/ansi' if + it is not detected, with pseudo-standard compilation flags) + + - the ability to compile from the Makefiles with very different and + exotic compilers. Note that linking the library can be difficult + for some platforms. + + For example, the file `config/win32/lcclib.bat' is invoked by the + build system to create the `.lib' file with LCC-Win32 because its + librarian has too many flaws to be invoked directly from the + Makefile. + + Here's how it works: + + - the first time you type `make', the build system runs a series of + sub-makefiles in order to detect your host platform. It then + dumps what it found, and creates a file called `config.mk' in the + current directory. This is a sub-Makefile used to define many + important Make variables used to build the library. + + - the second time, the build system detects the `config.mk' then use + it to build the library. All object files go into 'obj' by + default, as well as the library file, but this can easily be + changed. + + Note that you can run `make setup' to force another host platform + detection even if a `config.mk' is present in the current + directory. Another solution is simply to delete the file, then + re-run make. + + Finally, the default compiler for all platforms is gcc (for now, + this will hopefully changed in the future). You can however specify + a different compiler by specifying it after the 'setup' target as + in: + + gnumake setup lcc on Win32 to use the LCC compiler + gnumake setup visualc on Win32 to use Visual C++ + + See the file `config/<system>/detect.mk' for a list of supported + compilers for your platforms. + + It should be relatively easy to write new detection rules files and + config.mk.. + + Finally, to build the demo programs, go to `demos' and launch GNU + Make, it will use the `config.mk' in the top directory to build the + test programs.. + + +---------------------------------------------------------------------- + +Portability: + + In the previous beta, a single FT_System object was used to + encompass all low-level operations like thread synchronisation, + memory management and i/o access. This has been greatly simplified: + + - thread synchronisation has been dropped, for the simple reason + that the library is already re-entrant, and that if you really + need two threads accessing the same FT_Library, you should + really synchronize access to it yourself with a simple mutex. + + - memory management is performed through a very simple object + called `FT_Memory', which really is a table containing a table + of pointers to functions like malloc, realloc and free as well + as some user data (closure). + + - resources have disappeared (they created more problems than they + solved), and i/o management have been simplified greatly as a + result. Streams are defined through FT_Stream objects, which + can be either memory-based or disk-based. + + Note that each face has its own stream, which is closed only + when the face object is destroyed. Hence, a function like + TT_Flush_Face in 1.x cannot be directly supported. However, if + you really need something like this, you can easily tailor your + own streams to achieve the same feature at a lower level (and + use FT_Open_Face instead of FT_New_Face to create the face). + + See the file `include/ftsystem.h' for more details, as well as the + implementations found in `config/unix' and `config/ansi'. + + +---------------------------------------------------------------------- + +Font Drivers: + + The Font Driver interface has been modified in order to support + extensions & versioning. + + + The list of the font drivers that are statically linked to the + library at compile time is managed through a new configuration file + called `config/<platform>/ftmodule.h'. + + This file is autogenerated when invoking `make modules'. This + target will parse all sub-directories of 'src', looking for a + `module.mk' rules file, used to describe the driver to the build + system. + + Hence, one should call `make modules' each time a font driver is + added or removed from the `src' directory. + + Finally, this version provides a `pseudo-driver' in `src/sfnt'. + This driver doesn't support font files directly, but provides + services used by all TrueType-like font drivers. Hence, its code is + shared between the TrueType & OpenType font formats, and possibly + more formats to come if we're lucky.. + + +---------------------------------------------------------------------- + +Extensions support: + + The extensions support is inspired by the one found in 1.x. + + Now, each font driver has its own `extension registry', which lists + which extensions are available for the font faces managed by the + driver. + + Extension ids are now strings, rather than 4-byte tags, as this is + usually more readable. + + Each extension has: + - some data, associated to each face object + - an interface (table of function pointers) + + An extension that is format-specific should simply register itself + to the correct font driver. Here is some example code: + + // Registering an extensions + // + FT_Error FT_Init_XXXX_Extension( FT_Library library ) + { + FT_DriverInterface* tt_driver; + + driver = FT_Get_Driver( library, "truetype" ); + if (!driver) return FT_Err_Unimplemented_Feature; + + return FT_Register_Extension( driver, &extension_class ); + } + + + // Implementing the extensions + // + FT_Error FT_Proceed_Extension_XXX( FT_Face face ) + { + FT_XXX_Extension ext; + FT_XXX_Extension_Interface ext_interface; + + ext = FT_Get_Extension( face, "extensionid", &ext_interface ); + if (!ext) return error; + + return ext_interface->do_it(ext); + } + +------------------------------------------------------------------------ + +Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 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. + + +Local Variables: +version-control: never +coding: utf-8 +End: + +--- end of CHANGES --- diff --git a/components/external/freetype/docs/CUSTOMIZE b/components/external/freetype/docs/CUSTOMIZE index cdceb270fb..7d7d474ec0 100644 --- a/components/external/freetype/docs/CUSTOMIZE +++ b/components/external/freetype/docs/CUSTOMIZE @@ -1,150 +1,150 @@ -How to customize the compilation of the library
-===============================================
-
- FreeType is highly customizable to fit various needs, and this
- document describes how it is possible to select options and
- components at compilation time.
-
-
-I. Configuration macros
-
- The file found in `include/freetype/config/ftoption.h' contains a
- list of commented configuration macros that can be toggled by
- developers to indicate which features should be active while
- building the library.
-
- These options range from debug level to availability of certain
- features, like native TrueType hinting through a bytecode
- interpreter.
-
- We invite you to read this file for more information. You can
- change the file's content to suit your needs, or override it with
- one of the techniques described below.
-
-
-II. Modules list
-
- If you use GNU make please edit the top-level file `modules.cfg'.
- It contains a list of available FreeType modules and extensions to
- be compiled. Change it to suit your own preferences. Be aware that
- certain modules depend on others, as described in the file. GNU
- make uses `modules.cfg' to generate `ftmodule.h' (in the object
- directory).
-
- If you don't use GNU make you have to manually edit the file
- `include/freetype/config/ftmodule.h' (which is *not* used with if
- compiled with GNU make) to add or remove the drivers and components
- you want to compile into the library. See `INSTALL.ANY' for more
- information.
-
-
-III. System interface
-
- FreeType's default interface to the system (i.e., the parts that
- deal with memory management and i/o streams) is located in
- `src/base/ftsystem.c'.
-
- The current implementation uses standard C library calls to manage
- memory and to read font files. It is however possible to write
- custom implementations to suit specific systems.
-
- To tell the GNU Make-based build system to use a custom system
- interface, you have to define the environment variable FTSYS_SRC to
- point to the relevant implementation:
-
- on Unix:
-
- ./configure <your options>
- export FTSYS_SRC=foo/my_ftsystem.c
- make
- make install
-
- on Windows:
-
- make setup <compiler>
- set FTSYS_SRC=foo/my_ftsystem.c
- make
-
-
-IV. Overriding default configuration and module headers
-
- It is possible to override the default configuration and module
- headers without changing the original files. There are three ways
- to do that:
-
-
- 1. With GNU make
-
- [This is actually a combination of method 2 and 3.]
-
- Just put your custom `ftoption.h' file into the objects directory
- (normally `<topdir>/objs'), which GNU make prefers over the
- standard location. No action is needed for `ftmodule.h' because
- it is generated automatically in the objects directory.
-
-
- 2. Using the C include path
-
- Use the C include path to ensure that your own versions of the
- files are used at compile time when the lines
-
- #include FT_CONFIG_OPTIONS_H
- #include FT_CONFIG_MODULES_H
-
- are compiled. Their default values being
- <freetype/config/ftoption.h> and <freetype/config/ftmodule.h>, you
- can do something like:
-
- custom/
- freetype/
- config/
- ftoption.h => custom options header
- ftmodule.h => custom modules list
-
- include/ => normal FreeType 2 include
- freetype/
- ...
-
- then change the C include path to always give the path to `custom'
- before the FreeType 2 `include'.
-
-
- 3. Redefining FT_CONFIG_OPTIONS_H and FT_CONFIG_MODULES_H
-
- Another way to do the same thing is to redefine the macros used to
- name the configuration headers. To do so, you need a custom
- `ft2build.h' whose content can be as simple as:
-
- #ifndef __FT2_BUILD_MY_PLATFORM_H__
- #define __FT2_BUILD_MY_PLATFORM_H__
-
- #define FT_CONFIG_OPTIONS_H <custom/my-ftoption.h>
- #define FT_CONFIG_MODULES_H <custom/my-ftmodule.h>
-
- #include <freetype/config/ftheader.h>
-
- #endif /* __FT2_BUILD_MY_PLATFORM_H__ */
-
- Place those files in a separate directory, e.g.,
-
- custom/
- ft2build.h => custom version described above
- my-ftoption.h => custom options header
- my-ftmodule.h => custom modules list header
-
- and change the C include path to ensure that `custom' is always
- placed before the FT2 `include' during compilation.
-
-----------------------------------------------------------------------
-
-Copyright 2003, 2005, 2006 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.
-
-
---- end of CUSTOMIZE ---
+How to customize the compilation of the library +=============================================== + + FreeType is highly customizable to fit various needs, and this + document describes how it is possible to select options and + components at compilation time. + + +I. Configuration macros + + The file found in `include/freetype/config/ftoption.h' contains a + list of commented configuration macros that can be toggled by + developers to indicate which features should be active while + building the library. + + These options range from debug level to availability of certain + features, like native TrueType hinting through a bytecode + interpreter. + + We invite you to read this file for more information. You can + change the file's content to suit your needs, or override it with + one of the techniques described below. + + +II. Modules list + + If you use GNU make please edit the top-level file `modules.cfg'. + It contains a list of available FreeType modules and extensions to + be compiled. Change it to suit your own preferences. Be aware that + certain modules depend on others, as described in the file. GNU + make uses `modules.cfg' to generate `ftmodule.h' (in the object + directory). + + If you don't use GNU make you have to manually edit the file + `include/freetype/config/ftmodule.h' (which is *not* used with if + compiled with GNU make) to add or remove the drivers and components + you want to compile into the library. See `INSTALL.ANY' for more + information. + + +III. System interface + + FreeType's default interface to the system (i.e., the parts that + deal with memory management and i/o streams) is located in + `src/base/ftsystem.c'. + + The current implementation uses standard C library calls to manage + memory and to read font files. It is however possible to write + custom implementations to suit specific systems. + + To tell the GNU Make-based build system to use a custom system + interface, you have to define the environment variable FTSYS_SRC to + point to the relevant implementation: + + on Unix: + + ./configure <your options> + export FTSYS_SRC=foo/my_ftsystem.c + make + make install + + on Windows: + + make setup <compiler> + set FTSYS_SRC=foo/my_ftsystem.c + make + + +IV. Overriding default configuration and module headers + + It is possible to override the default configuration and module + headers without changing the original files. There are three ways + to do that: + + + 1. With GNU make + + [This is actually a combination of method 2 and 3.] + + Just put your custom `ftoption.h' file into the objects directory + (normally `<topdir>/objs'), which GNU make prefers over the + standard location. No action is needed for `ftmodule.h' because + it is generated automatically in the objects directory. + + + 2. Using the C include path + + Use the C include path to ensure that your own versions of the + files are used at compile time when the lines + + #include FT_CONFIG_OPTIONS_H + #include FT_CONFIG_MODULES_H + + are compiled. Their default values being + <freetype/config/ftoption.h> and <freetype/config/ftmodule.h>, you + can do something like: + + custom/ + freetype/ + config/ + ftoption.h => custom options header + ftmodule.h => custom modules list + + include/ => normal FreeType 2 include + freetype/ + ... + + then change the C include path to always give the path to `custom' + before the FreeType 2 `include'. + + + 3. Redefining FT_CONFIG_OPTIONS_H and FT_CONFIG_MODULES_H + + Another way to do the same thing is to redefine the macros used to + name the configuration headers. To do so, you need a custom + `ft2build.h' whose content can be as simple as: + + #ifndef __FT2_BUILD_MY_PLATFORM_H__ + #define __FT2_BUILD_MY_PLATFORM_H__ + + #define FT_CONFIG_OPTIONS_H <custom/my-ftoption.h> + #define FT_CONFIG_MODULES_H <custom/my-ftmodule.h> + + #include <freetype/config/ftheader.h> + + #endif /* __FT2_BUILD_MY_PLATFORM_H__ */ + + Place those files in a separate directory, e.g., + + custom/ + ft2build.h => custom version described above + my-ftoption.h => custom options header + my-ftmodule.h => custom modules list header + + and change the C include path to ensure that `custom' is always + placed before the FT2 `include' during compilation. + +---------------------------------------------------------------------- + +Copyright 2003, 2005, 2006 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. + + +--- end of CUSTOMIZE --- diff --git a/components/external/freetype/docs/DEBUG b/components/external/freetype/docs/DEBUG index fd09cececd..3d6acd3bb0 100644 --- a/components/external/freetype/docs/DEBUG +++ b/components/external/freetype/docs/DEBUG @@ -1,202 +1,202 @@ -Debugging within the FreeType sources
-=====================================
-
-I. Configuration macros
------------------------
-
-There are several ways to enable debugging features in a FreeType 2
-builds. This is controlled through the definition of special macros
-located in the file `ftoptions.h'. The macros are:
-
-
- FT_DEBUG_LEVEL_ERROR
-
- #define this macro if you want to compile the FT_ERROR macro calls
- to print error messages during program execution. This will not
- stop the program. Very useful to spot invalid fonts during
- development and to code workarounds for them.
-
- FT_DEBUG_LEVEL_TRACE
-
- #define this macro if you want to compile both macros FT_ERROR and
- FT_TRACE. This also includes the variants FT_TRACE0, FT_TRACE1,
- FT_TRACE2, ..., FT_TRACE7.
-
- The trace macros are used to send debugging messages when an
- appropriate `debug level' is configured at runtime through the
- FT2_DEBUG environment variable (more on this later).
-
- FT_DEBUG_MEMORY
-
- If this macro is #defined, the FreeType engine is linked with a
- small but effective debugging memory manager that tracks all
- allocations and frees that are performed within the font engine.
-
- When the FT2_DEBUG_MEMORY environment variable is defined at
- runtime, a call to FT_Done_FreeType will dump memory statistics,
- including the list of leaked memory blocks with the source locations
- where these were allocated. It is always a very good idea to define
- this in development builds. This works with _any_ program linked to
- FreeType, but requires a big deal of memory (the debugging memory
- manager never frees the blocks to the heap in order to detect double
- frees).
-
- When FT2_DEBUG_MEMORY isn't defined at runtime, the debugging memory
- manager is ignored, and performance is unaffected.
-
-
-II. Debugging macros
---------------------
-
-Several macros can be used within the FreeType sources to help debugging
-its code:
-
-
- 1. FT_ERROR(( ... ))
-
- This macro is used to send debug messages that indicate relatively
- serious errors (like broken font files), but will not stop the
- execution of the running program. Its code is compiled only when
- either FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined in
- `ftoption.h'.
-
- Note that you have to use a printf-like signature, but with double
- parentheses, like in
-
- FT_ERROR(( "your %s is not %s\n", "foo", "bar" ));
-
-
- 2. FT_ASSERT( condition )
-
- This macro is used to check strong assertions at runtime. If its
- condition isn't TRUE, the program will abort with a panic message.
- Its code is compiled when either FT_DEBUG_LEVEL_ERROR or
- FT_DEBUG_LEVEL_TRACE are defined. You don't need double parentheses
- here. For example
-
- FT_ASSERT( ptr != NULL );
-
-
- 3. FT_TRACE( level, (message...) )
-
- The FT_TRACE macro is used to send general-purpose debugging
- messages during program execution. This macro uses an *implicit*
- macro named FT_COMPONENT used to name the current FreeType component
- being run.
-
- The developer should always define FT_COMPONENT as appropriate, for
- example as in
-
- #undef FT_COMPONENT
- #define FT_COMPONENT trace_io
-
- The value of the FT_COMPONENT macro is an enumeration named
- trace_XXXX where XXXX is one of the component names defined in the
- internal file `freetype/internal/fttrace.h'. If you modify FreeType
- source and insert new trace_XXXX macro, you must register it in
- fttrace.h. If you insert or remove many trace macros, you can check
- the undefined or the unused trace macro by src/tools/chktrcmp.py.
-
- Each such component is assigned a `debug level', ranging from 0
- to 7, through the use of the FT2_DEBUG environment variable
- (described below) when a program linked with FreeType starts.
-
- When FT_TRACE is called, its level is compared to the one of the
- corresponding component. Messages with trace levels *higher* than
- the corresponding component level are filtered and never printed.
-
- This means that trace messages with level 0 are always printed,
- those with level 2 are only printed when the component level is *at
- least* 2.
-
- The second parameter to FT_TRACE must contain parentheses and
- correspond to a printf-like call, as in
-
- FT_TRACE( 2, ( "your %s is not %s\n", "foo", "bar" ) )
-
- The shortcut macros FT_TRACE0, FT_TRACE1, FT_TRACE2, ..., FT_TRACE7
- can be used with constant level indices, and are much cleaner to
- use, as in
-
- FT_TRACE2(( "your %s is not %s\n", "foo", "bar" ));
-
-
-III. Environment variables
---------------------------
-
-The following environment variables control debugging output and
-behaviour of FreeType at runtime.
-
-
- FT2_DEBUG
-
- This variable is only used when FreeType is built with
- FT_DEBUG_LEVEL_TRACE defined. It contains a list of component level
- definitions, following this format:
-
- component1:level1 component2:level2 component3:level3 ...
-
- where `componentX' is the name of a tracing component, as defined in
- `fttrace.h', but without the `trace_' prefix. `levelX' is the
- corresponding level to use at runtime.
-
- `any' is a special component name that will be interpreted as
- `any/all components'. For example, the following definitions
-
- set FT2_DEBUG=any:2 memory:5 io:4 (on Windows)
- export FT2_DEBUG="any:2 memory:5 io:4" (on Linux with bash)
-
- both stipulate that all components should have level 2, except for
- the memory and io components which will be set to trace levels 5 and
- 4, respectively.
-
-
- FT2_DEBUG_MEMORY
-
- This environment variable, when defined, tells FreeType to use a
- debugging memory manager that will track leaking memory blocks as
- well as other common errors like double frees. It is also capable
- of reporting _where_ the leaking blocks were allocated, which
- considerably saves time when debugging new additions to the library.
-
- This code is only compiled when FreeType is built with the
- FT_DEBUG_MEMORY macro #defined in `ftoption.h' though, it will be
- ignored in other builds.
-
-
- FT2_ALLOC_TOTAL_MAX
-
- This variable is ignored if FT2_DEBUG_MEMORY is not defined. It
- allows you to specify a maximum heap size for all memory allocations
- performed by FreeType. This is very useful to test the robustness
- of the font engine and programs that use it in tight memory
- conditions.
-
- If it is undefined, or if its value is not strictly positive, then
- no allocation bounds are checked at runtime.
-
-
- FT2_ALLOC_COUNT_MAX
-
- This variable is ignored if FT2_DEBUG_MEMORY is not defined. It
- allows you to specify a maximum number of memory allocations
- performed by FreeType before returning the error
- FT_Err_Out_Of_Memory. This is useful for debugging and testing the
- engine's robustness.
-
- If it is undefined, or if its value is not strictly positive, then
- no allocation bounds are checked at runtime.
-
-------------------------------------------------------------------------
-
-Copyright 2002, 2003, 2004, 2005, 2009 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.
-
-
---- end of DEBUG ---
+Debugging within the FreeType sources +===================================== + +I. Configuration macros +----------------------- + +There are several ways to enable debugging features in a FreeType 2 +builds. This is controlled through the definition of special macros +located in the file `ftoptions.h'. The macros are: + + + FT_DEBUG_LEVEL_ERROR + + #define this macro if you want to compile the FT_ERROR macro calls + to print error messages during program execution. This will not + stop the program. Very useful to spot invalid fonts during + development and to code workarounds for them. + + FT_DEBUG_LEVEL_TRACE + + #define this macro if you want to compile both macros FT_ERROR and + FT_TRACE. This also includes the variants FT_TRACE0, FT_TRACE1, + FT_TRACE2, ..., FT_TRACE7. + + The trace macros are used to send debugging messages when an + appropriate `debug level' is configured at runtime through the + FT2_DEBUG environment variable (more on this later). + + FT_DEBUG_MEMORY + + If this macro is #defined, the FreeType engine is linked with a + small but effective debugging memory manager that tracks all + allocations and frees that are performed within the font engine. + + When the FT2_DEBUG_MEMORY environment variable is defined at + runtime, a call to FT_Done_FreeType will dump memory statistics, + including the list of leaked memory blocks with the source locations + where these were allocated. It is always a very good idea to define + this in development builds. This works with _any_ program linked to + FreeType, but requires a big deal of memory (the debugging memory + manager never frees the blocks to the heap in order to detect double + frees). + + When FT2_DEBUG_MEMORY isn't defined at runtime, the debugging memory + manager is ignored, and performance is unaffected. + + +II. Debugging macros +-------------------- + +Several macros can be used within the FreeType sources to help debugging +its code: + + + 1. FT_ERROR(( ... )) + + This macro is used to send debug messages that indicate relatively + serious errors (like broken font files), but will not stop the + execution of the running program. Its code is compiled only when + either FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined in + `ftoption.h'. + + Note that you have to use a printf-like signature, but with double + parentheses, like in + + FT_ERROR(( "your %s is not %s\n", "foo", "bar" )); + + + 2. FT_ASSERT( condition ) + + This macro is used to check strong assertions at runtime. If its + condition isn't TRUE, the program will abort with a panic message. + Its code is compiled when either FT_DEBUG_LEVEL_ERROR or + FT_DEBUG_LEVEL_TRACE are defined. You don't need double parentheses + here. For example + + FT_ASSERT( ptr != NULL ); + + + 3. FT_TRACE( level, (message...) ) + + The FT_TRACE macro is used to send general-purpose debugging + messages during program execution. This macro uses an *implicit* + macro named FT_COMPONENT used to name the current FreeType component + being run. + + The developer should always define FT_COMPONENT as appropriate, for + example as in + + #undef FT_COMPONENT + #define FT_COMPONENT trace_io + + The value of the FT_COMPONENT macro is an enumeration named + trace_XXXX where XXXX is one of the component names defined in the + internal file `freetype/internal/fttrace.h'. If you modify FreeType + source and insert new trace_XXXX macro, you must register it in + fttrace.h. If you insert or remove many trace macros, you can check + the undefined or the unused trace macro by src/tools/chktrcmp.py. + + Each such component is assigned a `debug level', ranging from 0 + to 7, through the use of the FT2_DEBUG environment variable + (described below) when a program linked with FreeType starts. + + When FT_TRACE is called, its level is compared to the one of the + corresponding component. Messages with trace levels *higher* than + the corresponding component level are filtered and never printed. + + This means that trace messages with level 0 are always printed, + those with level 2 are only printed when the component level is *at + least* 2. + + The second parameter to FT_TRACE must contain parentheses and + correspond to a printf-like call, as in + + FT_TRACE( 2, ( "your %s is not %s\n", "foo", "bar" ) ) + + The shortcut macros FT_TRACE0, FT_TRACE1, FT_TRACE2, ..., FT_TRACE7 + can be used with constant level indices, and are much cleaner to + use, as in + + FT_TRACE2(( "your %s is not %s\n", "foo", "bar" )); + + +III. Environment variables +-------------------------- + +The following environment variables control debugging output and +behaviour of FreeType at runtime. + + + FT2_DEBUG + + This variable is only used when FreeType is built with + FT_DEBUG_LEVEL_TRACE defined. It contains a list of component level + definitions, following this format: + + component1:level1 component2:level2 component3:level3 ... + + where `componentX' is the name of a tracing component, as defined in + `fttrace.h', but without the `trace_' prefix. `levelX' is the + corresponding level to use at runtime. + + `any' is a special component name that will be interpreted as + `any/all components'. For example, the following definitions + + set FT2_DEBUG=any:2 memory:5 io:4 (on Windows) + export FT2_DEBUG="any:2 memory:5 io:4" (on Linux with bash) + + both stipulate that all components should have level 2, except for + the memory and io components which will be set to trace levels 5 and + 4, respectively. + + + FT2_DEBUG_MEMORY + + This environment variable, when defined, tells FreeType to use a + debugging memory manager that will track leaking memory blocks as + well as other common errors like double frees. It is also capable + of reporting _where_ the leaking blocks were allocated, which + considerably saves time when debugging new additions to the library. + + This code is only compiled when FreeType is built with the + FT_DEBUG_MEMORY macro #defined in `ftoption.h' though, it will be + ignored in other builds. + + + FT2_ALLOC_TOTAL_MAX + + This variable is ignored if FT2_DEBUG_MEMORY is not defined. It + allows you to specify a maximum heap size for all memory allocations + performed by FreeType. This is very useful to test the robustness + of the font engine and programs that use it in tight memory + conditions. + + If it is undefined, or if its value is not strictly positive, then + no allocation bounds are checked at runtime. + + + FT2_ALLOC_COUNT_MAX + + This variable is ignored if FT2_DEBUG_MEMORY is not defined. It + allows you to specify a maximum number of memory allocations + performed by FreeType before returning the error + FT_Err_Out_Of_Memory. This is useful for debugging and testing the + engine's robustness. + + If it is undefined, or if its value is not strictly positive, then + no allocation bounds are checked at runtime. + +------------------------------------------------------------------------ + +Copyright 2002, 2003, 2004, 2005, 2009 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. + + +--- end of DEBUG --- diff --git a/components/external/freetype/docs/INSTALL b/components/external/freetype/docs/INSTALL index 1483c3e623..de50d0c2e4 100644 --- a/components/external/freetype/docs/INSTALL +++ b/components/external/freetype/docs/INSTALL @@ -1,91 +1,91 @@ -
-There are several ways to build the FreeType library, depending on
-your system and the level of customization you need. Here is a short
-overview of the documentation available:
-
-
-I. Normal installation and upgrades
-===================================
-
- 1. Native TrueType Hinting
-
- Native TrueType hinting is disabled by default[1]. If you really
- need it, read the file `TRUETYPE' for information.
-
-
- 2. Unix Systems (including Mac OS X, Cygwin, and MSys on Windows)
-
- Please read *both* `UPGRADE.UNIX' and `INSTALL.UNIX' to install or
- upgrade FreeType 2 on a Unix system. Note that you *need* GNU
- Make for automatic compilation, since other make tools won't work
- (this includes BSD Make).
-
- GNU Make VERSION 3.80 OR NEWER IS NEEDED!
-
-
- 3. On VMS with the `mms' build tool
-
- See `INSTALL.VMS' for installation instructions on this platform.
-
-
- 4. Other systems using GNU Make
-
- On non-Unix platforms, it is possible to build the library using
- GNU Make utility. Note that *NO OTHER MAKE TOOL WILL WORK*[2]!
- This methods supports several compilers on Windows, OS/2, and
- BeOS, including MinGW, Visual C++, Borland C++, and more.
-
- Instructions are provided in the file `INSTALL.GNU'.
-
-
- 5. With an IDE Project File (e.g., for Visual Studio or CodeWarrior)
-
- We provide a small number of `project files' for various IDEs to
- automatically build the library as well. Note that these files
- are not supported and only sporadically maintained by FreeType
- developers, so don't expect them to work in each release.
-
- To find them, have a look at the content of the `builds/<system>'
- directory, where <system> stands for your OS or environment.
-
-
- 6. From you own IDE, or own Makefiles
-
- If you want to create your own project file, follow the
- instructions given in the `INSTALL.ANY' document of this
- directory.
-
-
-II. Custom builds of the library
-================================
-
- Customizing the compilation of FreeType is easy, and allows you to
- select only the components of the font engine that you really need.
- For more details read the file `CUSTOMIZE'.
-
-
-----------------------------------------------------------------------
-
-[1] More details on: http://www.freetype.org/patents.html
-
-[2] make++, a make tool written in Perl, has sufficient support of GNU
- make extensions to build FreeType. See
-
- http://makepp.sourceforge.net
-
- for more information; you need version 1.19 or newer, and you must
- pass option `--norc-substitution'.
-
-----------------------------------------------------------------------
-
-Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 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.
-
-
---- end of INSTALL ---
+ +There are several ways to build the FreeType library, depending on +your system and the level of customization you need. Here is a short +overview of the documentation available: + + +I. Normal installation and upgrades +=================================== + + 1. Native TrueType Hinting + + Native TrueType hinting is disabled by default[1]. If you really + need it, read the file `TRUETYPE' for information. + + + 2. Unix Systems (including Mac OS X, Cygwin, and MSys on Windows) + + Please read *both* `UPGRADE.UNIX' and `INSTALL.UNIX' to install or + upgrade FreeType 2 on a Unix system. Note that you *need* GNU + Make for automatic compilation, since other make tools won't work + (this includes BSD Make). + + GNU Make VERSION 3.80 OR NEWER IS NEEDED! + + + 3. On VMS with the `mms' build tool + + See `INSTALL.VMS' for installation instructions on this platform. + + + 4. Other systems using GNU Make + + On non-Unix platforms, it is possible to build the library using + GNU Make utility. Note that *NO OTHER MAKE TOOL WILL WORK*[2]! + This methods supports several compilers on Windows, OS/2, and + BeOS, including MinGW, Visual C++, Borland C++, and more. + + Instructions are provided in the file `INSTALL.GNU'. + + + 5. With an IDE Project File (e.g., for Visual Studio or CodeWarrior) + + We provide a small number of `project files' for various IDEs to + automatically build the library as well. Note that these files + are not supported and only sporadically maintained by FreeType + developers, so don't expect them to work in each release. + + To find them, have a look at the content of the `builds/<system>' + directory, where <system> stands for your OS or environment. + + + 6. From you own IDE, or own Makefiles + + If you want to create your own project file, follow the + instructions given in the `INSTALL.ANY' document of this + directory. + + +II. Custom builds of the library +================================ + + Customizing the compilation of FreeType is easy, and allows you to + select only the components of the font engine that you really need. + For more details read the file `CUSTOMIZE'. + + +---------------------------------------------------------------------- + +[1] More details on: http://www.freetype.org/patents.html + +[2] make++, a make tool written in Perl, has sufficient support of GNU + make extensions to build FreeType. See + + http://makepp.sourceforge.net + + for more information; you need version 1.19 or newer, and you must + pass option `--norc-substitution'. + +---------------------------------------------------------------------- + +Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 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. + + +--- end of INSTALL --- diff --git a/components/external/freetype/docs/INSTALL.ANY b/components/external/freetype/docs/INSTALL.ANY index 0971dff290..44b785c67e 100644 --- a/components/external/freetype/docs/INSTALL.ANY +++ b/components/external/freetype/docs/INSTALL.ANY @@ -1,151 +1,151 @@ -Instructions on how to build FreeType with your own build tool
-==============================================================
-
-See the file `CUSTOMIZE' to learn how to customize FreeType to
-specific environments.
-
-
-I. Standard procedure
----------------------
-
- * DISABLE PRE-COMPILED HEADERS! This is very important for Visual
- C++, because FreeType uses lines like:
-
- #include FT_FREETYPE_H
-
- which are not correctly supported by this compiler while being ISO
- C compliant!
-
- * You need to add the directories `freetype2/include' to your
- include path when compiling the library.
-
- * FreeType 2 is made of several components; each of them is located
- in a subdirectory of `freetype2/src'. For example,
- `freetype2/src/truetype/' contains the TrueType font driver.
-
- * DO NOT COMPILE ALL C FILES! Rather, compile the following ones.
-
- -- base components (required)
-
- src/base/ftsystem.c
- src/base/ftinit.c
- src/base/ftdebug.c
-
- src/base/ftbase.c
-
- src/base/ftbbox.c -- recommended, see <freetype/ftbbox.h>
- src/base/ftglyph.c -- recommended, see <freetype/ftglyph.h>
-
- src/base/ftbdf.c -- optional, see <freetype/ftbdf.h>
- src/base/ftbitmap.c -- optional, see <freetype/ftbitmap.h>
- src/base/ftcid.c -- optional, see <freetype/ftcid.h>
- src/base/ftfstype.c -- optional
- src/base/ftgasp.c -- optional, see <freetype/ftgasp.h>
- src/base/ftgxval.c -- optional, see <freetype/ftgxval.h>
- src/base/ftlcdfil.c -- optional, see <freetype/ftlcdfil.h>
- src/base/ftmm.c -- optional, see <freetype/ftmm.h>
- src/base/ftotval.c -- optional, see <freetype/ftotval.h>
- src/base/ftpatent.c -- optional
- src/base/ftpfr.c -- optional, see <freetype/ftpfr.h>
- src/base/ftstroke.c -- optional, see <freetype/ftstroke.h>
- src/base/ftsynth.c -- optional, see <freetype/ftsynth.h>
- src/base/fttype1.c -- optional, see <freetype/t1tables.h>
- src/base/ftwinfnt.c -- optional, see <freetype/ftwinfnt.h>
- src/base/ftxf86.c -- optional, see <freetype/ftxf86.h>
-
- src/base/ftmac.c -- only on the Macintosh
-
- -- font drivers (optional; at least one is needed)
-
- src/bdf/bdf.c -- BDF font driver
- src/cff/cff.c -- CFF/OpenType font driver
- src/cid/type1cid.c -- Type 1 CID-keyed font driver
- src/pcf/pcf.c -- PCF font driver
- src/pfr/pfr.c -- PFR/TrueDoc font driver
- src/sfnt/sfnt.c -- SFNT files support
- (TrueType & OpenType)
- src/truetype/truetype.c -- TrueType font driver
- src/type1/type1.c -- Type 1 font driver
- src/type42/type42.c -- Type 42 font driver
- src/winfonts/winfnt.c -- Windows FONT / FNT font driver
-
- -- rasterizers (optional; at least one is needed for vector
- formats)
-
- src/raster/raster.c -- monochrome rasterizer
- src/smooth/smooth.c -- anti-aliasing rasterizer
-
- -- auxiliary modules (optional)
-
- src/autofit/autofit.c -- auto hinting module
- src/cache/ftcache.c -- cache sub-system (in beta)
- src/gzip/ftgzip.c -- support for compressed fonts (.gz)
- src/lzw/ftlzw.c -- support for compressed fonts (.Z)
- src/gxvalid/gxvalid.c -- TrueTypeGX/AAT table validation
- src/otvalid/otvalid.c -- OpenType table validation
- src/psaux/psaux.c -- PostScript Type 1 parsing
- src/pshinter/pshinter.c -- PS hinting module
- src/psnames/psnames.c -- PostScript glyph names support
-
-
- Notes:
-
- `ftcache.c' needs `ftglyph.c'
- `ftfstype.c' needs `fttype1.c'
- `ftglyph.c' needs `ftbitmap.c'
- `ftstroke.c' needs `ftglyph.c'
- `ftsynth.c' needs `ftbitmap.c'
-
- `cff.c' needs `sfnt.c', `pshinter.c', and `psnames.c'
- `truetype.c' needs `sfnt.c' and `psnames.c'
- `type1.c' needs `psaux.c' `pshinter.c', and `psnames.c'
- `type1cid.c' needs `psaux.c', `pshinter.c', and `psnames.c'
- `type42.c' needs `truetype.c'
-
-
- Read the file `CUSTOMIZE' in case you want to compile only a subset
- of the drivers, renderers, and optional modules; a detailed
- description of the various base extension is given in the top-level
- file `modules.cfg'.
-
- You are done. In case of problems, see the archives of the FreeType
- development mailing list.
-
-
-II. Support for flat-directory compilation
-------------------------------------------
-
- It is possible to put all FreeType 2 source files into a single
- directory, with the *exception* of the `include' hierarchy.
-
- 1. Copy all files in current directory
-
- cp freetype2/src/base/*.[hc] .
- cp freetype2/src/raster1/*.[hc] .
- cp freetype2/src/smooth/*.[hc] .
- etc.
-
- 2. Compile sources
-
- cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftsystem.c
- cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftinit.c
- cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftdebug.c
- cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftbase.c
- etc.
-
- You don't need to define the FT_FLAT_COMPILATION macro (as this
- was required in previous releases of FreeType 2).
-
-----------------------------------------------------------------------
-
-Copyright 2003, 2005, 2006, 2009, 2010 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.
-
-
---- end of INSTALL.ANY ---
+Instructions on how to build FreeType with your own build tool +============================================================== + +See the file `CUSTOMIZE' to learn how to customize FreeType to +specific environments. + + +I. Standard procedure +--------------------- + + * DISABLE PRE-COMPILED HEADERS! This is very important for Visual + C++, because FreeType uses lines like: + + #include FT_FREETYPE_H + + which are not correctly supported by this compiler while being ISO + C compliant! + + * You need to add the directories `freetype2/include' to your + include path when compiling the library. + + * FreeType 2 is made of several components; each of them is located + in a subdirectory of `freetype2/src'. For example, + `freetype2/src/truetype/' contains the TrueType font driver. + + * DO NOT COMPILE ALL C FILES! Rather, compile the following ones. + + -- base components (required) + + src/base/ftsystem.c + src/base/ftinit.c + src/base/ftdebug.c + + src/base/ftbase.c + + src/base/ftbbox.c -- recommended, see <freetype/ftbbox.h> + src/base/ftglyph.c -- recommended, see <freetype/ftglyph.h> + + src/base/ftbdf.c -- optional, see <freetype/ftbdf.h> + src/base/ftbitmap.c -- optional, see <freetype/ftbitmap.h> + src/base/ftcid.c -- optional, see <freetype/ftcid.h> + src/base/ftfstype.c -- optional + src/base/ftgasp.c -- optional, see <freetype/ftgasp.h> + src/base/ftgxval.c -- optional, see <freetype/ftgxval.h> + src/base/ftlcdfil.c -- optional, see <freetype/ftlcdfil.h> + src/base/ftmm.c -- optional, see <freetype/ftmm.h> + src/base/ftotval.c -- optional, see <freetype/ftotval.h> + src/base/ftpatent.c -- optional + src/base/ftpfr.c -- optional, see <freetype/ftpfr.h> + src/base/ftstroke.c -- optional, see <freetype/ftstroke.h> + src/base/ftsynth.c -- optional, see <freetype/ftsynth.h> + src/base/fttype1.c -- optional, see <freetype/t1tables.h> + src/base/ftwinfnt.c -- optional, see <freetype/ftwinfnt.h> + src/base/ftxf86.c -- optional, see <freetype/ftxf86.h> + + src/base/ftmac.c -- only on the Macintosh + + -- font drivers (optional; at least one is needed) + + src/bdf/bdf.c -- BDF font driver + src/cff/cff.c -- CFF/OpenType font driver + src/cid/type1cid.c -- Type 1 CID-keyed font driver + src/pcf/pcf.c -- PCF font driver + src/pfr/pfr.c -- PFR/TrueDoc font driver + src/sfnt/sfnt.c -- SFNT files support + (TrueType & OpenType) + src/truetype/truetype.c -- TrueType font driver + src/type1/type1.c -- Type 1 font driver + src/type42/type42.c -- Type 42 font driver + src/winfonts/winfnt.c -- Windows FONT / FNT font driver + + -- rasterizers (optional; at least one is needed for vector + formats) + + src/raster/raster.c -- monochrome rasterizer + src/smooth/smooth.c -- anti-aliasing rasterizer + + -- auxiliary modules (optional) + + src/autofit/autofit.c -- auto hinting module + src/cache/ftcache.c -- cache sub-system (in beta) + src/gzip/ftgzip.c -- support for compressed fonts (.gz) + src/lzw/ftlzw.c -- support for compressed fonts (.Z) + src/gxvalid/gxvalid.c -- TrueTypeGX/AAT table validation + src/otvalid/otvalid.c -- OpenType table validation + src/psaux/psaux.c -- PostScript Type 1 parsing + src/pshinter/pshinter.c -- PS hinting module + src/psnames/psnames.c -- PostScript glyph names support + + + Notes: + + `ftcache.c' needs `ftglyph.c' + `ftfstype.c' needs `fttype1.c' + `ftglyph.c' needs `ftbitmap.c' + `ftstroke.c' needs `ftglyph.c' + `ftsynth.c' needs `ftbitmap.c' + + `cff.c' needs `sfnt.c', `pshinter.c', and `psnames.c' + `truetype.c' needs `sfnt.c' and `psnames.c' + `type1.c' needs `psaux.c' `pshinter.c', and `psnames.c' + `type1cid.c' needs `psaux.c', `pshinter.c', and `psnames.c' + `type42.c' needs `truetype.c' + + + Read the file `CUSTOMIZE' in case you want to compile only a subset + of the drivers, renderers, and optional modules; a detailed + description of the various base extension is given in the top-level + file `modules.cfg'. + + You are done. In case of problems, see the archives of the FreeType + development mailing list. + + +II. Support for flat-directory compilation +------------------------------------------ + + It is possible to put all FreeType 2 source files into a single + directory, with the *exception* of the `include' hierarchy. + + 1. Copy all files in current directory + + cp freetype2/src/base/*.[hc] . + cp freetype2/src/raster1/*.[hc] . + cp freetype2/src/smooth/*.[hc] . + etc. + + 2. Compile sources + + cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftsystem.c + cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftinit.c + cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftdebug.c + cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftbase.c + etc. + + You don't need to define the FT_FLAT_COMPILATION macro (as this + was required in previous releases of FreeType 2). + +---------------------------------------------------------------------- + +Copyright 2003, 2005, 2006, 2009, 2010 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. + + +--- end of INSTALL.ANY --- diff --git a/components/external/freetype/docs/INSTALL.CROSS b/components/external/freetype/docs/INSTALL.CROSS index 6f5e498f0f..3def12c8c5 100644 --- a/components/external/freetype/docs/INSTALL.CROSS +++ b/components/external/freetype/docs/INSTALL.CROSS @@ -1,135 +1,135 @@ -This document contains instructions on how to cross-build the FreeType
-library on Unix systems, for example, building binaries for Linux/MIPS
-on FreeBSD/i386. Before reading this document, please consult
-INSTALL.UNIX for required tools and the basic self-building procedure.
-
-
- 1. Required Tools
- -----------------
-
- For self-building the FreeType library on a Unix system, GNU Make
- 3.80 or newer is required. INSTALL.UNIX contains hints how to
- check the installed `make'.
-
- The GNU C compiler to cross-build the target system is required.
- At present, using non-GNU cross compiler is not tested. The cross
- compiler is expected to be installed with a system prefix. For
- example, if your building system is FreeBSD/i386 and the target
- system is Linux/MIPS, the cross compiler should be installed with
- the name `mips-ip22-linuxelf-gcc'.
-
- A C compiler for a self-build is required also, to build a tool
- that is executed during the building procedure. Non-GNU self
- compilers are acceptable, but such a setup is not tested yet.
-
-
- 2. Configuration
- ----------------
-
- 2.1. Building and target system
-
- To configure for cross-build, the options `--host=<system>' and
- `--build=<system>' must be passed to configure. For example, if
- your building system is FreeBSD/i386 and the target system is
- Linux/MIPS, say
-
- ./configure \
- --build=i386-unknown-freebsd \
- --host=mips-ip22-linuxelf \
- [other options]
-
- It should be noted that `--host=<system>' specifies the system
- where the built binaries will be executed, not the system where
- the build actually happens. Older versions of GNU autoconf use
- the option pair `--host=' and `--target='. This is broken and
- doesn't work. Similarly, an explicit CC specification like
-
- env CC=mips-ip22-linux-gcc ./configure
-
- or
-
- env CC=/usr/local/mips-ip22-linux/bin/gcc ./configure
-
- doesn't work either; such a configuration confuses the
- `configure' script while trying to find the cross and native C
- compilers.
-
-
- 2.2. The prefix to install FreeType2
-
- Setting `--prefix=<prefix>' properly is important. The prefix
- to install FreeType2 is written into the freetype-config script
- and freetype2.pc configuration file.
-
- If the built FreeType 2 library is used as a part of the
- cross-building system, the prefix is expected to be different
- from the self-building system. For example, configuration with
- `--prefix=/usr/local' installs binaries into the system wide
- `/usr/local' directory which then can't be executed. This
- causes confusion in configuration of all applications which use
- FreeType2. Instead, use a prefix to install the cross-build
- into a separate system tree, for example,
- `--prefix=/usr/local/mips-ip22-linux/'.
-
- On the other hand, if the built FreeType2 is used as a part of
- the target system, the prefix to install should reflect the file
- system structure of the target system.
-
-
- 3. Building command
- -------------------
-
- If the configuration finishes successfully, invoking GNU make
- builds FreeType2. Just say
-
- make
-
- or
-
- gmake
-
- depending on the name the GNU make binary actually has.
-
-
- 4. Installation
- ---------------
-
- Saying
-
- make install
-
- as usual to install FreeType2 into the directory tree specified by
- the argument of the `--prefix' option.
-
- As noted in section 2.2, FreeType2 is sometimes configured to be
- installed into the system directory of the target system, and
- should not be installed in the cross-building system. In such
- cases, the make variable `DESTDIR' is useful to change the root
- directory in the installation. For example, after
-
- make DESTDIR=/mnt/target_system_root/ install
-
- the built FreeType2 library files are installed into the directory
- `/mnt/target_system_root/<prefix_in_configure>/lib'.
-
-
- 5. TODO
- -------
-
- Cross building between Cygwin (or MSys) and Unix must be tested.
-
-
-----------------------------------------------------------------------
-
-Copyright 2006, 2008 by suzuki toshiya
-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.
-
-
---- end of INSTALL.CROSS ---
+This document contains instructions on how to cross-build the FreeType +library on Unix systems, for example, building binaries for Linux/MIPS +on FreeBSD/i386. Before reading this document, please consult +INSTALL.UNIX for required tools and the basic self-building procedure. + + + 1. Required Tools + ----------------- + + For self-building the FreeType library on a Unix system, GNU Make + 3.80 or newer is required. INSTALL.UNIX contains hints how to + check the installed `make'. + + The GNU C compiler to cross-build the target system is required. + At present, using non-GNU cross compiler is not tested. The cross + compiler is expected to be installed with a system prefix. For + example, if your building system is FreeBSD/i386 and the target + system is Linux/MIPS, the cross compiler should be installed with + the name `mips-ip22-linuxelf-gcc'. + + A C compiler for a self-build is required also, to build a tool + that is executed during the building procedure. Non-GNU self + compilers are acceptable, but such a setup is not tested yet. + + + 2. Configuration + ---------------- + + 2.1. Building and target system + + To configure for cross-build, the options `--host=<system>' and + `--build=<system>' must be passed to configure. For example, if + your building system is FreeBSD/i386 and the target system is + Linux/MIPS, say + + ./configure \ + --build=i386-unknown-freebsd \ + --host=mips-ip22-linuxelf \ + [other options] + + It should be noted that `--host=<system>' specifies the system + where the built binaries will be executed, not the system where + the build actually happens. Older versions of GNU autoconf use + the option pair `--host=' and `--target='. This is broken and + doesn't work. Similarly, an explicit CC specification like + + env CC=mips-ip22-linux-gcc ./configure + + or + + env CC=/usr/local/mips-ip22-linux/bin/gcc ./configure + + doesn't work either; such a configuration confuses the + `configure' script while trying to find the cross and native C + compilers. + + + 2.2. The prefix to install FreeType2 + + Setting `--prefix=<prefix>' properly is important. The prefix + to install FreeType2 is written into the freetype-config script + and freetype2.pc configuration file. + + If the built FreeType 2 library is used as a part of the + cross-building system, the prefix is expected to be different + from the self-building system. For example, configuration with + `--prefix=/usr/local' installs binaries into the system wide + `/usr/local' directory which then can't be executed. This + causes confusion in configuration of all applications which use + FreeType2. Instead, use a prefix to install the cross-build + into a separate system tree, for example, + `--prefix=/usr/local/mips-ip22-linux/'. + + On the other hand, if the built FreeType2 is used as a part of + the target system, the prefix to install should reflect the file + system structure of the target system. + + + 3. Building command + ------------------- + + If the configuration finishes successfully, invoking GNU make + builds FreeType2. Just say + + make + + or + + gmake + + depending on the name the GNU make binary actually has. + + + 4. Installation + --------------- + + Saying + + make install + + as usual to install FreeType2 into the directory tree specified by + the argument of the `--prefix' option. + + As noted in section 2.2, FreeType2 is sometimes configured to be + installed into the system directory of the target system, and + should not be installed in the cross-building system. In such + cases, the make variable `DESTDIR' is useful to change the root + directory in the installation. For example, after + + make DESTDIR=/mnt/target_system_root/ install + + the built FreeType2 library files are installed into the directory + `/mnt/target_system_root/<prefix_in_configure>/lib'. + + + 5. TODO + ------- + + Cross building between Cygwin (or MSys) and Unix must be tested. + + +---------------------------------------------------------------------- + +Copyright 2006, 2008 by suzuki toshiya +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. + + +--- end of INSTALL.CROSS --- diff --git a/components/external/freetype/docs/INSTALL.GNU b/components/external/freetype/docs/INSTALL.GNU index d8ec340844..72df50a4ea 100644 --- a/components/external/freetype/docs/INSTALL.GNU +++ b/components/external/freetype/docs/INSTALL.GNU @@ -1,159 +1,159 @@ -This document contains instructions how to build the FreeType library
-on non-Unix systems with the help of GNU Make. Note that if you are
-running Cygwin or MSys in Windows, you should follow the instructions
-in the file INSTALL.UNIX instead.
-
-
- FreeType 2 includes a powerful and flexible build system that allows
- you to easily compile it on a great variety of platforms from the
- command line. To do so, just follow these simple instructions.
-
- 1. Install GNU Make
- -------------------
-
- Because GNU Make is the only Make tool supported to compile
- FreeType 2, you should install it on your machine.
-
- The FreeType 2 build system relies on many features special to GNU
- Make.
-
- NEARLY ALL OTHER MAKE TOOLS FAIL, INCLUDING `BSD MAKE', SO REALLY
- INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM!
-
- Note that make++, a make tool written in Perl, supports enough
- features of GNU make to compile FreeType. See
-
- http://makepp.sourceforge.net
-
- for more information; you need version 1.19 or newer, and you must
- pass option `--norc-substitution'.
-
- Make sure that you are invoking GNU Make from the command line, by
- typing something like:
-
- make -v
-
- to display its version number.
-
- VERSION 3.80 OR NEWER IS NEEDED!
-
-
- 2. Invoke `make'
- ----------------
-
- Go to the root directory of FreeType 2, then simply invoke GNU
- Make from the command line. This will launch the FreeType 2 host
- platform detection routines. A summary will be displayed, for
- example, on Win32.
-
-
- ==============================================================
- FreeType build system -- automatic system detection
-
- The following settings are used:
-
- platform win32
- compiler gcc
- configuration directory .\builds\win32
- configuration rules .\builds\win32\w32-gcc.mk
-
- If this does not correspond to your system or settings please
- remove the file 'config.mk' from this directory then read the
- INSTALL file for help.
-
- Otherwise, simply type 'make' again to build the library
- or 'make refdoc' to build the API reference (the latter needs
- python).
- =============================================================
-
-
- If the detected settings correspond to your platform and compiler,
- skip to step 5. Note that if your platform is completely alien to
- the build system, the detected platform will be `ansi'.
-
-
- 3. Configure the build system for a different compiler
- ------------------------------------------------------
-
- If the build system correctly detected your platform, but you want
- to use a different compiler than the one specified in the summary
- (for most platforms, gcc is the default compiler), invoke GNU Make
- with
-
- make setup <compiler>
-
- Examples:
-
- to use Visual C++ on Win32, type: `make setup visualc'
- to use Borland C++ on Win32, type `make setup bcc32'
- to use Watcom C++ on Win32, type `make setup watcom'
- to use Intel C++ on Win32, type `make setup intelc'
- to use LCC-Win32 on Win32, type: `make setup lcc'
- to use Watcom C++ on OS/2, type `make setup watcom'
- to use VisualAge C++ on OS/2, type `make setup visualage'
-
- The <compiler> name to use is platform-dependent. The list of
- available compilers for your system is available in the file
- `builds/<system>/detect.mk'.
-
- If you are satisfied by the new configuration summary, skip to
- step 5.
-
-
- 4. Configure the build system for an unknown platform/compiler
- --------------------------------------------------------------
-
- The auto-detection/setup phase of the build system copies a file
- to the current directory under the name `config.mk'.
-
- For example, on OS/2+gcc, it would simply copy
- `builds/os2/os2-gcc.mk' to `./config.mk'.
-
- If for some reason your platform isn't correctly detected, copy
- manually the configuration sub-makefile to `./config.mk' and go to
- step 5.
-
- Note that this file is a sub-Makefile used to specify Make
- variables for compiler and linker invocation during the build.
- You can easily create your own version from one of the existing
- configuration files, then copy it to the current directory under
- the name `./config.mk'.
-
-
- 5. Build the library
- --------------------
-
- The auto-detection/setup phase should have copied a file in the
- current directory, called `./config.mk'. This file contains
- definitions of various Make variables used to invoke the compiler
- and linker during the build. [It has also generated a file called
- `ftmodule.h' in the objects directory (which is normally
- `<toplevel>/objs/'); please read the file `docs/CUSTOMIZE' for
- customization of FreeType.]
-
- To launch the build, simply invoke GNU Make again: The top
- Makefile will detect the configuration file and run the build with
- it.
-
-
- Final note
-
- The build system builds a statically linked library of the font
- engine in the `objs' directory. It does _not_ support the build
- of DLLs on Windows and OS/2. If you need these, you have to
- either use an IDE-specific project file, or follow the
- instructions in `INSTALL.ANY' to create your own Makefiles.
-
-----------------------------------------------------------------------
-
-Copyright 2003, 2004, 2005, 2006, 2008 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.
-
-
---- end of INSTALL.GNU ---
+This document contains instructions how to build the FreeType library +on non-Unix systems with the help of GNU Make. Note that if you are +running Cygwin or MSys in Windows, you should follow the instructions +in the file INSTALL.UNIX instead. + + + FreeType 2 includes a powerful and flexible build system that allows + you to easily compile it on a great variety of platforms from the + command line. To do so, just follow these simple instructions. + + 1. Install GNU Make + ------------------- + + Because GNU Make is the only Make tool supported to compile + FreeType 2, you should install it on your machine. + + The FreeType 2 build system relies on many features special to GNU + Make. + + NEARLY ALL OTHER MAKE TOOLS FAIL, INCLUDING `BSD MAKE', SO REALLY + INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM! + + Note that make++, a make tool written in Perl, supports enough + features of GNU make to compile FreeType. See + + http://makepp.sourceforge.net + + for more information; you need version 1.19 or newer, and you must + pass option `--norc-substitution'. + + Make sure that you are invoking GNU Make from the command line, by + typing something like: + + make -v + + to display its version number. + + VERSION 3.80 OR NEWER IS NEEDED! + + + 2. Invoke `make' + ---------------- + + Go to the root directory of FreeType 2, then simply invoke GNU + Make from the command line. This will launch the FreeType 2 host + platform detection routines. A summary will be displayed, for + example, on Win32. + + + ============================================================== + FreeType build system -- automatic system detection + + The following settings are used: + + platform win32 + compiler gcc + configuration directory .\builds\win32 + configuration rules .\builds\win32\w32-gcc.mk + + If this does not correspond to your system or settings please + remove the file 'config.mk' from this directory then read the + INSTALL file for help. + + Otherwise, simply type 'make' again to build the library + or 'make refdoc' to build the API reference (the latter needs + python). + ============================================================= + + + If the detected settings correspond to your platform and compiler, + skip to step 5. Note that if your platform is completely alien to + the build system, the detected platform will be `ansi'. + + + 3. Configure the build system for a different compiler + ------------------------------------------------------ + + If the build system correctly detected your platform, but you want + to use a different compiler than the one specified in the summary + (for most platforms, gcc is the default compiler), invoke GNU Make + with + + make setup <compiler> + + Examples: + + to use Visual C++ on Win32, type: `make setup visualc' + to use Borland C++ on Win32, type `make setup bcc32' + to use Watcom C++ on Win32, type `make setup watcom' + to use Intel C++ on Win32, type `make setup intelc' + to use LCC-Win32 on Win32, type: `make setup lcc' + to use Watcom C++ on OS/2, type `make setup watcom' + to use VisualAge C++ on OS/2, type `make setup visualage' + + The <compiler> name to use is platform-dependent. The list of + available compilers for your system is available in the file + `builds/<system>/detect.mk'. + + If you are satisfied by the new configuration summary, skip to + step 5. + + + 4. Configure the build system for an unknown platform/compiler + -------------------------------------------------------------- + + The auto-detection/setup phase of the build system copies a file + to the current directory under the name `config.mk'. + + For example, on OS/2+gcc, it would simply copy + `builds/os2/os2-gcc.mk' to `./config.mk'. + + If for some reason your platform isn't correctly detected, copy + manually the configuration sub-makefile to `./config.mk' and go to + step 5. + + Note that this file is a sub-Makefile used to specify Make + variables for compiler and linker invocation during the build. + You can easily create your own version from one of the existing + configuration files, then copy it to the current directory under + the name `./config.mk'. + + + 5. Build the library + -------------------- + + The auto-detection/setup phase should have copied a file in the + current directory, called `./config.mk'. This file contains + definitions of various Make variables used to invoke the compiler + and linker during the build. [It has also generated a file called + `ftmodule.h' in the objects directory (which is normally + `<toplevel>/objs/'); please read the file `docs/CUSTOMIZE' for + customization of FreeType.] + + To launch the build, simply invoke GNU Make again: The top + Makefile will detect the configuration file and run the build with + it. + + + Final note + + The build system builds a statically linked library of the font + engine in the `objs' directory. It does _not_ support the build + of DLLs on Windows and OS/2. If you need these, you have to + either use an IDE-specific project file, or follow the + instructions in `INSTALL.ANY' to create your own Makefiles. + +---------------------------------------------------------------------- + +Copyright 2003, 2004, 2005, 2006, 2008 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. + + +--- end of INSTALL.GNU --- diff --git a/components/external/freetype/docs/INSTALL.MAC b/components/external/freetype/docs/INSTALL.MAC index 3b76514f70..42bb0d8637 100644 --- a/components/external/freetype/docs/INSTALL.MAC +++ b/components/external/freetype/docs/INSTALL.MAC @@ -1,32 +1,32 @@ -Please follow the instructions in INSTALL.UNIX to install FreeType on
-Mac OS X.
-
-Currently FreeType2 functions based on some deprecated Carbon APIs
-return FT_Err_Unimplemented_Feature always, even if FreeType2 is
-configured and built on the system that deprecated Carbon APIs are
-available. To enable deprecated FreeType2 functions as far as possible,
-replace src/base/ftmac.c by builds/mac/ftmac.c.
-
-Starting with Mac OS X 10.5, gcc defaults the deployment target
-to 10.5. In previous versions of Mac OS X, this defaulted to 10.1.
-If you want your built binaries to run only on 10.5, this change
-does not concern you. If you want them to also run on older versions
-of Mac OS X, then you must either set the MACOSX_DEPLOYMENT_TARGET
-environment variable or pass -mmacosx-version-min to gcc. You should
-specify the oldest version of Mac OS you want the code to run on.
-For example, if you use Bourne shell:
-
- export MACOSX_DEPLOYMENT_TARGET=10.2
-
-or, if you use C shell:
-
- setenv MACOSX_DEPLOYMENT_TARGET 10.2
-
-Alternatively, you could pass "-mmacosx-version-min=10.2" to gcc.
-
-Here the number 10.2 is the lowest version that the built binaries
-can run on. In the cases in above, the built binaries will run on
-Mac OS X 10.2 and later, but _not_ earlier. If you want to run on
-earlier, you have to set lower version, e.g. 10.0.
-
-For classic Mac OS (Mac OS 7, 8, 9) please refer to builds/mac/README.
+Please follow the instructions in INSTALL.UNIX to install FreeType on +Mac OS X. + +Currently FreeType2 functions based on some deprecated Carbon APIs +return FT_Err_Unimplemented_Feature always, even if FreeType2 is +configured and built on the system that deprecated Carbon APIs are +available. To enable deprecated FreeType2 functions as far as possible, +replace src/base/ftmac.c by builds/mac/ftmac.c. + +Starting with Mac OS X 10.5, gcc defaults the deployment target +to 10.5. In previous versions of Mac OS X, this defaulted to 10.1. +If you want your built binaries to run only on 10.5, this change +does not concern you. If you want them to also run on older versions +of Mac OS X, then you must either set the MACOSX_DEPLOYMENT_TARGET +environment variable or pass -mmacosx-version-min to gcc. You should +specify the oldest version of Mac OS you want the code to run on. +For example, if you use Bourne shell: + + export MACOSX_DEPLOYMENT_TARGET=10.2 + +or, if you use C shell: + + setenv MACOSX_DEPLOYMENT_TARGET 10.2 + +Alternatively, you could pass "-mmacosx-version-min=10.2" to gcc. + +Here the number 10.2 is the lowest version that the built binaries +can run on. In the cases in above, the built binaries will run on +Mac OS X 10.2 and later, but _not_ earlier. If you want to run on +earlier, you have to set lower version, e.g. 10.0. + +For classic Mac OS (Mac OS 7, 8, 9) please refer to builds/mac/README. diff --git a/components/external/freetype/docs/INSTALL.UNIX b/components/external/freetype/docs/INSTALL.UNIX index bb0ca0b75e..1d5af993f8 100644 --- a/components/external/freetype/docs/INSTALL.UNIX +++ b/components/external/freetype/docs/INSTALL.UNIX @@ -1,96 +1,96 @@ -This document contains instructions on how to build the FreeType
-library on Unix systems. This also works for emulations like Cygwin
-or MSys on Win32:
-
-
- 1. Ensure that you are using GNU Make
- -------------------------------------
-
- The FreeType build system _exclusively_ works with GNU Make. You
- will not be able to compile the library with the instructions
- below using any other alternative (including BSD Make).
-
- Check that you have GNU make by running the command:
-
- make -v
-
- This should dump some text that begins with:
-
- GNU Make <version number>
- Copyright (C) <year> Free Software Foundation Inc.
-
- Note that version 3.80 or higher is *required* or the build will
- fail.
-
- It is also fine to have GNU Make under another name (e.g. 'gmake')
- if you use the GNUMAKE variable as described below.
-
- As a special exception, 'makepp' can also be used to build
- FreeType 2. See the file docs/MAKEPP for details.
-
-
- 2. Regenerate the configure script if needed
- --------------------------------------------
-
- This only applies if you are building a CVS snapshot or checkout,
- *not* if you grabbed the sources of an official release.
-
- You need to invoke the `autogen.sh' script in the top-level
- directory in order to create the `configure' script for your
- platform. Normally, this simply means typing:
-
- sh autogen.sh
-
- In case of problems, you may need to install or upgrade Automake,
- Autoconf or Libtool. See README.CVS in the top-level directory
- for more information.
-
-
- 3. Build and install the library
- --------------------------------
-
- The following should work on all Unix systems where the `make'
- command invokes GNU Make:
-
- ./configure [options]
- make
- make install (as root)
-
- The default installation path is `/usr/local'. It can be changed
- with the `--prefix=<path>' option. Example:
-
- ./configure --prefix=/usr
-
- When using a different command to invoke GNU Make, use the GNUMAKE
- variable. For example, if `gmake' is the command to use on your
- system, do something like:
-
- GNUMAKE=gmake ./configure [options]
- gmake
- gmake install (as root)
-
- If this still doesn't work, there must be a problem with your
- system (e.g., you are using a very old version of GNU Make).
-
- It is possible to compile FreeType in a different directory.
- Assuming the FreeType source files in directory `/src/freetype' a
- compilation in directory `foo' works as follows:
-
- cd foo
- /src/freetype/configure [options]
- make
- make install
-
-----------------------------------------------------------------------
-
-Copyright 2003, 2004, 2005, 2006, 2007 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.
-
-
---- end of INSTALL.UNIX ---
+This document contains instructions on how to build the FreeType +library on Unix systems. This also works for emulations like Cygwin +or MSys on Win32: + + + 1. Ensure that you are using GNU Make + ------------------------------------- + + The FreeType build system _exclusively_ works with GNU Make. You + will not be able to compile the library with the instructions + below using any other alternative (including BSD Make). + + Check that you have GNU make by running the command: + + make -v + + This should dump some text that begins with: + + GNU Make <version number> + Copyright (C) <year> Free Software Foundation Inc. + + Note that version 3.80 or higher is *required* or the build will + fail. + + It is also fine to have GNU Make under another name (e.g. 'gmake') + if you use the GNUMAKE variable as described below. + + As a special exception, 'makepp' can also be used to build + FreeType 2. See the file docs/MAKEPP for details. + + + 2. Regenerate the configure script if needed + -------------------------------------------- + + This only applies if you are building a CVS snapshot or checkout, + *not* if you grabbed the sources of an official release. + + You need to invoke the `autogen.sh' script in the top-level + directory in order to create the `configure' script for your + platform. Normally, this simply means typing: + + sh autogen.sh + + In case of problems, you may need to install or upgrade Automake, + Autoconf or Libtool. See README.CVS in the top-level directory + for more information. + + + 3. Build and install the library + -------------------------------- + + The following should work on all Unix systems where the `make' + command invokes GNU Make: + + ./configure [options] + make + make install (as root) + + The default installation path is `/usr/local'. It can be changed + with the `--prefix=<path>' option. Example: + + ./configure --prefix=/usr + + When using a different command to invoke GNU Make, use the GNUMAKE + variable. For example, if `gmake' is the command to use on your + system, do something like: + + GNUMAKE=gmake ./configure [options] + gmake + gmake install (as root) + + If this still doesn't work, there must be a problem with your + system (e.g., you are using a very old version of GNU Make). + + It is possible to compile FreeType in a different directory. + Assuming the FreeType source files in directory `/src/freetype' a + compilation in directory `foo' works as follows: + + cd foo + /src/freetype/configure [options] + make + make install + +---------------------------------------------------------------------- + +Copyright 2003, 2004, 2005, 2006, 2007 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. + + +--- end of INSTALL.UNIX --- diff --git a/components/external/freetype/docs/INSTALL.VMS b/components/external/freetype/docs/INSTALL.VMS index c985d14fed..994e566883 100644 --- a/components/external/freetype/docs/INSTALL.VMS +++ b/components/external/freetype/docs/INSTALL.VMS @@ -1,62 +1,62 @@ -How to build the freetype2 library on VMS
------------------------------------------
-
-It is actually very straightforward to install the Freetype2 library.
-Just execute vms_make.com from the toplevel directory to build the
-library. This procedure currently accepts the following options:
-
-DEBUG
- Build the library with debug information and without optimization.
-
-lopts=<value>
- Options to pass to the link command e.g. lopts=/traceback
-
-ccopt=<value>
- Options to pass to the C compiler e.g. ccopt=/float=ieee
-
-In case you did download the demos, place them in a separate directory
-sharing the same toplevel as the directory of Freetype2 and follow the
-same instructions as above for the demos from there. The build
-process relies on this to figure the location of the Freetype2 include
-files.
-
-
-To rebuild the sources it is necessary to have MMS/MMK installed on
-the system.
-
-The library is available in the directory
-
- [.LIB]
-
-To compile applications using FreeType 2 you have to define the
-logical FREETYPE pointing to the directory
-
- [.INCLUDE.FREETYPE]
-
-i.e., if the directory in which this INSTALL.VMS file is located is
-$disk:[freetype] then define the logical with
-
- define freetype $disk:[freetype.include.freetype]
-
-This version has been tested with Compaq C V6.2-006 on OpenVMS Alpha
-V7.2-1.
-
-
- Any problems can be reported to
-
- Jouk Jansen <[email protected]> or
- Martin P.J. Zinser <[email protected]>
-
-------------------------------------------------------------------------
-
-Copyright 2000, 2004 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.
-
-
---- end of INSTALL.VMS ---
+How to build the freetype2 library on VMS +----------------------------------------- + +It is actually very straightforward to install the Freetype2 library. +Just execute vms_make.com from the toplevel directory to build the +library. This procedure currently accepts the following options: + +DEBUG + Build the library with debug information and without optimization. + +lopts=<value> + Options to pass to the link command e.g. lopts=/traceback + +ccopt=<value> + Options to pass to the C compiler e.g. ccopt=/float=ieee + +In case you did download the demos, place them in a separate directory +sharing the same toplevel as the directory of Freetype2 and follow the +same instructions as above for the demos from there. The build +process relies on this to figure the location of the Freetype2 include +files. + + +To rebuild the sources it is necessary to have MMS/MMK installed on +the system. + +The library is available in the directory + + [.LIB] + +To compile applications using FreeType 2 you have to define the +logical FREETYPE pointing to the directory + + [.INCLUDE.FREETYPE] + +i.e., if the directory in which this INSTALL.VMS file is located is +$disk:[freetype] then define the logical with + + define freetype $disk:[freetype.include.freetype] + +This version has been tested with Compaq C V6.2-006 on OpenVMS Alpha +V7.2-1. + + + Any problems can be reported to + + Jouk Jansen <[email protected]> or + Martin P.J. Zinser <[email protected]> + +------------------------------------------------------------------------ + +Copyright 2000, 2004 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. + + +--- end of INSTALL.VMS --- diff --git a/components/external/freetype/docs/MAKEPP b/components/external/freetype/docs/MAKEPP index fb2e903183..58eaf551df 100644 --- a/components/external/freetype/docs/MAKEPP +++ b/components/external/freetype/docs/MAKEPP @@ -1,5 +1,5 @@ -As a special exception, FreeType can also be built with the 'makepp'
-build tool, available from http://makepp.sourceforge.net.
-
-Note, however. that you will need at least version 1.19 and pass the
-option --norc-substitution to have it work correctly.
+As a special exception, FreeType can also be built with the 'makepp' +build tool, available from http://makepp.sourceforge.net. + +Note, however. that you will need at least version 1.19 and pass the +option --norc-substitution to have it work correctly. diff --git a/components/external/freetype/docs/PATENTS b/components/external/freetype/docs/PATENTS index 8fcaa4e67a..f36778b5e9 100644 --- a/components/external/freetype/docs/PATENTS +++ b/components/external/freetype/docs/PATENTS @@ -1,27 +1,27 @@ -
- FreeType Patents Disclaimer
- August 1999
-
-
-
-WE HAVE DISCOVERED THAT APPLE OWNS SEVERAL PATENTS RELATED TO THE
-RENDERING OF TRUETYPE FONTS. THIS COULD MEAN THAT THE FREE USE OF
-FREETYPE MIGHT BE ILLEGAL IN THE USA, JAPAN, AND POSSIBLY OTHER
-COUNTRIES, BE IT IN PROPRIETARY OR FREE SOFTWARE PRODUCTS.
-
-FOR MORE DETAILS, WE STRONGLY ADVISE YOU TO GO TO THE FREETYPE
-PATENTS PAGE AT THE FOLLOWING WEB ADDRESS:
-
- http://www.freetype.org/patents.html
-
-WE WILL NOT PLACE INFORMATION IN THIS FILE AS THE SITUATION IS STILL
-UNDETERMINED FOR NOW. AT THE TIME THESE LINES ARE WRITTEN, WE HAVE
-CONTACTED APPLE'S LEGAL DEPARTMENT AND ARE STILL WAITING FOR THEIR
-ANSWER ON THE SUBJECT.
-
-PLEASE READ THE `INSTALL' FILE TO SEE HOW TO DISABLE THE ENGINE'S
-BYTECODE INTERPRETER IN ORDER TO BUILD A PATENT-FREE ENGINE, AT THE
-COST OF RENDERING QUALITY.
-
-
---- end of PATENTS ---
+ + FreeType Patents Disclaimer + August 1999 + + + +WE HAVE DISCOVERED THAT APPLE OWNS SEVERAL PATENTS RELATED TO THE +RENDERING OF TRUETYPE FONTS. THIS COULD MEAN THAT THE FREE USE OF +FREETYPE MIGHT BE ILLEGAL IN THE USA, JAPAN, AND POSSIBLY OTHER +COUNTRIES, BE IT IN PROPRIETARY OR FREE SOFTWARE PRODUCTS. + +FOR MORE DETAILS, WE STRONGLY ADVISE YOU TO GO TO THE FREETYPE +PATENTS PAGE AT THE FOLLOWING WEB ADDRESS: + + http://www.freetype.org/patents.html + +WE WILL NOT PLACE INFORMATION IN THIS FILE AS THE SITUATION IS STILL +UNDETERMINED FOR NOW. AT THE TIME THESE LINES ARE WRITTEN, WE HAVE +CONTACTED APPLE'S LEGAL DEPARTMENT AND ARE STILL WAITING FOR THEIR +ANSWER ON THE SUBJECT. + +PLEASE READ THE `INSTALL' FILE TO SEE HOW TO DISABLE THE ENGINE'S +BYTECODE INTERPRETER IN ORDER TO BUILD A PATENT-FREE ENGINE, AT THE +COST OF RENDERING QUALITY. + + +--- end of PATENTS --- diff --git a/components/external/freetype/docs/PROBLEMS b/components/external/freetype/docs/PROBLEMS index ec85bbde33..9b598966a0 100644 --- a/components/external/freetype/docs/PROBLEMS +++ b/components/external/freetype/docs/PROBLEMS @@ -1,77 +1,77 @@ -This file describes various problems that have been encountered in
-compiling, installing and running FreeType 2. Suggestions for
-additions or other improvements to this file are welcome.
-
-----------------------------------------------------------------------
-
-Running Problems
-================
-
-
-* Some Type 1, Multiple Masters, and CID-keyed PostScript fonts aren't
- handled correctly.
-
------
-
-Of course, there might be bugs in FreeType, but some fonts based on
-the PostScript format can't behandled indeed. The reason is that
-FreeType doesn't contain a full PostScript interpreter but applies
-pattern matching instead. In case a font doesn't follow the standard
-structure of the given font format, FreeType fails. A typical example
-is Adobe's `Optima' font family which contains extra code to switch
-between low and high resolution versions of the glyphs.
-
-It might be possible to patch FreeType in some situations, though.
-Please report failing fonts so that we investigate the problem and set
-up a list of such problematic fonts.
-
-----------------------------------------------------------------------
-
-
-Compilation Problems
-====================
-
-
-* I get an `internal compilation error' (ICE) while compiling FreeType
- 2.2.1 with Intel C++.
-
- This has been reported for the following compiler version:
-
- Intel(R) C++ Compiler for 32-bit applications,
- Version 9.0 Build 20050430Z Package ID: W_CC_P_9.0.019
-
------
-
-The best solution is to update the compiler to version
-
- Intel(R) C++ Compiler for 32-bit applications,
- Version 9.1 Build 20060323Z Package ID: W_CC_P_9.1.022
-
-or newer. If this isn't feasible, apply the following patch.
-
-
---- src/cache/ftcbasic.c 20 Mar 2006 12:10:24 -0000 1.20
-+++ src/cache/ftcbasic.c.patched 15 May 2006 02:51:02 -0000
-@@ -252,7 +252,7 @@
- */
-
- FT_CALLBACK_TABLE_DEF
-- const FTC_IFamilyClassRec ftc_basic_image_family_class =
-+ FTC_IFamilyClassRec ftc_basic_image_family_class =
- {
- {
- sizeof ( FTC_BasicFamilyRec ),
-@@ -266,7 +266,7 @@
-
-
- FT_CALLBACK_TABLE_DEF
-- const FTC_GCacheClassRec ftc_basic_image_cache_class =
-+ FTC_GCacheClassRec ftc_basic_image_cache_class =
- {
- {
- ftc_inode_new,
-
-
-----------------------------------------------------------------------
-
---- end of PROBLEMS ---
+This file describes various problems that have been encountered in +compiling, installing and running FreeType 2. Suggestions for +additions or other improvements to this file are welcome. + +---------------------------------------------------------------------- + +Running Problems +================ + + +* Some Type 1, Multiple Masters, and CID-keyed PostScript fonts aren't + handled correctly. + +----- + +Of course, there might be bugs in FreeType, but some fonts based on +the PostScript format can't behandled indeed. The reason is that +FreeType doesn't contain a full PostScript interpreter but applies +pattern matching instead. In case a font doesn't follow the standard +structure of the given font format, FreeType fails. A typical example +is Adobe's `Optima' font family which contains extra code to switch +between low and high resolution versions of the glyphs. + +It might be possible to patch FreeType in some situations, though. +Please report failing fonts so that we investigate the problem and set +up a list of such problematic fonts. + +---------------------------------------------------------------------- + + +Compilation Problems +==================== + + +* I get an `internal compilation error' (ICE) while compiling FreeType + 2.2.1 with Intel C++. + + This has been reported for the following compiler version: + + Intel(R) C++ Compiler for 32-bit applications, + Version 9.0 Build 20050430Z Package ID: W_CC_P_9.0.019 + +----- + +The best solution is to update the compiler to version + + Intel(R) C++ Compiler for 32-bit applications, + Version 9.1 Build 20060323Z Package ID: W_CC_P_9.1.022 + +or newer. If this isn't feasible, apply the following patch. + + +--- src/cache/ftcbasic.c 20 Mar 2006 12:10:24 -0000 1.20 ++++ src/cache/ftcbasic.c.patched 15 May 2006 02:51:02 -0000 +@@ -252,7 +252,7 @@ + */ + + FT_CALLBACK_TABLE_DEF +- const FTC_IFamilyClassRec ftc_basic_image_family_class = ++ FTC_IFamilyClassRec ftc_basic_image_family_class = + { + { + sizeof ( FTC_BasicFamilyRec ), +@@ -266,7 +266,7 @@ + + + FT_CALLBACK_TABLE_DEF +- const FTC_GCacheClassRec ftc_basic_image_cache_class = ++ FTC_GCacheClassRec ftc_basic_image_cache_class = + { + { + ftc_inode_new, + + +---------------------------------------------------------------------- + +--- end of PROBLEMS --- diff --git a/components/external/freetype/docs/TODO b/components/external/freetype/docs/TODO index b987f9014b..be60d6f040 100644 --- a/components/external/freetype/docs/TODO +++ b/components/external/freetype/docs/TODO @@ -1,40 +1,40 @@ -Here is a list of items that need to be addressed in FreeType 2
----------------------------------------------------------------
-
-* Implement stem3/counter hints properly in the Postscript hinter.
-
-* Add CIDCMap support to the CID driver.
-
-* Add track kerning support to the PFR driver.
-
-* Add kerning (AFM file) support to the CID driver.
-
-
-Here is a list of bugs which should be handled
-----------------------------------------------
-
-Other bugs have been registered at the savannah bugzilla of FreeType.
-
-* CID driver:
- Handle the case where a CID font has a top-level font matrix also
- (see PLRM, 5.11.3, Type 0 CIDFonts). Since CID_FaceInfoRec lacks
- a font_matrix entry we have to directly apply it to all subfont
- matrices.
-
-* CID driver:
- Use top-level font matrix entry for setting the upem value, not the
- entries in the FDarray. If absent, use 1000.
-
-------------------------------------------------------------------------
-
-Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007 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.
-
-
---- end of TODO ---
+Here is a list of items that need to be addressed in FreeType 2 +--------------------------------------------------------------- + +* Implement stem3/counter hints properly in the Postscript hinter. + +* Add CIDCMap support to the CID driver. + +* Add track kerning support to the PFR driver. + +* Add kerning (AFM file) support to the CID driver. + + +Here is a list of bugs which should be handled +---------------------------------------------- + +Other bugs have been registered at the savannah bugzilla of FreeType. + +* CID driver: + Handle the case where a CID font has a top-level font matrix also + (see PLRM, 5.11.3, Type 0 CIDFonts). Since CID_FaceInfoRec lacks + a font_matrix entry we have to directly apply it to all subfont + matrices. + +* CID driver: + Use top-level font matrix entry for setting the upem value, not the + entries in the FDarray. If absent, use 1000. + +------------------------------------------------------------------------ + +Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007 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. + + +--- end of TODO --- diff --git a/components/external/freetype/docs/TRUETYPE b/components/external/freetype/docs/TRUETYPE index d5c0fbea2d..3e1614ad43 100644 --- a/components/external/freetype/docs/TRUETYPE +++ b/components/external/freetype/docs/TRUETYPE @@ -1,40 +1,40 @@ -How to enable the TrueType native hinter if you need it
--------------------------------------------------------
-
- The TrueType bytecode interpreter is disabled in all public releases
- of the FreeType packages for patents reasons; see
-
- http://www.freetype.org/patents.html
-
- for more details.
-
- However, many Linux distributions do enable the interpreter in the
- FreeType packages (DEB/RPM/etc.) they produce for their platforms. If
- you are using TrueType fonts on your system, you most probably want to
- enable it manually by doing the following:
-
- - open the file `include/freetype/config/ftoption.h'
-
- - locate a line that says:
-
- /* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
- - change it to:
-
- #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
- These steps must be done _before_ compiling the library.
-
-------------------------------------------------------------------------
-
-Copyright 2003, 2005, 2006 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.
-
-
---- end of TRUETYPE ---
+How to enable the TrueType native hinter if you need it +------------------------------------------------------- + + The TrueType bytecode interpreter is disabled in all public releases + of the FreeType packages for patents reasons; see + + http://www.freetype.org/patents.html + + for more details. + + However, many Linux distributions do enable the interpreter in the + FreeType packages (DEB/RPM/etc.) they produce for their platforms. If + you are using TrueType fonts on your system, you most probably want to + enable it manually by doing the following: + + - open the file `include/freetype/config/ftoption.h' + + - locate a line that says: + + /* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ + + - change it to: + + #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER + + These steps must be done _before_ compiling the library. + +------------------------------------------------------------------------ + +Copyright 2003, 2005, 2006 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. + + +--- end of TRUETYPE --- diff --git a/components/external/freetype/docs/UPGRADE.UNIX b/components/external/freetype/docs/UPGRADE.UNIX index f39a032994..48c746d703 100644 --- a/components/external/freetype/docs/UPGRADE.UNIX +++ b/components/external/freetype/docs/UPGRADE.UNIX @@ -1,137 +1,137 @@ -
-SPECIAL NOTE FOR UNIX USERS
-===========================
-
- If you are installing this release of FreeType on a system that
- already uses release 2.0.5 (or even an older version), you have to
- perform a few special steps to ensure that everything goes well.
-
-
- 1. Enable the TrueType bytecode hinter if you need it
- -----------------------------------------------------
-
- See the instructions in the file `TRUETYPE' of this directory.
-
- Note that FreeType supports TrueType fonts without the bytecode
- interpreter through its auto-hinter, which now generates relatively
- good results with most fonts.
-
-
- 2. Determine the correct installation path
- ------------------------------------------
-
- By default, the configure script installs the library in
- `/usr/local'. However, many Unix distributions now install the
- library in `/usr', since FreeType is becoming a critical system
- component.
-
- If FreeType is already installed on your system, type
-
- freetype-config --prefix
-
- on the command line. This should return the installation path
- (e.g., `/usr' or `/usr/local'). To avoid problems of parallel
- FreeType versions, use this path for the --prefix option of the
- configure script.
-
- Otherwise, simply use `/usr' (or whatever you think is adequate for
- your installation).
-
-
- 3. Ensure that you are using GNU Make
- -------------------------------------
-
- The FreeType build system _exclusively_ works with GNU Make (as an
- exception you can use make++ which emulates GNU Make sufficiently;
- see http://makepp.sourceforge.net). You will not be able to compile
- the library with the instructions below using any other alternative
- (including BSD Make).
-
- Trying to compile the library with a different Make tool prints a
- message like:
-
- Sorry, GNU make is required to build FreeType2.
-
- and the build process is aborted. If this happens, install GNU Make
- on your system, and use the GNUMAKE environment variable to name it.
-
-
- 4. Build and install the library
- --------------------------------
-
- The following should work on all Unix systems where the `make'
- command invokes GNU Make:
-
- ./configure --prefix=<yourprefix>
- make
- make install (as root)
-
- where `<yourprefix>' must be replaced by the prefix returned by the
- `freetype-config' command.
-
- When using a different command to invoke GNU Make, use the GNUMAKE
- variable. For example, if `gmake' is the command to use on your
- system, do something like:
-
- GNUMAKE=gmake ./configure --prefix=<yourprefix>
- gmake
- gmake install (as root)
-
-
- 5. Take care of XFree86 version 4
- ---------------------------------
-
- Certain Linux distributions install _several_ versions of FreeType
- on your system. For example, on a fresh Mandrake 8.1 system, you
- can find the following files:
-
- /usr/lib/libfreetype.so which links to
- /usr/lib/libfreetype.6.1.0.so
-
- and
-
- /usr/X11R6/lib/libfreetype.so which links to
- /usr/X11R6/lib/libfreetype.6.0.so
-
- Note that these files correspond to two distinct versions of the
- library! It seems that this surprising issue is due to the install
- scripts of recent XFree86 servers (from 4.1.0) which install their
- own (dated) version of the library in `/usr/X11R6/lib'.
-
- In certain _rare_ cases you may experience minor problems if you
- install this release of the library in `/usr' only, namely, that
- certain applications do not benefit from the bug fixes and rendering
- improvements you would expect.
-
- There are two good ways to deal with this situation:
-
- - Install the library _twice_, in `/usr' and in `/usr/X11R6' (you
- have to do that each time you install a new FreeType release
- though).
-
- - Change the link in /usr/X11R6/lib/libfreetype.so to point to
-
- /usr/lib/libfreetype.so,
-
- and get rid of
-
- /usr/X11R6/lib/libfreetype.6.0.so
-
- The FreeType Team is not responsible for this problem, so please
- contact either the XFree86 development team or your Linux
- distributor to help clear this issue in case the information given
- here doesn't help.
-
-------------------------------------------------------------------------
-
-Copyright 2003, 2005 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.
-
-
----- end of UPGRADE.UNIX ---
+ +SPECIAL NOTE FOR UNIX USERS +=========================== + + If you are installing this release of FreeType on a system that + already uses release 2.0.5 (or even an older version), you have to + perform a few special steps to ensure that everything goes well. + + + 1. Enable the TrueType bytecode hinter if you need it + ----------------------------------------------------- + + See the instructions in the file `TRUETYPE' of this directory. + + Note that FreeType supports TrueType fonts without the bytecode + interpreter through its auto-hinter, which now generates relatively + good results with most fonts. + + + 2. Determine the correct installation path + ------------------------------------------ + + By default, the configure script installs the library in + `/usr/local'. However, many Unix distributions now install the + library in `/usr', since FreeType is becoming a critical system + component. + + If FreeType is already installed on your system, type + + freetype-config --prefix + + on the command line. This should return the installation path + (e.g., `/usr' or `/usr/local'). To avoid problems of parallel + FreeType versions, use this path for the --prefix option of the + configure script. + + Otherwise, simply use `/usr' (or whatever you think is adequate for + your installation). + + + 3. Ensure that you are using GNU Make + ------------------------------------- + + The FreeType build system _exclusively_ works with GNU Make (as an + exception you can use make++ which emulates GNU Make sufficiently; + see http://makepp.sourceforge.net). You will not be able to compile + the library with the instructions below using any other alternative + (including BSD Make). + + Trying to compile the library with a different Make tool prints a + message like: + + Sorry, GNU make is required to build FreeType2. + + and the build process is aborted. If this happens, install GNU Make + on your system, and use the GNUMAKE environment variable to name it. + + + 4. Build and install the library + -------------------------------- + + The following should work on all Unix systems where the `make' + command invokes GNU Make: + + ./configure --prefix=<yourprefix> + make + make install (as root) + + where `<yourprefix>' must be replaced by the prefix returned by the + `freetype-config' command. + + When using a different command to invoke GNU Make, use the GNUMAKE + variable. For example, if `gmake' is the command to use on your + system, do something like: + + GNUMAKE=gmake ./configure --prefix=<yourprefix> + gmake + gmake install (as root) + + + 5. Take care of XFree86 version 4 + --------------------------------- + + Certain Linux distributions install _several_ versions of FreeType + on your system. For example, on a fresh Mandrake 8.1 system, you + can find the following files: + + /usr/lib/libfreetype.so which links to + /usr/lib/libfreetype.6.1.0.so + + and + + /usr/X11R6/lib/libfreetype.so which links to + /usr/X11R6/lib/libfreetype.6.0.so + + Note that these files correspond to two distinct versions of the + library! It seems that this surprising issue is due to the install + scripts of recent XFree86 servers (from 4.1.0) which install their + own (dated) version of the library in `/usr/X11R6/lib'. + + In certain _rare_ cases you may experience minor problems if you + install this release of the library in `/usr' only, namely, that + certain applications do not benefit from the bug fixes and rendering + improvements you would expect. + + There are two good ways to deal with this situation: + + - Install the library _twice_, in `/usr' and in `/usr/X11R6' (you + have to do that each time you install a new FreeType release + though). + + - Change the link in /usr/X11R6/lib/libfreetype.so to point to + + /usr/lib/libfreetype.so, + + and get rid of + + /usr/X11R6/lib/libfreetype.6.0.so + + The FreeType Team is not responsible for this problem, so please + contact either the XFree86 development team or your Linux + distributor to help clear this issue in case the information given + here doesn't help. + +------------------------------------------------------------------------ + +Copyright 2003, 2005 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. + + +---- end of UPGRADE.UNIX --- diff --git a/components/external/freetype/docs/VERSION.DLL b/components/external/freetype/docs/VERSION.DLL index e41792edbe..bb55c3dda9 100644 --- a/components/external/freetype/docs/VERSION.DLL +++ b/components/external/freetype/docs/VERSION.DLL @@ -1,138 +1,138 @@ -Due to our use of `libtool' to generate and install the FreeType 2
-libraries on Unix systems, as well as other historical events, it is
-generally very difficult to know precisely which release of the font
-engine is installed on a given system.
-
-This file tries to explain why and to document ways to properly detect
-FreeType on Unix.
-
-
-1. Version and Release numbers
-------------------------------
-
-For each new public release of FreeType 2, there are generally *three*
-distinct `version' numbers to consider:
-
- * The official FreeType 2 release number, like 2.0.9 or 2.1.3.
-
- * The libtool (and Unix) specific version number, like 9.2.3. This is
- what `freetype-config --version' returns.
-
- * The platform-specific shared object number, used for example when
- the library is installed as `/usr/lib/libfreetype.so.6.3.2'.
-
-The platform-specific number is, unsurprisingly, platform-specific and
-varies with the operating system you are using (several variants of
-Linux, FreeBSD, Solaris, etc.). You should thus _never_ use it, even
-for simple tests.
-
-The libtool-specific number does not equal the release number but is
-tied to it.
-
-The release number is available at *compile* time through the following
-macros defined in FT_FREETYPE_H:
-
- - FREETYPE_MAJOR: major release number
- - FREETYPE_MINOR: minor release number
- - FREETYPE_PATCH: patch release number
-
-See below for a small autoconf fragment.
-
-The release number is also available at *runtime* through the
-`FT_Library_Version' API. Unfortunately, this one wasn't available or
-working correctly before the 2.1.3 official release.
-
-
-2. History
-----------
-
-The following table gives, for each official release, the corresponding
-libtool number, as well as the shared object number found on _most_
-systems, but not all of them:
-
-
- release libtool so
- -------------------------------
- 2.3.12 10.0.4 6.4.0
- 2.3.11 9.22.3 6.3.22
- 2.3.10 9.21.3 6.3.21
- 2.3.9 9.20.3 6.3.20
- 2.3.8 9.19.3 6.3.19
- 2.3.7 9.18.3 6.3.18
- 2.3.6 9.17.3 6.3.17
- 2.3.5 9.16.3 6.3.16
- 2.3.4 9.15.3 6.3.15
- 2.3.3 9.14.3 6.3.14
- 2.3.2 9.13.3 6.3.13
- 2.3.1 9.12.3 6.3.12
- 2.3.0 9.11.3 6.3.11
- 2.2.1 9.10.3 6.3.10
- 2.2.0 9.9.3 6.3.9
- 2.1.10 9.8.3 6.3.8
- 2.1.9 9.7.3 6.3.7
- 2.1.8 9.6.3 6.3.6
- 2.1.7 9.5.3 6.3.5
- 2.1.6 9.5.3 6.3.5
- 2.1.5 9.4.3 6.3.4
- 2.1.4 9.3.3 6.3.3
- 2.1.3 9.2.3 6.3.2
- 2.1.2 9.1.3 6.3.1
- 2.1.1 9.0.3 ?
- 2.1.0 8.0.2 ?
- 2.0.9 9.0.3 ?
- 2.0.8 8.0.2 ?
- 2.0.4 7.0.1 ?
- 2.0.1 6.1.0 ?
-
-The libtool numbers are a bit inconsistent due to the library's history:
-
- - 2.1.0 was created as a development branch from 2.0.8 (hence the same
- libtool numbers).
-
- - 2.0.9 was a bug-fix release of the `stable' branch, and we
- incorrectly increased its libtool number.
-
- - 2.1.4 was a development version, however it was stable enough to be
- the basis of the 2.2.0 release.
-
-
-3. Autoconf Code Fragment
--------------------------
-
-Lars Clausen contributed the following autoconf fragment to detect which
-version of FreeType is installed on a system. This one tests for a
-version that is at least 2.0.9; you should change it to check against
-other release numbers.
-
-
- AC_MSG_CHECKING([whether FreeType version is 2.0.9 or higher])
- old_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS=`freetype-config --cflags`
- AC_TRY_CPP([
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#if (FREETYPE_MAJOR*1000 + FREETYPE_MINOR)*1000 + FREETYPE_PATCH < 2000009
-#error Freetype version too low.
-#endif
- ],
- [AC_MSG_RESULT(yes)
- FREETYPE_LIBS=`freetype-config --libs`
- AC_SUBST(FREETYPE_LIBS)
- AC_DEFINE(HAVE_FREETYPE,1,[Define if you have the FreeType2 library])
- CPPFLAGS="$old_CPPFLAGS"],
- [AC_MSG_ERROR([Need FreeType library version 2.0.9 or higher])])
-
-------------------------------------------------------------------------
-
-Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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.
-
-
---- end of VERSION.DLL ---
+Due to our use of `libtool' to generate and install the FreeType 2 +libraries on Unix systems, as well as other historical events, it is +generally very difficult to know precisely which release of the font +engine is installed on a given system. + +This file tries to explain why and to document ways to properly detect +FreeType on Unix. + + +1. Version and Release numbers +------------------------------ + +For each new public release of FreeType 2, there are generally *three* +distinct `version' numbers to consider: + + * The official FreeType 2 release number, like 2.0.9 or 2.1.3. + + * The libtool (and Unix) specific version number, like 9.2.3. This is + what `freetype-config --version' returns. + + * The platform-specific shared object number, used for example when + the library is installed as `/usr/lib/libfreetype.so.6.3.2'. + +The platform-specific number is, unsurprisingly, platform-specific and +varies with the operating system you are using (several variants of +Linux, FreeBSD, Solaris, etc.). You should thus _never_ use it, even +for simple tests. + +The libtool-specific number does not equal the release number but is +tied to it. + +The release number is available at *compile* time through the following +macros defined in FT_FREETYPE_H: + + - FREETYPE_MAJOR: major release number + - FREETYPE_MINOR: minor release number + - FREETYPE_PATCH: patch release number + +See below for a small autoconf fragment. + +The release number is also available at *runtime* through the +`FT_Library_Version' API. Unfortunately, this one wasn't available or +working correctly before the 2.1.3 official release. + + +2. History +---------- + +The following table gives, for each official release, the corresponding +libtool number, as well as the shared object number found on _most_ +systems, but not all of them: + + + release libtool so + ------------------------------- + 2.3.12 10.0.4 6.4.0 + 2.3.11 9.22.3 6.3.22 + 2.3.10 9.21.3 6.3.21 + 2.3.9 9.20.3 6.3.20 + 2.3.8 9.19.3 6.3.19 + 2.3.7 9.18.3 6.3.18 + 2.3.6 9.17.3 6.3.17 + 2.3.5 9.16.3 6.3.16 + 2.3.4 9.15.3 6.3.15 + 2.3.3 9.14.3 6.3.14 + 2.3.2 9.13.3 6.3.13 + 2.3.1 9.12.3 6.3.12 + 2.3.0 9.11.3 6.3.11 + 2.2.1 9.10.3 6.3.10 + 2.2.0 9.9.3 6.3.9 + 2.1.10 9.8.3 6.3.8 + 2.1.9 9.7.3 6.3.7 + 2.1.8 9.6.3 6.3.6 + 2.1.7 9.5.3 6.3.5 + 2.1.6 9.5.3 6.3.5 + 2.1.5 9.4.3 6.3.4 + 2.1.4 9.3.3 6.3.3 + 2.1.3 9.2.3 6.3.2 + 2.1.2 9.1.3 6.3.1 + 2.1.1 9.0.3 ? + 2.1.0 8.0.2 ? + 2.0.9 9.0.3 ? + 2.0.8 8.0.2 ? + 2.0.4 7.0.1 ? + 2.0.1 6.1.0 ? + +The libtool numbers are a bit inconsistent due to the library's history: + + - 2.1.0 was created as a development branch from 2.0.8 (hence the same + libtool numbers). + + - 2.0.9 was a bug-fix release of the `stable' branch, and we + incorrectly increased its libtool number. + + - 2.1.4 was a development version, however it was stable enough to be + the basis of the 2.2.0 release. + + +3. Autoconf Code Fragment +------------------------- + +Lars Clausen contributed the following autoconf fragment to detect which +version of FreeType is installed on a system. This one tests for a +version that is at least 2.0.9; you should change it to check against +other release numbers. + + + AC_MSG_CHECKING([whether FreeType version is 2.0.9 or higher]) + old_CPPFLAGS="$CPPFLAGS" + CPPFLAGS=`freetype-config --cflags` + AC_TRY_CPP([ + +#include <ft2build.h> +#include FT_FREETYPE_H +#if (FREETYPE_MAJOR*1000 + FREETYPE_MINOR)*1000 + FREETYPE_PATCH < 2000009 +#error Freetype version too low. +#endif + ], + [AC_MSG_RESULT(yes) + FREETYPE_LIBS=`freetype-config --libs` + AC_SUBST(FREETYPE_LIBS) + AC_DEFINE(HAVE_FREETYPE,1,[Define if you have the FreeType2 library]) + CPPFLAGS="$old_CPPFLAGS"], + [AC_MSG_ERROR([Need FreeType library version 2.0.9 or higher])]) + +------------------------------------------------------------------------ + +Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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. + + +--- end of VERSION.DLL --- diff --git a/components/external/freetype/docs/reference/.gitignore b/components/external/freetype/docs/reference/.gitignore index d3fc626fe4..2d19fc766d 100644 --- a/components/external/freetype/docs/reference/.gitignore +++ b/components/external/freetype/docs/reference/.gitignore @@ -1 +1 @@ -*.html
+*.html diff --git a/components/external/freetype/docs/reference/README b/components/external/freetype/docs/reference/README index 906b77acf9..51b04d6f15 100644 --- a/components/external/freetype/docs/reference/README +++ b/components/external/freetype/docs/reference/README @@ -1,5 +1,5 @@ -After saying `make refdoc' this directory contains the FreeType API
-reference. You need python to make this target.
-
-This also works with Jam: Just type `jam refdoc' in the main directory.
-
+After saying `make refdoc' this directory contains the FreeType API +reference. You need python to make this target. + +This also works with Jam: Just type `jam refdoc' in the main directory. + diff --git a/components/external/freetype/docs/release b/components/external/freetype/docs/release index e79a31c85d..5e2d51f880 100644 --- a/components/external/freetype/docs/release +++ b/components/external/freetype/docs/release @@ -1,195 +1,195 @@ -How to prepare a new release
-----------------------------
-
-. include/freetype/freetype.h: Update FREETYPE_MAJOR, FREETYPE_MINOR,
- and FREETYPE_PATCH.
-
-. Update version numbers in all files where necessary (for example, do
- a grep for both `2.3.1' and `231' for release 2.3.1).
-
-. builds/unix/configure.raw: Update `version_info'.
-
-. docs/CHANGES: Document differences to last release.
-
-. README: Update.
-
-. docs/VERSION.DLL: Document changed `version_info'.
-
-. ChangeLog: Announce new release (both in the freetype2 and
- freetype2-demos modules).
-
-. Clone the git archive to another directory with
-
- git clone -l -s . ../freetype2.test
-
- or something like this and run
-
- make distclean; make devel; make
- make distclean; make devel; make multi
- make distclean; make devel CC=g++; make CC=g++
- make distclean; make devel CC=g++; make multi CC=g++
-
- sh autogen.sh
- make distclean; ./configure; make
- make distclean; ./configure CC=g++; make
-
- in the cloned repository to test compilation with both gcc and g++.
-
-. Test C++ compilation for freetype2-demos too (using `git clone' as
- above).
-
-. Run src/tools/chktrcmp.py and check that there are no undefined
- trace_XXXX macros.
-
-. Tag the git repositories (freetype2, freetype2-demos) with
-
- git tag VER-<version> -m "" -u <committer>
-
- and push the tags with
-
- git push --tags
-
- TODO: Tag the home page CVS on savannah.nongnu.org.
-
-. Say `make dist' in both the freetype2 and freetype2-demos modules
- to generate the .tar.gz, .tar.bz2, and .zip files.
-
-. Create the doc bundles (freetype-doc-<version>.tar.gz,
- freetype-doc-<version>.tar.bz2, ftdoc<version>.zip). This is
- everything below
-
- freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/freetype2/docs/
-
- except the `reference' subdirectory. Do *not* use option `-l' from
- zip!
-
-. Run the following script (with updated `$VERSION', `$SAVANNAH_USER',
- and $SOURCEFORGE_USER variables) to sign and upload the bundles to
- both Savannah and SourceForge. The signing code has been taken from
- the `gnupload' script (part of the automake bundle).
-
- #!/bin/sh
-
- VERSION=2.3.11
- SAVANNAH_USER=wl
- SOURCEFORGE_USER=wlemb
-
- #####################################################################
-
- GPG='/usr/bin/gpg --batch --no-tty'
-
- version=`echo $VERSION | sed "s/\\.//g"`
-
- FREETYPE_PACKAGES="freetype-$VERSION.tar.gz \
- freetype-$VERSION.tar.bz2 \
- ft$version.zip"
- FT2DEMOS_PACKAGES="ft2demos-$VERSION.tar.gz \
- ft2demos-$VERSION.tar.bz2 \
- ftdmo$version.zip"
- FTDOC_PACKAGES="freetype-doc-$VERSION.tar.gz \
- freetype-doc-$VERSION.tar.bz2 \
- ftdoc$version.zip"
-
- PACKAGE_LIST="$FREETYPE_PACKAGES \
- $FT2DEMOS_PACKAGES \
- $FTDOC_PACKAGES"
-
- set -e
- unset passphrase
-
- PATH=/empty echo -n "Enter GPG passphrase: "
- stty -echo
- read -r passphrase
- stty echo
- echo
-
- for f in $PACKAGE_LIST; do
- if test ! -f $f; then
- echo "$0: Cannot find \`$f'" 1>&2
- exit 1
- else
- :
- fi
- done
-
- for f in $PACKAGE_LIST; do
- echo "Signing $f..."
- rm -f $f.sig
- echo $passphrase | $GPG --passphrase-fd 0 -ba -o $f.sig $f
- done
-
- FREETYPE_SIGNATURES=
- for i in $FREETYPE_PACKAGES; do
- FREETYPE_SIGNATURES="$FREETYPE_SIGNATURES $i.sig"
- done
-
- FT2DEMOS_SIGNATURES=
- for i in $FT2DEMOS_PACKAGES; do
- FT2DEMOS_SIGNATURES="$FT2DEMOS_SIGNATURES $i.sig"
- done
-
- FTDOC_SIGNATURES=
- for i in $FTDOC_PACKAGES; do
- FTDOC_SIGNATURES="$FTDOC_SIGNATURES $i.sig"
- done
-
- SIGNATURE_LIST="$FREETYPE_SIGNATURES \
- $FT2DEMOS_SIGNATURES \
- $FTDOC_SIGNATURES"
-
- scp $PACKAGE_LIST $SIGNATURE_LIST \
- [email protected]:/releases/freetype/
-
- rsync -avP -e ssh $FREETYPE_PACKAGES $FREETYPE_SIGNATURES \
- $SOURCEFORGE_USER,[email protected]:/home/frs/project/f/fr/freetype/freetype2/$VERSION/
- rsync -avP -e ssh $FT2DEMOS_PACKAGES $FT2DEMOS_SIGNATURES \
- $SOURCEFORGE_USER,[email protected]:/home/frs/project/f/fr/freetype/freetype-demos/$VERSION/
- rsync -avP -e ssh $FTDOC_PACKAGES $FTDOC_SIGNATURES \
- $SOURCEFORGE_USER,[email protected]:/home/frs/project/f/fr/freetype/freetype-docs/$VERSION/
-
- # EOF
-
-. While files on savannah.gnu.org are automatically moved to the right
- directory, it must be done manually on SourceForge. Do that now.
-
-. Update the FreeType release notes on SourceForge.
-
-. Copy the reference files (generated by `make dist') to
-
- freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/freetype2/docs/reference
-
- and
-
- shell.sf.net:/home/groups/f/fr/freetype/htdocs/freetype2/docs/reference
-
- TODO: Create FreeType home page CVS on savannah.nongnu.org and
- update it accordingly.
-
- Write script to automatically do this.
-
- Mirror FreeType's savannah home page everywhere.
-
-. Update
-
- freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/index2.html
-
- and copy it to
-
- shell.sf.net:/home/groups/f/fr/freetype/htdocs/index2.html
-
-. Announce new release on [email protected] and to relevant
- newsgroups.
-
-----------------------------------------------------------------------
-
-Copyright 2003, 2005, 2006, 2007, 2009 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.
-
-
---- end of release ---
+How to prepare a new release +---------------------------- + +. include/freetype/freetype.h: Update FREETYPE_MAJOR, FREETYPE_MINOR, + and FREETYPE_PATCH. + +. Update version numbers in all files where necessary (for example, do + a grep for both `2.3.1' and `231' for release 2.3.1). + +. builds/unix/configure.raw: Update `version_info'. + +. docs/CHANGES: Document differences to last release. + +. README: Update. + +. docs/VERSION.DLL: Document changed `version_info'. + +. ChangeLog: Announce new release (both in the freetype2 and + freetype2-demos modules). + +. Clone the git archive to another directory with + + git clone -l -s . ../freetype2.test + + or something like this and run + + make distclean; make devel; make + make distclean; make devel; make multi + make distclean; make devel CC=g++; make CC=g++ + make distclean; make devel CC=g++; make multi CC=g++ + + sh autogen.sh + make distclean; ./configure; make + make distclean; ./configure CC=g++; make + + in the cloned repository to test compilation with both gcc and g++. + +. Test C++ compilation for freetype2-demos too (using `git clone' as + above). + +. Run src/tools/chktrcmp.py and check that there are no undefined + trace_XXXX macros. + +. Tag the git repositories (freetype2, freetype2-demos) with + + git tag VER-<version> -m "" -u <committer> + + and push the tags with + + git push --tags + + TODO: Tag the home page CVS on savannah.nongnu.org. + +. Say `make dist' in both the freetype2 and freetype2-demos modules + to generate the .tar.gz, .tar.bz2, and .zip files. + +. Create the doc bundles (freetype-doc-<version>.tar.gz, + freetype-doc-<version>.tar.bz2, ftdoc<version>.zip). This is + everything below + + freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/freetype2/docs/ + + except the `reference' subdirectory. Do *not* use option `-l' from + zip! + +. Run the following script (with updated `$VERSION', `$SAVANNAH_USER', + and $SOURCEFORGE_USER variables) to sign and upload the bundles to + both Savannah and SourceForge. The signing code has been taken from + the `gnupload' script (part of the automake bundle). + + #!/bin/sh + + VERSION=2.3.11 + SAVANNAH_USER=wl + SOURCEFORGE_USER=wlemb + + ##################################################################### + + GPG='/usr/bin/gpg --batch --no-tty' + + version=`echo $VERSION | sed "s/\\.//g"` + + FREETYPE_PACKAGES="freetype-$VERSION.tar.gz \ + freetype-$VERSION.tar.bz2 \ + ft$version.zip" + FT2DEMOS_PACKAGES="ft2demos-$VERSION.tar.gz \ + ft2demos-$VERSION.tar.bz2 \ + ftdmo$version.zip" + FTDOC_PACKAGES="freetype-doc-$VERSION.tar.gz \ + freetype-doc-$VERSION.tar.bz2 \ + ftdoc$version.zip" + + PACKAGE_LIST="$FREETYPE_PACKAGES \ + $FT2DEMOS_PACKAGES \ + $FTDOC_PACKAGES" + + set -e + unset passphrase + + PATH=/empty echo -n "Enter GPG passphrase: " + stty -echo + read -r passphrase + stty echo + echo + + for f in $PACKAGE_LIST; do + if test ! -f $f; then + echo "$0: Cannot find \`$f'" 1>&2 + exit 1 + else + : + fi + done + + for f in $PACKAGE_LIST; do + echo "Signing $f..." + rm -f $f.sig + echo $passphrase | $GPG --passphrase-fd 0 -ba -o $f.sig $f + done + + FREETYPE_SIGNATURES= + for i in $FREETYPE_PACKAGES; do + FREETYPE_SIGNATURES="$FREETYPE_SIGNATURES $i.sig" + done + + FT2DEMOS_SIGNATURES= + for i in $FT2DEMOS_PACKAGES; do + FT2DEMOS_SIGNATURES="$FT2DEMOS_SIGNATURES $i.sig" + done + + FTDOC_SIGNATURES= + for i in $FTDOC_PACKAGES; do + FTDOC_SIGNATURES="$FTDOC_SIGNATURES $i.sig" + done + + SIGNATURE_LIST="$FREETYPE_SIGNATURES \ + $FT2DEMOS_SIGNATURES \ + $FTDOC_SIGNATURES" + + scp $PACKAGE_LIST $SIGNATURE_LIST \ + [email protected]:/releases/freetype/ + + rsync -avP -e ssh $FREETYPE_PACKAGES $FREETYPE_SIGNATURES \ + $SOURCEFORGE_USER,[email protected]:/home/frs/project/f/fr/freetype/freetype2/$VERSION/ + rsync -avP -e ssh $FT2DEMOS_PACKAGES $FT2DEMOS_SIGNATURES \ + $SOURCEFORGE_USER,[email protected]:/home/frs/project/f/fr/freetype/freetype-demos/$VERSION/ + rsync -avP -e ssh $FTDOC_PACKAGES $FTDOC_SIGNATURES \ + $SOURCEFORGE_USER,[email protected]:/home/frs/project/f/fr/freetype/freetype-docs/$VERSION/ + + # EOF + +. While files on savannah.gnu.org are automatically moved to the right + directory, it must be done manually on SourceForge. Do that now. + +. Update the FreeType release notes on SourceForge. + +. Copy the reference files (generated by `make dist') to + + freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/freetype2/docs/reference + + and + + shell.sf.net:/home/groups/f/fr/freetype/htdocs/freetype2/docs/reference + + TODO: Create FreeType home page CVS on savannah.nongnu.org and + update it accordingly. + + Write script to automatically do this. + + Mirror FreeType's savannah home page everywhere. + +. Update + + freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/index2.html + + and copy it to + + shell.sf.net:/home/groups/f/fr/freetype/htdocs/index2.html + +. Announce new release on [email protected] and to relevant + newsgroups. + +---------------------------------------------------------------------- + +Copyright 2003, 2005, 2006, 2007, 2009 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. + + +--- end of release --- diff --git a/components/external/freetype/modules.cfg b/components/external/freetype/modules.cfg index 5d12b63ab9..4047d7f09c 100644 --- a/components/external/freetype/modules.cfg +++ b/components/external/freetype/modules.cfg @@ -1,250 +1,250 @@ -# modules.cfg
-#
-# Copyright 2005, 2006, 2007, 2009 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.
-#
-#
-# In case you compile the FreeType library with GNU make or makepp, this
-# file controls which components are built into the library. Otherwise,
-# please read this file for information on the various modules and its
-# dependencies, then follow the instructions in the file `docs/INSTALL.ANY'.
-#
-# To deactivate a module, simply comment out the corresponding line. To
-# activate a module, remove the comment character.
-#
-# Note that many modules and components are further controlled with macros
-# in the file `include/freetype/config/ftoption.h'.
-
-
-####
-#### font modules -- at least one is required
-####
-#### The order given here (from top to down) is the order used for testing
-#### font formats in the compiled library.
-####
-
-# TrueType font driver.
-#
-# This driver needs the `sfnt' module.
-FONT_MODULES += truetype
-
-# PostScript Type 1 font driver.
-#
-# This driver needs the `psaux', `pshinter', and `psnames' modules.
-FONT_MODULES += type1
-
-# CFF/OpenType font driver.
-#
-# This driver needs the `sfnt', `pshinter', and `psnames' modules.
-FONT_MODULES += cff
-
-# Type 1 CID-keyed font driver.
-#
-# This driver needs the `psaux', `pshinter', and `psnames' modules.
-FONT_MODULES += cid
-
-# PFR/TrueDoc font driver. See optional extension ftpfr.c below also.
-FONT_MODULES += pfr
-
-# PostScript Type 42 font driver.
-#
-# This driver needs the `truetype' module.
-FONT_MODULES += type42
-
-# Windows FONT/FNT font driver. See optional extension ftwinfnt.c below
-# also.
-FONT_MODULES += winfonts
-
-# PCF font driver.
-FONT_MODULES += pcf
-
-# BDF font driver. See optional extension ftbdf.c below also.
-FONT_MODULES += bdf
-
-# SFNT files support. If used without `truetype' or `cff', it supports
-# bitmap-only fonts within an SFNT wrapper.
-#
-# This driver needs the `psnames' module.
-FONT_MODULES += sfnt
-
-
-####
-#### hinting modules
-####
-
-# FreeType's auto hinter.
-HINTING_MODULES += autofit
-
-# PostScript hinter.
-HINTING_MODULES += pshinter
-
-# The TrueType hinting engine doesn't have a module of its own but is
-# controlled in file include/freetype/config/ftoption.h
-# (TT_CONFIG_OPTION_BYTECODE_INTERPRETER and friends).
-
-
-####
-#### raster modules -- at least one is required for vector font formats
-####
-
-# Monochrome rasterizer.
-RASTER_MODULES += raster
-
-# Anti-aliasing rasterizer.
-RASTER_MODULES += smooth
-
-
-####
-#### auxiliary modules
-####
-
-# FreeType's cache sub-system (quite stable but still in beta -- this means
-# that its public API is subject to change if necessary). See
-# include/freetype/ftcache.h. Needs ftglyph.c.
-AUX_MODULES += cache
-
-# TrueType GX/AAT table validation. Needs ftgxval.c below.
-# AUX_MODULES += gxvalid
-
-# Support for streams compressed with gzip (files with suffix .gz).
-#
-# See include/freetype/ftgzip.h for the API.
-AUX_MODULES += gzip
-
-# Support for streams compressed with LZW (files with suffix .Z).
-#
-# See include/freetype/ftlzw.h for the API.
-AUX_MODULES += lzw
-
-# OpenType table validation. Needs ftotval.c below.
-#
-# AUX_MODULES += otvalid
-
-# Auxiliary PostScript driver component to share common code.
-#
-# This module depends on `psnames'.
-AUX_MODULES += psaux
-
-# Support for PostScript glyph names.
-#
-# This module can be controlled in ftconfig.h
-# (FT_CONFIG_OPTION_POSTSCRIPT_NAMES).
-AUX_MODULES += psnames
-
-
-####
-#### base module extensions
-####
-
-# Exact bounding box calculation.
-#
-# See include/freetype/ftbbox.h for the API.
-BASE_EXTENSIONS += ftbbox.c
-
-# Access BDF-specific strings. Needs BDF font driver.
-#
-# See include/freetype/ftbdf.h for the API.
-BASE_EXTENSIONS += ftbdf.c
-
-# Utility functions for converting 1bpp, 2bpp, 4bpp, and 8bpp bitmaps into
-# 8bpp format, and for emboldening of bitmap glyphs.
-#
-# See include/freetype/ftbitmap.h for the API.
-BASE_EXTENSIONS += ftbitmap.c
-
-# Access CID font information.
-#
-# See include/freetype/ftcid.h for the API.
-BASE_EXTENSIONS += ftcid.c
-
-# Access FSType information. Needs fttype1.c.
-#
-# See include/freetype/freetype.h for the API.
-BASE_EXTENSIONS += ftfstype.c
-
-# Support for GASP table queries.
-#
-# See include/freetype/ftgasp.h for the API.
-BASE_EXTENSIONS += ftgasp.c
-
-# Convenience functions to handle glyphs. Needs ftbitmap.c.
-#
-# See include/freetype/ftglyph.h for the API.
-BASE_EXTENSIONS += ftglyph.c
-
-# Interface for gxvalid module.
-#
-# See include/freetype/ftgxval.h for the API.
-BASE_EXTENSIONS += ftgxval.c
-
-# Support for LCD color filtering of subpixel bitmaps.
-#
-# See include/freetype/ftlcdfil.h for the API.
-BASE_EXTENSIONS += ftlcdfil.c
-
-# Multiple Master font interface.
-#
-# See include/freetype/ftmm.h for the API.
-BASE_EXTENSIONS += ftmm.c
-
-# Interface for otvalid module.
-#
-# See include/freetype/ftotval.h for the API.
-BASE_EXTENSIONS += ftotval.c
-
-# Support for FT_Face_CheckTrueTypePatents.
-#
-# See include/freetype/freetype.h for the API.
-BASE_EXTENSIONS += ftpatent.c
-
-# Interface for accessing PFR-specific data. Needs PFR font driver.
-#
-# See include/freetype/ftpfr.h for the API.
-BASE_EXTENSIONS += ftpfr.c
-
-# Path stroker. Needs ftglyph.c.
-#
-# See include/freetype/ftstroke.h for the API.
-BASE_EXTENSIONS += ftstroke.c
-
-# Support for synthetic embolding and slanting of fonts. Needs ftbitmap.c.
-#
-# See include/freetype/ftsynth.h for the API.
-BASE_EXTENSIONS += ftsynth.c
-
-# Interface to access data specific to PostScript Type 1 and Type 2 (CFF)
-# fonts.
-#
-# See include/freetype/t1tables.h for the API.
-BASE_EXTENSIONS += fttype1.c
-
-# Interface for accessing data specific to Windows FNT files. Needs winfnt
-# driver.
-#
-# See include/freetype/ftwinfnt.h for the API.
-BASE_EXTENSIONS += ftwinfnt.c
-
-# Support functions for X11.
-#
-# See include/freetype/ftxf86.h for the API.
-BASE_EXTENSIONS += ftxf86.c
-
-####
-#### The components `ftsystem.c' (for memory allocation and stream I/O
-#### management) and `ftdebug.c' (for emitting debug messages to the user)
-#### are controlled with the following variables.
-####
-#### ftsystem.c: $(FTSYS_SRC)
-#### ftdebug.c: $(FTDEBUG_SRC)
-####
-#### Please refer to docs/CUSTOMIZE for details.
-####
-
-
-# EOF
+# modules.cfg +# +# Copyright 2005, 2006, 2007, 2009 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. +# +# +# In case you compile the FreeType library with GNU make or makepp, this +# file controls which components are built into the library. Otherwise, +# please read this file for information on the various modules and its +# dependencies, then follow the instructions in the file `docs/INSTALL.ANY'. +# +# To deactivate a module, simply comment out the corresponding line. To +# activate a module, remove the comment character. +# +# Note that many modules and components are further controlled with macros +# in the file `include/freetype/config/ftoption.h'. + + +#### +#### font modules -- at least one is required +#### +#### The order given here (from top to down) is the order used for testing +#### font formats in the compiled library. +#### + +# TrueType font driver. +# +# This driver needs the `sfnt' module. +FONT_MODULES += truetype + +# PostScript Type 1 font driver. +# +# This driver needs the `psaux', `pshinter', and `psnames' modules. +FONT_MODULES += type1 + +# CFF/OpenType font driver. +# +# This driver needs the `sfnt', `pshinter', and `psnames' modules. +FONT_MODULES += cff + +# Type 1 CID-keyed font driver. +# +# This driver needs the `psaux', `pshinter', and `psnames' modules. +FONT_MODULES += cid + +# PFR/TrueDoc font driver. See optional extension ftpfr.c below also. +FONT_MODULES += pfr + +# PostScript Type 42 font driver. +# +# This driver needs the `truetype' module. +FONT_MODULES += type42 + +# Windows FONT/FNT font driver. See optional extension ftwinfnt.c below +# also. +FONT_MODULES += winfonts + +# PCF font driver. +FONT_MODULES += pcf + +# BDF font driver. See optional extension ftbdf.c below also. +FONT_MODULES += bdf + +# SFNT files support. If used without `truetype' or `cff', it supports +# bitmap-only fonts within an SFNT wrapper. +# +# This driver needs the `psnames' module. +FONT_MODULES += sfnt + + +#### +#### hinting modules +#### + +# FreeType's auto hinter. +HINTING_MODULES += autofit + +# PostScript hinter. +HINTING_MODULES += pshinter + +# The TrueType hinting engine doesn't have a module of its own but is +# controlled in file include/freetype/config/ftoption.h +# (TT_CONFIG_OPTION_BYTECODE_INTERPRETER and friends). + + +#### +#### raster modules -- at least one is required for vector font formats +#### + +# Monochrome rasterizer. +RASTER_MODULES += raster + +# Anti-aliasing rasterizer. +RASTER_MODULES += smooth + + +#### +#### auxiliary modules +#### + +# FreeType's cache sub-system (quite stable but still in beta -- this means +# that its public API is subject to change if necessary). See +# include/freetype/ftcache.h. Needs ftglyph.c. +AUX_MODULES += cache + +# TrueType GX/AAT table validation. Needs ftgxval.c below. +# AUX_MODULES += gxvalid + +# Support for streams compressed with gzip (files with suffix .gz). +# +# See include/freetype/ftgzip.h for the API. +AUX_MODULES += gzip + +# Support for streams compressed with LZW (files with suffix .Z). +# +# See include/freetype/ftlzw.h for the API. +AUX_MODULES += lzw + +# OpenType table validation. Needs ftotval.c below. +# +# AUX_MODULES += otvalid + +# Auxiliary PostScript driver component to share common code. +# +# This module depends on `psnames'. +AUX_MODULES += psaux + +# Support for PostScript glyph names. +# +# This module can be controlled in ftconfig.h +# (FT_CONFIG_OPTION_POSTSCRIPT_NAMES). +AUX_MODULES += psnames + + +#### +#### base module extensions +#### + +# Exact bounding box calculation. +# +# See include/freetype/ftbbox.h for the API. +BASE_EXTENSIONS += ftbbox.c + +# Access BDF-specific strings. Needs BDF font driver. +# +# See include/freetype/ftbdf.h for the API. +BASE_EXTENSIONS += ftbdf.c + +# Utility functions for converting 1bpp, 2bpp, 4bpp, and 8bpp bitmaps into +# 8bpp format, and for emboldening of bitmap glyphs. +# +# See include/freetype/ftbitmap.h for the API. +BASE_EXTENSIONS += ftbitmap.c + +# Access CID font information. +# +# See include/freetype/ftcid.h for the API. +BASE_EXTENSIONS += ftcid.c + +# Access FSType information. Needs fttype1.c. +# +# See include/freetype/freetype.h for the API. +BASE_EXTENSIONS += ftfstype.c + +# Support for GASP table queries. +# +# See include/freetype/ftgasp.h for the API. +BASE_EXTENSIONS += ftgasp.c + +# Convenience functions to handle glyphs. Needs ftbitmap.c. +# +# See include/freetype/ftglyph.h for the API. +BASE_EXTENSIONS += ftglyph.c + +# Interface for gxvalid module. +# +# See include/freetype/ftgxval.h for the API. +BASE_EXTENSIONS += ftgxval.c + +# Support for LCD color filtering of subpixel bitmaps. +# +# See include/freetype/ftlcdfil.h for the API. +BASE_EXTENSIONS += ftlcdfil.c + +# Multiple Master font interface. +# +# See include/freetype/ftmm.h for the API. +BASE_EXTENSIONS += ftmm.c + +# Interface for otvalid module. +# +# See include/freetype/ftotval.h for the API. +BASE_EXTENSIONS += ftotval.c + +# Support for FT_Face_CheckTrueTypePatents. +# +# See include/freetype/freetype.h for the API. +BASE_EXTENSIONS += ftpatent.c + +# Interface for accessing PFR-specific data. Needs PFR font driver. +# +# See include/freetype/ftpfr.h for the API. +BASE_EXTENSIONS += ftpfr.c + +# Path stroker. Needs ftglyph.c. +# +# See include/freetype/ftstroke.h for the API. +BASE_EXTENSIONS += ftstroke.c + +# Support for synthetic embolding and slanting of fonts. Needs ftbitmap.c. +# +# See include/freetype/ftsynth.h for the API. +BASE_EXTENSIONS += ftsynth.c + +# Interface to access data specific to PostScript Type 1 and Type 2 (CFF) +# fonts. +# +# See include/freetype/t1tables.h for the API. +BASE_EXTENSIONS += fttype1.c + +# Interface for accessing data specific to Windows FNT files. Needs winfnt +# driver. +# +# See include/freetype/ftwinfnt.h for the API. +BASE_EXTENSIONS += ftwinfnt.c + +# Support functions for X11. +# +# See include/freetype/ftxf86.h for the API. +BASE_EXTENSIONS += ftxf86.c + +#### +#### The components `ftsystem.c' (for memory allocation and stream I/O +#### management) and `ftdebug.c' (for emitting debug messages to the user) +#### are controlled with the following variables. +#### +#### ftsystem.c: $(FTSYS_SRC) +#### ftdebug.c: $(FTDEBUG_SRC) +#### +#### Please refer to docs/CUSTOMIZE for details. +#### + + +# EOF diff --git a/components/external/freetype/objs/.gitignore b/components/external/freetype/objs/.gitignore index 033a11ce3f..ad264ce152 100644 --- a/components/external/freetype/objs/.gitignore +++ b/components/external/freetype/objs/.gitignore @@ -1,9 +1,9 @@ -apinames
-freetype.def
-freetype.lib
-ftexport.sym
-ftmodule.h
-ftoption.h
-libfreetype.la
-.libs
-*.lo
+apinames +freetype.def +freetype.lib +ftexport.sym +ftmodule.h +ftoption.h +libfreetype.la +.libs +*.lo diff --git a/components/external/freetype/objs/README b/components/external/freetype/objs/README index 9ebddde71b..befb63e049 100644 --- a/components/external/freetype/objs/README +++ b/components/external/freetype/objs/README @@ -1,2 +1,2 @@ -This directory contains all the object files created when building the
-library.
+This directory contains all the object files created when building the +library. diff --git a/components/external/freetype/src/bdf/README b/components/external/freetype/src/bdf/README index 837a60fe7c..e3f2ae3861 100644 --- a/components/external/freetype/src/bdf/README +++ b/components/external/freetype/src/bdf/README @@ -1,148 +1,148 @@ - FreeType font driver for BDF fonts
-
- Francesco Zappa Nardelli
-
-
-Introduction
-************
-
-BDF (Bitmap Distribution Format) is a bitmap font format defined by Adobe,
-which is intended to be easily understood by both humans and computers.
-This code implements a BDF driver for the FreeType library, following the
-Adobe Specification V 2.2. The specification of the BDF font format is
-available from Adobe's web site:
-
- http://partners.adobe.com/asn/developer/PDFS/TN/5005.BDF_Spec.pdf
-
-Many good bitmap fonts in bdf format come with XFree86 (www.XFree86.org).
-They do not define vertical metrics, because the X Consortium BDF
-specification has removed them.
-
-
-Encodings
-*********
-
-The variety of encodings that accompanies bdf fonts appears to encompass the
-small set defined in freetype.h. On the other hand, two properties that
-specify encoding and registry are usually defined in bdf fonts.
-
-I decided to make these two properties directly accessible, leaving to the
-client application the work of interpreting them. For instance:
-
-
- #include FT_INTERNAL_BDF_TYPES_H
-
- FT_Face face;
- BDF_Public_Face bdfface;
-
-
- FT_New_Face( library, ..., &face );
-
- bdfface = (BDF_Public_Face)face;
-
- if ( ( bdfface->charset_registry == "ISO10646" ) &&
- ( bdfface->charset_encoding == "1" ) )
- [..]
-
-
-Thus the driver always exports `ft_encoding_none' as face->charmap.encoding.
-FT_Get_Char_Index's behavior is unmodified, that is, it converts the ULong
-value given as argument into the corresponding glyph number.
-
-If the two properties are not available, Adobe Standard Encoding should be
-assumed.
-
-
-Anti-Aliased Bitmaps
-********************
-
-The driver supports an extension to the BDF format as used in Mark Leisher's
-xmbdfed bitmap font editor. Microsoft's SBIT tool expects bitmap fonts in
-that format for adding anti-aliased them to TrueType fonts. It introduces a
-fourth field to the `SIZE' keyword which gives the bpp value (bits per
-pixel) of the glyph data in the font. Possible values are 1 (the default),
-2 (four gray levels), 4 (16 gray levels), and 8 (256 gray levels). The
-driver returns either a bitmap with 1 bit per pixel or a pixmap with 8bits
-per pixel (using 4, 16, and 256 gray levels, respectively).
-
-
-Known problems
-**************
-
-- A font is entirely loaded into memory. Obviously, this is not the Right
- Thing(TM). If you have big fonts I suggest you convert them into PCF
- format (using the bdftopcf utility): the PCF font drive of FreeType can
- perform incremental glyph loading.
-
-When I have some time, I will implement on-demand glyph parsing.
-
-- Except for encodings properties, client applications have no visibility of
- the PCF_Face object. This means that applications cannot directly access
- font tables and must trust FreeType.
-
-- Currently, glyph names are ignored.
-
- I plan to give full visibility of the BDF_Face object in an upcoming
- revision of the driver, thus implementing also glyph names.
-
-- As I have never seen a BDF font that defines vertical metrics, vertical
- metrics are (parsed and) discarded. If you own a BDF font that defines
- vertical metrics, please let me know (I will implement them in 5-10
- minutes).
-
-
-License
-*******
-
-Copyright (C) 2001-2002 by Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*** Portions of the driver (that is, bdflib.c and bdf.h):
-
-Copyright 2000 Computing Research Labs, New Mexico State University
-Copyright 2001-2002 Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
-OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-Credits
-*******
-
-This driver is based on excellent Mark Leisher's bdf library. If you
-find something good in this driver you should probably thank him, not
-me.
+ FreeType font driver for BDF fonts + + Francesco Zappa Nardelli + + +Introduction +************ + +BDF (Bitmap Distribution Format) is a bitmap font format defined by Adobe, +which is intended to be easily understood by both humans and computers. +This code implements a BDF driver for the FreeType library, following the +Adobe Specification V 2.2. The specification of the BDF font format is +available from Adobe's web site: + + http://partners.adobe.com/asn/developer/PDFS/TN/5005.BDF_Spec.pdf + +Many good bitmap fonts in bdf format come with XFree86 (www.XFree86.org). +They do not define vertical metrics, because the X Consortium BDF +specification has removed them. + + +Encodings +********* + +The variety of encodings that accompanies bdf fonts appears to encompass the +small set defined in freetype.h. On the other hand, two properties that +specify encoding and registry are usually defined in bdf fonts. + +I decided to make these two properties directly accessible, leaving to the +client application the work of interpreting them. For instance: + + + #include FT_INTERNAL_BDF_TYPES_H + + FT_Face face; + BDF_Public_Face bdfface; + + + FT_New_Face( library, ..., &face ); + + bdfface = (BDF_Public_Face)face; + + if ( ( bdfface->charset_registry == "ISO10646" ) && + ( bdfface->charset_encoding == "1" ) ) + [..] + + +Thus the driver always exports `ft_encoding_none' as face->charmap.encoding. +FT_Get_Char_Index's behavior is unmodified, that is, it converts the ULong +value given as argument into the corresponding glyph number. + +If the two properties are not available, Adobe Standard Encoding should be +assumed. + + +Anti-Aliased Bitmaps +******************** + +The driver supports an extension to the BDF format as used in Mark Leisher's +xmbdfed bitmap font editor. Microsoft's SBIT tool expects bitmap fonts in +that format for adding anti-aliased them to TrueType fonts. It introduces a +fourth field to the `SIZE' keyword which gives the bpp value (bits per +pixel) of the glyph data in the font. Possible values are 1 (the default), +2 (four gray levels), 4 (16 gray levels), and 8 (256 gray levels). The +driver returns either a bitmap with 1 bit per pixel or a pixmap with 8bits +per pixel (using 4, 16, and 256 gray levels, respectively). + + +Known problems +************** + +- A font is entirely loaded into memory. Obviously, this is not the Right + Thing(TM). If you have big fonts I suggest you convert them into PCF + format (using the bdftopcf utility): the PCF font drive of FreeType can + perform incremental glyph loading. + +When I have some time, I will implement on-demand glyph parsing. + +- Except for encodings properties, client applications have no visibility of + the PCF_Face object. This means that applications cannot directly access + font tables and must trust FreeType. + +- Currently, glyph names are ignored. + + I plan to give full visibility of the BDF_Face object in an upcoming + revision of the driver, thus implementing also glyph names. + +- As I have never seen a BDF font that defines vertical metrics, vertical + metrics are (parsed and) discarded. If you own a BDF font that defines + vertical metrics, please let me know (I will implement them in 5-10 + minutes). + + +License +******* + +Copyright (C) 2001-2002 by Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +*** Portions of the driver (that is, bdflib.c and bdf.h): + +Copyright 2000 Computing Research Labs, New Mexico State University +Copyright 2001-2002 Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Credits +******* + +This driver is based on excellent Mark Leisher's bdf library. If you +find something good in this driver you should probably thank him, not +me. diff --git a/components/external/freetype/src/gxvalid/README b/components/external/freetype/src/gxvalid/README index 1e24d99b85..28e535b0bc 100644 --- a/components/external/freetype/src/gxvalid/README +++ b/components/external/freetype/src/gxvalid/README @@ -1,532 +1,532 @@ -gxvalid: TrueType GX validator
-==============================
-
-
-1. What is this
----------------
-
- `gxvalid' is a module to validate TrueType GX tables: a collection of
- additional tables in TrueType font which are used by `QuickDraw GX
- Text', Apple Advanced Typography (AAT). In addition, gxvalid can
- validates `kern' tables which have been extended for AAT. Like the
- otvalid module, gxvalid uses Freetype 2's validator framework
- (ftvalid).
-
- You can link gxvalid with your program; before running your own layout
- engine, gxvalid validates a font file. As the result, you can remove
- error-checking code from the layout engine. It is also possible to
- use gxvalid as a stand-alone font validator; the `ftvalid' test
- program included in the ft2demo bundle calls gxvalid internally.
- A stand-alone font validator may be useful for font developers.
-
- This documents documents the following issues.
-
- - supported TrueType GX tables
- - fundamental validation limitations
- - permissive error handling of broken GX tables
- - `kern' table issue.
-
-
-2. Supported tables
--------------------
-
- The following GX tables are currently supported.
-
- bsln
- feat
- just
- kern(*)
- lcar
- mort
- morx
- opbd
- prop
- trak
-
- The following GX tables are currently unsupported.
-
- cvar
- fdsc
- fmtx
- fvar
- gvar
- Zapf
-
- The following GX tables won't be supported.
-
- acnt(**)
- hsty(***)
-
- The following undocumented tables in TrueType fonts designed for Apple
- platform aren't handled either.
-
- addg
- CVTM
- TPNM
- umif
-
-
- *) The `kern' validator handles both the classic and the new kern
- formats; the former is supported on both Microsoft and Apple
- platforms, while the latter is supported on Apple platforms.
-
- **) `acnt' tables are not supported by currently available Apple font
- tools.
-
- ***) There is one more Apple extension, `hsty', but it is for
- Newton-OS, not GX (Newton-OS is a platform by Apple, but it can
- use sfnt- housed bitmap fonts only). Therefore, it should be
- excluded from `Apple platform' in the context of TrueType.
- gxvalid ignores it as Apple font tools do so.
-
-
- We have checked 183 fonts bundled with MacOS 9.1, MacOS 9.2, MacOS
- 10.0, MacOS X 10.1, MSIE for MacOS, and AppleWorks 6.0. In addition,
- we have checked 67 Dynalab fonts (designed for MacOS) and 189 Ricoh
- fonts (designed for Windows and MacOS dual platforms). The number of
- fonts including TrueType GX tables are as follows.
-
- bsln: 76
- feat: 191
- just: 84
- kern: 59
- lcar: 4
- mort: 326
- morx: 19
- opbd: 4
- prop: 114
- trak: 16
-
- Dynalab and Ricoh fonts don't have GX tables except of `feat' and
- `mort'.
-
-
-3. Fundamental validation limitations
--------------------------------------
-
- TrueType GX provides layout information to libraries for font
- rasterizers and text layout. gxvalid can check whether the layout
- data in a font is conformant to the TrueType GX format specified by
- Apple. But gxvalid cannot check a how QuickDraw GX/AAT renderer uses
- the stored information.
-
- 3-1. Validation of State Machine activity
- -----------------------------------------
-
- QuickDraw GX/AAT uses a `State Machine' to provide `stateful' layout
- features, and TrueType GX stores the state transition diagram of
- this `State Machine' in a `StateTable' data structure. While the
- State Machine receives a series of glyph IDs, the State Machine
- starts with `start of text' state, walks around various states and
- generates various layout information to the renderer, and finally
- reaches the `end of text' state.
-
- gxvalid can check essential errors like:
-
- - possibility of state transitions to undefined states
- - existence of glyph IDs that the State Machine doesn't know how
- to handle
- - the State Machine cannot compute the layout information from
- given diagram
-
- These errors can be checked within finite steps, and without the
- State Machine itself, because these are `expression' errors of state
- transition diagram.
-
- There is no limitation about how long the State Machine walks
- around, so validation of the algorithm in the state transition
- diagram requires infinite steps, even if we had a State Machine in
- gxvalid. Therefore, the following errors and problems cannot be
- checked.
-
- - existence of states which the State Machine never transits to
- - the possibility that the State Machine never reaches `end of
- text'
- - the possibility of stack underflow/overflow in the State Machine
- (in ligature and contextual glyph substitutions, the State
- Machine can store 16 glyphs onto its stack)
-
- In addition, gxvalid doesn't check `temporary glyph IDs' used in the
- chained State Machines (in `mort' and `morx' tables). If a layout
- feature is implemented by a single State Machine, a glyph ID
- converted by the State Machine is passed to the glyph renderer, thus
- it should not point to an undefined glyph ID. But if a layout
- feature is implemented by chained State Machines, a component State
- Machine (if it is not the final one) is permitted to generate
- undefined glyph IDs for temporary use, because it is handled by next
- component State Machine and not by the glyph renderer. To validate
- such temporary glyph IDs, gxvalid must stack all undefined glyph IDs
- which can occur in the output of the previous State Machine and
- search them in the `ClassTable' structure of the current State
- Machine. It is too complex to list all possible glyph IDs from the
- StateTable, especially from a ligature substitution table.
-
- 3-2. Validation of relationship between multiple layout features
- ----------------------------------------------------------------
-
- gxvalid does not validate the relationship between multiple layout
- features at all.
-
- If multiple layout features are defined in TrueType GX tables,
- possible interactions, overrides, and conflicts between layout
- features are implicitly given in the font too. For example, there
- are several predefined spacing control features:
-
- - Text Spacing (Proportional/Monospace/Half-width/Normal)
- - Number Spacing (Monospaced-numbers/Proportional-numbers)
- - Kana Spacing (Full-width/Proportional)
- - Ideographic Spacing (Full-width/Proportional)
- - CJK Roman Spacing (Half-width/Proportional/Default-roman
- /Full-width-roman/Proportional)
-
- If all layout features are independently managed, we can activate
- inconsistent typographic rules like `Text Spacing=Monospace' and
- `Ideographic Spacing=Proportional' at the same time.
-
- The combinations of layout features is managed by a 32bit integer
- (one bit each for selector setting), so we can define relationships
- between up to 32 features, theoretically. But if one feature
- setting affects another feature setting, we need typographic
- priority rules to validate the relationship. Unfortunately, the
- TrueType GX format specification does not give such information even
- for predefined features.
-
-
-4. Permissive error handling of broken GX tables
-------------------------------------------------
-
- When Apple's font rendering system finds an inconsistency, like a
- specification violation or an unspecified value in a TrueType GX
- table, it does not always return error. In most cases, the rendering
- engine silently ignores such wrong values or even whole tables. In
- fact, MacOS is shipped with fonts including broken GX/AAT tables, but
- no harmful effects due to `officially broken' fonts are observed by
- end-users.
-
- gxvalid is designed to continue the validation process as long as
- possible. When gxvalid find wrong values, gxvalid warns it at least,
- and takes a fallback procedure if possible. The fallback procedure
- depends on the debug level.
-
- We used the following three tools to investigate Apple's error handling.
-
- - FontValidator (for MacOS 8.5 - 9.2) resource fork font
- - ftxvalidator (for MacOS X 10.1 -) dfont or naked-sfnt
- - ftxdumperfuser (for MacOS X 10.1 -) dfont or naked-sfnt
-
- However, all tests were done on a PowerPC based Macintosh; at present,
- we have not checked those tools on a m68k-based Macintosh.
-
- In total, we checked 183 fonts bundled to MacOS 9.1, MacOS 9.2, MacOS
- 10.0, MacOS X 10.1, MSIE for MacOS, and AppleWorks 6.0. These fonts
- are distributed officially, but many broken GX/AAT tables were found
- by Apple's font tools. In the following, we list typical violation of
- the GX specification, in fonts officially distributed with those Apple
- systems.
-
- 4-1. broken BinSrchHeader (19/183)
- ----------------------------------
-
- `BinSrchHeader' is a header of a data array for m68k platforms to
- access memory efficiently. Although there are only two independent
- parameters for real (`unitSize' and `nUnits'), BinSrchHeader has
- three additional parameters which can be calculated from `unitSize'
- and `nUnits', for fast setup. Apple font tools ignore them
- silently, so gxvalid warns if it finds and inconsistency, and always
- continues validation. The additional parameters are ignored
- regardless of the consistency.
-
- 19 fonts include such inconsistencies; all breaks are in the
- BinSrchHeader structure of the `kern' table.
-
- 4-2. too-short LookupTable (5/183)
- ----------------------------------
-
- LookupTable format 0 is a simple array to get a value from a given
- GID (glyph ID); the index of this array is a GID too. Therefore,
- the length of the array is expected to be same as the maximum GID
- value defined in the `maxp' table, but there are some fonts whose
- LookupTable format 0 is too short to cover all GIDs. FontValidator
- ignores this error silently, ftxvalidator and ftxdumperfuser both
- warn and continue. Similar problems are found in format 3 subtables
- of `kern'. gxvalid warns always and abort if the validation level
- is set to FT_VALIDATE_PARANOID.
-
- 5 fonts include too-short kern format 0 subtables.
- 1 font includes too-short kern format 3 subtable.
-
- 4-3. broken LookupTable format 2 (1/183)
- ----------------------------------------
-
- LookupTable format 2, subformat 4 covers the GID space by a
- collection of segments which are specified by `firstGlyph' and
- `lastGlyph'. Some fonts store `firstGlyph' and `lastGlyph' in
- reverse order, so the segment specification is broken. Apple font
- tools ignore this error silently; a broken segment is ignored as if
- it did not exist. gxvalid warns and normalize the segment at
- FT_VALIDATE_DEFAULT, or ignore the segment at FT_VALIDATE_TIGHT, or
- abort at FT_VALIDATE_PARANOID.
-
- 1 font includes broken LookupTable format 2, in the `just' table.
-
- *) It seems that all fonts manufactured by ITC for AppleWorks have
- this error.
-
- 4-4. bad bracketing in glyph property (14/183)
- ----------------------------------------------
-
- GX/AAT defines a `bracketing' property of the glyphs in the `prop'
- table, to control layout features of strings enclosed inside and
- outside of brackets. Some fonts give inappropriate bracket
- properties to glyphs. Apple font tools warn about this error;
- gxvalid warns too and aborts at FT_VALIDATE_PARANOID.
-
- 14 fonts include wrong bracket properties.
-
-
- 4-5. invalid feature number (117/183)
- -------------------------------------
-
- The GX/AAT extension can include 255 different layout features, but
- popular layout features are predefined (see
- http://developer.apple.com/fonts/Registry/index.html). Some fonts
- include feature numbers which are incompatible with the predefined
- feature registry.
-
- In our survey, there are 140 fonts including `feat' table.
-
- a) 67 fonts use a feature number which should not be used.
- b) 117 fonts set the wrong feature range (nSetting). This is mostly
- found in the `mort' and `morx' tables.
-
- Apple font tools give no warning, although they cannot recognize
- what the feature is. At FT_VALIDATE_DEFAULT, gxvalid warns but
- continues in both cases (a, b). At FT_VALIDATE_TIGHT, gxvalid warns
- and aborts for (a), but continues for (b). At FT_VALIDATE_PARANOID,
- gxvalid warns and aborts in both cases (a, b).
-
- 4-6. invalid prop version (10/183)
- ----------------------------------
-
- As most TrueType GX tables, the `prop' table must start with a 32bit
- version identifier: 0x00010000, 0x00020000 or 0x00030000. But some
- fonts store nonsense binary data instead. When Apple font tools
- find them, they abort the processing immediately, and the data which
- follows is unhandled. gxvalid does the same.
-
- 10 fonts include broken `prop' version.
-
- All of these fonts are classic TrueType fonts for the Japanese
- script, manufactured by Apple.
-
- 4-7. unknown resource name (2/183)
- ------------------------------------
-
- NOTE: THIS IS NOT A TRUETYPE GX ERROR.
-
- If a TrueType font is stored in the resource fork or in dfont
- format, the data must be tagged as `sfnt' in the resource fork index
- to invoke TrueType font handler for the data. But the TrueType font
- data in `Keyboard.dfont' is tagged as `kbd', and that in
- `LastResort.dfont' is tagged as `lst'. Apple font tools can detect
- that the data is in TrueType format and successfully validate them.
- Maybe this is possible because they are known to be dfont. The
- current implementation of the resource fork driver of FreeType
- cannot do that, thus gxvalid cannot validate them.
-
- 2 fonts use an unknown tag for the TrueType font resource.
-
-5. `kern' table issues
-----------------------
-
- In common terminology of TrueType, `kern' is classified as a basic and
- platform-independent table. But there are Apple extensions of `kern',
- and there is an extension which requires a GX state machine for
- contextual kerning. Therefore, gxvalid includes a special validator
- for `kern' tables. Unfortunately, there is no exact algorithm to
- check Apple's extension, so gxvalid includes a heuristic algorithm to
- find the proper validation routines for all possible data formats,
- including the data format for Microsoft. By calling
- classic_kern_validate() instead of gxv_validate(), you can specify the
- `kern' format explicitly. However, current FreeType2 uses Microsoft
- `kern' format only, others are ignored (and should be handled in a
- library one level higher than FreeType).
-
- 5-1. History
- ------------
-
- The original 16bit version of `kern' was designed by Apple in the
- pre-GX era, and it was also approved by Microsoft. Afterwards,
- Apple designed a new 32bit version of the `kern' table. According
- to the documentation, the difference between the 16bit and 32bit
- version is only the size of variables in the `kern' header. In the
- following, we call the original 16bit version as `classic', and
- 32bit version as `new'.
-
- 5-2. Versions and dialects which should be differentiated
- ---------------------------------------------------------
-
- The `kern' table consists of a table header and several subtables.
- The version number which identifies a `classic' or a `new' version
- is explicitly written in the table header, but there are
- undocumented differences between Microsoft's and Apple's formats.
- It is called a `dialect' in the following. There are three cases
- which should be handled: the new Apple-dialect, the classic
- Apple-dialect, and the classic Microsoft-dialect. An analysis of
- the formats and the auto detection algorithm of gxvalid is described
- in the following.
-
- 5-2-1. Version detection: classic and new kern
- ----------------------------------------------
-
- According to Apple TrueType specification, there are only two
- differences between the classic and the new:
-
- - The `kern' table header starts with the version number.
- The classic version starts with 0x0000 (16bit),
- the new version starts with 0x00010000 (32bit).
-
- - In the `kern' table header, the number of subtables follows
- the version number.
- In the classic version, it is stored as a 16bit value.
- In the new version, it is stored as a 32bit value.
-
- From Apple font tool's output (DumpKERN is also tested in addition
- to the three Apple font tools in above), there is another
- undocumented difference. In the new version, the subtable header
- includes a 16bit variable named `tupleIndex' which does not exist
- in the classic version.
-
- The new version can store all subtable formats (0, 1, 2, and 3),
- but the Apple TrueType specification does not mention the subtable
- formats available in the classic version.
-
- 5-2-2. Available subtable formats in classic version
- ----------------------------------------------------
-
- Although the Apple TrueType specification recommends to use the
- classic version in the case if the font is designed for both the
- Apple and Microsoft platforms, it does not document the available
- subtable formats in the classic version.
-
- According to the Microsoft TrueType specification, the subtable
- format assured for Windows and OS/2 support is only subtable
- format 0. The Microsoft TrueType specification also describes
- subtable format 2, but does not mention which platforms support
- it. Aubtable formats 1, 3, and higher are documented as reserved
- for future use. Therefore, the classic version can store subtable
- formats 0 and 2, at least. `ttfdump.exe', a font tool provided by
- Microsoft, ignores the subtable format written in the subtable
- header, and parses the table as if all subtables are in format 0.
-
- `kern' subtable format 1 uses a StateTable, so it cannot be
- utilized without a GX State Machine. Therefore, it is reasonable
- to assume that format 1 (and 3) were introduced after Apple had
- introduced GX and moved to the new 32bit version.
-
- 5-2-3. Apple and Microsoft dialects
- -----------------------------------
-
- The `kern' subtable has a 16bit `coverage' field to describe
- kerning attributes, but bit interpretations by Apple and Microsoft
- are different: For example, Apple uses bits 0-7 to identify the
- subtable, while Microsoft uses bits 8-15.
-
- In addition, due to the output of DumpKERN and FontValidator,
- Apple's bit interpretations of coverage in classic and new version
- are incompatible also. In summary, there are three dialects:
- classic Apple dialect, classic Microsoft dialect, and new Apple
- dialect. The classic Microsoft dialect and the new Apple dialect
- are documented by each vendors' TrueType font specification, but
- the documentation for classic Apple dialect is not available.
-
- For example, in the new Apple dialect, bit 15 is documented as
- `set to 1 if the kerning is vertical'. On the other hand, in
- classic Microsoft dialect, bit 1 is documented as `set to 1 if the
- kerning is horizontal'. From the outputs of DumpKERN and
- FontValidator, classic Apple dialect recognizes 15 as `set to 1
- when the kerning is horizontal'. From the results of similar
- experiments, classic Apple dialect seems to be the Endian reverse
- of the classic Microsoft dialect.
-
- As a conclusion it must be noted that no font tool can identify
- classic Apple dialect or classic Microsoft dialect automatically.
-
- 5-2-4. gxvalid auto dialect detection algorithm
- -----------------------------------------------
-
- The first 16 bits of the `kern' table are enough to identify the
- version:
-
- - if the first 16 bits are 0x0000, the `kern' table is in
- classic Apple dialect or classic Microsoft dialect
- - if the first 16 bits are 0x0001, and next 16 bits are 0x0000,
- the kern table is in new Apple dialect.
-
- If the `kern' table is a classic one, the 16bit `coverage' field
- is checked next. Firstly, the coverage bits are decoded for the
- classic Apple dialect using the following bit masks (this is based
- on DumpKERN output):
-
- 0x8000: 1=horizontal, 0=vertical
- 0x4000: not used
- 0x2000: 1=cross-stream, 0=normal
- 0x1FF0: reserved
- 0x000F: subtable format
-
- If any of reserved bits are set or the subtable bits is
- interpreted as format 1 or 3, we take it as `impossible in classic
- Apple dialect' and retry, using the classic Microsoft dialect.
-
- The most popular coverage in new Apple-dialect: 0x8000,
- The most popular coverage in classic Apple-dialect: 0x0000,
- The most popular coverage in classic Microsoft dialect: 0x0001.
-
- 5-3. Tested fonts
- -----------------
-
- We checked 59 fonts bundled with MacOS and 38 fonts bundled with
- Windows, where all font include a `kern' table.
-
- - fonts bundled with MacOS
- * new Apple dialect
- format 0: 18
- format 2: 1
- format 3: 1
- * classic Apple dialect
- format 0: 14
- * classic Microsoft dialect
- format 0: 15
-
- - fonts bundled with Windows
- * classic Microsoft dialect
- format 0: 38
-
- It looks strange that classic Microsoft-dialect fonts are bundled to
- MacOS: they come from MSIE for MacOS, except of MarkerFelt.dfont.
-
-
- ACKNOWLEDGEMENT
- ---------------
-
- Some parts of gxvalid are derived from both the `gxlayout' module and
- the `otvalid' module. Development of gxlayout was supported by the
- Information-technology Promotion Agency(IPA), Japan.
-
- The detailed analysis of undefined glyph ID utilization in `mort' and
- `morx' tables is provided by George Williams.
-
-------------------------------------------------------------------------
-
-Copyright 2004, 2005, 2007 by
-suzuki toshiya, Masatake YAMATO, Red hat K.K.,
-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.
-
-
---- end of README ---
+gxvalid: TrueType GX validator +============================== + + +1. What is this +--------------- + + `gxvalid' is a module to validate TrueType GX tables: a collection of + additional tables in TrueType font which are used by `QuickDraw GX + Text', Apple Advanced Typography (AAT). In addition, gxvalid can + validates `kern' tables which have been extended for AAT. Like the + otvalid module, gxvalid uses Freetype 2's validator framework + (ftvalid). + + You can link gxvalid with your program; before running your own layout + engine, gxvalid validates a font file. As the result, you can remove + error-checking code from the layout engine. It is also possible to + use gxvalid as a stand-alone font validator; the `ftvalid' test + program included in the ft2demo bundle calls gxvalid internally. + A stand-alone font validator may be useful for font developers. + + This documents documents the following issues. + + - supported TrueType GX tables + - fundamental validation limitations + - permissive error handling of broken GX tables + - `kern' table issue. + + +2. Supported tables +------------------- + + The following GX tables are currently supported. + + bsln + feat + just + kern(*) + lcar + mort + morx + opbd + prop + trak + + The following GX tables are currently unsupported. + + cvar + fdsc + fmtx + fvar + gvar + Zapf + + The following GX tables won't be supported. + + acnt(**) + hsty(***) + + The following undocumented tables in TrueType fonts designed for Apple + platform aren't handled either. + + addg + CVTM + TPNM + umif + + + *) The `kern' validator handles both the classic and the new kern + formats; the former is supported on both Microsoft and Apple + platforms, while the latter is supported on Apple platforms. + + **) `acnt' tables are not supported by currently available Apple font + tools. + + ***) There is one more Apple extension, `hsty', but it is for + Newton-OS, not GX (Newton-OS is a platform by Apple, but it can + use sfnt- housed bitmap fonts only). Therefore, it should be + excluded from `Apple platform' in the context of TrueType. + gxvalid ignores it as Apple font tools do so. + + + We have checked 183 fonts bundled with MacOS 9.1, MacOS 9.2, MacOS + 10.0, MacOS X 10.1, MSIE for MacOS, and AppleWorks 6.0. In addition, + we have checked 67 Dynalab fonts (designed for MacOS) and 189 Ricoh + fonts (designed for Windows and MacOS dual platforms). The number of + fonts including TrueType GX tables are as follows. + + bsln: 76 + feat: 191 + just: 84 + kern: 59 + lcar: 4 + mort: 326 + morx: 19 + opbd: 4 + prop: 114 + trak: 16 + + Dynalab and Ricoh fonts don't have GX tables except of `feat' and + `mort'. + + +3. Fundamental validation limitations +------------------------------------- + + TrueType GX provides layout information to libraries for font + rasterizers and text layout. gxvalid can check whether the layout + data in a font is conformant to the TrueType GX format specified by + Apple. But gxvalid cannot check a how QuickDraw GX/AAT renderer uses + the stored information. + + 3-1. Validation of State Machine activity + ----------------------------------------- + + QuickDraw GX/AAT uses a `State Machine' to provide `stateful' layout + features, and TrueType GX stores the state transition diagram of + this `State Machine' in a `StateTable' data structure. While the + State Machine receives a series of glyph IDs, the State Machine + starts with `start of text' state, walks around various states and + generates various layout information to the renderer, and finally + reaches the `end of text' state. + + gxvalid can check essential errors like: + + - possibility of state transitions to undefined states + - existence of glyph IDs that the State Machine doesn't know how + to handle + - the State Machine cannot compute the layout information from + given diagram + + These errors can be checked within finite steps, and without the + State Machine itself, because these are `expression' errors of state + transition diagram. + + There is no limitation about how long the State Machine walks + around, so validation of the algorithm in the state transition + diagram requires infinite steps, even if we had a State Machine in + gxvalid. Therefore, the following errors and problems cannot be + checked. + + - existence of states which the State Machine never transits to + - the possibility that the State Machine never reaches `end of + text' + - the possibility of stack underflow/overflow in the State Machine + (in ligature and contextual glyph substitutions, the State + Machine can store 16 glyphs onto its stack) + + In addition, gxvalid doesn't check `temporary glyph IDs' used in the + chained State Machines (in `mort' and `morx' tables). If a layout + feature is implemented by a single State Machine, a glyph ID + converted by the State Machine is passed to the glyph renderer, thus + it should not point to an undefined glyph ID. But if a layout + feature is implemented by chained State Machines, a component State + Machine (if it is not the final one) is permitted to generate + undefined glyph IDs for temporary use, because it is handled by next + component State Machine and not by the glyph renderer. To validate + such temporary glyph IDs, gxvalid must stack all undefined glyph IDs + which can occur in the output of the previous State Machine and + search them in the `ClassTable' structure of the current State + Machine. It is too complex to list all possible glyph IDs from the + StateTable, especially from a ligature substitution table. + + 3-2. Validation of relationship between multiple layout features + ---------------------------------------------------------------- + + gxvalid does not validate the relationship between multiple layout + features at all. + + If multiple layout features are defined in TrueType GX tables, + possible interactions, overrides, and conflicts between layout + features are implicitly given in the font too. For example, there + are several predefined spacing control features: + + - Text Spacing (Proportional/Monospace/Half-width/Normal) + - Number Spacing (Monospaced-numbers/Proportional-numbers) + - Kana Spacing (Full-width/Proportional) + - Ideographic Spacing (Full-width/Proportional) + - CJK Roman Spacing (Half-width/Proportional/Default-roman + /Full-width-roman/Proportional) + + If all layout features are independently managed, we can activate + inconsistent typographic rules like `Text Spacing=Monospace' and + `Ideographic Spacing=Proportional' at the same time. + + The combinations of layout features is managed by a 32bit integer + (one bit each for selector setting), so we can define relationships + between up to 32 features, theoretically. But if one feature + setting affects another feature setting, we need typographic + priority rules to validate the relationship. Unfortunately, the + TrueType GX format specification does not give such information even + for predefined features. + + +4. Permissive error handling of broken GX tables +------------------------------------------------ + + When Apple's font rendering system finds an inconsistency, like a + specification violation or an unspecified value in a TrueType GX + table, it does not always return error. In most cases, the rendering + engine silently ignores such wrong values or even whole tables. In + fact, MacOS is shipped with fonts including broken GX/AAT tables, but + no harmful effects due to `officially broken' fonts are observed by + end-users. + + gxvalid is designed to continue the validation process as long as + possible. When gxvalid find wrong values, gxvalid warns it at least, + and takes a fallback procedure if possible. The fallback procedure + depends on the debug level. + + We used the following three tools to investigate Apple's error handling. + + - FontValidator (for MacOS 8.5 - 9.2) resource fork font + - ftxvalidator (for MacOS X 10.1 -) dfont or naked-sfnt + - ftxdumperfuser (for MacOS X 10.1 -) dfont or naked-sfnt + + However, all tests were done on a PowerPC based Macintosh; at present, + we have not checked those tools on a m68k-based Macintosh. + + In total, we checked 183 fonts bundled to MacOS 9.1, MacOS 9.2, MacOS + 10.0, MacOS X 10.1, MSIE for MacOS, and AppleWorks 6.0. These fonts + are distributed officially, but many broken GX/AAT tables were found + by Apple's font tools. In the following, we list typical violation of + the GX specification, in fonts officially distributed with those Apple + systems. + + 4-1. broken BinSrchHeader (19/183) + ---------------------------------- + + `BinSrchHeader' is a header of a data array for m68k platforms to + access memory efficiently. Although there are only two independent + parameters for real (`unitSize' and `nUnits'), BinSrchHeader has + three additional parameters which can be calculated from `unitSize' + and `nUnits', for fast setup. Apple font tools ignore them + silently, so gxvalid warns if it finds and inconsistency, and always + continues validation. The additional parameters are ignored + regardless of the consistency. + + 19 fonts include such inconsistencies; all breaks are in the + BinSrchHeader structure of the `kern' table. + + 4-2. too-short LookupTable (5/183) + ---------------------------------- + + LookupTable format 0 is a simple array to get a value from a given + GID (glyph ID); the index of this array is a GID too. Therefore, + the length of the array is expected to be same as the maximum GID + value defined in the `maxp' table, but there are some fonts whose + LookupTable format 0 is too short to cover all GIDs. FontValidator + ignores this error silently, ftxvalidator and ftxdumperfuser both + warn and continue. Similar problems are found in format 3 subtables + of `kern'. gxvalid warns always and abort if the validation level + is set to FT_VALIDATE_PARANOID. + + 5 fonts include too-short kern format 0 subtables. + 1 font includes too-short kern format 3 subtable. + + 4-3. broken LookupTable format 2 (1/183) + ---------------------------------------- + + LookupTable format 2, subformat 4 covers the GID space by a + collection of segments which are specified by `firstGlyph' and + `lastGlyph'. Some fonts store `firstGlyph' and `lastGlyph' in + reverse order, so the segment specification is broken. Apple font + tools ignore this error silently; a broken segment is ignored as if + it did not exist. gxvalid warns and normalize the segment at + FT_VALIDATE_DEFAULT, or ignore the segment at FT_VALIDATE_TIGHT, or + abort at FT_VALIDATE_PARANOID. + + 1 font includes broken LookupTable format 2, in the `just' table. + + *) It seems that all fonts manufactured by ITC for AppleWorks have + this error. + + 4-4. bad bracketing in glyph property (14/183) + ---------------------------------------------- + + GX/AAT defines a `bracketing' property of the glyphs in the `prop' + table, to control layout features of strings enclosed inside and + outside of brackets. Some fonts give inappropriate bracket + properties to glyphs. Apple font tools warn about this error; + gxvalid warns too and aborts at FT_VALIDATE_PARANOID. + + 14 fonts include wrong bracket properties. + + + 4-5. invalid feature number (117/183) + ------------------------------------- + + The GX/AAT extension can include 255 different layout features, but + popular layout features are predefined (see + http://developer.apple.com/fonts/Registry/index.html). Some fonts + include feature numbers which are incompatible with the predefined + feature registry. + + In our survey, there are 140 fonts including `feat' table. + + a) 67 fonts use a feature number which should not be used. + b) 117 fonts set the wrong feature range (nSetting). This is mostly + found in the `mort' and `morx' tables. + + Apple font tools give no warning, although they cannot recognize + what the feature is. At FT_VALIDATE_DEFAULT, gxvalid warns but + continues in both cases (a, b). At FT_VALIDATE_TIGHT, gxvalid warns + and aborts for (a), but continues for (b). At FT_VALIDATE_PARANOID, + gxvalid warns and aborts in both cases (a, b). + + 4-6. invalid prop version (10/183) + ---------------------------------- + + As most TrueType GX tables, the `prop' table must start with a 32bit + version identifier: 0x00010000, 0x00020000 or 0x00030000. But some + fonts store nonsense binary data instead. When Apple font tools + find them, they abort the processing immediately, and the data which + follows is unhandled. gxvalid does the same. + + 10 fonts include broken `prop' version. + + All of these fonts are classic TrueType fonts for the Japanese + script, manufactured by Apple. + + 4-7. unknown resource name (2/183) + ------------------------------------ + + NOTE: THIS IS NOT A TRUETYPE GX ERROR. + + If a TrueType font is stored in the resource fork or in dfont + format, the data must be tagged as `sfnt' in the resource fork index + to invoke TrueType font handler for the data. But the TrueType font + data in `Keyboard.dfont' is tagged as `kbd', and that in + `LastResort.dfont' is tagged as `lst'. Apple font tools can detect + that the data is in TrueType format and successfully validate them. + Maybe this is possible because they are known to be dfont. The + current implementation of the resource fork driver of FreeType + cannot do that, thus gxvalid cannot validate them. + + 2 fonts use an unknown tag for the TrueType font resource. + +5. `kern' table issues +---------------------- + + In common terminology of TrueType, `kern' is classified as a basic and + platform-independent table. But there are Apple extensions of `kern', + and there is an extension which requires a GX state machine for + contextual kerning. Therefore, gxvalid includes a special validator + for `kern' tables. Unfortunately, there is no exact algorithm to + check Apple's extension, so gxvalid includes a heuristic algorithm to + find the proper validation routines for all possible data formats, + including the data format for Microsoft. By calling + classic_kern_validate() instead of gxv_validate(), you can specify the + `kern' format explicitly. However, current FreeType2 uses Microsoft + `kern' format only, others are ignored (and should be handled in a + library one level higher than FreeType). + + 5-1. History + ------------ + + The original 16bit version of `kern' was designed by Apple in the + pre-GX era, and it was also approved by Microsoft. Afterwards, + Apple designed a new 32bit version of the `kern' table. According + to the documentation, the difference between the 16bit and 32bit + version is only the size of variables in the `kern' header. In the + following, we call the original 16bit version as `classic', and + 32bit version as `new'. + + 5-2. Versions and dialects which should be differentiated + --------------------------------------------------------- + + The `kern' table consists of a table header and several subtables. + The version number which identifies a `classic' or a `new' version + is explicitly written in the table header, but there are + undocumented differences between Microsoft's and Apple's formats. + It is called a `dialect' in the following. There are three cases + which should be handled: the new Apple-dialect, the classic + Apple-dialect, and the classic Microsoft-dialect. An analysis of + the formats and the auto detection algorithm of gxvalid is described + in the following. + + 5-2-1. Version detection: classic and new kern + ---------------------------------------------- + + According to Apple TrueType specification, there are only two + differences between the classic and the new: + + - The `kern' table header starts with the version number. + The classic version starts with 0x0000 (16bit), + the new version starts with 0x00010000 (32bit). + + - In the `kern' table header, the number of subtables follows + the version number. + In the classic version, it is stored as a 16bit value. + In the new version, it is stored as a 32bit value. + + From Apple font tool's output (DumpKERN is also tested in addition + to the three Apple font tools in above), there is another + undocumented difference. In the new version, the subtable header + includes a 16bit variable named `tupleIndex' which does not exist + in the classic version. + + The new version can store all subtable formats (0, 1, 2, and 3), + but the Apple TrueType specification does not mention the subtable + formats available in the classic version. + + 5-2-2. Available subtable formats in classic version + ---------------------------------------------------- + + Although the Apple TrueType specification recommends to use the + classic version in the case if the font is designed for both the + Apple and Microsoft platforms, it does not document the available + subtable formats in the classic version. + + According to the Microsoft TrueType specification, the subtable + format assured for Windows and OS/2 support is only subtable + format 0. The Microsoft TrueType specification also describes + subtable format 2, but does not mention which platforms support + it. Aubtable formats 1, 3, and higher are documented as reserved + for future use. Therefore, the classic version can store subtable + formats 0 and 2, at least. `ttfdump.exe', a font tool provided by + Microsoft, ignores the subtable format written in the subtable + header, and parses the table as if all subtables are in format 0. + + `kern' subtable format 1 uses a StateTable, so it cannot be + utilized without a GX State Machine. Therefore, it is reasonable + to assume that format 1 (and 3) were introduced after Apple had + introduced GX and moved to the new 32bit version. + + 5-2-3. Apple and Microsoft dialects + ----------------------------------- + + The `kern' subtable has a 16bit `coverage' field to describe + kerning attributes, but bit interpretations by Apple and Microsoft + are different: For example, Apple uses bits 0-7 to identify the + subtable, while Microsoft uses bits 8-15. + + In addition, due to the output of DumpKERN and FontValidator, + Apple's bit interpretations of coverage in classic and new version + are incompatible also. In summary, there are three dialects: + classic Apple dialect, classic Microsoft dialect, and new Apple + dialect. The classic Microsoft dialect and the new Apple dialect + are documented by each vendors' TrueType font specification, but + the documentation for classic Apple dialect is not available. + + For example, in the new Apple dialect, bit 15 is documented as + `set to 1 if the kerning is vertical'. On the other hand, in + classic Microsoft dialect, bit 1 is documented as `set to 1 if the + kerning is horizontal'. From the outputs of DumpKERN and + FontValidator, classic Apple dialect recognizes 15 as `set to 1 + when the kerning is horizontal'. From the results of similar + experiments, classic Apple dialect seems to be the Endian reverse + of the classic Microsoft dialect. + + As a conclusion it must be noted that no font tool can identify + classic Apple dialect or classic Microsoft dialect automatically. + + 5-2-4. gxvalid auto dialect detection algorithm + ----------------------------------------------- + + The first 16 bits of the `kern' table are enough to identify the + version: + + - if the first 16 bits are 0x0000, the `kern' table is in + classic Apple dialect or classic Microsoft dialect + - if the first 16 bits are 0x0001, and next 16 bits are 0x0000, + the kern table is in new Apple dialect. + + If the `kern' table is a classic one, the 16bit `coverage' field + is checked next. Firstly, the coverage bits are decoded for the + classic Apple dialect using the following bit masks (this is based + on DumpKERN output): + + 0x8000: 1=horizontal, 0=vertical + 0x4000: not used + 0x2000: 1=cross-stream, 0=normal + 0x1FF0: reserved + 0x000F: subtable format + + If any of reserved bits are set or the subtable bits is + interpreted as format 1 or 3, we take it as `impossible in classic + Apple dialect' and retry, using the classic Microsoft dialect. + + The most popular coverage in new Apple-dialect: 0x8000, + The most popular coverage in classic Apple-dialect: 0x0000, + The most popular coverage in classic Microsoft dialect: 0x0001. + + 5-3. Tested fonts + ----------------- + + We checked 59 fonts bundled with MacOS and 38 fonts bundled with + Windows, where all font include a `kern' table. + + - fonts bundled with MacOS + * new Apple dialect + format 0: 18 + format 2: 1 + format 3: 1 + * classic Apple dialect + format 0: 14 + * classic Microsoft dialect + format 0: 15 + + - fonts bundled with Windows + * classic Microsoft dialect + format 0: 38 + + It looks strange that classic Microsoft-dialect fonts are bundled to + MacOS: they come from MSIE for MacOS, except of MarkerFelt.dfont. + + + ACKNOWLEDGEMENT + --------------- + + Some parts of gxvalid are derived from both the `gxlayout' module and + the `otvalid' module. Development of gxlayout was supported by the + Information-technology Promotion Agency(IPA), Japan. + + The detailed analysis of undefined glyph ID utilization in `mort' and + `morx' tables is provided by George Williams. + +------------------------------------------------------------------------ + +Copyright 2004, 2005, 2007 by +suzuki toshiya, Masatake YAMATO, Red hat K.K., +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. + + +--- end of README --- diff --git a/components/external/freetype/src/pcf/README b/components/external/freetype/src/pcf/README index 892cb9ae4f..cc1480b2d2 100644 --- a/components/external/freetype/src/pcf/README +++ b/components/external/freetype/src/pcf/README @@ -1,114 +1,114 @@ - FreeType font driver for PCF fonts
-
- Francesco Zappa Nardelli
-
-
-Introduction
-************
-
-PCF (Portable Compiled Format) is a binary bitmap font format, largely used
-in X world. This code implements a PCF driver for the FreeType library.
-Glyph images are loaded into memory only on demand, thus leading to a small
-memory footprint.
-
-Information on the PCF font format can only be worked out from
-`pcfread.c', and `pcfwrite.c', to be found, for instance, in the XFree86
-(www.xfree86.org) source tree (xc/lib/font/bitmap/).
-
-Many good bitmap fonts in bdf format come with XFree86: they can be
-compiled into the pcf format using the `bdftopcf' utility.
-
-
-Supported hardware
-******************
-
-The driver has been tested on linux/x86 and sunos5.5/sparc. In both
-cases the compiler was gcc. When back in Paris, I will test it also
-on linux/alpha.
-
-
-Encodings
-*********
-
-The variety of encodings that accompanies pcf fonts appears to encompass the
-small set defined in freetype.h. On the other hand, each pcf font defines
-two properties that specify encoding and registry.
-
-I decided to make these two properties directly accessible, leaving to the
-client application the work of interpreting them. For instance:
-
- #include "pcftypes.h" /* include/freetype/internal/pcftypes.h */
-
- FT_Face face;
- PCF_Public_Face pcfface;
-
- FT_New_Face( library,..., &face );
-
- pcfface = (PCF_Public_Face)face;
-
- if ((pcfface->charset_registry == "ISO10646") &&
- (pcfface->charset_encoding) == "1")) [..]
-
-Thus the driver always export `ft_encoding_none' as
-face->charmap.encoding. FT_Get_Char_Index() behavior is unmodified, that
-is, it converts the ULong value given as argument into the corresponding
-glyph number.
-
-
-Known problems
-**************
-
-- dealing explicitly with encodings breaks the uniformity of freetype2
- api.
-
-- except for encodings properties, client applications have no
- visibility of the PCF_Face object. This means that applications
- cannot directly access font tables and are obliged to trust
- FreeType.
-
-- currently, glyph names and ink_metrics are ignored.
-
-I plan to give full visibility of the PCF_Face object in the next
-release of the driver, thus implementing also glyph names and
-ink_metrics.
-
-- height is defined as (ascent - descent). Is this correct?
-
-- if unable to read size information from the font, PCF_Init_Face
- sets available_size->width and available_size->height to 12.
-
-- too many english grammar errors in the readme file :-(
-
-
-License
-*******
-
-Copyright (C) 2000 by Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-Credits
-*******
-
-Keith Packard wrote the pcf driver found in XFree86. His work is at
-the same time the specification and the sample implementation of the
-PCF format. Undoubtedly, this driver is inspired from his work.
+ FreeType font driver for PCF fonts + + Francesco Zappa Nardelli + + +Introduction +************ + +PCF (Portable Compiled Format) is a binary bitmap font format, largely used +in X world. This code implements a PCF driver for the FreeType library. +Glyph images are loaded into memory only on demand, thus leading to a small +memory footprint. + +Information on the PCF font format can only be worked out from +`pcfread.c', and `pcfwrite.c', to be found, for instance, in the XFree86 +(www.xfree86.org) source tree (xc/lib/font/bitmap/). + +Many good bitmap fonts in bdf format come with XFree86: they can be +compiled into the pcf format using the `bdftopcf' utility. + + +Supported hardware +****************** + +The driver has been tested on linux/x86 and sunos5.5/sparc. In both +cases the compiler was gcc. When back in Paris, I will test it also +on linux/alpha. + + +Encodings +********* + +The variety of encodings that accompanies pcf fonts appears to encompass the +small set defined in freetype.h. On the other hand, each pcf font defines +two properties that specify encoding and registry. + +I decided to make these two properties directly accessible, leaving to the +client application the work of interpreting them. For instance: + + #include "pcftypes.h" /* include/freetype/internal/pcftypes.h */ + + FT_Face face; + PCF_Public_Face pcfface; + + FT_New_Face( library,..., &face ); + + pcfface = (PCF_Public_Face)face; + + if ((pcfface->charset_registry == "ISO10646") && + (pcfface->charset_encoding) == "1")) [..] + +Thus the driver always export `ft_encoding_none' as +face->charmap.encoding. FT_Get_Char_Index() behavior is unmodified, that +is, it converts the ULong value given as argument into the corresponding +glyph number. + + +Known problems +************** + +- dealing explicitly with encodings breaks the uniformity of freetype2 + api. + +- except for encodings properties, client applications have no + visibility of the PCF_Face object. This means that applications + cannot directly access font tables and are obliged to trust + FreeType. + +- currently, glyph names and ink_metrics are ignored. + +I plan to give full visibility of the PCF_Face object in the next +release of the driver, thus implementing also glyph names and +ink_metrics. + +- height is defined as (ascent - descent). Is this correct? + +- if unable to read size information from the font, PCF_Init_Face + sets available_size->width and available_size->height to 12. + +- too many english grammar errors in the readme file :-( + + +License +******* + +Copyright (C) 2000 by Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Credits +******* + +Keith Packard wrote the pcf driver found in XFree86. His work is at +the same time the specification and the sample implementation of the +PCF format. Undoubtedly, this driver is inspired from his work. diff --git a/components/external/freetype/src/tools/docmaker/.gitignore b/components/external/freetype/src/tools/docmaker/.gitignore index 94487b9516..0d20b6487c 100644 --- a/components/external/freetype/src/tools/docmaker/.gitignore +++ b/components/external/freetype/src/tools/docmaker/.gitignore @@ -1 +1 @@ -*.pyc
+*.pyc diff --git a/components/external/freetype/src/tools/ftrandom/README b/components/external/freetype/src/tools/ftrandom/README index 6b337ed13e..c093f15e81 100644 --- a/components/external/freetype/src/tools/ftrandom/README +++ b/components/external/freetype/src/tools/ftrandom/README @@ -1,48 +1,48 @@ -ftrandom
---------
-
-This program expects a set of directories containing good fonts, and a set
-of extensions of fonts to be tested. It will randomly pick a font, copy it,
-introduce and error and then test it.
-
-The FreeType tests are quite basic:
-
- For each erroneous font it
- forks off a new tester;
- initializes the library;
- opens each font in the file;
- loads each glyph;
- (optionally reviewing the contours of the glyph)
- (optionally rasterizing)
- closes the face.
-
-If the tester exits with a signal, or takes longer than 20 seconds then
-ftrandom saves the erroneous font and continues. If the tester exits
-normally or with an error, then the superstructure removes the test font and
-continues.
-
-Arguments are:
-
- --all Test every font in the directory(ies) no matter
- what its extension (some CID-keyed fonts have no
- extension).
- --check-outlines Call FT_Outline_Decompose on each glyph.
- --dir <dir> Append <dir> to the list of directories to search
- for good fonts.
- --error-count <cnt> Introduce <cnt> single-byte errors into the
- erroneous fonts.
- --error-fraction <frac> Multiply the file size of the font by <frac> and
- introduce that many errors into the erroneous
- font file.
- --ext <ext> Add <ext> to the set of font types tested. Known
- extensions are `ttf', `otf', `ttc', `cid', `pfb',
- `pfa', `bdf', `pcf', `pfr', `fon', `otb', and
- `cff'.
- --help Print out this list of options.
- --nohints Specify FT_LOAD_NO_HINTING when loading glyphs.
- --rasterize Call FT_Render_Glyph as well as loading it.
- --result <dir> This is the directory in which test files are
- placed.
- --test <file> Run a single test on a pre-generated testcase.
- Done in the current process so it can be debugged
- more easily.
+ftrandom +-------- + +This program expects a set of directories containing good fonts, and a set +of extensions of fonts to be tested. It will randomly pick a font, copy it, +introduce and error and then test it. + +The FreeType tests are quite basic: + + For each erroneous font it + forks off a new tester; + initializes the library; + opens each font in the file; + loads each glyph; + (optionally reviewing the contours of the glyph) + (optionally rasterizing) + closes the face. + +If the tester exits with a signal, or takes longer than 20 seconds then +ftrandom saves the erroneous font and continues. If the tester exits +normally or with an error, then the superstructure removes the test font and +continues. + +Arguments are: + + --all Test every font in the directory(ies) no matter + what its extension (some CID-keyed fonts have no + extension). + --check-outlines Call FT_Outline_Decompose on each glyph. + --dir <dir> Append <dir> to the list of directories to search + for good fonts. + --error-count <cnt> Introduce <cnt> single-byte errors into the + erroneous fonts. + --error-fraction <frac> Multiply the file size of the font by <frac> and + introduce that many errors into the erroneous + font file. + --ext <ext> Add <ext> to the set of font types tested. Known + extensions are `ttf', `otf', `ttc', `cid', `pfb', + `pfa', `bdf', `pcf', `pfr', `fon', `otb', and + `cff'. + --help Print out this list of options. + --nohints Specify FT_LOAD_NO_HINTING when loading glyphs. + --rasterize Call FT_Render_Glyph as well as loading it. + --result <dir> This is the directory in which test files are + placed. + --test <file> Run a single test on a pre-generated testcase. + Done in the current process so it can be debugged + more easily. diff --git a/components/external/freetype/version.sed b/components/external/freetype/version.sed index 779a46bb2c..c281ff506b 100644 --- a/components/external/freetype/version.sed +++ b/components/external/freetype/version.sed @@ -1,5 +1,5 @@ -#! /usr/bin/sed -nf
-
-s/^#define *FREETYPE_MAJOR *\([^ ][^ ]*\).*$/freetype_major="\1" ;/p
-s/^#define *FREETYPE_MINOR *\([^ ][^ ]*\).*$/freetype_minor=".\1" ;/p
-s/^#define *FREETYPE_PATCH *\([^ ][^ ]*\).*$/freetype_patch=".\1" ;/p
+#! /usr/bin/sed -nf + +s/^#define *FREETYPE_MAJOR *\([^ ][^ ]*\).*$/freetype_major="\1" ;/p +s/^#define *FREETYPE_MINOR *\([^ ][^ ]*\).*$/freetype_minor=".\1" ;/p +s/^#define *FREETYPE_PATCH *\([^ ][^ ]*\).*$/freetype_patch=".\1" ;/p |
