Commit Graph

1775 Commits

Author SHA1 Message Date
Werner Lemberg
17e6901112 Be more tolerant w.r.t. invalid entries in SFNT table directory.
* src/sfnt/ttload.c (check_table_dir): Ignore invalid entries and
adjust table count.
Add more trace messages.
(tt_face_load_font_dir): Updated.
2008-08-04 05:45:41 +00:00
Werner Lemberg
806f59341d * src/cff/cffgload.c (cff_decoder_parse_charstrings): No longer
assume that the first argument on the stack is the bottom-most
element.  Two reasons:

  o According to people from Adobe it is missing in the Type 2
    specification that pushing of additional, superfluous arguments
    on the stack is prohibited.

  o Acroread in general handles fonts differently, namely by popping
    the number of arguments needed for a particular operand (as a PS
    interpreter would do).  In case of buggy fonts this causes a
    different interpretation which of the elements on the stack are
    superfluous and which not.

Since there are CFF subfonts (embedded in PDFs) which rely on
Acroread's behaviour, FreeType now does the same.
2008-07-30 05:28:37 +00:00
Werner Lemberg
830846e645 Formatting, copyright years. 2008-07-27 06:27:21 +00:00
Werner Lemberg
7f30c0c64c Add extra mappings for Tcommaaccent' and tcommaaccent'. This
fixes Savanna bug #23940.

* src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): Rename to...
(EXTRA_GLYPH_LIST_SIZE): This.
Increase by 2.
(ft_wgl_extra_unicodes): Rename to...
(ft_extra_glyph_unicodes): This.
Add two code values.
(ft_wgl_extra_glyph_names): Rename to...
(ft_extra_glyph_names): This.
Add two glyphs.
(ft_wgl_extra_glyph_name_offsets): Rename to...
(ft_extra_glyph_name_offsets): This.
Add two offsets.

(ps_check_wgl_name, ps_check_wgl_unicode): Rename to...
(ps_check_extra_glyph_name, ps_check_extra_glyph_unicode): This.
Updated.
(ps_unicodes_init): Updated.
2008-07-27 05:43:59 +00:00
Werner Lemberg
bdcfddcd43 * src/cff/cffgload.c (cff_decoder_prepare,
cff_decoder_parse_charstrings): Improve debug output.
2008-07-26 21:22:20 +00:00
Werner Lemberg
e75da4576e * src/sfnt/ttcmap.c (tt_cmap4_validate, tt_cmap4_char_map_linear,
tt_cmap4_char_map_binary): Handle fonts which treat the last segment
specially.  According to the specification, such fonts would be
invalid but acroread accepts them.
2008-07-22 20:59:59 +00:00
Werner Lemberg
50997cd742 * src/pfr/pfrdrivr.c (pfr_get_advance): Fix off-by-one error.
* src/base/ftcalc.c (FT_MulFix): Fix portability issue.

* src/sfnt/ttpost.c (MAC_NAME) [!FT_CONFIG_OPTION_POSTSCRIPT_NAMES]:
Fix compiler warning.
2008-07-16 21:03:40 +00:00
Werner Lemberg
bd48d35bf8 Set FT_FACE_FLAG_CID_KEYED only if pure_cff is set. 2008-07-16 07:05:11 +00:00
Werner Lemberg
3d2f06f399 Handle CID-keyed fonts wrapped in a SFNT (with cmaps) correctly.
* src/cff/cffload.c (cff_font_load): Pass `pure_cff'.
Invert sids table only if `pure_cff' is set.
* src/cff/cffload.h: Udpated.

* src/cff/cffobjs.c (cff_face_init): Updated.
2008-07-16 06:13:34 +00:00
Werner Lemberg
6b19e095be * src/truetype/ttpload.c (tt_face_load_loca): Handle buggy fonts
where num_locations < num_glyphs.  Problem reported by Ding Li.
2008-07-09 06:20:12 +00:00
Werner Lemberg
ca6fc732b7 Fix ChangeLog. 2008-07-05 06:36:39 +00:00
Werner Lemberg
4e33f9e53c Since FreeType uses `$(value ...)', we now need GNU make 3.80 or
newer.

* configure: zsh doesn't like ${1+"$@"}.
Update needed GNU make version.
* builds/toplevel.mk: Check for `$(eval ...)'.
* docs/INSTALL.GNU, docs/INSTALL.CROSS, docs/INSTALL.UNIX: Document
it.
2008-07-05 06:35:28 +00:00
Werner Lemberg
71b8f3f2ed * src/raster/ftraster.c (Draw_Sweep): If span is smaller than one
pixel, only check for dropouts if neither start nor end point lies
on a pixel center.  This fixes Savannah bug #23762.
2008-07-04 07:22:06 +00:00
Werner Lemberg
be54a68c9d * Version 2.3.7 released.
=========================


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

* docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
version number to 2.3.7.

* README, Jamfile (RefDoc), builds/win32/visualc/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj,
builds/win32/visualce/index.html,
builds/win32/visualce/freetype.dsp,
builds/win32/visualce/freetype.vcproj: s/2.3.6/2.3.7/, s/236/237/.

