Commit Graph

2172 Commits

Author SHA1 Message Date
Werner Lemberg
a2f17cc150 * docs/CHANGES: Updated.
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-17 10:01:45 +00:00
Werner Lemberg
bcc750e511 * 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-16 04:50:00 +00:00
Werner Lemberg
bcfcc71d29 * builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated. 2008-05-15 09:14:39 +00:00
Werner Lemberg
2d73899925 Fix ChangeLog. 2008-05-14 23:33:53 +00:00
Werner Lemberg
504645ed5b * src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array
which contain a single but empty entry.  This is technically
invalid (since it must end with `return', but...)

Reported by Martin McBride.
2008-05-14 23:26:20 +00:00
Werner Lemberg
e6e6eade04 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-14 23:05:38 +00:00
Werner Lemberg
fb57228b94 * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
Handle case `face_index < 0'.
* docs/CHANGES: Document it.
2008-05-13 12:10:04 +00:00
Werner Lemberg
32e05a6a94 Cleaning up. 2008-05-04 16:53:22 +00:00
Werner Lemberg
551dd3c0a6 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-04 13:37:38 +00:00
Werner Lemberg
6d29f0f1e8 * 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-05-03 15:54:15 +00:00
Werner Lemberg
de9479a00d * 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-26 12:52:57 +00:00
Werner Lemberg
4ebc890e06 * 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 22:06:12 +00:00
Werner Lemberg
048b756389 * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if
integer part is zero.
2008-04-13 05:55:36 +00:00
Werner Lemberg
c32e83f23f 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-04-01 06:07:37 +00:00
Werner Lemberg
210d61894b 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-04-01 05:55:48 +00:00
Werner Lemberg
a56e526671 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-23 14:53:44 +00:00
Werner Lemberg
8575117c50 * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'. Patch from
Savannah bug #22675.
2008-03-21 07:16:00 +00:00
Werner Lemberg
3863c95146 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop.
Patch from Savannah bug #22541.
2008-03-13 06:38:37 +00:00
Werner Lemberg
fc29393998 * 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-03-03 08:08:12 +00:00
Werner Lemberg
5057e36c15 * docs/CHANGES: Updated. 2008-02-29 07:23:02 +00:00
Werner Lemberg
7faa1554c2 Add build support for symbian platform. From Savannah bug #22440.
* builds/symbian/*: New files.
2008-02-29 07:14:38 +00:00
Werner Lemberg
9b9d3349b2 minor improvements, copyright years 2008-02-21 23:22:06 +00:00
Suzuki, Toshiya (鈴木俊哉)
6cb2faa845 * src/base/ftmac.c: Fix a bug of PostScript font name synthesis in parse_fond(). 2008-02-21 18:46:07 +00:00
Werner Lemberg
31093ccecd minor fixes 2008-02-21 17:10:04 +00:00
Suzuki, Toshiya (鈴木俊哉)
5d3ac4ae12 * builds/unix/confiure.raw: Split the compiler option to link Carbon frameworks for each framework 2008-02-21 10:15:41 +00:00
Werner Lemberg
28464c48a1 * src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix
from Savannah bug #22356.
2008-02-18 20:34:42 +00:00
Werner Lemberg
c903f2f22d minor editing 2008-02-17 08:23:04 +00:00
Werner Lemberg
44c655b01c * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
Check for valid callback pointers.
2008-02-17 08:22:08 +00:00
Suzuki, Toshiya (鈴木俊哉)
d2c55ab0e4 fix for inexistent sfnt ID in broken FOND 2008-02-15 09:12:59 +00:00
Werner Lemberg
aa722df478 Minor editing. 2008-02-14 10:46:40 +00:00
Suzuki, Toshiya (鈴木俊哉)
60e83a1d57 * src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" 2008-02-14 02:55:16 +00:00
Werner Lemberg
744dd456bc * 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-02-11 08:22:40 +00:00
Werner Lemberg
4c93399155 * 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-18 05:32:55 +00:00
Werner Lemberg
1ddd1b768d * src/raster/ftraster.c (ft_black_render): Check `outline' before
using it.  Reported by Allan Yang.
2008-01-16 06:58:54 +00:00
Werner Lemberg
eca1f27905 * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove.
* src/raster/ftraster.c (ft_black_init)
[FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation.
2008-01-12 07:46:09 +00:00
Werner Lemberg
bf391cb858 * 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-10 08:47:08 +00:00
Suzuki, Toshiya (鈴木俊哉)
75696860ea Formatting. 2008-01-04 01:43:23 +00:00
Werner Lemberg
d2e1573706 * src/smooth/ftgrays.c (gray_raster_render): Check `outline'
correctly.

Whitespace.
2007-12-30 23:49:14 +00:00
Suzuki, Toshiya (鈴木俊哉)
540b954574 Improvement of POSIX resource-fork accessor to load Mac OS X HelveLTMM 2007-12-21 06:03:59 +00:00
Werner Lemberg
d156cabcae * 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-14 07:48:32 +00:00
Werner Lemberg
bd7e1c3ce0 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.



* src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
TT_USE_BYTECODE_INTERPRETER isn't defined.



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 17:17:30 +00:00
Suzuki, Toshiya (鈴木俊哉)
a6d36573bd * src/base/ftrfork.c: add support for new pathname syntax "..namedfork/rsrc" to access resource fork on Mac OS X. 2007-12-06 10:27:15 +00:00
Suzuki, Toshiya (鈴木俊哉)
44b5e57781 Mac OS X Carbon tests in configure.raw are improved and builds/mac/ftmac.c is updated to sync to src/base/ftmac.c 2007-12-06 07:47:25 +00:00
Suzuki, Toshiya (鈴木俊哉)
05f5c58d13 Improvements of the document and comments in Mac OS sources by Sean McBride 2007-12-06 05:43:36 +00:00
Werner Lemberg
a10d2b7cf5 * 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 22:05:54 +00:00
Werner Lemberg
d496b92659 * src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to
concatenate error codes.
2007-12-04 21:49:59 +00:00
Werner Lemberg
c0da523270 * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler
warning.
2007-12-04 21:44:32 +00:00
Werner Lemberg
24fe618bde Improve. 2007-11-23 09:18:07 +00:00
Suzuki, Toshiya (鈴木俊哉)
86c0f90498 * src/base/{ftobjs.c, ftrfork.c}: recovery of Carbon-free legacy MacOS font support in freetype-2.3.4 2007-11-20 14:00:17 +00:00
Suzuki, Toshiya (鈴木俊哉)
a547068835 * Add acknowledge of previous Mac OS X 10.5 patch author 2007-11-16 16:29:36 +00:00
Suzuki, Toshiya (鈴木俊哉)
00518cacad * src/base/ftmac.c: Revise Carbon dependent functions for Mac OS X 10.5 2007-11-16 15:48:58 +00:00
Werner Lemberg
d503fc57f2 * src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere. This
fixes Savannah bug #21485.
2007-11-01 09:19:44 +00:00
Werner Lemberg
27649fb62b * 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-29 22:00:58 +00:00
Werner Lemberg
e77b6c4955 Typo. 2007-10-21 08:18:40 +00:00
Werner Lemberg
7d9c189ac2 * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare
support for bit 8 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-21 08:12:30 +00:00
Werner Lemberg
6684257742 * src/tools/docmaker/tohtml.py (html_header_2): Fix typo.
Add `td.left' element to CSS.
(toc_section_enter): Use it.
2007-10-20 16:17:28 +00:00
Werner Lemberg
7f2425fb4f Formatting, improving documentation. 2007-10-20 16:15:07 +00:00
David Turner
cf432dbf22 * include/freetype/freetype.h, src/base/ftobjs.c: renamed
cmap14-related new APIs to the FT_Object_ActionName scheme.
        update the documentation for these APIs

        * 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.
2007-10-19 12:36:40 +00:00
Werner Lemberg
9a966b7d1b 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-15 17:21:32 +00:00
Werner Lemberg
74597ccd8f * 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-10-01 07:08:56 +00:00
Suzuki, Toshiya (鈴木俊哉)
2be3f472dd * src/base/ftmac.c: Use more abstract data type instead of `short\' 2007-08-29 06:08:59 +00:00
Werner Lemberg
abc44f5ecf * 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-18 06:38:07 +00:00
Werner Lemberg
23a424f521 * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of
SingleSubstFormat1.
2007-08-17 20:16:44 +00:00
Suzuki, Toshiya (鈴木俊哉)
4fc0ccea68 * Fix a bug in configure.raw overlooking native C compiler if named "platform-gcc" 2007-08-11 16:35:06 +00:00
Werner Lemberg
3f1905b191 * 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-11 15:45:32 +00:00
Werner Lemberg
d76fe5a1af * 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.


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-08 06:38:06 +00:00
Werner Lemberg
b66178851a * builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL.
Fixes Savannah bug #20686.
2007-08-04 22:17:48 +00:00
Werner Lemberg
d6752a6bfb * src/psnames/psmodule.c: Fix usage of
FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro.  Reported by Graham Asher.
2007-08-02 22:03:30 +00:00
Suzuki, Toshiya (鈴木俊哉)
cf093cd7d2 * Fix src/base/ftmac.c (open_face_from_buffer): fix the type of driver_type as const. 2007-07-31 03:58:09 +00:00
Werner Lemberg
39c91ad444 * 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-28 05:40:40 +00:00
Werner Lemberg
71dd687310 * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before
first usage.  From Savannah patch #6115.
2007-07-27 04:44:36 +00:00
Werner Lemberg
ef915c36f4 * docs/CHANGES: Updated.
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-16 20:46:05 +00:00
Werner Lemberg
2f10956744 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-11 05:32:00 +00:00
Werner Lemberg
b003b3e7b5 * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
`target'.  Reported by Sean McBride.
2007-07-08 07:13:12 +00:00
Werner Lemberg
1e1b6dff54 * 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-07 07:30:40 +00:00
Werner Lemberg
3033f4366b * 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-04 14:12:19 +00:00
Werner Lemberg
986ea4b2cb * docs/PROBLEMS: Mention that some PS based fonts can't be
handled correctly by FreeType.
2007-07-04 04:53:15 +00:00
Werner Lemberg
3b0e500601 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
`round' to pacify compiler.

Really commit changes which have been used to build release 2.3.5.
2007-07-03 04:48:19 +00:00
Werner Lemberg
e3be90bf28 formatting 2007-07-02 14:58:58 +00:00
David Turner
481b25f009 * include/freetype/freetype.h, src/base/ftpatent.c: adding
FT_Face_SetUnpatentedHinting to dynamically change the setting
	after a face is created.
2007-07-01 09:51:15 +00:00
David Turner
0ba8991292 fix a small bug in the TrueType loader that created distortion in the result
of bytecode-hinted text. Werner, feel free to package 2.3.5 now :-)
2007-07-01 09:34:04 +00:00
David Turner
74cc0e9ee4 * src/truetype/ttinterp.c: add missing variable initialization,
gets rid of Valgrind fixes.

	* src/autofit/aflatin.c: get rid of an infinite loop in the case
	of degenerate fonts.
2007-06-30 22:54:12 +00:00
Werner Lemberg
7723dc34d3 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-26 04:44:35 +00:00
Werner Lemberg
7854c4a521 Fix ChangeLog. 2007-06-23 07:16:20 +00:00
David Turner
8f626b04f3 fix stupid typo that prevented the truetype loader from working correctly 2007-06-22 22:22:38 +00:00
Werner Lemberg
5b4d435a96 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
change.
2007-06-20 07:07:55 +00:00
Werner Lemberg
c67fb6f1a3 Fix ChangeLog. 2007-06-20 06:08:13 +00:00
Werner Lemberg
9fe5815c97 * src/type1/t1load.c (parse_encoding): Handle one more error. 2007-06-19 07:57:30 +00:00
Werner Lemberg
5a829394f6 * 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-06-19 04:53:30 +00:00
Suzuki, Toshiya (鈴木俊哉)
7893501c3e * fix compiler warnings of src/base/ftmac.c, drop unnecessary part for Mac OS X. 2007-06-19 03:27:05 +00:00
Werner Lemberg
bb2510daec * src/type42/t42parse.c (t42_parse_encoding): Handle one more error. 2007-06-18 17:07:49 +00:00
Werner Lemberg
f9fa1c8b77 * 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
return.
* src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
Don't allow mixed binary and hex strings.
Handle zero string_size == 0 and string_buf == 0.
2007-06-18 17:00:05 +00:00
Werner Lemberg
95104a4d57 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
2007-06-06.
2007-06-18 07:33:10 +00:00
Werner Lemberg
f48aec7b1e * 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.
2007-06-18 07:07:55 +00:00
Werner Lemberg
be183ebb5d * 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-17 11:27:17 +00:00
Werner Lemberg
e12ed563d6 * src/tools/ftrandom.c (font_size): New global variable.
(TestFace): Use it.
(main): Handle new option `--size' to set `font_size'.
(Usage): Updated.

Formatting.
2007-06-17 05:31:23 +00:00
David Turner
815911ae2a * src/truetype/ttgload.c (TT_Load_Simple_Glyph): check the well-formedness
of the contours array when loading a glyph

	* src/truetype/ttinterp.c (Ins_IP): check argument ranges to reject
	bogus operations properly
2007-06-16 17:07:20 +00:00
David Turner
6c2ab0977c prevent a 16-bit integer overflow that would create problems when rendering
*very* large anti-aliased outlines
2007-06-16 16:40:37 +00:00
Werner Lemberg
ab1604bd6b * 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-16 07:59:39 +00:00
Werner Lemberg
08a645d833 * builds/win32/ftdebug.c: Unify debug level handling with other
platforms.
2007-06-15 14:05:20 +00:00
Werner Lemberg
367f301b44 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
console as well as to the debugger.
2007-06-14 06:56:52 +00:00
Werner Lemberg
46dde4953a * 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-14 03:59:02 +00:00
Werner Lemberg
49e18b8d5f formatting 2007-06-11 21:15:09 +00:00
David Turner
b38c15da09 fix bug #19565, which was caused by an incorrect segment link computation 2007-06-11 19:36:48 +00:00
David Turner
b792017faf experimental changes for the Latin auto-hinter.
note that the new code is disabled by default.
2007-06-11 05:37:35 +00:00
Werner Lemberg
cf7b764285 Fix ChangeLog. 2007-06-11 04:58:01 +00:00
Werner Lemberg
f6c120f826 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents).
Formatting, reformulations.
2007-06-11 04:55:58 +00:00
David Turner
5f5e544611 slight speed-up of the TrueType glyph loader 2007-06-11 00:18:00 +00:00
David Turner
84c6f88117 * include/freetype/config/ftoption.h: clarify documentation regarding
unpatented hinting

	* include/freetype/freetype.h, src/base/ftpatent.c, src/truetype/ttdriver.c,
	include/freetype/internal/services/svttglyf.h, modules.cfg,:
	include/freetype/internal/ftserv.h,:
	Fonts without a cmap must be handled correctly by FreeType (anything
	Adding the FT_Face_CheckTrueTypePatents API to FT_FREETYPE_H, it is
	implemented by the optional src/base/ftpatent.c
2007-06-10 20:51:04 +00:00
Werner Lemberg
33db39e292 * 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-08 06:30:29 +00:00
Werner Lemberg
88ab638e0f * 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-07 05:01:56 +00:00
Werner Lemberg
470210b73c * 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-06 10:05:49 +00:00
Werner Lemberg
a8d65494cb * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
FreeType error.
2007-06-06 04:47:49 +00:00
Werner Lemberg
2a2dca6b40 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'. 2007-06-06 04:39:37 +00:00
Werner Lemberg
e5c14d93b8 * 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-05 20:50:37 +00:00
Werner Lemberg
f4bc3f40b3 * src/winfnt/winfnt.c (FNT_Face_Init): Check `family_size'. 2007-06-05 07:32:15 +00:00
Werner Lemberg
9a0332cd3f * src/pfr/pfrgload.c (pfr_glyph_curve_to, pfr_glyph_line_to): Convert
assertion into normal FreeType error.
2007-06-05 05:50:01 +00:00
Werner Lemberg
6c05475d50 * 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): Convert assertion into normal FreeType
error.

* src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
2007-06-05 05:27:54 +00:00
Werner Lemberg
ad18b367e9 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
* src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
2007-06-04 07:04:05 +00:00
Werner Lemberg
99a320b431 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
George Williams (with some modifications).
2007-06-03 19:21:26 +00:00
Werner Lemberg
3d507fefe8 * 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 16:54:55 +00:00
Werner Lemberg
ce280a22e2 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning. 2007-06-03 05:58:30 +00:00
Werner Lemberg
5b591e49cf * 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 22:16:43 +00:00
Werner Lemberg
b9933f4b02 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
(FTC_CMapCache_Lookup): Remove unused code.
2007-06-01 21:27:12 +00:00
Werner Lemberg
c793d90fca * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
unused.
2007-06-01 20:51:11 +00:00
Werner Lemberg
4d2815db50 (cid_parser_new): Exit properly if no `StartData' has been seen at all. 2007-06-01 07:49:31 +00:00
Werner Lemberg
cb37b3b36a * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
LONG_MAX to avoid compiler warning.  Suggested by Sean McBride.
2007-06-01 06:49:03 +00:00
Werner Lemberg
bebc7b11c5 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
pass for `StartData' if an error has occurred.
2007-06-01 06:32:30 +00:00
Werner Lemberg
ba03af6f91 * 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-30 13:57:02 +00:00
Werner Lemberg
99e0c18ea1 Formatting, reformulations. 2007-05-29 07:00:23 +00:00
David Turner
0291a5c696 updating CHANGES 2007-05-28 15:49:08 +00:00
David Turner
552a956247 optimize CFF glyph loader (avoid apply identity font transform) 2007-05-28 15:45:35 +00:00
David Turner
f0cd69c1b4 2007-05-28 David Turner <david@freetype.org>
* src/autofit/afglobal.c: change default hinting script to
	CJK, since it works well with a larger array of scripts. thanks to
	"Rahul Bhalerao" <b.rahul.pm@gmail.com> for pointing this out !
2007-05-28 15:42:09 +00:00
Werner Lemberg
1c8980ef4a * docs/CHANGES: Updated.
Formatting.
2007-05-25 07:11:12 +00:00
Werner Lemberg
6ff2ff574b * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
into TT_USE_BYTECODE_INTERPRETER preprocessor block.

* src/truetype/ttobjs.c (tt_size_ready_bytecode)
[!TT_USE_BYTECODE_INTERPRETER]: Removed.  Unused.
2007-05-24 19:39:14 +00:00
David Turner
7890686d80 fix crash when not using the bytecode interpreter with TrueType fonts 2007-05-22 14:08:09 +00:00
David Turner
3e2f953a10 real fix for bug #19910. the .Z format is really badly designed :-( 2007-05-22 13:10:59 +00:00
David Turner
0d0365ec59 avoid heap explosion in the case of malformed .Z font files
related to bug #19910, but not a bugfix yet
2007-05-22 09:53:44 +00:00
Werner Lemberg
9df3c223f7 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
(ps_dimension_set_mask_bits): Remove `const'.
2007-05-20 18:07:52 +00:00
Werner Lemberg
0f2b7bda6e * src/sfnt/ttmtx.c (tt_face_get_metrics)
[!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
2007-05-19 15:15:47 +00:00
Werner Lemberg
b826fa7589 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 07:18:48 +00:00
Werner Lemberg
6f99c88801 * 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-19 07:01:49 +00:00
Werner Lemberg
95bc9d3a07 * 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-16 15:19:42 +00:00
Werner Lemberg
6ae7ff0607 Formatting, typos. 2007-05-15 11:55:37 +00:00
David Turner
0a24bd259a do not use functions from <ctypes.h>, they are locale-dependent (and slower) 2007-05-15 10:54:10 +00:00
Werner Lemberg
607dec79bb * 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-15 06:49:37 +00:00
Werner Lemberg
56ceaa4853 Formatting. 2007-05-14 18:53:58 +00:00
Werner Lemberg
8d463a53d1 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
if FT_RENDER_POOL_SIZE is > 0.  From Savannah patch #5928.
2007-05-13 16:01:55 +00:00
David Turner
711cf84749 implement FTC_ImageCache_LookupScaler and FTC_SBitCache_LookupScaler,
which allow us to specify the font size with a FTC_Scaler structure,
hence enabling fractional point sizes, etc...
2007-05-11 14:36:24 +00:00
David Turner
a8b45e6183 fix a typo that force CVT scaling to be re-run on each glyph load 2007-05-11 14:10:30 +00:00
Werner Lemberg
94be20ea82 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
(af_latin_metrics_scale_dim): Fix compiler warnings.
2007-05-09 20:02:55 +00:00
Werner Lemberg
4127103f8d * builds/win32/visualce/freetype.sln: Removed, as requested by
Vincent.
2007-05-06 04:51:48 +00:00
Werner Lemberg
df49e697c1 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
PC targets.

* docs/CHANGES: Document them.
2007-05-04 06:30:05 +00:00
Werner Lemberg
5077e83e11 * 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-04 06:13:46 +00:00
Werner Lemberg
106eaf1dbb * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
* include/freetype/freetype.h (FT_Set_Char_Size): Update
documentation.
2007-05-03 07:07:47 +00:00
Werner Lemberg
1b5267dad1 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
`cmap'.
2007-04-28 21:06:15 +00:00
Werner Lemberg
cc712a248c * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
number of points in contours.  Problem reported by Victor Stinner
<victor.stinner@haypocalc.com>.
(TT_Process_Simple_Glyph): Synchronize variable types.
2007-04-27 17:16:50 +00:00
Werner Lemberg
45bb18fc7b * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
zero in case of error.  This fixes Savannah bug #19689.
2007-04-26 06:26:35 +00:00
Werner Lemberg
fcc1f472c3 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
Ignore `hhea' table.  This fixes Savannah bug #19261.
2007-04-10 11:51:50 +00:00
Werner Lemberg
14bf82e129 * 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-10 04:09:49 +00:00
Werner Lemberg
f4a52a6c42 * 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-09 08:40:11 +00:00
Werner Lemberg
c81cf61fcf Fix ChangeLog. 2007-04-06 09:28:23 +00:00
David Turner
1dcb4448c1 fixed a memory buffer overwrite bug. Damn !! 2007-04-06 08:19:04 +00:00
Werner Lemberg
9f83e05502 * Version 2.3.3 released.
=========================


Tag sources with `VER-2-3-3'.

* docs/CHANGES: Mention CVE-2007-1351.
2007-04-05 02:28:23 +00:00
Werner Lemberg
7478197e00 formatting 2007-04-03 19:39:28 +00:00
David Turner
7338ec2b53 make FT_Set_Char_Size deal with 0-valued resolution parameter like the other one 2007-04-03 14:30:34 +00:00
Werner Lemberg
94f1227f32 formatting; improved ChangeLog entries 2007-04-03 07:19:53 +00:00
David Turner
e6472c1251 detect "extra-light" fonts in the auto-hinter in order to avoid producing weird results with them 2007-04-02 13:13:54 +00:00
Werner Lemberg
644b1ad49e * builds/win32/visualc/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproc, README: s/2.3.2/2.3.3/,
s/232/233/.

* docs/CHANGES: Mention ftdiff.
2007-03-28 21:17:11 +00:00
David Turner
3f539694f1 fixing bug in the padding zero-ing of the bitmap emboldener 2007-03-28 14:53:40 +00:00
Werner Lemberg
a08b2176c1 * 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.
(_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
number of code points in Unicode.
2007-03-28 07:17:17 +00:00
David Turner
23553d6d2b * docs/CHANGES, docs/VERSION, include/freetype/freetype.h,
builds/unix/configure.raw, README, Jamfile: update documentation and bump version
	number to 2.3.3
2007-03-26 13:37:17 +00:00
David Turner
f58caa09bc fix autofit's blue zone computations: it now ignores 1-point contours that
correspond to mark attach coordinates, and not to the real glyph outline
2007-03-26 12:39:25 +00:00
David Turner
3b242d3619 last (tiny) fix to the bytecode interpreter and code cleanup 2007-03-26 12:03:04 +00:00
Suzuki, Toshiya (鈴木俊哉)
86a3ee7613 Disable Carbon framework dependency on 64bit ABI of Mac OS X 10.4.x 2007-03-26 05:40:55 +00:00
Werner Lemberg
14ffe0911f formatting 2007-03-22 06:12:43 +00:00
Suzuki, Toshiya (鈴木俊哉)
dabf0535a8 Temporal fix for 32bit unsigned long overflow on LP64 platform 2007-03-22 05:23:53 +00:00
Suzuki, Toshiya (鈴木俊哉)
4bcf957406 Suppress SGI compiler warning against setjmp 2007-03-22 04:53:45 +00:00
Werner Lemberg
c9f6c66f95 formatting 2007-03-21 13:30:14 +00:00
Suzuki, Toshiya (鈴木俊哉)
6fb74f676b Dequote OS_INLINE in configure.raw to avoid unexpected shell evaluation 2007-03-19 06:30:26 +00:00
David Turner
64a9ef20d5 another bytecode regression fix. Hopefully, this should be the latest 2007-03-18 07:35:08 +00:00
David Turner
74c34eba39 another bytecode interpreter regression fix 2007-03-18 07:19:31 +00:00
David Turner
89020d9749 fixing TrueType bytecode interpreter regression for HLB_____.TTF, needs more testing with other fonts 2007-03-17 17:48:57 +00:00
Werner Lemberg
25d592a71c * 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.vcproc, README: s/2.3.1/2.3.2/,
s/231/232/.
2007-03-09 07:59:35 +00:00
David Turner
121cad54ae updating version numbers and documentation 2007-03-08 16:43:50 +00:00
Werner Lemberg
1e259deda2 Fix ChangeLog; fix source code comment. 2007-03-08 15:39:21 +00:00
David Turner
3a51afac36 fixing implementation bug in ft_mem_strcpyn 2007-03-08 10:50:38 +00:00
Werner Lemberg
d112cf099b formatting, copyright years 2007-03-06 12:06:56 +00:00
Werner Lemberg
3d92f08bc5 * 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-06 11:59:24 +00:00
David Turner
dddd068e5d fix a small memory leak when FT_Init_FreeType fails for some reason 2007-03-05 18:23:25 +00:00
David Turner
91aaf3267b bugfix: do not erase root x_ppem and y_ppem values in tt_size_init_bytecode 2007-03-05 18:18:52 +00:00
David Turner
085bc6e2b2 fix bug in the PFM parser: kerning values must be read as 16-bit *signed* values 2007-03-05 17:40:03 +00:00
Werner Lemberg
de5e686661 formatting 2007-02-25 21:06:43 +00:00
David Turner
601aefe4ec fix postscript hinter's handling of small and ghost stems 2007-02-21 16:47:49 +00:00
Suzuki, Toshiya (鈴木俊哉)
b68e025c1b * Fix memory leak in ftmac.c, patch by Jjgod Jiang 2007-02-20 02:37:36 +00:00
Werner Lemberg
a091517a04 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
* src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
2007-02-16 08:12:50 +00:00
Werner Lemberg
3cd6cc24f2 formatting 2007-02-16 08:10:17 +00:00
David Turner
2c4500e981 improving TrueType bytecode interpreter to better match Windows behaviour
on tricky cases... FIX_BYTECODE is now the default to allow large testing
2007-02-14 15:08:47 +00:00
Werner Lemberg
eb3d1fdcb5 Fix ChangeLog. 2007-02-13 08:19:49 +00:00
David Turner
a6bdb667d9 better handling of serif segments in the Latin auto-fitter, gets rid of
broken "9" in Arial 9pt/96dpi
2007-02-12 22:33:48 +00:00
Werner Lemberg
c6a14086d2 * 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 22:08:15 +00:00
Werner Lemberg
406d25f379 more formatting and copyright years 2007-02-12 22:01:18 +00:00
Werner Lemberg
5c74d3592f Fix ChangeLog. 2007-02-12 21:46:18 +00:00
Werner Lemberg
173d0fe4d5 Fix ChangeLog. 2007-02-12 21:44:57 +00:00
Werner Lemberg
442bfb8913 Formatting, copyright years, s/memcpy/ft_memcpy/. 2007-02-12 21:44:10 +00:00
David Turner
2ef3e0f1cd fix inter-letter spacing of auto-hinted glyphs (non-light modes)w 2007-02-12 21:28:21 +00:00
David Turner
72a0dd247d some simplifications of the TrueType interpreter projection code
(preliminaries to various interpreter fixes)
2007-02-12 15:24:51 +00:00
David Turner
c0f9c4aadd introduce ft_mem_dup, ft_mem_strdup and ft_mem_strcpyn, and the corresponding
macros to use them (e.g. FT_STRDUP, FT_DUP and FT_STRCPYN)

modify the code to use them instead of raw mallocs/strcpy
2007-02-12 14:55:03 +00:00
Werner Lemberg
582067dc92 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
non-spacing glyphs.
2007-02-11 15:03:05 +00:00
Werner Lemberg
dcbb708e7a formatting, copyright years 2007-02-08 08:54:09 +00:00
Werner Lemberg
8f47453b6a * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
pointer.
2007-02-07 08:31:01 +00:00
Suzuki, Toshiya (鈴木俊哉)
f223df6e79 * Add __attribute__((deprecated)) to functions whose interface using non ANSI data types 2007-02-05 04:07:46 +00:00
Suzuki, Toshiya (鈴木俊哉)
beebb33202 * Fix to use builds/mac/ftmac.c if configured with --with-fsspec etc 2007-02-05 03:44:27 +00:00
Suzuki, Toshiya (鈴木俊哉)
4827e9bd2c * Add FT_GetFilePath_From_Mac_ATS_Name as replacement for FT_GetFile_From_Mac_ATS_Name 2007-02-05 03:28:29 +00:00
Suzuki, Toshiya (鈴木俊哉)
da5ada5def * Fixed wrong comment in ftmac.h 2007-02-05 02:46:27 +00:00
Suzuki, Toshiya (鈴木俊哉)
b8128d93a1 * Check ANSI compatibility of Mac OS X system header 2007-02-05 02:31:34 +00:00
Werner Lemberg
313d77761c * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
Explain why applications shouldn't use it.  Found by Alexei.
2007-02-01 08:10:45 +00:00
Werner Lemberg
4b2e83d5b5 A new set of spelling fixes from Alexei.
Add some copyright messages.
2007-02-01 07:58:02 +00:00
Werner Lemberg
53935939df * 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-31 08:53:02 +00:00
David Turner
3eaef6c170 updating version numbers to 2.3.1 2007-01-30 10:40:23 +00:00
David Turner
a7ee608c1d disable light auto-hinting optimization for the next release 2007-01-30 10:33:53 +00:00
Werner Lemberg
bf24176be5 formatting 2007-01-26 16:08:49 +00:00
David Turner
d91eebda1c improvement to glyph spacing, especially when light auto-hinting 2007-01-26 15:05:41 +00:00
Werner Lemberg
3b3f2baae4 * docs/release: Updated -- Savannah uses a new uploading scheme.
formatting
2007-01-25 22:14:40 +00:00
Werner Lemberg
d785566330 formatting, rearranging 2007-01-25 13:53:56 +00:00
David Turner
a42567bf66 - same CFF loader fix (stricter checking though than Werner's version)
- document light auto-hinter improvements
2007-01-25 12:23:37 +00:00
Werner Lemberg
b1be9e8b57 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
correctly.  This fixes Savannah bug #18867.

* docs/CHANGES: Document it.

Other formatting.
2007-01-25 11:50:00 +00:00
David Turner
741a17e82b * src/truetype/ttobjs.c: fixed typo that prevented compilation when
disabling both the unpatented and the bytecode interpreter in the
        TrueType font driver
2007-01-23 16:14:38 +00:00
David Turner
b6de8d1d3f * src/autofit/aflatin.c, src/autofit/aftypes.h, src/autofit/afwarp.h,
src/autofit/afwarp.c: fix and enable the warper to improve "light"
        hinting mode. This is not necessarily a final version, but it seems
        to work well
2007-01-23 15:51:50 +00:00
Werner Lemberg
42b63b2bba * ChangeLog: Split off older entries into...
* ChangeLog.22: This new file.
2007-01-21 21:01:33 +00:00
Werner Lemberg
555258fffe * docs/CHANGES: Document SHZ fix.
* src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
points.
2007-01-21 09:46:37 +00:00
Werner Lemberg
011d111218 * src/sfnt/ttmtx.c (tt_face_get_metrics)
[!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
2007-01-21 09:36:00 +00:00
Werner Lemberg
b800329782 Version 2.3.0 released. 2007-01-17 12:56:25 +00:00
Werner Lemberg
87a5a43e67 * docs/release: Updated. 2007-01-17 12:44:39 +00:00
David Turner
2212272992 * src/autofit/aflatin.c, src/cff/cffdriver.c, src/truetype/ttobjs.c,
src/truetype/ttinterp.c: fixing compiler warnings
2007-01-16 20:06:44 +00:00
Werner Lemberg
9b774e2822 Remove trailing whitespace. From Alexei. 2007-01-16 06:11:27 +00:00
Werner Lemberg
267e1d719a * 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-15 07:48:09 +00:00
Werner Lemberg
8c4120d0a3 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-15 06:42:40 +00:00
Werner Lemberg
6164a9d13b * docs/CHANGES, docs/INSTALL.MAC: Improvements. 2007-01-13 23:01:36 +00:00
Werner Lemberg
281c148621 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
versions up to 0x3FF without complaining.
2007-01-13 22:50:51 +00:00
Werner Lemberg
ac250b228a 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 14:01:36 +00:00
Werner Lemberg
23df31adcc * 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-13 08:45:00 +00:00
Werner Lemberg
27cf9de104 formatting, copyright years 2007-01-13 07:34:23 +00:00
Yamato, Masatake (大和正武)
9f9bc2bc46 Fix a typo. 2007-01-13 06:38:56 +00:00
David Turner
e3654532ea * src/base/ftbitmap.c: fixing memory stomping bug in the
bitmap embolderner when the pitch of the source bitmap is
        *much* larger than its width

        * src/truetype/ttinterp.c: fixing aliasing-related compilation
        warning
2007-01-13 00:19:18 +00:00
Werner Lemberg
6d96d31d98 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
`automake' CVS module from sources.redhat.com.
2007-01-12 10:30:19 +00:00
Werner Lemberg
17432b5e37 * 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-12 09:28:44 +00:00
David Turner
490503acf5 small doc update 2007-01-11 15:29:41 +00:00
David Turner
2c7a7fbafd updating libtool version number to 9.11.3 2007-01-11 15:14:16 +00:00
David Turner
7a3c564e2e * src/base/ftobjs.c (IsMacResource): fixed a small bug that caused a
crash with some Mac OS X .dfont files. Submitted by Masatake Yamoto.
2007-01-11 15:09:01 +00:00
David Turner
038ace28ad small MacOS X fix for autogen.sh 2007-01-11 15:00:59 +00:00
David Turner
7201108da0 pre-tag doc update 2007-01-10 14:33:18 +00:00
David Turner
d5ca74723c * Jamfile, README, builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL,
	include/freetype/freetype.h, include/freetype/t1tables.h,
	include/freetype/internal/tttypes.h: updating version
	number to 2.3.0 !!

	* include/freetype/ftchapters.h, include/freetype/ftgasp.h,
	include/freetype/ftlcdfil.h: updating reference documentation
	with GASP support and LCD filtering sections
2007-01-10 14:18:15 +00:00
David Turner
2628ea9c12 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections):
fixed a typo which created an endless loop with some malformed
        font files
2007-01-10 13:15:56 +00:00
Werner Lemberg
bf02d396ca * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
values.
2007-01-10 07:07:37 +00:00
Werner Lemberg
cc7f12a429 formatting, copyright years and messages, doc polishing 2007-01-09 10:37:36 +00:00
David Turner
4f7496eea2 updating docs/CHANGES 2007-01-09 09:21:16 +00:00
David Turner
f48b60ed59 * include/freetype/ftgasp.h, src/base/ftgasp.c: adding a
new API FT_Get_Gasp to return entries of the GASP table
        corresponding to a given character pixel size.

        * src/sfnt/ttload.c: add version check for the GASP table,
        in order to be better future-proof

        * include/freetype/config/ftheader.h: add definition of
        FT_GASP_H, corresponding to <freetype/ftgasp.h>

        * src/base/rules.mk, src/base/Jamfile, modules.cfg,
        builds/win32/visualc/freetype.dsp,
        builds/win32/visualc/freetype.vcproj: Adding src/base/ftgasp.c
        to the default build
2007-01-08 15:15:32 +00:00
Werner Lemberg
b8004d2e88 * src/cid/cidparse.c (cid_parser_new): Improve error message for
Type 11 fonts.
Scan for `/sfnts' token.
2007-01-07 09:13:38 +00:00
Werner Lemberg
e6b6f3733e * src/cid/cidparse.c (cid_parser_new): Reject Type 42 CID-keyed
fonts.
2007-01-07 00:06:47 +00:00
Werner Lemberg
be5f797f5b * src/cff/cffload.c (cff_index_init): Remove unused variable.
(cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
2007-01-06 07:51:48 +00:00
Werner Lemberg
f629439905 formatting, copyright years 2007-01-06 07:47:45 +00:00
David Turner
34fcd0b409 * src/pfr/pfrobjs.c (pfr_face_init): detect non-scalable fonts
correctly. fixes bug #17876
2007-01-05 15:55:59 +00:00
David Turner
384be23418 * src/truetype/ttobjs.h, src/truetype/ttobjs.c,
src/truetype/ttgload.c: do not allocate interpreter-specific
	tables in memory if we're not going to load glyphs with it
	anyway.
2007-01-05 15:32:01 +00:00
David Turner
4a89bb9a13 - reset FT_CONFIG_OPTION_OLD_INTERNALS which *disables* the previous optimization
(duhhh)
2007-01-05 14:48:27 +00:00
David Turner
91a3402d78 - don't load metrics table in memory, reduces heap usage
- forgot to commit the changes in cffload.c that are already documented
2007-01-05 14:47:08 +00:00
David Turner
9d7d50f789 fixing typo 2007-01-05 13:17:15 +00:00
David Turner
a3a3c5d711 small optimization in the CMAP 4 validator 2007-01-05 13:15:29 +00:00
David Turner
5dbdb6c3c4 * src/cff/cffload.c, src/cff/cffload.h, src/cff/cffgload.c,
src/cff/cfftypes.h: formatting + 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
2007-01-05 13:14:08 +00:00
David Turner
3a2131a30b formatting 2007-01-05 10:51:56 +00:00
Werner Lemberg
4ea0a7f0b6 formatting, minor doc fixes, copyright years 2007-01-05 09:03:31 +00:00
David Turner
f1c7e388ef add missing comments 2007-01-04 23:16:37 +00:00
David Turner
d10dff2bed formatting 2007-01-04 22:00:51 +00:00
David Turner
38d1002b8a * src/raster/ftraster.c: removing dynamically generated "count_table",
and replace it with a constant array of bytes
2007-01-04 18:50:12 +00:00
David Turner
8a2c7f8fb8 * src/raster/ftraster.c, src/smooth/ftgrays.c: small optimization, the
rasterizers now	uses the render pool to store their state during scanline
	convertion. this saves about 6 KB of heap space for each FT_Library instance
2007-01-04 18:33:12 +00:00
David Turner
91bd5ddf17 * src/smooth/ftgrays.c: small optimization, the rasterizer now
uses the render pool to store its state during its operation,
        this saves about 4 KB of heap for each FT_Library instance
2007-01-04 18:00:14 +00:00
David Turner
8a6c44e673 Getting rid of the FT_OPTIMIZE_MEMORY macro, since the optimization
is no longer experimental
2007-01-04 17:03:11 +00:00
David Turner
a8cf42bb7a * src/pshinter/pshalgo.c: remove a stupid 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 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-04 16:46:46 +00:00
Werner Lemberg
6b87e6f0ff * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
Remove compiler warning.

Formatting.
2007-01-02 19:20:08 +00:00
David Turner
9207e00198 adding documentation comment 2007-01-02 16:58:13 +00:00
Yamato, Masatake (大和正武)
d5d3e41dac (gxv_kern_subtable_fmt0_pairs_validate): New function. Checks uniqueness of the gid pairs.
(gxv_kern_subtable_fmt0_validate): Move some code to `gxv_kern_subtable_fmt0_pairs_validate'.
2006-12-30 20:17:30 +00:00
David Turner
115b442b23 * src/autofit/aflatin.c, src/truetype/ttgload.c: removing compiler
warnings

	* builds/win32/visualc/freetype.vcproj: adding _CRT_SECURE_NO_DEPRECATE
	to avoid deprecation warnings with Visual C++ 8
2006-12-22 11:37:05 +00:00
Werner Lemberg
4755bf7a82 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
[FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
2006-12-16 08:58:44 +00:00
Werner Lemberg
0fd08bdc6a formatting 2006-12-16 02:57:46 +00:00
Suzuki, Toshiya (鈴木俊哉)
1d5b6a6054 * Notes for simplification of src/base/ftmac.c 2006-12-15 15:44:56 +00:00
Suzuki, Toshiya (鈴木俊哉)
7a7d403d7a * Improve resource fork handler for POSIX 2006-12-15 14:47:42 +00:00
Werner Lemberg
ec5b4508cc * builds/toplevel.mk (version): Protect against `distclean' target. 2006-12-10 07:51:38 +00:00
Werner Lemberg
b26b314a93 * 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-09 20:01:43 +00:00
Werner Lemberg
4e1d6c0c51 * builds/toplevel.mk (dist): Extract version number from freetype.h. 2006-12-09 08:20:37 +00:00
Werner Lemberg
15c29503fb * src/tools/apinames (State): Remove final comma in structure -- xlc
v5 under AIX 4.3 doesn't like this.
2006-12-09 07:29:54 +00:00
Werner Lemberg
256a351264 Fix ChangeLog. 2006-12-08 06:49:33 +00:00
David Turner
dbf3b43aea * src/autofit/afloader.c (af_loader_load_g): small adjustment
to the spacing of auto-fitter glyphs. This only impacts rare
        cases (e.g. Arial Bold at rather small character sizes)
2006-12-07 21:18:09 +00:00
Werner Lemberg
1117131c03 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c. 2006-12-03 09:43:40 +00:00
Werner Lemberg
960ba59ad9 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
encoded in UTF-16BE.  Patch from Rajeev Pahuja <rpahuja@esri.com>.
(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.


Formatting.
2006-12-01 08:20:47 +00:00
David Turner
3a18c5e29e * src/smooth/ftgrays.c (gray_raster_render): return 0 when we're
trying to rendering into a zero-width/height bitmap, instead of an
    error code.
2006-11-28 08:38:31 +00:00
David Turner
80658e5075 * 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-28 08:09:20 +00:00
Werner Lemberg
8636c29ae8 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer. 2006-11-26 22:28:13 +00:00
David Turner
1bd6c47260 * src/autofit/afhints.c: add stubs to link the "ftgrid" test program
when debugging is disabled in the auto-hinter
2006-11-25 01:30:40 +00:00
David Turner
81e725f513 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
src/autofit/aftypes.h: Misc. auto-hinter improvements
2006-11-23 14:49:48 +00:00
Werner Lemberg
91959bf24c 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-22 10:36:55 +00:00
Werner Lemberg
913a365090 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-19 09:19:17 +00:00
Werner Lemberg
0d0d78dadc formatting 2006-11-14 10:37:10 +00:00
David Turner
a95e5c62de updating documentation 2006-11-13 13:24:30 +00:00
David Turner
29c191cd53 * src/base/ftlcdfil.c: added 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
2006-11-13 13:03:48 +00:00
David Turner
7bab6ae3e9 * src/truetype/ttinterp.c: undefined the FIX_BYTECODE macro,
since the interpreter "enhancements" are still too buggy for
      general use
2006-11-13 11:25:06 +00:00
David Turner
8765c71b41 * include/freetype/ftlcdfil.h, include/internal/ftobjs.h,
src/base/ftlcdfilt.c, src/smooth/ftsmooth.c: API change for
       the LCD filter, the FT_LcdFilter value is a enum describing
       which filter to apply, new values FT_LCD_FILTER_LIGHT and
       FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
       algorithm which produces incredible color fringes for everything
       except very-well hinted text)

       * src/autofit/aflatin.c: various tiny improvements that drastically
       improve the handling of serif fonts and of LCD/LCD_V hinting modes.
2006-11-10 16:49:42 +00:00
Werner Lemberg
49c77a87c3 Fix ChangeLog. 2006-11-09 21:51:57 +00:00
David Turner
4e9cc3c4ee * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): fixed
a stupid typo which created a variable-used-before-initialized bug
2006-11-09 16:31:52 +00:00
Werner Lemberg
5e43089b4f * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
also.
2006-11-07 09:35:03 +00:00
Werner Lemberg
111b5aefca * src/base/ftcalc.c: Don't use long long' but FT_Int64'.
Formatting
2006-11-03 09:40:12 +00:00
David Turner
91b44e65c2 - improve autofitter's handling of serif fonts (results are much better)
- make GCC 4 happy when compiling our zlib sources
2006-11-02 23:28:09 +00:00
David Turner
4060474815 - fixed a bug in af_compute_direction which generated ugly glyphs
- added more debug/log messages to help improve the auto-fitter
2006-11-02 16:37:35 +00:00
Werner Lemberg
e88c5261c3 * 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-24 05:46:26 +00:00
Werner Lemberg
715e96ecf4 formatting, improving ChangeLog entries 2006-10-24 05:28:45 +00:00
David Turner
a186139cad improve FT_Outline_Get_Orientation for broken asian fonts 2006-10-23 16:00:59 +00:00
David Turner
29873a0ccd * src/sfnt/ttmtx.c, src/cff/cffload.c: speeding up the CFF font
loader, with some large CFF fonts, FT_Open_Face is now 350% faster !
2006-10-23 10:23:17 +00:00
David Turner
e140f14232 * src/pshinter/pshalgo.c: major speed improvements to the Postscript
hinter, more than 100% speed increase on my machine
2006-10-23 08:56:57 +00:00
Werner Lemberg
b9e6d69a96 formatting 2006-10-15 08:58:40 +00:00
Suzuki, Toshiya (鈴木俊哉)
0708826049 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize the variable error 2006-10-15 07:15:28 +00:00
Suzuki, Toshiya (鈴木俊哉)
bfe872dad1 * preliminary autoconf-based cross-building support 2006-10-14 13:08:05 +00:00
Werner Lemberg
82a07e9378 * 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 06:20:44 +00:00
Suzuki, Toshiya (鈴木俊哉)
9d49961fcc * embed explicit Carbon dependency into freetype2.pc and freetype-config, if configured to use Carbon 2006-10-12 01:35:54 +00:00
Werner Lemberg
28e17d9707 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
development.
2006-10-11 17:27:47 +00:00
Jens Claudius
336d229f02 2006-10-03 Jens Claudius <jens.claudius@yahoo.com>
* 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-03 08:53:37 +00:00
Werner Lemberg
046bf8b0cc formatting 2006-10-03 08:43:42 +00:00
Werner Lemberg
2863cfa7c9 * src/base/ftbase.c: Undo change from 2006-09-30.
* src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
2006-10-01 17:04:00 +00:00
David Turner
df430e1a20 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c,
src/truetype/ttobjs.c: fixes related to the unpatented hinter
2006-10-01 00:09:35 +00:00
Werner Lemberg
1e4402e3dc * 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 22:10:36 +00:00
Werner Lemberg
2c002e13a7 formatting, improving documentation 2006-09-29 21:31:53 +00:00
Werner Lemberg
9b15ea341c * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
overlapping segments.  Bug reported by Stefan Koch.
2006-09-29 18:22:11 +00:00
David Turner
ad83071620 * include/freetype/internal/ftobjs.h, src/truetype/ttobjs.c,
src/base/ftobjs.c: fixed a bug in the automatic unpatented
        hinting support which prevented normal bytecode hinting to
        work properly

        * src/autofit/aftypes.h: undefining AF_DEBUG to get rid of
        traces
2006-09-27 16:20:59 +00:00
David Turner
87e4b339a3 * modules.cfg: adding ftlcdfil.c to the list of default base
extensions
2006-09-27 08:45:49 +00:00
David Turner
26bb2e27d1 * src/base/Jamfile, src/base/rules.mk, vms_make.com: adding
'ftlcdfil.c' to the list of compiled source files
2006-09-27 07:58:43 +00:00
David Turner
8a317cf7ab * include/freetype/freetype.h: bumping FT_FREETYPE_PATCH to 2
for an upcoming 2.2.2 release

        * include/freetype/ftlcdfil.h, src/freetype/ftlcdfil.c:
        added a new API to support color filtering of subpixel glyph
        bitmaps. In 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

        * src/smooth/ftsmooth.c: adding support for sub-pixel color
        filtering; simplifying a few function calls

        * include/freetype/config/ftheader.h: adding FT_LCD_FILTER_H
        macro that points to <freetype/ftlcdfil.h>
2006-09-27 07:52:48 +00:00
Werner Lemberg
e20df4a167 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
correctly.  Reported as Savannah bug #17843.
2006-09-27 06:29:21 +00:00
Werner Lemberg
110246c641 formatting 2006-09-26 21:55:44 +00:00
David Turner
e3d6e94853 CHANGES BETWEEN 2.2.1 and 2.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.

    - The PCF font loarder has been seriously hardened against malformed
      font files.

  II. IMPORTANT CHANGES

    - the unpatented hinter is now part of the default build of the
      library, and we added code to automatically support "tricky"
      fonts that need it.

      what this means is that FreeType should "just work" with certain
      Asian fonts, like MingLiu, which cannot properly load without a
      bytecode interpreter, but fortunately do not use any of the
      patented bytecode opcodes.

      Note that the API didn't change, so you can still force
      unpatented hinting with a special parameter to FT_Open_Face
      as well.

      if you're an embedded systems developer, you might want to
      *disable* the feature to save code space by undefining
      TT_CONFIG_OPTION_UNPATENTED_HINTING in ftoption.h.

    - LCD-optimized rendering is now disabled in all default builds
      of the library, mainly due to patent reasons. 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.

   - Some computation bugs in the TrueType bytecode interpreter were found,
     which allow us to get rid of very subtle and rare differences we had
     with the Windows renderer.

  III. MISCELLANEOUS

    - TrueType glyph loading is now about 25% faster.

    - the anti-aliased rasterizer has been optimized and is now 15% to 25%
      percent faster than the previous one, depending on content

    - the Type 1 loader has been improved; as an example, it now skips
      over top-level dictionaries properly

======================================================================
2006-09-26 16:58:21 +00:00
David Turner
6f8c622996 * src/autofit/aftypes.h, src/autofit/afhints.h,
src/autofit/afmodule.c: adding support for disabling
        horizontal and vertical hinting for the purpose of debugging
        the auto-fitter
2006-09-26 15:42:44 +00:00
Werner Lemberg
745ff2c29f * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
LWFN fails and both are available.
2006-09-19 05:48:02 +00:00
Werner Lemberg
f9644559a8 formatting 2006-09-12 13:48:10 +00:00
David Turner
f3050059dd * src/sfnt/sfobjs.c (tt_face_get_name): support some function
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: add unpatent-hinting selection for
        "mingli.ttf"
2006-09-11 12:00:32 +00:00
Werner Lemberg
36d2eab054 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
values which have the upper two bytes set to 0xFF instead of 0xFF
(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.

Formatting.
2006-09-05 19:24:34 +00:00
David Turner
c7bc9b7907 * src/smooth/ftgrays.c: minor source cleanups and optimization 2006-09-05 12:17:38 +00:00
David Turner
772e55d38e * src/smooth/ftgrays.c (gray_sweep): Avoid buffer overwrites
when to the end of a bitmap scanline. The fun never ends ;-)
2006-09-05 09:45:15 +00:00
Werner Lemberg
d1fc7d427b Fix ChangeLog. 2006-09-05 07:55:42 +00:00
David Turner
aa557a908a fix for the latest rasterizer optimization 2006-09-04 16:42:44 +00:00
Werner Lemberg
2d8629b393 * 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.

Formatting, copyright years.
2006-09-03 06:18:45 +00:00
David Turner
bd50295ca4 * src/smooth/ftgrays.c: optmized the performance of the anti-aliased
rasterizer. The speed gains is between 15% and 25%, depending on
    content
2006-09-01 19:05:24 +00:00
David Turner
6d79f214e1 * src/truetype/ttobjs.c: updated the TrueType loader to recognize
a few fonts that require the automatic unpatented loader
2006-09-01 14:09:35 +00:00
Werner Lemberg
d898aeddbe * configure: Make it possible to handle configure options which
have strings containing spaces.
2006-08-29 09:50:34 +00:00
Jens Claudius
a787f45580 2006-08-27 Jens Claudius <jens.claudius@yahoo.com>
Fix miscellaneous compiler warnings.

	* freetype2/include/freetype/internal/ftobjs.h: close
	comment with `*/' to avoid `/* in comment' compiler warning.

	* freetype2/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.

	* freetype2/src/base/ftobjs.c (t_validator_error): cast
	away volatileness of argument to ft_longjmp. Spotted by
	Werner `Putzfrau' Lemberg.

	* freetype2/src/bdf/bdflib.c (bdf_load_font): initialize
	local variable `lineno'.

	* freetype2/src/gxvalid/gxvmod.c (classic_kern_validate):
	mark local variable `error' volatile.
2006-08-27 11:26:18 +00:00
Werner Lemberg
c4c35b773d * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
Reported by Jens.

Formatting.
2006-08-27 08:03:46 +00:00
Jens Claudius
088e44e877 2006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Fix for previous commit, which caused many compiler warnings/errors
	about addresses of volatile objects passed as function arguments
	as non-volatile pointers.


	* freetype2/include/freetype/internal/ftvalid.h: Make
	FT_Validator typedef a pointer to a volatile object.

	* freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
	argument `table' a pointer to a volatile object.

	* freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
	argument `table' a pointer to a volatile object.
2006-08-22 14:24:30 +00:00
Werner Lemberg
1234299620 formatting 2006-08-19 11:18:09 +00:00
Jens Claudius
2652bd5412 2006-08-18 Jens Claudius <jens.claudius@yahoo.com>
* freetype2/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'.

	* freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
	parameter `face' and local variables `base', `gdef', `gpos', `gsub',
	`jstf', and 'valid'.

	* freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
	local variable `cmap'.
2006-08-18 17:20:37 +00:00
David Turner
33f5f24957 * include/freetype/internal/ftgloadr.h,
include/freetype/internal/tttypes.h, src/base/ftgloadr.c,
    src/base/ftobjs.c, src/truetype/ttgload.c, src/truetype/ttinterp.c,
    src/truetype/ttobjs.c: improvements to native TrueType hinting,
    this is a first try, controlled by the FIX_BYTECODE macro in
    src/truetype/ttinterp.c
2006-08-16 16:50:55 +00:00
David Turner
2b21a932f1 * src/base/ftobjs.c (ft_validator_run): disabling function, it is
buggy by design, so it will always return -1
2006-08-16 09:24:32 +00:00
David Turner
9fbfc6af07 * src/cid/cidgload.c (cid_slot_load_glyph),
src/truetype/ttgload.c (tt_prepare_zone): removing compiler warnings
2006-08-16 09:11:31 +00:00
Suzuki, Toshiya (鈴木俊哉)
f1e96066a6 * modules.cfg: compile ftgxval.c by default 2006-08-15 17:02:47 +00:00
Suzuki, Toshiya (鈴木俊哉)
e261f426d6 * src/otvalid/otvmod.c, src/gxvalid/gxvmod.c: replace ft_validator_run by ft_setjmp 2006-08-15 17:00:43 +00:00
Jens Claudius
9950adcc11 * freetype2/include/freetype/internal/psaux.h: (enum T1_TokenType_):
add T1_TOKEN_TYPE_KEY. (struct T1_FieldRec_) add `dict'. Add macros
T1_FIELD_DICT_FONTDICT and  T1_FIELD_DICT_PRIVATE. Change T1_NEW_XXX and
T1_FIELD_XXX macros to take the dictionary where the PS keywords is
expected as an additional argument.

* freetype2/src/cid/cidload.c: (T1_FieldRec): Adjust invocations
of T1_FIELD_XXX.

* freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.

* freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
(ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY
instead as T1_TOKEN_TYPE_ANY. (ps_parser_load_field): Make sure a token
that should be a string or name is a string or name indeed. Avoid
memory leak if a keyword has been already encountered and its value
is overwritten.

* freetype2/src/type1/t1load.c: (T1_FieldRec): Adjust invocations of
T1_FIELD_XXX. (parse_dict): Ignore keywords that occur in the wrong
dictionary (e.g., in Private instead of FontDict).

* freetype2/src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX.
2006-08-13 12:14:36 +00:00
Werner Lemberg
814839a6d8 Fix ChangeLog. 2006-07-28 11:55:48 +00:00
Werner Lemberg
a4d6a1c8d1 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'.

* freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
Remove field `face', add `len_buildchar'.

* freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
field `buildchar'.

* freetype2/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.

* freetype2/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.

* freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
`buildchar' of T1_FaceRec.

* freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
`buildchar' of T1_FaceRec.
2006-07-19 09:54:56 +00:00
Werner Lemberg
1a380e02d1 * freetype2/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 freetype2/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.

* freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
fields `ndv_idx', `cdv_idx', and `len_buildchar'.

* freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
`default_design_vector' and `num_default_design_vector'.

* freetype2/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 freetype2/include/freetype/internal/psaux.h.

* freetype2/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.

* freetype2/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'.

* freetype2/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'.

* freetype2/src/type1/t1load.h (T1_LoaderRect): New field
`keywords_encountered'.
(T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.

* freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
New entries for parsing /NDV, /CDV, and /DesignVector.
2006-07-14 18:28:08 +00:00
Werner Lemberg
4af3c4d7ee 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-07-08 21:31:24 +00:00
Werner Lemberg
8eb05255fb * 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-27 06:20:01 +00:00
Werner Lemberg
24703f8b39 * 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-26 19:12:51 +00:00
Werner Lemberg
c011f4cba1 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-26 09:40:00 +00:00
Werner Lemberg
a2da05c2c5 Fix two hinting bugs as reported in
http://lists.nongnu.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-25 06:27:27 +00:00
Werner Lemberg
ef3d2c2347 formatting, copyright years 2006-06-25 06:07:14 +00:00
Suzuki, Toshiya (鈴木俊哉)
523119761a * src/base/ftmac.c: Add byteorder workaround for Intel Mac 2006-06-22 02:34:27 +00:00
Werner Lemberg
67d2f3a740 Fix ChangeLog. 2006-06-16 06:50:36 +00:00
Suzuki, Toshiya (鈴木俊哉)
817831f435 src/base/ftgxval.c, src/base/ftotval.c: return FT_Err_Unimplemented_Feature when validation service is unavailable 2006-06-15 09:05:41 +00:00
Werner Lemberg
b10e45a7fb * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
errors.
2006-06-08 07:32:56 +00:00
Werner Lemberg
7d48cb06b4 formatting 2006-06-08 06:00:08 +00:00
David Turner
5f1f75076c Fix memory leak described in Savannah bug #16768
* src/type1/t1afm.c (T1_Read_Metrics): fix memory leak
  which happened when the metrics file doesn't have kerning
  pairs.
2006-06-07 05:11:50 +00:00
Werner Lemberg
4836f955f3 formatting 2006-06-06 12:54:08 +00:00
David Turner
457b4a81a1 * include/freetype/internal/services/svpscmap.h, src/cff/cffcmap.c,
src/psaux/t1cmap.c, src/psnames/psmodule.c: Fix for the memory
        leak described in 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'
2006-06-06 08:14:14 +00:00
Werner Lemberg
d724f20e05 formatting 2006-06-04 15:17:41 +00:00
David Turner
ea4547ca03 * src/base/ftutil.c (ft_mem_qrealloc): fix the function
to accept 'item_size == 0' as well, though this sounds
  weird, it can theorically happen.

  see bug #16669
2006-06-04 14:50:57 +00:00
David Turner
0971735dce * 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"

  should fix bug #16668
2006-06-04 14:33:08 +00:00
Werner Lemberg
33779660ba * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
`-no-undefined'.  Reported by Christian Biesinger.
2006-05-26 06:30:05 +00:00
Werner Lemberg
24773d6dc6 * builds/win32/visualc/freetype.dsp: Release libraries no longer
have debug information, and debug libraries use `C7 compatible'
debug info.
2006-05-20 08:53:13 +00:00
Werner Lemberg
a6523a6719 Fix ChangeLog. 2006-05-20 08:47:01 +00:00
Suzuki, Toshiya (鈴木俊哉)
de0a96c5dd * fix 2 memory leaks in MacOS resource fork handler, Savannah bug #16631 2006-05-19 23:16:12 +00:00
Suzuki, Toshiya (鈴木俊哉)
8cfa8bd51a * remove Carbon dependency of Darwin, if configured with no option 2006-05-19 22:11:50 +00:00
Suzuki, Toshiya (鈴木俊哉)
4720060553 fix the 2nd part of Savannah bug #16590 2006-05-19 10:48:42 +00:00
Werner Lemberg
545c4e566e * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
[FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.


Formatting, documentation fixes.
2006-05-17 22:55:04 +00:00
David Turner
281679de85 * include/freetype/internal/tttypes.h, src/autofit/afangles.c,
src/autofit/afcjk.c, src/autofit/afhints.c, src/autofit/aflatin.c,
        src/autofit/aftypes.h, src/base/ftcalc.c, src/base/ftoutln.c,
        src/gzip/ftgzip.c, src/psaux/psconv.c, src/truetype/ttgload.c,
        src/type1/t1gload.c:

          this is a major patch used to drastically improve the performance
          of loading glyphs. This both speeds up loading the glypn vector
          themselves and the auto-fitter.

          note that we've started using inline assembler with GCC to
          implement FT_MulFix, given that this function is so damn
          important for the engine's performance.

          the resulting speed-up is about 25%.
2006-05-17 13:34:21 +00:00
David Turner
dc3ff31c3f * src/ftccmap.c (FTC_CMapCache_Lookup): changed 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.
2006-05-17 12:59:35 +00:00
Werner Lemberg
de2d90af6e * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
fixes the first part of Savannah bug #16590.


* docs/PROBLEMS: Updated icl issues.
2006-05-17 08:54:30 +00:00
Werner Lemberg
8ab412d48d Version 2.2.1 released. 2006-05-12 15:09:02 +00:00
Werner Lemberg
6e467a654d * src/tools/docmaker/tohtml.py (block_footer): Split into...
(block_footer_start, block_footer_middle, block_footer_end): This to
add navigation buttons.
(HtmlFormatter::block_exit): Updated.
2006-05-12 15:05:45 +00:00
Werner Lemberg
e12a471f6a * src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset.
Convert some files to UTF-8.
2006-05-12 14:20:43 +00:00
Werner Lemberg
6756dc15ba * 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).

* include/freetype/*: Many minor documentation improvements (adding
links, spelling errors, etc.).
2006-05-12 08:00:13 +00:00
Werner Lemberg
fd74ec68b4 * 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-12 04:00:44 +00:00
Yamato, Masatake (大和正武)
28b55a9bb6 (FT_Stream_Open): Check errno only if read system call returns -1.
Remove a redundant parenthesis.
2006-05-11 03:01:42 +00:00
Werner Lemberg
e0d1559591 * 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-10 13:44:47 +00:00
Werner Lemberg
b80d85fe9e * 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.
2006-05-10 04:47:35 +00:00
Werner Lemberg
a127ca42ca * 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-09 13:41:50 +00:00
Werner Lemberg
4df5b26fdf Put version information into the configure script. Reported by Paul
Watson <pwatson@redlinepy.com>.

* 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-08 07:10:29 +00:00
Werner Lemberg
1639c79482 * 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-06 16:44:58 +00:00
Werner Lemberg
4f3b5bbd95 * 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-04 07:13:05 +00:00
Werner Lemberg
a94746caee Formatting. 2006-05-03 20:39:55 +00:00
David Turner
679a252c24 * include/freetype/internal/ftmemory.h: allow compilation with
C++ compilers
2006-05-03 09:40:33 +00:00
Werner Lemberg
58eed04d5a * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed. 2006-05-02 22:26:09 +00:00
Werner Lemberg
94204895db Fix ChangeLog. 2006-05-02 22:24:06 +00:00
Werner Lemberg
c6afa1221a * 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.

Formatting, copyright years.
2006-05-02 22:22:16 +00:00
David Turner
9482ba50b7 * include/freetype/ftstream.h, src/base/ftstream.c: modifying
various frame-related functions to report the place where the
    frames were entered/extracted/exited/released in the memory debugger.
2006-05-02 10:21:28 +00:00
David Turner
9ca782569c * include/freetype/internal/ftmemory.h, src/base/ftbitmap.c,
src/base/ftmac.c, src/base/ftrfork.c, src/lzw/ftzopen.c,
    src/raster/ftrend1.c, src/sfnt/ttpost.c, src/truetype/ttgxvar.c,
    src/type42/t42parse.c, src/winfonts/winfnt.c: hardening the code
    against out-of-bounds conditions when allocating arrays. This is
    for the cases where FT_NEW_ARRAY and FT_RENEW_ARRAY are not used
    already. Introducing the new FT_ALLOC_MULT and FT_REALLOC_MULT
    macros.
2006-05-02 09:00:29 +00:00
David Turner
264f307e66 * include/freetype/fterrdef.h, include/freetype/config/ftconfig.h,
include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c,
    src/base/ftutil.c: udpating the memory management functions and
    macros to safely deal with array size buffer overflows, this
    corresponds to attemps 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
    will overflow and the array allocated will be 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, or make the engine crash later.

    the FT_ARRAY_NEW and FT_ARRAY_RENEW macro now check that the new
    count is no more than FT_INT_MAX/item_size, otherwise, a new error,
    named 'FT_Err_Array_Too_Large' will be returned.

    note that the memory debugger now works again when FT_DEBUG_MEMORY
    is defined, and FT_STRICT_ALIASING has disappeared, the corresponding
    code being now the default.
2006-05-02 06:34:27 +00:00
Suzuki, Toshiya (鈴木俊哉)
a229540280 fix bug in Mac_Read_POST_Resource() 2006-04-30 04:46:17 +00:00
Werner Lemberg
06fceb3f39 * builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c
and forthcoming versions.
2006-04-29 07:53:40 +00:00
Werner Lemberg
8fe6539026 Further C library abstraction. Based on a patch from
msn2@bidyut.com.

* 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.
2006-04-29 07:31:16 +00:00
Werner Lemberg
50ef72b6e3 * src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed,
obsolete.
2006-04-29 07:02:36 +00:00
Werner Lemberg
4e03fe76cc convert to UTF-8 2006-04-29 06:20:09 +00:00
Werner Lemberg
99854e7c5a Fix accents in ChangeLog. 2006-04-28 19:36:37 +00:00
Werner Lemberg
12cceaaca8 * builds/win32/visualc/freetype.vcproj: Updated. 2006-04-27 05:02:35 +00:00
David Turner
3b47dd6518 Releasing FreeType 2.2 2006-04-26 19:34:24 +00:00
Werner Lemberg
564b4432ca * src/psaux/psobjs.c (shift_elements): Don't use FT_Long but
FT_PtrDiff for `delta'.  Reported by Cline PILLET
<Celine.Pillet@Tagginfo.com>.
2006-04-26 15:02:52 +00:00
Werner Lemberg
8a8c6022bf Formatting, copyright years, documentation. 2006-04-22 12:24:52 +00:00
David Turner
7aa2010216 * src/sfnt/ttcmap.c: removed compiler warnings (gcc-4.0.2) 2006-04-21 08:38:35 +00:00
David Turner
8e438ead71 * include/freetype/ftincrem.h, include/freetype/ftmodapi.h,
include/freetype/freetype.h: Documentation update
2006-04-21 08:35:11 +00:00
David Turner
65c7c773aa * src/autofit/afloader.c: removing superfluous code in the auto-fitter's
loader
2006-04-13 07:51:58 +00:00
Detlef Würkner
7d04322e40 no message 2006-04-05 07:17:12 +00:00
Werner Lemberg
7f18de64b6 * builds/compiler/intelc.mk (TE): New variable.
(ANSIFLAGS): Updated.
2006-04-03 16:47:34 +00:00
Werner Lemberg
764b25145a * docs/PROBLEMS: New file. 2006-04-03 16:42:39 +00:00
Werner Lemberg
fd7456c796 * 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.
2006-04-03 15:46:48 +00:00
Werner Lemberg
4091786c81 Formatting. 2006-04-01 18:49:07 +00:00
David Turner
cf60371a1b updating documentation 2006-04-01 16:22:06 +00:00
David Turner
0f15e1c181 * include/freetype/ftcache.h, include/freetype/config/ftheader.h:
updating documentation comments
2006-04-01 16:11:53 +00:00
Werner Lemberg
6e9df6855d * builds/unix/install.mk (uninstall): Don't handle `cache'
directory which no longer exists.
2006-04-01 05:22:07 +00:00
Detlef Würkner
d51b41e085 no message 2006-03-29 06:35:26 +00:00
Werner Lemberg
fa3651e7d8 formatting, copyright year 2006-03-28 05:06:50 +00:00
David Turner
42137bc614 * src/sfnt/ttkern.c (tt_face_get_kerning): fixed a serious bug
that caused some programs to go into an infinite loop when dealing
        with fonts that don't have a properly sorted kerning sub-table
2006-03-27 20:10:26 +00:00
Werner Lemberg
26170df08b * 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-26 07:19:07 +00:00
Werner Lemberg
d6e2498f74 * src/tools/docmaker/tohtml.py (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-24 18:31:47 +00:00
Werner Lemberg
e0dd18fc79 * src/tools/docmaker/tohtml.py (html_header_1): The `DOCTYPE' comment must
be in uppercase.
2006-03-24 12:14:48 +00:00
Werner Lemberg
4db32ecbc5 * docs/CHANGES: Updated.
* src/tools/docmaker/tohtml.py (html_header_2): Add horizontal
padding between table elements.


Formatting, copyright years.
2006-03-24 11:54:53 +00:00
David Turner
2ce9203735 - added FT_Get_SubGlyph_Info API to freetype.h
- small fix to lsb/rsb delta computations
- cleaning up Jamfile
2006-03-23 20:58:20 +00:00
Werner Lemberg
6c5b617c59 * 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 15:30:41 +00:00
Werner Lemberg
3867d2f2fb * 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-22 08:03:06 +00:00
Werner Lemberg
5556dd2130 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve
algorithm.
2006-03-21 21:36:33 +00:00
Werner Lemberg
8439fe8575 * builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc),
README: s/2.1.10/2.2/.
2006-03-21 21:04:33 +00:00
Werner Lemberg
95f206b1ea * src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset
correctly.
2006-03-21 20:47:28 +00:00
Werner Lemberg
26377008e7 * 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.
2006-03-21 18:41:40 +00:00
Werner Lemberg
a62007fb17 Fix ChangeLog. 2006-03-21 17:41:40 +00:00
David Turner
24b9e87bca * src/autofit/aflatin.c (af_latin_metrics_scale): fixed small bug that
crash the auto-hinter (introduce by previous patch). aaah
2006-03-21 16:30:04 +00:00
Werner Lemberg
5a73d8d20f * builds/freetype.mk (CACHE_DIR, CACHE_H): Remove.
(FREETYPE_H): Updated.

* src/cache/rules.mk (CACHE_H_DIR): Remove.
(CACHE_DRV_H): Updated.

Formatting, copyright years.
2006-03-20 16:55:32 +00:00
David Turner
e091ce35ff * src/autofit/aflatin.c (af_latin_hints_init):
disable horizontal hinting for italic/oblique fonts
2006-03-20 16:01:28 +00:00
David Turner
da95af6cf6 * builds/win32/visualc/freetype.dsp: updating the project file, adding
missing base source files (e.g. 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/truetype/ttpload.c,
    src/truetype/ttpload.h, src/type1/t1afm.c, src/type1/t1objs.c:
      removing compiler warnings when building with Visual C++ 6 and /W4
2006-03-20 13:32:33 +00:00
David Turner
505667c6ee * builds/unix/install.mk:
changing the installation procedure to remove the 'freetype/cache'
      from the target directory.
2006-03-20 12:13:14 +00:00
David Turner
256de4b18f * 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:
      removing these header files from the public include directory.

    * include/freetype/config/ftheader.h:
      changing the definition of FT_CACHE_INTERNAL_XXX_H macros to
      redirect to FT_CACHE_H instead

    * src/cache/ftcbasic.c, src/cache/ftccache.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.c,
    src/cache/ftcmru.h, src/cache/ftcsbits.c, src/cache/ftcsbits.h:
      modifications to prevent using the FT_CACHE_INTERNAL_XXX_H macros,
      and grab the headers in 'src/cache' instead (see below).
2006-03-20 12:10:24 +00:00
David Turner
dad2a2de01 * 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: copying the cache's internal header files which
    were located in 'include/freetype/cache' to the 'src/cache' directory
    instead.

    Note that these files are not used by FreeType clients, all cache
    public APIs have been already moved to include/freetype/ftcache.h,
    and the FT_CACHE_INTERNAL_XXXX_H macros all resolve to it.

    the move is to allow us to modify the internals without intereference
    from rogue clients. Note that there are no known client that accesses
    the cache internals at the moment.
2006-03-20 11:48:13 +00:00
Werner Lemberg
e6a8fcac2f Fix ChangeLog. 2006-03-07 23:53:55 +00:00
David Turner
65b96aad1e * src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): prevent crashes
in Mozilla/FireFox print preview in Ubuntu Hoary
2006-03-07 00:38:24 +00:00
Werner Lemberg
e88d24c133 formatting 2006-02-28 21:49:54 +00:00
Wu, Chia-I (吳佳一)
9f5d3de3f0 * src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not
return error if size == 0.
2006-02-28 13:21:50 +00:00
Wu, Chia-I (吳佳一)
a87b08a7af * src/base/ftobjs.c (FT_Done_Library): Modules are removed in the
reversed order so that type42 module is removed before truetype
module.  This avoids double free in some occasions.
2006-02-28 09:53:23 +00:00
David Turner
e9a47198e6 * tagging VER-2-2-0-RC4
* docs/CHANGES: documentation updates
2006-02-28 09:26:58 +00:00
Suzuki, Toshiya (鈴木俊哉)
576c353179 enable ftgxval.c by default 2006-02-28 01:11:57 +00:00
Werner Lemberg
98d6a3acaa * 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 19:49:34 +00:00
Werner Lemberg
422d2a052a formatting, copyright years 2006-02-27 18:25:22 +00:00
Werner Lemberg
c07ee52005 * include/freetype/cache/ftccache.h
[FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of
ftc_node_done.
2006-02-27 18:13:12 +00:00
David Turner
c13e75fb1b * src/base/ftutil.c: ft_mem_alloc and related functions now return an
error if a negative size is passed in parameters.

    * src/cache/ftccache.c: make ftc_node_destroy FT_BASE_DEF, it needs to
    be exported for rogue clients

    * src/pshinter/pshglob.c: prevent problems with malformed fonts which
    have an odd number of blue values (these are broken according to the
    specs).

    * src/cff/cffload.c, src/type1/t1load.c: modify the loaders to force
    even-ness of 'num_blue_values'. Also change the CFF loader so that
    invalid entries in index files are ignored.
2006-02-27 13:14:42 +00:00
Wu, Chia-I (吳佳一)
cffa8b65be * src/base/ftobjs.c (FT_Set_Char_Size): Ahh.. forgot to check the case
width or height is 0.
2006-02-27 11:11:40 +00:00
Suzuki, Toshiya (鈴木俊哉)
2f239b8e88 Update MPW makefiles to new header inclusion introduced on 2006-02-16 2006-02-27 10:34:33 +00:00
Wu, Chia-I (吳佳一)
2e48a1a138 * src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics, FT_Load_Glyph):
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-27 09:18:07 +00:00
Werner Lemberg
f99d846c8a * docs/release: Minor additions and clarifications.
* docs/CHANGES: Updated to reflect many fixes for backwards
compatibility.  Still incomplete.
2006-02-26 17:50:59 +00:00
Werner Lemberg
0aaf429a23 Fix ChangeLog. 2006-02-26 17:30:15 +00:00
David Turner
b463665feb * 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-26 07:57:45 +00:00
Werner Lemberg
ae1e4b1577 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again). 2006-02-25 17:11:04 +00:00
Werner Lemberg
20a8d0cf38 * devel/ftoption.h: Synchronize with
include/freetype/config/ftoption.h.
2006-02-25 16:56:04 +00:00
Werner Lemberg
7f049f4221 Formatting, copyright years. 2006-02-25 16:52:16 +00:00
David Turner
de271ab8f0 * builds/unix/ftsystem.c, include/freetype/config/ftheader.h,
include/freetype/internal/services/svotval.h,
    include/freetype/internal/services/svpfr.h,
    src/base/ftsystem.c, src/bdf/bdfdrivr.c, src/cache/ftcbasic.c,
    src/cff/cffcmap.c, src/gzip/ftgzip.c, src/lzw/ftlzw.c,
    src/lzw/ftlzw2.c, src/psaux/t1cmap.c, src/sfnt/ttbdf.c,
    src/smooth/ftgrays.c:

       solved -Wmissing-prototypes warnings with GCC
2006-02-25 14:53:02 +00:00
David Turner
6c71c6b968 * include/freetype/config/ftoption.h, src/autofit/afcjk.c,
src/base/ftobjs.c, src/base/ftutil.c, src/cff/cffobjs.c,
    src/psaux/afmparse.c, src/sfnt/ttbdf.c, src/tools/apinames.c,
    src/truetype/ttdriver.c:

       solved compiler warnings as well as C++ compilation problems
2006-02-25 12:49:40 +00:00
Werner Lemberg
d7e6b76739 Formatting, copyright years, minor cleanups. 2006-02-25 06:24:28 +00:00
Wu, Chia-I (吳佳一)
88242072b8 * 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 11:53:21 +00:00
Wu, Chia-I (吳佳一)
032646139d * 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 rendering
the outline confuses some applications.
2006-02-24 11:18:40 +00:00
David Turner
478c591364 * tagging Third release candidate with VER-2-2-0-RC3 2006-02-24 09:56:23 +00:00
David Turner
ca7d76f789 * src/cache/ftcbasic.c: correcting compatibility hack bug 2006-02-24 09:09:10 +00:00
Wu, Chia-I (吳佳一)
a8e7a01965 * 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-24 06:11:30 +00:00
David Turner
88d8985a99 * src/cache/ftccmap.c: trying to hack binary compatibility for
gnustep-back (GNUstep backend module) which still crashes under
    Sarge.
2006-02-23 22:35:26 +00:00
Werner Lemberg
d4303da035 formatting, copyright years. 2006-02-23 21:01:34 +00:00
David Turner
481838e234 * src/bdf/bdflib.c: fixed a problem with large encodings.
Again, this patch comes from Debian libfreetype6 for 2.1.10 !
2006-02-23 12:40:14 +00:00
David Turner
6cda6c064f * src/bdf/bdflib.c: fixed a bug with zero-width glyphs
this patch comes from the Debian package for libfreetype6 !!
    How come nobody mentions this on the devel list ??
2006-02-23 12:37:18 +00:00
Wu, Chia-I (吳佳一)
890f807a7b * 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 20:47:39 +00:00
Werner Lemberg
5edafed12a Clean-ups, copyright years, formatting. 2006-02-22 08:23:35 +00:00
Wu, Chia-I (吳佳一)
facd9af542 * 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-22 07:59:35 +00:00
David Turner
0b5dc4df88 * include/freetype/ftmodapi.h, include/internal/ftserv.h,
include/internal/services/svtteng.h, src/base/ftobjs.c,
    src/truetype/ttdriver.c:

    adding a new API named FT_Get_TrueType_Engine_Type to determine
    wether we have a patented, unpatented or unimplemented TrueType
    bytecode interpreter.

    the FT_Get_Module_Flags API was removed consequently.
2006-02-21 22:36:23 +00:00
David Turner
c093db9d06 * src/sfnt/sfmtx.c: disabling memory optimization when
FT_CONFIG_OPTION_OLD_INTERNALS is used. This is because libXfont
    is directly accessing the HMTX data. Grrrrr....
2006-02-21 17:06:35 +00:00
David Turner
1ae134a233 * src/sfnt/sfobjs.c (sfnt_face_load): fixed silly bug that
prevented embedded bitmaps from being correctly listed and used

    * src/pfr/pfrsbit.c: fixed handling of character advances
2006-02-21 16:50:17 +00:00
Werner Lemberg
d41aecdbc0 formatting, doc improvements 2006-02-21 08:08:14 +00:00
David Turner
dd0f3609d7 * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
src/sfnt/ttsbit.h, src/sfnt/ttsbit.c: moving the definition
        of 'set_sbit_strike' and 'load_sbit_metrics' to their 2.1.8
        location. This is used to support binary compatibility with
        the X.Org server's libXfont library.

        note that this disables memory optimizations for the embedded
        bitmap loader.Sigh....
2006-02-20 23:50:21 +00:00
Werner Lemberg
f145e312df Formatting, copyright years, minor doc fixes. 2006-02-19 16:12:18 +00:00
David Turner
0880ac333a * builds/unix/unix-cc.in: don't filter-out exported functions
anymore, this is used to ensure that all FT_BASE internal
    functions are available for dynamic linking

    * include/freetype/ftcache.h, src/cache/ftcbasic.c,
    src/cache/ftccmap.c: try to revive old functions of the
    cache sub-system. We also try to support FTC_ImageCache_Lookup
    and FTC_ImageCache_SBit with legacy signatures through a gross
    hack (hope it works)
2006-02-17 17:23:13 +00:00
Werner Lemberg
1fae66950b * devel/ftoption.h: Synchronize with
include/freetype/config/ftoption.h.
2006-02-17 16:16:40 +00:00
Werner Lemberg
8e6f8c4d79 Formatting, copyright years, documentation improvements. 2006-02-17 08:07:09 +00:00
David Turner
cda2d957dc * builds/amiga/src/base/ftsystem.c, devel/ftoption.h
include/freetype/ftcache.h, include/freetype/ftoutln.h,
      include/freetype/cache/ftccache.h, include/freetype/cache/ftccmap.h,
      include/freetype/config/ftoption.h, include/freetype/internal/ftcalc.h,
      include/freetype/internal/ftdriver.h,
      include/freetype/internal/ftmemory.h,
      include/freetype/internal/ftobjs.h, include/freetype/internal/ftrfork.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/ftsystem.c, src/base/ftutil.c, src/bdf/bdfdrivr.c,
      src/cache/ftccache.c, src/cache/ftccback.h, src/cache/ftccmap.c,
      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:

    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.
2006-02-16 22:45:31 +00:00
Wu, Chia-I (吳佳一)
0d565fdc1d * 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.

* 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'.
Pretty trace messages.

* 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_): 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-15 07:44:31 +00:00