* 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
amiga/include/freetype/config/ftmodule.h: Updated to include
support for BDF and Type42 drivers.
* docs/modules.txt: Updated.
* src/bdf/bdflib.c (_bdf_parse_glyphs): Replace floating point math
with calls to `FT_MulDiv'.
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.
* src/cff/cffload.h, src/cff/cffload.c, src/cff/cffgload.c: updated
to mode the definition of encoding tables within "cffload.c" instead
of making them part of a shared header (causing problems in "multi"
builds)
for the Postscript hinter
* docs/BUGS: closed the AUTOHINT-NO-SBITS bug.
* src/pshinter/pshrec.c (t2_hint_stems), src/cff/cffobjs.h,
src/cff/cffobjs.c, src/cff/cffload.c, src/cff/cffload.h,
src/cff/cffgload.c, src/cff/cffgload.h, src/cff/cffdriver.c,
include/freetype/internal/cfftypes.h: added Postscript hinter support
to the CFF driver
* src/base/ftobjs.c (FT_Done_Library): fixed a stupid bug that crashed
the library on exit
passing "-L/usr/lib" to gcc
* docs/FTL.TXT: simple fix (change "LICENSE.TXT" to "FTL.TXT")
* builds/unix/freetype2.m4: added autoconf macro, we need to install
it in $(prefix)/share/aclocal/freetype2.m4 but I didn't modified
builds/unix/install.mk yet..
purposes..
* 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..
the debugging memory manager to report the location (source file name
+ line number) where leaked memory blocks are allocated in the source
file.. funny, isn't it ??
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.
* src/cache/ftlru.c (FT_Lru_Lookup_Node): Fixed a bug that prevented
correct LRU behaviour.
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.
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.
src/base/Jamfile, src/base/rules.mk: adding trigonometric functions
to the core API (using Cordic algorithms).
* builds/top_level.mk, builds/newline, builds/detect.mk: fixed 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
* src/tools: added new directory to hold tools and test programs
moved docmaker.py, glnames.py to it..
* 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..
* include/freetype/t1tables.h, include/freetype/config/ftoption.h:
formatting
latest versions from gnu.org.
* builds/compiler/gcc-dev.mk: Add `-Wno-long-long' flag.
* include/freetype/internal/ftcalc.h: Define FT_SqrtFixed()
uncoditionally.
* src/base/ftbbox.c: Include FT_INTERNAL_CALC_H.
Fix compiler warnings.
* src/base/ftcalc.c: Fix (potential) compiler warnings.
* 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.
* 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 bezier 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).
* 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.
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 bezier 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)
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
* 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.
* 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
top-level <ft2build.h>.
* include/config/ftheader.h: Added new section describing the #include
macros.
the Type 2 glyph charstring (used by conversion programs).
* docs/docmaker.py: Added cross-references generation as well as
seac emulation provided by the Type 2 endchar operator.
* src/cid/cidafm.c, src/cid/cidafm.h: removed un-needed files,
Added support for clipped direct rendering in the smooth renderer.
* src/cff/t2objs.c (T2_Init_Face): For pure CFF fonts, set
`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.
* src/psnames/pstables.h: Add more `const'.
* src/pcf/pcfutil.c: Ditto.
* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixing typo
(FT_Glyph_Done -> FT_Done_Glyph).
* include/freetype/ttnameid.h: Added some new Microsoft language
codes and LCIDs as found in Office Xp.
* builds/hurd/detect.mk: New file. Added support to detect the GNU
Hurd operating system as Unix-like. Fix submitted by Anthony Fok
<foka@debian.org>.
* 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 <hashao@chinese.com>.
* 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).
* 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.
and empty lines in output.
* 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.
* 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.
* 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).
* 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.
* many files: 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
Win32 developer builds.
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.