* include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.

* builds/unix/configure.raw (version_info): Set to 9:18:3.

* docs/release: Updated.
2008-06-29 07:43:41 +00:00
Werner Lemberg
4e7d984d94 * src/ftlyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to...
* src/ftcalc.c: Here.  This fixes Savannah bug #23729.
2008-06-27 22:26:11 +00:00
Werner Lemberg
a741c6f2aa * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
Horizontal_Gray_Sweep_Drop): Test for intersections which
degenerate to a single point can be ignored; this has been confirmed
by Greg Hitchcock from Microsoft.  (This was commented out code.)
2008-06-27 06:58:48 +00:00
Werner Lemberg
8a9b63913f Improve navigation in API reference.
* src/tools/docmaker/tohtml.py (html_header_3): Renamed to...
(html_header_6): This.
(html_header_3, html_header_3i, html_header_4, html_header_5,
html_header_5t): New strings.
(toc_footer_start, toc_footer_end): New strings.
(HtmlFormatter::html_header): Updated.
(HtmlFormatter::html_index_header, HtmlFormatter::html_toc_header):
New strings.
(HtmlFormatter::index_enter): Use `html_index_header'.
(HtmlFormatter::index_exit): Print `html_footer'.
(HtmlFormatter::toc_enter): Use `html_toc_header'.
(HtmlFormatter::toc_exit): Print proper footer.

Convert ~ to non-breakable space.

* src/tools/docmaker/tohtml.py (make_html_para): Implement it.
Update header files accordingly.

Many other minor documentation fixes.
2008-06-26 19:56:51 +00:00
Werner Lemberg
e172c332bc minor formatting 2008-06-25 22:21:42 +00:00
Werner Lemberg
959cb8eb19 minor improvements 2008-06-25 20:58:33 +00:00
Suzuki, Toshiya (鈴木俊哉)
f3a924dd53 Fix for 10.4u SDK bundled to Mac OS X 10.5 2008-06-24 17:13:58 +00:00
Werner Lemberg
ce8853af81 * src/truetype/ttinterp. (Ins_SCANTYPE): Don't check rendering mode.
* src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph,
Draw_Sweep): No-dropout mode is value 2, not value 0.
(Draw_Sweep): Really skip dropout handling for no-dropout mode.
2008-06-24 11:19:03 +00:00
Werner Lemberg
5563bea093 * src/psaux/psobjs.c (t1_builder_close_contour): Don't add contour
if it consists of one point only.  Based on a patch from Savannah
bug #23683 (from John Tytgat).
2008-06-24 05:44:28 +00:00
Werner Lemberg
745a4f42a5 * src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff
with IS_HINTED.

* docs/CHANGES: Updated.
2008-06-22 22:41:24 +00:00
Suzuki, Toshiya (鈴木俊哉)
b1c36cfbd9 * builds/unix/configure.raw: Copy -isysroot option from CFLAGS to LDFLAGS, if required 2008-06-22 15:32:56 +00:00
Werner Lemberg
5df5dbb722 Enable access to the various dropout rules of the B&W rasterizer.
Pass dropout rules from the TT bytecode interpreter to the
rasterizer; temporarily this is enabled only if
`USE_SCAN_CONVERSION_RULES' is defined.

* include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS,
FT_OUTLINE_EXCLUDE_STUBS): New flags for for FT_Outline.

* src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the
OpenType specification.
Fix mode 4 computation.
(Render_Glyph, Render_Gray_Glyph): Handle new outline flags.

* src/truetype/ttgload.c (TT_Load_Glyph)
[USE_SCAN_CONVERSION_RULES]: Convert scan conversion mode to
FT_OUTLINE_XXX flags.

* src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check.
2008-06-22 13:40:08 +00:00
Werner Lemberg
5b631d894c * src/cff/cffobjs.c (cff_face_init): Compute final
`dict->units_per_em' value before assigning it to
`cffface->units_per_EM'.  Otherwise, CFFs without subfonts are be
scaled incorrectly if the font matrix is non-standard.  This fixes
Savannah bug #23630.

* docs/CHANGES: Updated.
2008-06-19 16:23:43 +00:00
Werner Lemberg
cd6dcca658 * src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm. 2008-06-19 06:20:21 +00:00
Werner Lemberg
d57a5e9fff * src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21.
Reported by Peter Weilbacher <mozilla@weilbacher.org>.

* docs/CHANGES: Updated.
2008-06-18 06:16:39 +00:00
Werner Lemberg
ca947c2551 * src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set
`valid->extra2' to 1.  This is undocumented in the OpenType 1.5
specification.
2008-06-16 05:33:51 +00:00
Werner Lemberg
ad83e05b37 * src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly
from clobbering.  Patch from Savannah bug report #23556.

* docs/CHANGES: Document it.
2008-06-15 11:06:12 +00:00
Werner Lemberg
b796adb451 * autogen.sh: Add option `--install' to libtoolize. 2008-06-10 17:15:35 +00:00
Werner Lemberg
6174e17cf7 * Version 2.3.6 released.
=========================


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

* docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
version number to 2.3.6.

* README, Jamfile (RefDoc), builds/win32/visualc/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj,
builds/win32/visualce/index.html,
builds/win32/visualce/freetype.dsp,
builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/.

* include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.

* builds/unix/configure.raw (version_info): Set to 9:17:3.


* include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x'
and `scale_y'.
* src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'.


* src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H.
* src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
2008-06-10 05:58:25 +00:00
Werner Lemberg
102bb83afd * src/base/ftobjs.c (open_face): Check `clazz->init_face' and
`clazz->done_face'.

Update documentation of FT_Driver_ClassRec.
2008-06-10 04:57:19 +00:00
Werner Lemberg
26bd7a2c5d s/enable_shared/build_libtool_libs/ 2008-06-09 21:27:17 +00:00
Werner Lemberg
630e24d965 Support debugging on WinCE. From Savannah patch #6536; this fixes
bug #23497.

* builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro
as a replacement for OutputDebugStringA (which WinCE doesn't have).
Update all callers.
(ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have
environment variables.
2008-06-09 21:20:18 +00:00
Werner Lemberg
a984fda881 * README.CVS: Updated.
* builds/unix/configure.raw: Updated for newer versions of autoconf
and friends.
2008-06-09 21:02:13 +00:00
Werner Lemberg
7cb9ec0f1c * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and
`private_len' unsigned.

* src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read
it as such.
(T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned.


* src/base/ftstream.c (FT_Stream_Skip): Reject negative values.


* src/type1/t1load.c (parse_blend_design_positions): Check `n_axis'
for sane value.
Fix typo.


* src/psaux/psobjs.c (ps_table_add): Check `idx' correctly.


* src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check
`last_point'.


* src/sfnt/ttload.c (tt_face_load_max_profile): Limit
`maxTwilightPoints'.
2008-06-09 20:49:29 +00:00
Werner Lemberg
d77e72295e * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0'
correctly.  This fixes glyphs `t' and `h' of Arial Narrow at 12ppem.
2008-06-05 22:07:19 +00:00
Werner Lemberg
4c3cc76ba0 * include/freetype/ftcache.h (FTC_FaceID): Change type back to
FT_Pointer.  Reported by Ian Britten <britten@caris.com>.
2008-06-03 20:53:49 +00:00
Werner Lemberg
8e3539bf7c Emit header info for defined FreeType objects in reference.
* src/tools/docmaker/content.py (re_header_macro): New regexp.
(ContentProcessor::__init__): Initialize new dictionary `headers'.
(DocBlock::__init__): Collect macro header definitions.

* src/tools/docmaker/tohtml.py (header_location_header,
header_location_footer): New strings.
(HtmlFormatter::__init__): Pass `headers' dictionary.
(HtmlFormatter::print_html_field): Don't emit paragraph tags.
(HtmlFormatter::print_html_field_list): Emit empty paragraph.
(HtmlFormatter::block_enter): Emit header info.
2008-06-02 13:53:54 +00:00
Werner Lemberg
7493ea12de * include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H,
FT_INCREMENTAL_H): Added.
2008-06-02 07:24:36 +00:00
Werner Lemberg
de0d00556e * src/tools/docmaker/sources.py (SourceBlock::__init__): While
looking for markup tags, return immediately as soon a single one is
found.
2008-05-28 21:51:15 +00:00
Werner Lemberg
c94fa6699c * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses
original, unscaled input values.  Confirmed by Greg Hitchcock from
Microsoft.
2008-05-27 23:24:07 +00:00
Werner Lemberg
35a90b7901 * src/tools/docmaker/tohtml.py (block_footer_start,
block_footer_middle): Beautify output.
2008-05-27 18:16:03 +00:00
Werner Lemberg
ffa496574a * src/truetype/ttgload.c (load_truetype_glyph): Move initialization
of the graphics state for subglyphs to...
(TT_Hint_Glyph): This function.
Hinting instructions for a composite glyph apparently refer to the
just hinted subglyphs, not the unhinted, unscaled outline.  This
seems to fix Savannah bugs #20973 and (at least partially) #23310.
2008-05-25 12:43:57 +00:00
Werner Lemberg
c938131856 * src/raster/ftraster.c (fc_black_render): Return 0 when we are
trying to render into a zero-width/height bitmap, not an error code.
2008-05-25 12:19:34 +00:00
Werner Lemberg
355f1b13d1 Fix ChangeLog. 2008-05-22 06:12:23 +00:00
Suzuki, Toshiya (鈴木俊哉)
062f88a4f3 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid aface is returned by FT_New_Face_From_FOND() 2008-05-20 07:57:53 +00:00
Werner Lemberg
5e8a368673 * src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after
correction for pixel boundary.  Without this patch, the effect can
be cumulative under certain circumstances, making glyphs taller and
taller after each call.  This fixes Savannah bug #19976.
2008-05-18 21:49:02 +00:00
Werner Lemberg
16dc51feae * src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr.
This fixes Savannah bug #23280.

* docs/CHANGES: Updated.

Some formatting.
2008-05-18 17:36:15 +00:00