src/sfnt/ttload.c


Log

Author Commit Date CI Message
Werner Lemberg 75859970 2019-02-23T10:07:09 Update all copyright notices.
Werner Lemberg f686ad46 2019-01-22T20:31:44 Update copyright years.
Alexei Podtelezhnikov 3e8ec291 2018-10-26T23:23:48 [sfnt] Make `head' timestamps unsigned. It's been more than 2^31 seconds since 1904. * include/freetype/tttables.h (TT_Header): Change field types. * src/sfnt/ttload.c (tt_face_load_generic_header): Updated.
Werner Lemberg a0dd16fb 2018-08-15T18:13:17 Don't use `trace_' prefix for FT_COMPONENT arguments. * include/freetype/internal/ftdebug.h (FT_TRACE_COMP, FT_TRACE_COMP_): New auxiliary macros to add `trace_' prefix. (FT_TRACE): Use `FT_TRACE_COMP'. */* (FT_COMPONENT): Updated.
Werner Lemberg 9ac9060d 2018-06-03T09:01:17 [GSoC] src/*.*: Convert block comments to `light' style. This monster commit was created by applying Nikhil's scripts `docconverter.py' and `markify.py' to all C header and source files, followed up by minor manual clean-up. No change in functionality, of course. I used commit f7419907bc6044b9b7057f9789866426c804ba82 from https://github.com/nikramakrishnan/freetype-docs.git.
Werner Lemberg 0a0c2256 2018-01-02T09:33:57 Update copyright year.
Werner Lemberg 693a1181 2017-09-27T08:42:50 * src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning.
Alexei Podtelezhnikov 71d289da 2017-04-19T23:50:29 Typos.
Werner Lemberg 939df420 2017-01-26T21:41:38 [sfnt] Support `name' table format 1. * include/freetype/internal/tttypes.h (TT_LangTagRec): New structure. (TT_NameTableRec): Add fields `numLangTagRecords' and `langTags'. * src/sfnt/ttload.c (tt_face_load_name): Add support for language tags. Reduce array size of name strings in case of invalid entries. (tt_face_free_name): Updated. * docs/CHANGES: Updated.
Werner Lemberg f4e56966 2017-01-25T15:08:41 [sfnt] s/TT_NameEntry/TT_Name/. * include/freetype/internal/tttypes.h (TT_NameEntryRec): Renamed to... (TT_NameRec): This. (TT_NameTableRec): Updated. * src/base/ftsnames.c (FT_Get_Sfnt_Name): Updated. * src/sfnt/sfdriver.c (sfnt_get_ps_name): Updated. * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16, tt_name_entry_ascii_from_other): Renamed to... (tt_name_ascii_from_utf16, tt_name_entry_ascii_from_other): This, respectively. (TT_NameEntry_ConvertFunc): Renamed to... (TT_Name_ConvertFunc): This. (tt_face_get_name): Updated. * src/sfnt/ttload.c (tt_face_load_name, tt_face_free_names): Updated.
Werner Lemberg 563ae780 2017-01-04T20:16:34 Update copyright year.
Werner Lemberg bfa83bdc 2016-09-29T19:51:28 Comments.
Werner Lemberg 5224aae8 2016-08-10T19:47:29 [sfnt] Use correct type for `italicAngle' field (#48732). * src/sfnt/ttload.c (tt_face_load_post): Fix types.
Werner Lemberg fae4ec05 2016-07-29T06:43:32 [sfnt, truetype] Don't abort on invalid `maxComponentDepth'. Since 2016-05-16 we detect infinite recursion directly. * src/sfnt/ttload.c (tt_face_load_maxp): Don't adjust `maxComponentDepth'. * src/truetype/ttgload.c (load_truetype_glyph): Don't abort if `maxComponentDepth' is not valid. Instead, simply adjust its value and emit a tracing message.
Werner Lemberg 9adeab64 2016-01-13T11:54:10 Update copyright year.
Werner Lemberg 730b6d74 2015-09-19T12:41:12 [sfnt] Improve handling of invalid SFNT table entries (#45987). This patch fixes weaknesses in function `tt_face_load_font_dir'. - It incorrectly assumed that valid tables are always at the beginning. As a consequence, some valid tables after invalid entries (which are ignored) were never seen. - Duplicate table entries (this is, having the same tag) were not rejected. - The number of valid tables was sometimes too large, leading to access of invalid tables. * src/sfnt/ttload.c (check_table_dir): Add argument to return number of valid tables. Add another tracing message. (tt_face_load_font_dir): Only allocate table array for valid entries as returned by `check_table_dir'. Reject duplicate tables and adjust number of valid tables accordingly.
Werner Lemberg 493cc037 2015-03-06T05:38:31 * src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning. Found by Alexei.
Werner Lemberg 01f0842e 2015-02-22T12:03:28 [sfnt] Signedness fixes. * src/sfnt/pngshim.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap.c, src/sfnt/ttkern.c, src/sfnt/ttload.c, src/sfnt/ttpost.c, src/sfnt/ttsbit.c: Apply. * src/sfnt/sfdriver.c: Apply. (sfnt_get_ps_name): Simplify.
Werner Lemberg 92359bd8 2015-02-07T09:47:23 [sfnt] Fix Savannah bug #44184. * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir): No longer reject `htmx' and `vmtx' tables with invalid length but sanitize them.
Werner Lemberg f57fc59e 2015-01-17T20:41:43 Run `src/tools/update-copyright'.
Werner Lemberg 677ddf4f 2014-11-12T21:26:44 [sfnt] Fix Savannah bug #43590. * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir): Protect against addition overflow.
Werner Lemberg bc25de66 2013-11-16T07:52:20 [sfnt] Fix `OS/2' table version 5 support. We now follow the `official' announcement from Microsoft (on the OpenType mailing list, which unfortunately hasn't a public archive). * include/freetype/tttables.h (TT_OS2): s/usLowerPointSize/usLowerOpticalPointSize/, s/usUpperPointSize/usUpperOpticalPointSize/. * src/sfnt/ttload.c (tt_face_load_os2): Update, and set correct default values.
Werner Lemberg ee510510 2013-10-27T07:25:35 [sfnt] Implement support for `OS/2' table version 5. See http://typedrawers.com/discussion/470/new-microsoft-size-specific-design-selection-mechanism for the announcement. * include/freetype/tttables.h (TT_OS2): Add fields `usLowerPointSize' and `usUpperPointSize'. Since FreeType returns this structure only as a pointer through `FT_Get_Sfnt_Table', there shouldn't be any ABI problems. * src/sfnt/ttload.c (tt_face_load_os2): Implement it. * docs/CHANGES: Updated.
Darrell Bellert 01af71d4 2013-10-02T22:04:07 * src/sfnt/ttload.c (tt_face_load_pclt): Fix `pclt_fields'.
Behdad Esfahbod c799dd67 2013-08-27T21:46:03 * src/sfnt/ttload.c (tt_face_load_font_dir): Fix sign typos.
Werner Lemberg 274207eb 2013-07-18T12:38:57 [sfnt] Ignore invalid magic number in `head' or `bhed'. Other font engines seem to ignore it also. Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>. * src/sfnt/ttload.c (check_table_dir): Don't abort but warn only if we have an invalid magic number.
Werner Lemberg e3c93015 2013-03-14T11:21:17 */*: Use FT_Err_Ok only. This is a purely mechanical conversion.
Werner Lemberg 059bc335 2013-03-14T10:27:35 */*: Use `FT_THROW'. This is essentially a mechanical conversion, adding inclusion of `FT_INTERNAL_DEBUG_H' where necessary, and providing the macros for stand-alone compiling modes of the rasterizer modules. To convert the remaining occurrences of FT_Err_XXX and friends it is necessary to rewrite the code. Note, however, that it doesn't harm if some cases are not handled since FT_THROW is a no-op.
Werner Lemberg 309b8b31 2012-12-16T19:08:36 [sfnt] Fix Savannah bug #37936. * src/sfnt/ttload.c (tt_face_load_gasp): Avoid memory leak.
Andreas Pehnack 1e168834 2012-10-20T11:42:22 [sfnt] Load pure CFF fonts wrapped in SFNT container. Such fonts only have a `cmap' and a `CFF' table. * src/sfnt/ttload.c (tt_face_load_font_dir): Don't call `check_table_dir' if font signature is `OTTO'.
Werner Lemberg ad05bac6 2012-03-14T18:34:36 [sfnt] Make arrays static like all others. * src/sfnt/ttload.c (tt_face_load_maxp, tt_face_load_os2), src/sfnt/ttmtx.c (tt_face_load_hhea): Add `static' keyword to frame fields.
Werner Lemberg cbe90292 2012-03-13T08:52:31 Comment typo.
suzuki toshiya e62c876b 2011-06-15T02:48:33 Fix g++4.6 compiler warnings in module drivers. The background is same with previous commit. * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Init `points'. (TT_Vary_Get_Glyph_Deltas): Init `delta_xy'. (TT_Get_MM_Var): Init `mmvar'. * src/type1/t1load.c (T1_Get_MM_Var): Ditto. * src/cff/cffdrivr.c (cff_ps_get_font_info): Init `font_info'. * src/cff/cffload.c (cff_index_get_pointers): Init `t'. (cff_font_load): Init `sub'. * src/cff/cffobjs.c (cff_size_init): Init `internal'. (cff_face_init): Init `cff'. * src/pfr/pfrload.c (pfr_extra_item_load_stem_snaps): Init `snaps'. * src/pcf/pcfread.c (pcf_get_properties): Init `properties'. (pcf_get_bitmaps): Init `offsets'. (pcf_get_encodings): Init `tmpEncoding'. * src/sfnt/ttload.c (tt_face_load_gasp): Init `gaspranges'. * src/sfnt/ttsbit.c (Load_SBit_Image): Init `components'. * src/cache/ftcmru.c (FTC_MruList_New): Init `node'. * src/gzip/ftgzip.c (FT_Stream_OpenGzip): Init `zip' and `zip_buff'. * src/lzw/ftlzw.c (FT_Stream_OpenLZW): Init `zip'. * src/bzip2/ftbzip2.c (FT_Stream_OpenBzip2): Init `zip'.
Werner Lemberg 05012ad9 2010-11-17T11:47:53 [sfnt] While tracing, output table checksums also. * src/sfnt/ttload.c (tt_face_load_font_dir): Do it.
Werner Lemberg 3987b15e 2010-10-02T11:46:19 Fix Savannah bug #31088 (sort of). * src/sfnt/ttload.c (tt_face_load_maxp): Always allocate at least 64 function entries.
Werner Lemberg 7d911736 2010-06-26T09:29:51 Fix Savannah bug #30262. * src/sfnt/ttload.c (tt_face_load_maxp): Limit `maxComponentDepth' arbitrarily to 100 to avoid stack exhaustion.
Werner Lemberg 370aea80 2010-06-08T08:37:11 Formatting.
Werner Lemberg 01975084 2009-11-16T23:10:53 Fix compiler warnings. Reported by Kevin Blenkinsopp <arqon@promode.org>. * src/sfnt/ttload.c (check_table_dir): Use proper data type.
Werner Lemberg 858abbed 2009-06-26T06:15:41 For warning messages, replace FT_ERROR with FT_TRACE0. FT_ERROR is now used only if a function produces a non-zero `error' value. Formatting, improving and harmonizing debug strings.
Werner Lemberg 76fffcd8 2008-12-05T18:37:44 * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): Use value 0x100 instead of 0x10000; the latter value is already occupied by FT_LOAD_TARGET_LIGHT. Bug reported by James Cloos. Handle SFNT with neither outlines nor bitmaps. This fixes Savannah bug #25010. * src/base/ftobjs.c (FT_Load_Glyph): Reject fonts with neither outlines nor bitmaps. * src/sfnt/sfobjs.c (sfnt_load_face): Don't return an error if there is no table with glyphs. * src/sfnt/ttload.c (tt_face_lookup_table): Improve debugging message. Other minor cosmetics.
Werner Lemberg 570b1fdb 2008-10-05T06:08:40 formatting
Suzuki, Toshiya (鈴木俊哉) 2d3e0af9 2008-10-05T02:38:57 * `FT_Open_Face' tries `open_face_PS_from_sfnt_stream' when a sfnt container is found but not OpenType.
Werner Lemberg 17e69011 2008-08-04T05:45:41 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.
Werner Lemberg 7cb9ec0f 2008-06-09T20:49:29 * 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'.
Werner Lemberg 6e87ed9f 2007-01-26T22:18:56 Spelling fixes from Alexei.
Werner Lemberg cc7f12a4 2007-01-09T10:37:36 formatting, copyright years and messages, doc polishing
David Turner f48b60ed 2007-01-08T15:15:32 * 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
Wu, Chia-I (吳佳一) 0d565fdc 2006-02-15T07:44:31 * 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.
Werner Lemberg 5225402a 2006-02-15T06:05:52 * include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in documentation that negative strength values are possible. Give an example call. * include/freetype/freetype.h (FT_GlyphSlotRec): Improve documentation of `outline' field. * src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H. * src/sfnt/sfdriver.c: Include ttmtx.h. * src/autofit/afcjk.c: Include aftypes.h and aflatin.h.
Wu, Chia-I (吳佳一) 65863a57 2006-02-14T07:01:29 Clean up the SFNT_Interface. In this pass, we want to treat the font directory (offset table and table directory) as a normal table like the others. This also means that TTC is no longer recognized there, but in `init_face'. * include/freetype/internal/sfnt.h (SFNT_Interface), src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are combined and renamed to `load_font_dir'. * src/sfnt/ttload.h, src/sfnt/ttload.c: s/sfnt_dir_check/check_table_dir/. `sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'. `tt_face_load_sfnt_header' and `tt_face_load_directory' are combined and renamed to `tt_face_load_font_dir'. * src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.
Wu, Chia-I (吳佳一) f5aa47be 2006-02-14T06:40:10 Clean up the SFNT_Interface. Table loading functions are now named after the tables' tags; `hdmx' is TrueType-specific and thus the code is moved to the truetype module; `get_metrics' is moved here from the truetype module so that the code can be shared with the cff module. This pass involves no real changes. That is, the code is moved verbatim mostly. The only exception is the return value of `tt_face_get_metrics'. * include/freetype/internal/sfnt.h, src/sfnt/rules.mk, src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c, src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface. * src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Metrics-related tables' loading and parsing code is moved here. Move `tt_face_get_metrics' here from the truetype module. The return value is changed from `void' to `FT_Error'. * include/freetype/internal/fttrace.h: New trace: ttmtx. * src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and parsing code is moved here. New function `tt_face_load_prep' splitted from `tt_face_load_fpgm'. `tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist. * src/cff/cffgload.c, src/cff/cffobjs.c: Update. * src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
Werner Lemberg 364db082 2005-12-07T20:34:11 * src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to... * src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs.
Werner Lemberg 840232ad 2005-11-21T12:36:42 * src/sfnt/ttload.c (sfnt_init): Add tracing message.
Wu, Chia-I (吳佳一) d81947e4 2005-11-21T03:04:03 * src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known before loading the table directory. * src/sfnt/ttload.c (tt_face_load_sfnt_header, tt_face_load_directory): Delay sfnt_dir_check from tt_face_load_sfnt_header to tt_face_load_directory.
Wu, Chia-I (吳佳一) 6f1eca04 2005-11-20T08:24:24 * src/sfnt/ttload.c (sfnt_dir_check): Clean up and return correct error code. (sfnt_init): New function to fill in face->ttc_header. A non-TTC font is synthesized into a TTC font with one offset table. (tt_face_load_sfnt_header): Use sfnt_init. Fix an invalid access when the font is TTC and face_index is -1.
Werner Lemberg 1a293d6c 2005-11-18T08:23:06 * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number of metrics instead of aborting. Patch suggested by Derek Noonburg.
Werner Lemberg 8eacad6d 2005-09-19T07:07:11 * freetype2/src/sfnt/ttload.c (sfnt_dir_check): Modified to allow a font to have no `head' table if tables `SING' and `META' are present; this is to support `SING Glyphlet'. `SING Glyphlet' is an extension to OpenType developed by Adobe primarily to facilitate adding supplemental glyphs to an OpenType font (with emphasis on, but not necessariy limited to, gaiji to a CJK font). A SING Glyphlet Font is an OpenType font that contains the outline(s), either in a `glyf' or `CFF' table, for a glyph; `cmap', `BASE', and `GSUB' tables are present with the same format and functionaliy as a regular OpenType font; there are no `name', `head', `OS/2', and `post' tables; there are two new tables, `SING' which contains details about the glyphlet, and `META' which contains metadata. Further information on the SING Glyphlet format can be found at: http://www.adobe.com/products/indesign/sing_gaiji.html * freetype2/include/freetype/ttags.h (TTAG_SING, TTAG_META): New macros for the OpenType tables `SING' and `META'. These two tables are used in SING Glyphlet Format fonts.
Werner Lemberg 3774b997 2005-08-20T05:45:42 * src/sfnt/ttload.c (tt_face_load_metrics_header): Ignore missing `hhea' table for SFNT Mac fonts. Change based on a patch by mpsuzuki@hiroshima-u.ac.jp.
Werner Lemberg 22ad9ef0 2005-05-09T22:11:36 Handle unsorted SFNT type 4 cmaps correctly (reported by Dirck Blaskey). * src/sfnt/ttcmap.h (TT_CMap): Add member `unsorted'. * src/sfnt/ttcmac.c: Use SFNT_Err_Ok where appropriate. (tt_cmap0_validate, tt_cmap2_validate, tt_cmap6_validate, tt_cmap8_validate, tt_cmap10_validate, tt_cmap12_validate): Use `FT_Error' as return type. (tt_cmap4_validate): Use `FT_Error' as return type. Return error code for unsorted cmap. (tt_cmap4_char_index, tt_cmap4_char_next): Use old code for unsorted cmaps. (tt_face_build_cmaps): Set `unsorted' variable in cmap. Minor formatting.
David Turner 1e03fff6 2005-03-01T22:57:25 removing compiler warnings
Werner Lemberg e793092d 2005-03-01T02:13:50 Formatting. * src/truetype/ttpload.c (tt_face_load_loca): Fix typo. * src/sfnt/ttkern.c: Include `ttkern.h'. (FT_COMPONENT): Updated. * include/freetype/internal/fttrace.h: Add entry for `ttkern'. * src/sfnt/ttsbit0.c: s/FT_Err_/SFNT_Err_/. Decorate constants with `U' and `L' where necessary. * src/sfnt/ttcmap.c (tt_cmap4_next): Remove unused variable.
David Turner e5680279 2005-02-26T00:12:04 * many, many files: several memory optimizations were implemented to drastically reduce the heap usage of FreeType, especially in the case of memory-mapped files. The idea is to avoid loading and decoding tables in the heap, and instead access the raw data whenever possible (i.e. when it doesn't compromise performance). This had several impacts: first, opening vera.ttf uses a ridiculous amount of memory (when the FT_Library footprint is accounted for), until you start loading glyphs. Even then, you'll save at least 20 Kb compared to the non optimized case. performance of various operations, including open/close has also been dramatically improved. More optimisations to come. The auto-hinter eats memory like crazy? This must be stopped...
Werner Lemberg 685dd4f7 2004-10-13T05:15:44 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Check for pointer overflow. * src/sfnt/ttload.c (tt_face_load_hdmx): Protect against bad input. Don't use FT_QNEW_ARRAY but FT_NEW_ARRAY to make deallocation work in case of failure. * src/sfnt/ttsbit.c (Load_SBit_Range): Check range intervals. (tt_face_load_sbit_strikes): Allocate `strike_sbit_ranges' after frame test. * src/truetype/ttgload.c (TTLoad_Simple_Glyph): Add assertion for `flag'.
Werner Lemberg 21ddf945 2004-06-24T06:56:06 * include/freetype/internal/ftmemory.h [FT_DEBUG_MEMORY]: Declare FT_QAlloc_Debug and FT_QRealloc_Debug. * src/base/ftutil.c (FT_QAlloc): Fix error and debug messages. (FT_QRealloc): Call FT_QAlloc if original pointer is NULL. Fix error message.
David Turner 5290d2fb 2004-06-23T15:44:03 performance optimizations regarding face opening
Werner Lemberg 695ce08c 2004-05-17T12:38:52 * src/sfnt/ttload.c (tt_face_load_max_profile): Always set face->root.num_glyphs. * src/sfnt/ttload.c (sfnt_dir_check): Handle `bhed' properly.
Werner Lemberg 44005cd3 2004-05-03T21:31:43 * src/sfnt/ttload.c (tt_face_free_names): Check that `table->names' is not NULL. Reported by Gordon Childs <gchilds@quickcut.com.au>.
Werner Lemberg c3dc56b8 2004-04-19T06:13:50 * src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph), src/ttdriver.c (Load_Glyph): Change type of `glyph_index' to FT_UInt. From Lex Warners. * src/sfnt/ttload.c (tt_face_load_sfnt_header): Really fix change from 2004-03-19. * src/bdf/bdfdrivr.c (BDF_Face_Init): Use `ft_strlen'. * src/pcf/pcfutil.c, src/pcf/pcfutil.h: Decorate functions with `static.'. Remove unused function `RepadBitmap'. * src/pcf/pcfdrivr.c: Don't include pcfutil.h.
Werner Lemberg 611eaa7f 2004-04-01T20:35:57 Handle broken FNT files which don't have a trailing NULL byte in the face name string. * src/winfnt/winfnt.h (FNT_FontRec): New member `family_name'. * src/winfnt/winfnt.c (fnt_font_done): Free font->family_name. (FNT_Face_Init): Append a final zero byte to the font face name. * src/sfnt/ttload.c (tt_face_load_sfnt_header): Fix change from 2004-03-19.
Werner Lemberg 2630e54d 2004-03-20T14:26:38 * src/sfnt/ttload.c (tt_face_load_sfnt_header): Reject face_index values > 0 if loading non-TTC fonts. * src/base/ftmac.c (open_face_from_buffer): Set positive face_index to zero before calling FT_Open_Face. * docs/CHANGES: Updated.
Werner Lemberg dfa46199 2004-03-05T09:26:24 * Jamfile, vms_make.com, builds/win32/visualc/freetype.dsp, builds/win32/visualc/freetype/vcproj, include/freetype/ftmoderr.h: Add LZW module. * Jamfile.in: Removed. * docs/CHANGES: Updated. * include/freetype/internal/ftobjs.h: s/MIN/FT_MIN/, s/MAX/FT_MAX/, s/ABS/FT_ABS/. Updated all callers. * src/type1/t1load.c (parse_dict), src/pcf/pcfdrivr.c (PCF_Face_Init): Use FT_ERROR_BASE. Add support for PCF fonts compressed with LZW (extension .pcf.Z, created with `compress'). * include/freetype/config/ftoption.h, devel/ftoption.h (FT_CONFIG_OPTION_USE_LZW): New macro. * include/freetype/ftlzw.h: New file. * include/freetype/config/ftheader.h (FT_LZW_H): New macro for ftlzw.h. * src/lzw/*: New files. * src/pcf/pcfdrivr.c: Include FT_LZW_H. (PCF_Face_Init): Try LZW also. * src/gzip/ftgzip.c: s/0/Gzip_Err_Ok/ where appropriate. Beautify.
Werner Lemberg b066c153 2003-12-16T06:42:11 * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: Removed. Obsolete. * include/freetype/internal/sfnt.h (SFNT_Interface): Remove obsolete fields `load_charmap' and `free_charmap'. (TT_CharMap_Load_Func, TT_CharMap_Free_Func): Removed. * src/sfnt/sfnt.c: Don't include ttcmap.c. * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttcmap.c. * src/sfnt/ttload.c: Don't include ttcmap.h. * src/sfnt/sfdriver.c: Don't include ttcmap.h. (sfnt_interface): Updated.
Owen Taylor 2c8530bd 2003-06-30T13:08:58 2003-06-25 Owen Taylor <otaylor@redhat.com> * src/sfnt/ttload.c (tt_face_load_hdmx): Don't assign num_records until we actually decide to load the table, otherwise, we'll segfault in tt_face_free_hdmx.
Werner Lemberg 779afe4b 2003-06-22T15:33:53 * src/winfonts/winfnt.c (FNT_Load_Glyph): Use first_char in computation of glyph_index. (FNT_Size_Set_Pixels): To find a strike, first check pixel_height only, then try to find a better hit by comparing pixel_width also. Without this fix it isn't possible to access all strikes. Also compute metrics.max_advance to be in sync with other bitmap drivers. * src/base/ftobjs.c (FT_Set_Char_Size): Remove redundant code. (FT_Set_Pixel_Size): Assign value to `metrics' after validation of arguments. Synchronize computation of height and width for bitmap strikes. The `width' field in the FT_Bitmap_Size structure is now only useful to enumerate different strikes. The `max_advance' field of the FT_Size_Metrics structure should be used to get the (maximum) width of a strike. * src/bdf/bdfdrivr.c (BDF_Face_Init): Don't use AVERAGE_WIDTH for computing `available_sizes->width' but make it always equal to `available_sizes->height'. * src/pcf/pcfread.c (pcf_load_font): Don't use RESOLUTION_X for computing `available_sizes->width' but make it always equal to `available_sizes->height'. * src/truetype/ttdriver.c (Set_Pixel_Sizes): Pass only single argument to function. * src/psnames/psmodule.c (ps_unicode_value): Handle `.' after `uniXXXX' and `uXXXX[X[X]]'. * src/bdf/bdfdrivr.c: s/FT_Err_/BDF_Err/. * src/cache/ftccache.c, src/cache/ftcsbits.c, src/cache/ftlru.c: s/FT_Err_/FTC_Err_/. * src/cff/cffcmap.c: s/FT_Err_/CFF_Err_/. * src/pcf/pcfdrivr.c: s/FT_Err_/PCF_Err_/. * src/psaux/t1cmap.c: Include psauxerr.h. s/FT_Err_/PSaux_Err_/. * src/pshinter/pshnterr.h: New file. * src/pshinter/rules.mk: Updated. * src/pshinter/pshalgo.c, src/pshinter/pshrec.c: Include pshnterr.h. s/FT_Err_/PSH_Err_/. * src/pfr/pfrdrivr.c, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c: s/FT_Err_/PFR_Err_/. * src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c, src/sfnt/ttload.c: s/FT_Err_/SFNT_Err_/. * src/truetype/ttgload.c: s/FT_Err_/TT_Err_/. * src/gzip/ftgzip.c: Load FT_MODULE_ERRORS_H and define FT_ERR_PREFIX and FT_ERR_BASE. s/FT_Err_/Gzip_Err_/.
Werner Lemberg 319c00d7 2003-04-23T19:48:24 Fixing bugs reported by Nelson Beebe. * src/base/ftstroker.c (FT_Stroker_ParseOutline): Remove unused variable `in_path'. * src/base/ftobjs (ft_glyphslot_set_bitmap): Change type of second argument to `FT_Byte*'. * include/freetype/internal/ftobjs.h: Updated. * src/bdf/bdflib.c (_bdf_readstream): Remove unused variable `res'. (_bdf_parse_glyphs): Remove unused variable `next'. Mark `call_data' as unused. * src/cache/ftlru.c (FT_LruList_Lookup): Remove unused variable `plast'. * src/pcf/pcfread.c (pcf_seek_to_table_type): Slight recoding to actually use `error'. (pcf_load_font): Remove unused variable `avgw'. * src/pfr/pfrobjs.c (pfr_face_get_kerning): Change return type to `void'. Mark `error' as unused. * src/pfr/pfrobjs.h: Updated. * src/pfr/pfrdrivr.c (pfr_get_kerning): Updated. * src/sfnt/ttload.c (sfnt_dir_check): Remove unused variable `format_tag'. * src/sfnt/ttcmap0.c (tt_cmap6_validate, tt_cmap10_validate): Remove unused variable `start'. (tt_cmap10_char_next): Remove unused variable `result' * src/sfnt/sfobjs.c (tt_face_get_name): Mark `error' as unused. * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Mark `error' as unused. * src/type1/t1objs.c (T1_Face_Init): Remove unused variable `pshinter'. * src/type1/t1gload.c (T1_Load_Glyph): Use `glyph_data_loaded' only for FT_CONFIG_OPTION_INCREMENTAL.
Werner Lemberg b442ca17 2003-04-23T15:50:27 Cleanups.
David Turner ae26c684 2003-02-25T20:37:50 * src/cache/ftccmap.c: the cmap cache now supports UCS-4 charmaps when available in Asian fonts * src/sfnt/ttload.c, src/base/ftobjs.c: changed "asian" to "Asian" in comments * src/truetype/ttdriver.c (Set_Char_Sizes): fixed a rounding bug when computing the scale factors for a given character size in points with resolution.
David Turner 79c23ae2 2003-01-22T22:53:55 * src/sfnt/ttload.c (sfnt_dir_check): relaxed the "head" table size verification to accept a few broken fonts who pad the size incorrectly (the table should be padded, but its "size" field shouldn't per se the spec)
Graham Asher 550fd439 2003-01-13T10:20:08 TrueType typefaces lacking hmtx (horizontal metrics) tables are tolerated if the incremental interface system is enabaled and an incremental interface has been specified. This is necessary to support some typefaces passed from GhostScript.
Werner Lemberg c219a5e8 2002-09-28T16:40:57 * src/include/freetype/internal/tttypes.h (num_sbit_strikes, num_sbit_scales): Use `FT_ULong'. * src/sfnt/sfobjs.c (sfnt_load_face): Updated accordingly. * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Ditto. (find_sbit_image): Remove cast. * src/raster/ftrend1.c (ft_raster1_render): Fix cast. * src/sfnt/ttload.c (tt_face_load_names): Use cast. * src/sfnt/ttcmap.c (code_to_next2): Use long constant. (code_to_index4): Use cast. (code_to_index8_12): Fix cast. * src/sfnt/ttcmap0.c (tt_cmap4_char_next, tt_cmap8_char_index, tt_cmap12_char_index): Use cast for `result'. (tt_face_build_cmaps): Use cast. * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_ucs4): Use cast for `code'. (sfnt_load_face): Use FT_Int32 for `flags'. * src/smooth/ftgrays.c (gray_render_scanline, gray_render_line, gray_compute_cbox, gray_convert_glyph, gray_raster_reset): Add casts to `TCoord' and `int'. More 16bit fixes. s/FT_Pos/TPos/. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Add casts.
Werner Lemberg 68e9f927 2002-09-27T11:09:23 * src/sfnt/ttpost.c (load_post_names, tt_face_free_ps_names, tt_face_get_ps_name): Replace switch statement with if clauses to make it more portable. * src/cff/cffobjs.c (cff_face_init): Ditto. * include/freetype/ftmodule.h (FT_Module_Class): Use `FT_Long' for `module_size'. * include/freetype/ftrender.h (FT_Glyph_Class_): Use `FT_Long' for `glyph_size'. * src/base/ftobjs.c (FT_Render_Glyph): Change second parameter to `FT_Render_Mode'. (FT_Render_Glyph_Internal): Change third parameter to `FT_Render_Mode'. * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Change second parameter to `FT_Render_Mode'. * src/raster/ftrend1.c (ft_raster1_render): Change third parameter to `FT_Render_Mode'. * src/smooth/ftsmooth.c (ft_smooth_render, ft_smooth_render_lcd, ft_smooth_render_lcd_v): Ditto. (ft_smooth_render_generic): Change third and fifth parameter to `FT_Render_Mode'. * include/freetype/freetype.h, include/freetype/internal/ftobjs.h, include/freetype/ftglyph.h: Updated. * src/cff/cffdrivr.c (Load_Glyph), src/pcf/pcfdriver.c (PCF_Glyph_Load), src/pfr/pfrobjs.c (pfr_slot_load), src/winfonts/winfnt.c (FNT_Load_Glyph), src/t42/t42objs.c (T42_GlyphSlot_Load), src/bdf/bdfdrivr.c (BDF_Glyph_Load): Change fourth parameter to `FT_Int32'. * src/pfr/pfrobjs.c (pfr_face_init): Add two missing parameters and declare them as unused. * src/cid/cidparse.h (CID_Parser): Use FT_Long for `postscript_len'. * src/psnames/psnames.h (PS_Unicode_Value_Func): Change return value to FT_UInt32. * src/psnames/psmodule.c (ps_unicode_value, ps_build_unicode_table): Updated accordingly. * src/cff/cffdrivr.c (Get_Kerning): Use FT_Long for `middle'. (cff_get_glyph_name): Use cast for result of ft_strlen. * src/cff/cffparse.c (cff_parse_real): User cast for assigning `exp'. * src/cff/cffload.c (cff_index_get_pointers): Use FT_ULong for some local variables. (cff_charset_load, cff_encoding_load): Use casts to FT_UInt for some switch statements. (cff_font_load): Use cast in call to CFF_Load_FD_Select. * src/cff/cffobjs.c (cff_size_init): Use more casts. (cff_face_init): Use FT_Int32 for `flags'. * src/cff/cffgload.c (cff_operator_seac): Use cast for assigning `adx' and `ady'. (cff_decoder_parse_charstrings): Use FT_ULong for third parameter. Use more casts. * src/cff/cffcmap.c (cff_cmap_unicode_init): Use cast for `count'. * src/cid/cidload.c (cid_read_subrs): Use FT_ULong for `len'. * src/cid/cidgload.c (cid_load_glyph): Add missing cast for `cid_get_offset'. * src/psaux/t1decode.c (t1_decoder_parse_charstrings) <18>: Use cast for `num_points'. (t1_decoder_init): Use cast for assigning `decoder->num_glyphs'. * src/base/ftdebug.c (ft_debug_init): Use FT_Int. * include/freetype/internal/ftdriver.h (FT_Slot_LoadFunc): Use `FT_Int32' for fourth parameter. * src/base/ftobjs.c (open_face): Use cast for calling clazz->init_face. * src/raster/ftraster.c (Set_High_Precision): Use `1' instead of `1L'. (Finalize_Profile_Table, Line_Up, ft_black_init): Use casts. * src/raster/ftrend1.c (ft_raster1_render): Ditto. * src/sfnt/sfnt_dir_check: Compare `magic' with unsigned long constant. * builds/amiga/include/freetype/config/ftmodule.h: Updated.
Werner Lemberg 6b5c669b 2002-09-05T15:10:54 * src/cid/cidobjs.c (CID_Size_Init): Renamed to... (cid_size_init): This. * src/psaux/psobjs.c (T1_Builder_Add_Point1): Renamed to... (t1_builder_add_point1): This. Updated all affected code. * src/pshinter/pshalgo3.c (psh3_hint_align): Fix compiler warnings. * src/type1/t1gload.c (T1_Compute_Max_Advance): Ditto. Formatting, minor doc fixes.
David Turner b08fe2dc 2002-08-27T20:20:29 * massive re-formatting changes to many, many source files. I don't want to list them all here. The operations performed were all logical transformations of the sources: - trying to convert all enums and constants to CAPITALIZED_STYLE, with #define definitions like #define my_old_constants MY_NEW_CONSTANT - big, big update of the documentation comments * include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c, include/freetype/ftimage.h: adding support for LCD-optimized rendering though the new constants/enums: FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V this is still work in progress, don't expect everything to work correctly though most of the features have been implemented. * adding new FT_LOAD_XXX flags, used to specify both hinting and rendering targets: FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering FT_LOAD_TARGET_MONO :: monochrome bitmaps FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering note that FT_LOAD_TARGET_NORMAL is 0, which means that the default behaviour of the font engine is _unchanged_.
Werner Lemberg 1039234c 2002-08-18T07:15:52 Adding some comments.
Werner Lemberg bdb10748 2002-07-27T22:51:28 * src/sfnt/ttload.c (sfnt_dir_check): Make it work with TTCs.
Werner Lemberg 7f74a52a 2002-07-26T09:09:10 Fixing ChangeLog entries. Some formatting. * src/truetype/ttgload.c (load_truetype_glyph) [FT_CONFIG_OPTION_INCREMENTAL]: s/memset/ft_memset/. * src/autohint/ahhint.c (ah_hint_edges_3): Fix compiler warning. * src/cff/cffload.c (cff_encoding_load): Remove `memory' variable. * src/cff/cffcmap.c (cff_cmap_encoding_init): Remove `psnames' variable. * src/truetype/ttgload.c (load_truetype_glyph): Remove statement without effect. * src/truetype/ttdriver (Get_Char_Index, Get_Next_Char): Removed.
Graham Asher 320da730 2002-07-19T11:40:51 More work on supporting fonts passed from GhostScript: sfnt_dir_check now ignores the tables 'glyx' and 'locx' which are hacked-out versions of 'glyf' and 'loca' in some PostScript Type 42 fonts, and will generally be invalid.
David Turner fed59b7c 2002-07-17T22:51:06 * src/sfnt/ttload.c (TT_Load_SFNT_Header): fixed a recent bug that prevented OpenType fonts to be recognized by FreeType
David Turner 3e19d85d 2002-07-17T21:52:20 * include/freetype/config/ftoption.h, include/freetype/internal/tttypes.h, src/base/ftobjs.c, src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/pcf/pcfdrivr.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h, src/sfnt/ttload.c, src/type1/t1objs.c, src/type42/t42objs.c, src/winfonts/winfnt.c: code cleanup, FT_CONFIG_OPTION_USE_CMAPS is now the default
David Turner b55464fa 2002-07-11T23:55:18 small fix
David Turner 3314a975 2002-07-11T23:51:44 small fix
David Turner 7acd73fd 2002-07-11T23:41:14 * src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttdriver.c: changing the SFNT loader to check for SFNT-based font files differently. We now ignore the range "helper" fields and check the "head" table's magic number instead.
David Turner a1e45652 2002-06-11T20:35:58 * builds/win32/ftdebug.c: added a missing #endif * src/sfnt/ttload.c, src/bdf/bdflib.c: removing compiler warnings * src/type42/t42objs.c: removed the bug that prevented un-hinted outlines to be loaded
Werner Lemberg 877ff678 2002-05-28T06:03:10 * src/base/ftnames.c (FT_Get_Sfnt_Name): Don't use FT_STREAM_READ_AT but FT_STREAM_READ. Declare `stream' variable.
David Turner 791d83a6 2002-05-27T23:52:01 * include/freetype/internal/tttypes.h, src/sfnt/ttload.c, src/sfnt/sfobjs.c, src/sfnt/sfdriver.c, src/base/ftnames.c: fixing the SFNT name table loader to support various buggy fonts. it now ignores empty name entries, entries with invalid pointer offsets and certain fonts containing tables with broken "storageOffset" fields. name strings are now loaded on demand, which reduces the memory requirements for a given FT_Face tremendously (for example, the name table of Arial.ttf is about 10Kb and contains 70 names !!) finally, this is a _quick_ fix. The whole name table loader and interface will be rewritten in a much more cleanly way shortly, once CSEH have been introduced in the sources.
Werner Lemberg bd889e5d 2002-05-12T19:59:17 * src/sfnt/ttload.c (TT_LookUp_Table): Protect against tables with a zero length value. * builds/beos/beos.mk: Include `link-std.mk'. * src/type1/t1load.h (T1_Loader): Renamed to... (T1_LoaderRec): This. (T1_Loader): Now pointer to T1_LoaderRec. * src/type1/t1load.c: Updated. * include/freetype/internal/t1types.h, src/type1/t1load.c, src/type1/t1objs.c: s/T1_ENCODING_TYPE_EXPORT/T1_ENCODING_TYPE_EXPERT/.
Werner Lemberg 948ee807 2002-05-02T06:50:58 * src/sfnt/ttcmap0.c (tt_cmap4_char_index): Fix serious typo (0xFFFU -> 0xFFFFU). * docs/INSTALL: Fix URL of makepp. formatting
David Turner 2062286f 2002-05-01T08:48:35 removed compiler warning
David Turner af48e32c 2002-05-01T08:38:08 * src/sfnt/ttload.c (TT_Load_Names): applied a small work-around to manage fonts containing a broken name table (e.g. "hya6gb.ttf")
Werner Lemberg 94ffae52 2002-04-14T00:54:32 * src/cff/cffgload.c (CFF_Parse_CharStrings): s/rand/Rand/ to avoid compiler warning. formatting/fixing ChangeLog