blob: a88e4521ede995b35bb6a18796f4b6860c28f3ff [file] [log] [blame]
David Turner9fbfc6a2006-08-16 09:11:31 +000012006-08-16 David Turner <david@freetype.org>
2
3 * src/cid/cidgload.c (cid_slot_load_glyph),
4 src/truetype/ttgload.c (tt_prepare_zone): removing compiler warnings
5
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000062006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
7
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00008 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
9 build ftvalid in ft2demos. Commit on 2006-02-28 had been slipped.
10
112006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
12
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000013 `ft_validator_run' wrapping `setjmp' can cause crash, found by Jens:
14 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm
15
16 * freetype2/src/otvalid/otvmod.c: replace `ft_validator_run' by
17 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
18
19 * freetype2/src/gxvalid/gxvmod.c: Ditto.
20
Jens Claudius9950adc2006-08-13 12:14:36 +0000212006-08-13 Jens Claudius <jens.claudius@yahoo.com>
22
23 * freetype2/include/freetype/internal/psaux.h: (enum T1_TokenType_):
24 add T1_TOKEN_TYPE_KEY. (struct T1_FieldRec_) add `dict'. Add macros
25 T1_FIELD_DICT_FONTDICT and T1_FIELD_DICT_PRIVATE. Change T1_NEW_XXX and
26 T1_FIELD_XXX macros to take the dictionary where the PS keywords is
27 expected as an additional argument.
28
29 * freetype2/src/cid/cidload.c: (T1_FieldRec): Adjust invocations
30 of T1_FIELD_XXX.
31
32 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
33
34 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
35 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY
36 instead as T1_TOKEN_TYPE_ANY. (ps_parser_load_field): Make sure a token
37 that should be a string or name is a string or name indeed. Avoid
38 memory leak if a keyword has been already encountered and its value
39 is overwritten.
40
41 * freetype2/src/type1/t1load.c: (T1_FieldRec): Adjust invocations of
42 T1_FIELD_XXX. (parse_dict): Ignore keywords that occur in the wrong
43 dictionary (e.g., in Private instead of FontDict).
44
45 * freetype2/src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX.
46
Werner Lemberga4d6a1c2006-07-19 09:54:56 +0000472006-07-18 Jens Claudius <jens.claudius@yahoo.com>
48
49 Move creation of field `buildchar' of T1_DecoderRec out of
50 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
51 of it.
52
53 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
54 and `T1_Compute_Max_Advance'.
55
56 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
57 Remove field `face', add `len_buildchar'.
58
59 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
60 field `buildchar'.
61
62 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
63 finisher for T1_Decoder.
64 (cid_slot_load_glyph): Do not ignore failure when initializing the
65 T1_Decoder.
66
67 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
68 Updated.
69 (t1_decoder_init): Remove initialization of fields `buildchar' and
70 `len_buildchar'.
71 (t1_decoder_done): Remove deallocation of field `buildchar'.
72
73 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
74 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
75 T1_Decoder.
76 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
77 `len_buildchar'; make sure to call finisher for T1_Decoder even in
78 case of error.
79
80 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
81 `buildchar' of T1_FaceRec.
82
83 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
84 `buildchar' of T1_FaceRec.
85
Werner Lemberg1a380e02006-07-14 18:28:08 +0000862006-07-14 Jens Claudius <jens.claudius@yahoo.com>
87
88 * freetype2/include/freetype/internal/psaux.h: New macros
89 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
90 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
91 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
92 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
93 (T1_DecoderRec): New fields `buildchar' and `face'.
94 (IS_PS_TOKEN): New macro.
95
96 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
97 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
98
99 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
100 `default_design_vector' and `num_default_design_vector'.
101
102 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
103 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
104 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
105
106 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
107 `token' argument to be NULL if we want only to count the number of
108 tokens.
109 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
110 want to skip the array.
111 (ps_tofixedarray): Allow `values' argument to be NULL if we just
112 want to skip the array.
113
114 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
115 support for (partially commented out) othersubrs 19-25, 27, and 28.
116 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
117 (t1_decoder_done): Release new field `buildchar'.
118
119 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
120 functions.
121 (t1_keywords): Register them.
122 (t1_allocate_blend): Updated.
123 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
124 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
125 (parse_dict): Remove `keyword_flags' argument.
126 Use new macro IS_PS_TOKEN.
127 Changed function so that later PostScript definitions override
128 earlier ones.
129 (t1_init_loader): Initialize new field `keywords_encountered'.
130 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
131 `len_buildchar'.
132 Remove `keywords_flags'.
133
134 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
135 `keywords_encountered'.
136 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
137
138 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
139 New entries for parsing /NDV, /CDV, and /DesignVector.
140
Werner Lemberg4af3c4d2006-07-08 21:31:24 +00001412006-07-07 Werner Lemberg <wl@gnu.org>
142
143 Add many checks to protect against malformed PCF files.
144
145 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
146 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
147
148 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
149 data and check that tables don't overlap (using a simple
150 bubblesort).
151 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
152 New macros which give the size of data structures in the data
153 stream.
154 (pcf_get_properties): Use rough estimates to get array size limits.
155 Assign `face->nprops' and `face->properties' earlier so that a call
156 to PCF_Face_Done can do the clean-up in case of error.
157 Protect against invalid string offsets.
158 (pcf_get_metrics): Clean up code.
159 Adjust tracing message levels.
160 Use rough estimate to get array size limit.
161 (pcf_get_bitmaps): Clean up code.
162 Adjust tracing message levels.
163 Use rough estimates to get offset limits.
164 (pcf_get_encodings): Adjust tracing message level.
165 (pcf_get_accel): Clean up code.
166
Werner Lemberg8eb05252006-06-27 06:20:01 +00001672006-06-26 Werner Lemberg <wl@gnu.org>
168
169 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
170 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
171
Werner Lemberg24703f82006-06-26 19:12:51 +00001722006-06-26 Jens Claudius <jens.claudius@yahoo.com>
173
174 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
175 (t1_decoder_parse_charstrings): Operator with
176 opcode 15 pops its two arguments.
177 Handle the case where the pops of an othersubr may be part of a
178 subroutine.
179 Handle unknown othersubrs gracefully: count their operands and let
180 the following pop operators push the operands as the results onto
181 the Type1 stack.
182 Improve handling of setcurrentpoint opcode.
183
Werner Lembergc011f4c2006-06-26 09:40:00 +00001842006-06-25 Jens Claudius <jens.claudius@yahoo.com>
185
186 The Type 1 parser now skips over top-level procedures as required
187 for a `Simplified Parser'. This makes the parser more robust as it
188 doesn't poke around in PostScript code. Additionally, it makes the
189 FontDirectory hackery in src/type1/t1load.c unnecessary.
190
191 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
192 (skip_literal_string): Add FT_Error as return value.
193 Handle escapes better.
194 (skip_string): Add FT_Error as return value.
195 Don't set `parser->error' but return error code directly.
196 (skip_procedure): New function.
197 (ps_parser_skip_PS_token): Handle procedures.
198 Update code.
199 (ps_parser_to_token): Update code.
200 (ps_parser_load_field_table): Handle bbox entries also.
201
202 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
203 Add commented-out code for synthetic fonts.
204
Werner Lemberga2da05c2006-06-25 06:27:27 +00002052006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
206
207 Fix two hinting bugs as reported in
208 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
209
210 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
211 `first_point' member.
212
213 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
214 `first_point'.
215 (TT_Process_Composite_Glyph): Always untouch points.
216
217 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
218 `first_point' and `last_point' in case of composite glyphs.
219 (Ins_IUP): Fix computation of `end_point'.
220
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002212006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
222
Werner Lembergef3d2c22006-06-25 06:07:14 +0000223 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
224 Mac. The original patch was written by David Sachitano and Lawrence
225 Coopet, and modified by Sean McBride for MPW compatibility. Only
226 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +0000227
Werner Lembergef3d2c22006-06-25 06:07:14 +0000228 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
229 Mac OS X platforms.
230 (OS_INLINE): Undefine before definition.
231 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
232 FontAssociation table in FOND resource.
233 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
234 and fontSize at each entry of FontAssociation table in FOND
235 resource.
236 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
237 ffStylOff of FamilyRecord header of FOND resource, the header,
238 fontSize, fontID at each entry of FontAssociation table, and
239 StyleMapping table.
240 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +0000241
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002422006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
243
Werner Lemberg67d2f3a2006-06-16 06:50:36 +0000244 Public API of TrueTypeGX, OpenType, and classic kern table validator
245 should return `FT_Err_Unimplemented_Feature' if validation service
246 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +0000247 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +0000248 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
249
Werner Lemberg67d2f3a2006-06-16 06:50:36 +0000250 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
251 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
252 unavailable.
253 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
254 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +0000255
Werner Lemberg67d2f3a2006-06-16 06:50:36 +0000256 * src/base/ftotval.c (FT_OpenType_Validate): Return
257 FT_Err_Unimplemented_Feature if OpenType validation service is
258 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +0000259
Werner Lembergb10e45a2006-06-08 07:32:56 +00002602006-06-08 Werner Lemberg <wl@gnu.org>
261
262 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
263 errors.
264
David Turner5f1f7502006-06-07 05:11:50 +00002652006-06-07 David Turner <david@freetype.org>
266
Werner Lemberg7d48cb02006-06-08 06:00:08 +0000267 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
268 (T1_Read_Metrics): Fix memory leak which happened when the metrics
269 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +0000270
David Turner457b4a82006-06-06 08:14:14 +00002712006-06-06 David Turner <david@freetype.org>
272
Werner Lemberg4836f952006-06-06 12:54:08 +0000273 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +0000274
Werner Lemberg4836f952006-06-06 12:54:08 +0000275 We change `ps_unicodes_init' so that it also takes a
276 `free_glyph_name' callback to release the glyph names returned by
277 `get_glyph_name'
278
279 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
280 Renamed to ...
281 (PS_GetGlyphNameFunc): This.
282 (PS_FreeGlyphNameFunc): New typedef.
283 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
284
285 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
286 argument.
287 (cff_sid_free_glyph_name): New function.
288 (cff_cmap_unicode_init): Updated.
289
290 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
291
292 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
293 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +0000294
295
David Turner09717352006-06-04 14:33:08 +00002962006-06-04 David Turner <david@freetype.org>
297
Werner Lembergd724f202006-06-04 15:17:41 +0000298 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
299 `item_size == 0' as well -- though this sounds weird, it can
300 theorically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +0000301
Werner Lembergd724f202006-06-04 15:17:41 +0000302 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
303 of `face->num_glyphs' which missed the last glyph, due to
304 the offset-by-1 computation, since the PFR format doesn't
305 guarantee that glyph index 0 corresponds to the `missing
306 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +0000307
Werner Lemberg33779662006-05-26 06:30:05 +00003082006-05-25 Werner Lemberg <wl@gnu.org>
309
310 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
311 `-no-undefined'. Reported by Christian Biesinger.
312
Werner Lemberg24773d62006-05-20 08:53:13 +00003132006-05-19 Brian Weed <bw@imaginengine.com>
314
315 * builds/win32/visualc/freetype.dsp: Release libraries no longer
316 have debug information, and debug libraries use `C7 compatible'
317 debug info.
318
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00003192006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
320
Werner Lemberga6523a62006-05-20 08:47:01 +0000321 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +0000322 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +0000323
Werner Lemberga6523a62006-05-20 08:47:01 +0000324 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
325 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +0000326
327 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +0000328 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +0000329
3302006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
331
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +0000332 * build/unix/configure.raw: Add a fallback to disable Carbon
333 dependency, if configured with no options on Mac OS X.
334
3352006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
336
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +0000337 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +0000338 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +0000339 the second part of Savannah bug #16590.
340
Werner Lemberg545c4e52006-05-17 22:55:04 +00003412006-05-18 Werner Lemberg <wl@gnu.org>
342
343 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
344 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
345
David Turnerdc3ff312006-05-17 12:59:35 +00003462006-05-17 David Turner <david@freetype.org>
347
Werner Lemberg545c4e52006-05-17 22:55:04 +0000348 This is a major patch used to drastically improve the performance of
349 loading glyphs. This both speeds up loading the glyph vectors
350 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +0000351
Werner Lemberg545c4e52006-05-17 22:55:04 +0000352 We now use inline assembler code with GCC to implement `FT_MulFix',
353 which is probably the most important function related to the
354 engine's performance.
David Turner281679d2006-05-17 13:34:21 +0000355
Werner Lemberg545c4e52006-05-17 22:55:04 +0000356 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +0000357
358
Werner Lemberg545c4e52006-05-17 22:55:04 +0000359 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
360 `cursor' and `limit'.
361
362 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
363 New functions.
364 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
365 [TEST]: Remove.
366
367 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
368 code.
369
370 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
371 `FT_ZERO'
372 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
373 (af_glyph_hints_reload: Rewrite recognition of weak points.
374
375 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
376 constant values out of the loops.
377
378 * src/autofit/aftypes.h: Updated.
379
380 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
381
382 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
383 product to get orientation.
384
385 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
386 (FT_Stream_OpenGzip): Use it to handle small files directly in
387 memory.
388
389 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
390 Improve performance.
391
392 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
393 `limit'.
394
395 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
396 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
397 exceedingly large values of number of contours. Speed up by
398 reducing the number of loops.
399
400 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
401
402
403 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
404 used to detect rogue clients from 4 to 16. This is to prevent some
405 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
406 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +0000407
Werner Lembergde2d90a2006-05-17 08:54:30 +00004082007-05-17 Werner Lemberg <wl@gnu.org>
409
410 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +0000411 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +0000412
4132006-05-16 Werner Lemberg <wl@gnu.org>
414
415 * docs/PROBLEMS: Updated icl issues.
416
Werner Lemberg6756dc12006-05-12 08:00:13 +00004172006-05-12 Werner Lemberg <wl@gnu.org>
418
Werner Lemberg8ab412d2006-05-12 15:09:02 +0000419
420 * Version 2.2.1 released.
Werner Lembergde2d90a2006-05-17 08:54:30 +0000421 =========================
Werner Lemberg8ab412d2006-05-12 15:09:02 +0000422
423
424 Tag sources with `VER-2-2-1'.
425
4262006-05-12 Werner Lemberg <wl@gnu.org>
427
Werner Lemberg6756dc12006-05-12 08:00:13 +0000428 * src/tools/docmaker/sources.py (re_source_keywords): Add word
429 boundary markers.
430 * src/tools/docmaker/content.py (re_field): Allow `.' in field names
431 (but not at the beginning or end).
Werner Lemberge12a4712006-05-12 14:20:43 +0000432 * src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset.
Werner Lemberg6e467a62006-05-12 15:05:45 +0000433 (block_footer): Split into...
434 (block_footer_start, block_footer_middle, block_footer_end): This to
435 add navigation buttons.
436 (HtmlFormatter::block_exit): Updated.
Werner Lemberg6756dc12006-05-12 08:00:13 +0000437
438 * include/freetype/*: Many minor documentation improvements (adding
439 links, spelling errors, etc.).
440
Werner Lembergfd74ec62006-05-12 04:00:44 +00004412006-05-11 Werner Lemberg <wl@gnu.org>
442
443 * README: Minor updates.
444
445 * include/freetype/*: s/scale/scaling value/ where appropriate.
446 Many other minor documentation improvements.
447
448 * src/tools/docmaker/sources.py (re_italic, re_bold): Handle
449 trailing punctuation.
450 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Add
451 warning message for undefined cross references.
452 Update handling of re_italic and re_bold.
453
Yamato, Masatake (大和正武)28b55a92006-05-11 03:01:42 +00004542006-05-11 Masatake YAMATO <jet@gyve.org>
David Turner281679d2006-05-17 13:34:21 +0000455
456 * builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if
Yamato, Masatake (大和正武)28b55a92006-05-11 03:01:42 +0000457 read system call returns -1.
458 Remove a redundant parenthesis.
459
Werner Lembergb80d85f2006-05-10 04:47:35 +00004602006-05-10 Werner Lemberg <wl@gnu.org>
461
462 * builds/unix/ftsystem.c (FT_Stream_Open): Avoid infinite loop if
463 given an empty, un-mmap()able file. Reported and suggested fix in
464 Savannah bug #16555.
465
Werner Lemberge0d15592006-05-10 13:44:47 +0000466 * builds/freetype.mk (refdoc): Write-protect the `docmaker'
467 directory to suppress generation of .pyc files. According to the
468 Python docs there isn't a more elegant solution (currently).
469
470 * builds/toplevel.mk (dist): New target which builds .tar.gz,
471 .tar.bz2, and .zip files. Note that the version number is still
472 hard-coded.
473 (do-dist): Sub-target of `dist'.
474 (CONFIG_GUESS, CONFIG_SUB): New variables.
475 (.PHONY): Updated.
476
Werner Lemberga127ca42006-05-09 13:41:50 +00004772006-05-09 Rajeev Pahuja <rpahuja@esri.com>
478
479 * builds/win32/visualc/freetype.sln,
480 builds/win32/visualc/freetype.vcproj: Upgraded to VS.NET 2005 from
481 VS.NET 2003
482 Added files ftbbox.c, fttype1.c, ftwinfnt.c, ftsynth.c.
483
484 * builds/win32/visualc/index.html: Updated.
485
Werner Lemberg4df5b262006-05-08 07:10:29 +00004862006-05-07 Werner Lemberg <wl@gnu.org>
487
488 Put version information into the configure script. Reported by Paul
489 Watson <pwatson@redlinepy.com>.
490
491 * builds/unix/configure.ac: Renamed to...
492 * builds/unix/configure.raw: This which now serves (with appropriate
493 modifications) as a template for configure.ac.
494
495 * version.sed: New script.
496
497 * autogen.sh: Generate configure.ac from configure.raw, using
498 FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h.
499
Werner Lemberg1639c792006-05-06 16:44:58 +00005002006-05-06 Werner Lemberg <wl@gnu.org>
501
502 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
503
504 * builds/unix/configure.ac (version_info): Set to 9:10:3.
505
506 * builds/win32/visualc/index.html,
507 builds/win32/visualc/freetype.dsp,
508 builds/win32/visualc/freetype.vcproj, builds/freetype.mk (refdoc),
509 Jamfile (RefDoc), README: s/220/221/, s/2.2.0/2.2.1/.
510 Minor updates.
511
512 * docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS:
513 Updated.
514
515 * builds/unix/install-sh: Updated from `texinfo' CVS module at
Werner Lemberg4836f952006-06-06 12:54:08 +0000516 savannah.gnu.org.
Werner Lemberg1639c792006-05-06 16:44:58 +0000517
518 * devel/ftoption.h: Synchronize with
519 include/freetype/config/ftoption.h.
520
Werner Lemberg4f3b5bb2006-05-04 07:13:05 +00005212006-05-04 Werner Lemberg <wl@gnu.org>
522
523 * src/lzw/ftlzw2.c: Renamed to...
524 * src/lzw/ftlzw.c: This.
525
526 * src/lzw/Jamfile, src/lzw/rules.mk: Updated.
527
528 * builds/mac/FreeType.m68k_cfm.make.txt,
529 builds/mac/FreeType.m68k_far.make.txt,
530 builds/mac/FreeType.ppc_carbon.make.txt,
531 builds/mac/FreeType.ppc_classic.make.txt: Updated.
532
David Turner679a2522006-05-03 09:40:33 +00005332006-05-03 David Turner <david@freetype.org>
534
Werner Lemberga94746c2006-05-03 20:39:55 +0000535 Allow compilation again with C++ compilers.
536
537 * include/freetype/internal/ftmemory.h (FT_ASSIGNP,
538 FT_ASSIGNP_INNER): New macros which do the actual assignment, and
539 which exist in two variants (for C and C++).
540 Update callers accordingly.
David Turner679a2522006-05-03 09:40:33 +0000541
Werner Lemberg58eed042006-05-02 22:26:09 +00005422006-05-03 Werner Lemberg <wl@gnu.org>
543
544 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed.
545
Werner Lembergc6afa122006-05-02 22:22:16 +00005462006-05-02 Werner Lemberg <wl@gnu.org>
547
548 * include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++).
549 (FT_ALLOC): Remove redundant redefinition.
550
551 * builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use
552 `-Wstrict-prototypes'.
553
554 * src/base/ftstream.c (FT_Stream_EnterFrame): Add cast.
555
Werner Lemberg58eed042006-05-02 22:26:09 +0000556 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]:
557 Remove `extern'.
Werner Lemberg94204892006-05-02 22:24:06 +0000558
David Turner264f3072006-05-02 06:34:27 +00005592006-05-02 David Turner <david@freetype.org>
560
Werner Lembergc6afa122006-05-02 22:22:16 +0000561 Update the memory management functions and macros to safely deal
562 with array size buffer overflows. This corresponds to attemps to
563 allocate arrays that are too large. For an example, consider the
564 following code:
David Turner264f3072006-05-02 06:34:27 +0000565
Werner Lembergc6afa122006-05-02 22:22:16 +0000566 count = read_uint32_from_file(); array = malloc( sizeof ( Item ) *
567 count ); for ( nn = 0; nn < count; nn++ )
568 array[nn] = read_item_from_file();
David Turner264f3072006-05-02 06:34:27 +0000569
Werner Lembergc6afa122006-05-02 22:22:16 +0000570 If `count' is larger than `FT_UINT_MAX/sizeof(Item)', the
571 multiplication overflows, and the array allocated os smaller than
572 the data read from the file. In this case, the heap will be
573 trashed, and this can be used as a denial-of-service attack, or make
574 the engine crash later.
David Turner264f3072006-05-02 06:34:27 +0000575
Werner Lembergc6afa122006-05-02 22:22:16 +0000576 The FT_ARRAY_NEW and FT_ARRAY_RENEW macros now ensure that the new
577 count is no larger than `FT_INT_MAX/item_size', otherwise a new
578 error code `FT_Err_Array_Too_Large' will be returned.
David Turner264f3072006-05-02 06:34:27 +0000579
Werner Lembergc6afa122006-05-02 22:22:16 +0000580 Note that the memory debugger now works again when FT_DEBUG_MEMORY
581 is defined. FT_STRICT_ALIASING has disappeared; the corresponding
582 code is now the default.
David Turner264f3072006-05-02 06:34:27 +0000583
David Turner9ca78252006-05-02 09:00:29 +0000584
Werner Lembergc6afa122006-05-02 22:22:16 +0000585 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]:
586 Don't use `extern'.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +0000587
Werner Lembergc6afa122006-05-02 22:22:16 +0000588 * include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error
589 code.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +0000590
Werner Lembergc6afa122006-05-02 22:22:16 +0000591 * include/freetype/internal/ftmemory.h (FT_DEBUG_INNER)
592 [FT_DEBUG_MEMORY]: New macro.
593 (ft_mem_realloc, ft_mem_qrealloc): Pass new object size count also.
594 (ft_mem_alloc_debug, ft_mem_qalloc_debug, ft_mem_realloc_debug,
595 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
596 (FT_MEM_ALLOC, FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC,
597 FT_MEM_FREE): Redefine.
598 (FT_MEM_NEW_ARRAY, FT_MEM_RENEW_ARRAY, FT_MEM_QNEW_ARRAY,
599 FT_MEM_QRENEW_ARRAY): Redefine.
600 (FT_ALLOC_MULT, FT_REALLOC_MULT, FT_MEM_QALLOC_MULT,
601 FT_MEM_QREALLOC_MULT): New macros. Update callers where
602 appropriate.
603 (FT_MEM_SET_ERROR): Slightly redefine.
604
605
606 * src/base/ftdbgmem.c (_ft_debug_file, _ft_debug_lineno)
607 [FT_DEBUG_MEMORY]: New global variables, replacing...
608 (FT_MemTable_Rec) [FT_DEBUG_MEMORY]: Remove `filename' and
609 `line_no'. Update all callers.
610 (ft_mem_debug_alloc) [FT_DEBUG_MEMORY]: Avoid possible integer
611 overflow.
612 (ft_mem_alloc_debug, ft_mem_realloc_debug, ft_mem_qalloc_debug,
613 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
614
615 * src/base/ftmac.c (read_lwfn): Catch integer overflow.
616 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus): Ditto.
617 * src/base/ftutil.c: Remove special code for FT_STRICT_ALIASING.
618 (ft_mem_alloc. ft_mem_realloc, ft_mem_qrealloc): Rewrite.
619
Werner Lemberg4f3b5bb2006-05-04 07:13:05 +0000620
621 * include/freetype/ftstream.h (FT_FRAME_ENTER, FT_FRAME_EXIT,
622 FT_FRAME_EXTRACT, FT_FRAME_RELEASE): Use FT_DEBUG_INNER to report the
623 place where the frames were entered, extracted, exited or released
624 in the memory debugger.
625
626 * src/base/ftstream.c (FT_Stream_ReleaseFrame) [FT_DEBUG_MEMORY]:
627 Call ft_mem_free.
628 (FT_Stream_EnterFrame) [FT_DEBUG_MEMORY]: Use ft_mem_qalloc.
629 (FT_Stream_ExitFrame) [FT_DEBUG_MEMORY]: Use ft_mem_free.
630
Werner Lembergc6afa122006-05-02 22:22:16 +00006312006-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
632
633 * src/base/ftobjs.c (Mac_Read_POST_Resource): Correct pfb_pos
634 initialization, remove extra cast to copy to pfb_lenpos. This fixes
635 parsing of PFB fonts with MacOS resource fork (bug introduced
636 2003-09-11). Patch provided by Huib-Jan Imbens <ft@imbens.nl>.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +0000637
Werner Lemberg8fe65392006-04-29 07:31:16 +00006382006-04-29 Werner Lemberg <wl@gnu.org>
639
640 Further C library abstraction. Based on a patch from
641 msn2@bidyut.com.
642
643 * include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE,
644 ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc,
645 ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for
646 C library functions. Update all users accordingly (and catch some
647 other places where the C library function was used instead of the
648 wrapper functions).
649
650 * src/base/ftsystem.c: Don't include stdio.h and stdlib.h.
651 * src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't
652 include malloc.h.
653
Werner Lemberg06fceb32006-04-29 07:53:40 +0000654
655 * builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c
656 and forthcoming versions.
657
Werner Lemberg50ef72b2006-04-29 07:02:36 +00006582006-04-28 Werner Lemberg <wl@gnu.org>
659
660 * src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed,
661 obsolete.
662
Werner Lemberg12cceaa2006-04-27 05:02:35 +00006632006-04-27 yi luo <luoyi.ly@gmail.com>
664
665 * builds/win32/visualc/freetype.vcproj: Updated.
666
David Turner3b47dd62006-04-26 19:34:24 +00006672006-04-26 David Turner <david@freetype.org>
668
Werner Lemberg12cceaa2006-04-27 05:02:35 +0000669
670 * Version 2.2 released.
Werner Lembergc6afa122006-05-02 22:22:16 +0000671 =======================
Werner Lemberg12cceaa2006-04-27 05:02:35 +0000672
673
674 Tag sources with `VER-2-2-0'.
David Turner3b47dd62006-04-26 19:34:24 +0000675
Werner Lemberg564b4432006-04-26 15:02:52 +00006762006-04-26 Werner Lemberg <wl@gnu.org>
677
678 * src/psaux/psobjs.c (shift_elements): Don't use FT_Long but
Werner Lemberg4e03fe72006-04-29 06:20:09 +0000679 FT_PtrDiff for `delta'. Reported by Céline PILLET
Werner Lemberg564b4432006-04-26 15:02:52 +0000680 <Celine.Pillet@Tagginfo.com>.
681
David Turner8e438ea2006-04-21 08:35:11 +00006822006-04-21 David Turner <david@freetype.org>
683
Werner Lemberg8a8c6022006-04-22 12:24:52 +0000684 * include/freetype/ftincrem.h: Documentation updates.
685 (FT_Incremental_Interface): New typedef.
David Turner8e438ea2006-04-21 08:35:11 +0000686
Werner Lemberg8a8c6022006-04-22 12:24:52 +0000687 * include/freetype/ftmodapi.h, include/freetype/ftglyph.h:
688 Documentation updates.
689
690 * include/freetype/freetype.h: Documentation update.
691 (FT_HAS_FAST_GLYPHS): Always set to 0.
692
693 * include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New):
694 Take an FT_Library argument instead of FT_Memory.
695
696 * src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2).
David Turner7aa20102006-04-21 08:38:35 +0000697
David Turner65c7c772006-04-13 07:51:58 +00006982006-04-13 David Turner <david@freetype.org>
699
Werner Lemberg8a8c6022006-04-22 12:24:52 +0000700 * src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove
701 superfluous code in the auto-fitter's loader.
David Turner65c7c772006-04-13 07:51:58 +0000702
Werner Lemberg4e03fe72006-04-29 06:20:09 +00007032006-04-05 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner7d043222006-04-05 07:17:12 +0000704
705 * builds/amiga/makefile, builds/amiga/makefile.os4,
706 builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define.
707
Werner Lemberg7f18de62006-04-03 16:47:34 +00007082006-04-03 luoyi <luoyi.ly@gmail.com>
709
710 * builds/compiler/intelc.mk (TE): New variable.
711 (ANSIFLAGS): Updated.
712
Werner Lembergfd7456c2006-04-03 15:46:48 +00007132006-04-03 Werner Lemberg <wl@gnu.org>
714
715 * builds/exports.mk (clean_symbols_list, clean_apinames): Removed.
716 (CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE).
717 (.PHONY): Updated.
718
719 * configure.ac: Minor fixes to improve --help output.
720
Werner Lemberg764b2512006-04-03 16:42:39 +0000721
722 * docs/PROBLEMS: New file.
723
Werner Lemberg40917862006-04-01 18:49:07 +00007242006-04-01 David Turner <david@freetype.org>
David Turner0f15e1c2006-04-01 16:11:53 +0000725
Werner Lemberg40917862006-04-01 18:49:07 +0000726 * docs/CHANGES: Updated.
David Turnercf603712006-04-01 16:22:06 +0000727
Werner Lemberg40917862006-04-01 18:49:07 +0000728 * include/freetype/ftcache.h, include/freetype/config/ftheader.h:
729 Update documentation comments.
David Turner0f15e1c2006-04-01 16:11:53 +0000730
Werner Lemberg6e9df682006-04-01 05:22:07 +00007312006-04-01 Werner Lemberg <wl@gnu.org>
732
733 * builds/unix/install.mk (uninstall): Don't handle `cache'
734 directory which no longer exists.
735
Werner Lemberg4e03fe72006-04-29 06:20:09 +00007362006-03-29 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würknerd51b41e2006-03-29 06:35:26 +0000737
Werner Lemberg6e9df682006-04-01 05:22:07 +0000738 * src/psaux/psconv.c: Changed some variables which are expected to
739 hold negative values from `char' to `FT_Char' to allow building with
740 a compiler where `char' is unsigned by default.
Detlef Würknerd51b41e2006-03-29 06:35:26 +0000741
David Turner42137bc2006-03-27 20:10:26 +00007422006-03-27 David Turner <david@freetype.org>
743
Werner Lembergfa3651e2006-03-28 05:06:50 +0000744 * src/sfnt/ttkern.c (tt_face_get_kerning): Fix a serious bug that
745 causes some programs to go into an infinite loop when dealing with
746 fonts that don't have a properly sorted kerning sub-table.
David Turner42137bc2006-03-27 20:10:26 +0000747
Werner Lemberg26170df2006-03-26 07:19:07 +00007482006-03-26 Werner Lemberg <wl@gnu.org>
749
750 * src/bdf/bdflib.c (ERRMSG4): New macro.
751 (_bdf_parse_glyphs): Handle invalid BBX values.
752
753 * include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error
754 macro.
755
Werner Lemberg4db32ec2006-03-24 11:54:53 +00007562006-03-23 Werner Lemberg <wl@gnu.org>
757
758 * docs/CHANGES: Updated.
759
Werner Lembergd6e24982006-03-24 18:31:47 +0000760
Werner Lemberg4db32ec2006-03-24 11:54:53 +0000761 * src/tools/docmaker/tohtml.py (html_header_2): Add horizontal
762 padding between table elements.
Werner Lemberge0dd18f2006-03-24 12:14:48 +0000763 (html_header_1): The `DOCTYPE' comment must be in uppercase.
Werner Lembergd6e24982006-03-24 18:31:47 +0000764 (make_html_para): Convert `...' quotations into real left and
765 right single quotes.
766 Use `para_header' and `para_footer'.
767
768 * src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'"
769 also.
Werner Lemberg4db32ec2006-03-24 11:54:53 +0000770
David Turner2ce92032006-03-23 20:58:20 +00007712006-03-23 David Turner <david@freetype.org>
772
Werner Lemberg4db32ec2006-03-24 11:54:53 +0000773 Add FT_Get_SubGlyph_Info API to retrieve subglyph data. Note that
Werner Lembergc6afa122006-05-02 22:22:16 +0000774 we do not expose the FT_SubGlyphRec structure.
David Turner2ce92032006-03-23 20:58:20 +0000775
Werner Lemberg4db32ec2006-03-24 11:54:53 +0000776 * include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved
777 to...
778 * include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here.
779 (FT_Get_SybGlyph_Info): New declaration.
780
781 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function.
782
783
784 * src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and
Werner Lembergc6afa122006-05-02 22:22:16 +0000785 rsb_delta correctly in edge cases.
David Turner2ce92032006-03-23 20:58:20 +0000786
Werner Lemberg3867d2f2006-03-22 08:03:06 +00007872006-03-22 Werner Lemberg <wl@gnu.org>
788
Werner Lemberg6c5b6172006-03-22 15:30:41 +0000789 * src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup)
790 [!FTC_INLINE]: Compile conditionally.
791 * src/cache/ftccache.h: Updated.
792
793 * src/cache/ftcglyph.c (FTC_GNode_Init, FTC_GNode_UnselectFamily,
794 FTC_GNode_Done, FTC_GNode_Compare, FTC_Family_Init, FTC_GCache_New):
795 s/FT_EXPORT/FT_LOCAL/.
796 (FTC_GCache_Init, FTC_GCache_Done): Commented out.
797 (FTC_GCache_Lookup) [!FTC_INLINE]: Compile conditionally.
798 s/FT_EXPORT/FT_LOCAL/.
799 * src/cache/ftcglyph.h: Updated.
800
801 * src/cache/ftcimage.c (FTC_INode_Free, FTC_INode_New):
802 s/FT_EXPORT/FT_LOCAL/.
803 (FTC_INode_Weight): Commented out.
804 * src/cache/ftcimage.h: Updated.
805
806 * src/cache/ftmanag.c (FTC_Manager_Compress,
807 FTC_Manager_RegisterCache, FTC_Manager_FlushN):
808 s/FT_EXPORT/FT_LOCAL/.
809 * src/cache/ftmanag.h: Updated.
810
811 * src/cache/ftcsbits.c (FTC_SNode_Free, FTC_SNode_New,
812 FTC_SNode_Compare): s/FT_EXPORT/FT_LOCAL/.
813 (FTC_SNode_Weight): Commented out.
814 * src/cache/ftcsbits.h: Updated.
815
8162006-03-22 Werner Lemberg <wl@gnu.org>
817
Werner Lemberg3867d2f2006-03-22 08:03:06 +0000818 * src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy):
819 Remove, unused.
820
821 * src/cache/ftccmap.h: Remove, unused.
822
823 * src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h.
824
Werner Lemberg5556dd22006-03-21 21:36:33 +00008252006-03-21 Zhe Su <james.su@gmail.com>
826
827 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve
828 algorithm.
829
Werner Lemberg26377002006-03-21 18:41:40 +00008302006-03-21 Werner Lemberg <wl@gnu.org>
831
832 * src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member.
833
834 * src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'.
835
836 * src/cff/cffgload.c (cff_slot_load): Change type of third parameter
837 to `FT_UInt'.
838 Check range of `glyph_index'.
839 * src/cff/cffgload.h: Updated.
840
Werner Lemberg8439fe82006-03-21 21:04:33 +0000841
Werner Lemberg95f206b2006-03-21 20:47:28 +0000842 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset
843 correctly.
844
Werner Lemberg8439fe82006-03-21 21:04:33 +0000845
846 * builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc),
847 README: s/2.1.10/2.2/.
848
Werner Lemberg26377002006-03-21 18:41:40 +00008492006-03-21 David Turner <david@freetype.org>
David Turner24b9e872006-03-21 16:30:04 +0000850
Werner Lemberga62007f2006-03-21 17:41:40 +0000851 * src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug
852 that crashes the auto-hinter (introduced by previous patch).
David Turner24b9e872006-03-21 16:30:04 +0000853
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00008542006-03-20 Werner Lemberg <wl@gnu.org>
David Turnerdad2a2d2006-03-20 11:48:13 +0000855
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000856 * builds/freetype.mk (CACHE_DIR, CACHE_H): Remove.
857 (FREETYPE_H): Updated.
David Turnere091ce32006-03-20 16:01:28 +0000858
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000859 * src/cache/rules.mk (CACHE_H_DIR): Remove.
860 (CACHE_DRV_H): Updated.
David Turnerda95af62006-03-20 13:32:33 +0000861
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00008622006-03-20 David Turner <david@freetype.org>
David Turnerda95af62006-03-20 13:32:33 +0000863
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000864 * include/freetype/cache/ftccache.h,
865 include/freetype/cache/ftccmap.h, include/freetype/cache/ftcglyph.h
866 include/freetype/cache/ftcimage.h include/freetype/cache/ftcmanag.h
867 include/freetype/cache/ftcmru.h include/freetype/cache/ftcsbits.h:
868 Move to...
David Turner505667c2006-03-20 12:13:14 +0000869
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000870 * src/cache/ftccache.h, src/cache/ftcglyph.h, src/cache/ftcimage.h,
871 src/cache/ftcsbits.h, src/cache/ftcmanag.h, src/cache/ftccmap.h,
872 src/cache/ftcmru.h: This new location.
873 Update declarations according to the changes in the corresponding
874 source files.
David Turner256de4b2006-03-20 12:10:24 +0000875
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000876 Note that these files are not used by FreeType clients; all public
877 APIs of the cache module have been already moved to
878 `include/freetype/ftcache.h', and all FT_CACHE_INTERNAL_XXXX_H
879 macros resolve to it.
David Turner256de4b2006-03-20 12:10:24 +0000880
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000881 Reason for the move is to allow modifications of the internals
882 without interferences with rogue clients. Note that there are no
883 known clients that access the cache internals at the moment.
David Turner256de4b2006-03-20 12:10:24 +0000884
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000885 * builds/unix/install.mk (install): Don't install headers from
886 $(CACHE_H).
887 Remove `freetype/cache' from the target directory.
David Turnerdad2a2d2006-03-20 11:48:13 +0000888
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000889 * include/freetype/config/ftheader.h (FT_CACHE_MANAGER_H,
890 FT_CACHE_INTERNAL_MRU_H, FT_CACHE_INTERNAL_MANAGER_H,
891 FT_CACHE_INTERNAL_CACHE_H, FT_CACHE_INTERNAL_GLYPH_H,
892 FT_CACHE_INTERNAL_IMAGE_H, FT_CACHE_INTERNAL_SBITS_H): Point to
893 FT_CACHE_H.
David Turnerdad2a2d2006-03-20 11:48:13 +0000894
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000895 * src/cache/ftcbasic.c, src/cache/ftccache.h, src/cache/ftccback.h,
896 src/cache/ftccmap.c, src/cache/ftcglyph.c, src/cache/ftcglyph.h,
897 src/cache/ftcimage.c, src/cache/ftcimage.h, src/cache/ftcmanag.c,
898 src/cache/ftcmanag.h, src/cache/ftcmru.h, src/cache/ftcsbits.c,
899 src/cache/ftcsbits.h: Don't use the FT_CACHE_INTERNAL_XXX_H macros
900 but include the headers directly (which are now in `src/cache').
David Turnerdad2a2d2006-03-20 11:48:13 +0000901
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000902 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
903 macros but include the headers directly.
904 (FTC_Cache_Init, FTC_Cache_Done, FTC_Cache_NewNode,
905 FTC_Cache_Lookup, FTC_Cache_RemoveFaceID): Declare as FT_LOCAL_DEF.
906
907 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
908 macros but include the headers directly.
909 (FTC_MruNode_Prepend, FTC_MruNode_Up, FTC_MruNode_Remove,
910 FTC_MruList_Init, FTC_MruList_Reset, FTC_MruList_Done,
911 FTC_MruList_New, FTC_MruList_Remove, FTC_MruList_RemoveSelection):
912 Declare as FT_LOCAL_DEF.
913 (FTC_MruListFind, FTC_MruList_Lookup) [!FTC_INLINE]: Compile
914 conditionally.
915 Declare as FT_LOCAL_DEF.
916
917
918 * builds/win32/visualc/freetype.dsp: Update project file, add
919 missing base source files (ftstroke.c, ftxf86.c, etc.).
920
921
922 * src/autofit/afcjk.c, src/autofit/aflatin.c, src/base/ftobjs.c,
923 src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrobjs.c,
924 src/sfnt/sfobjs.c, src/sfnt/ttmtx.c, src/type1/t1afm.c,
925 src/type1/t1objs.c: Remove compiler warnings when building with
926 Visual C++ 6 and /W4.
927
928 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
929 hinting for italic/oblique fonts.
930
931
932
933 * src/truetype/ttpload.c, src/truetype/ttpload.h
934 (tt_face_get_device_metrics): Change second argument to `FT_UInt'.
935
9362006-03-06 David Turner <david@freetype.org>
David Turner65b96aa2006-03-07 00:38:24 +0000937
Werner Lemberge6a8fca2006-03-07 23:53:55 +0000938 * src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in
939 Mozilla/FireFox print preview in Ubuntu Hoary.
David Turner65b96aa2006-03-07 00:38:24 +0000940
Wu, Chia-I (吳佳一)a87b08a2006-02-28 09:53:23 +00009412006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
942
Wu, Chia-I (吳佳一)9f5d3de2006-02-28 13:21:50 +0000943 * src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not
944 return error when size == 0.
945
9462006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
947
Werner Lemberge88d24c2006-02-28 21:49:54 +0000948 * src/base/ftobjs.c (FT_Done_Library): Remove modules in reverse
949 order so that type42 module is removed before truetype module. This
950 avoids double free in some occasions.
Wu, Chia-I (吳佳一)a87b08a2006-02-28 09:53:23 +0000951
Werner Lembergc6afa122006-05-02 22:22:16 +00009522006-02-28 David Turner <david@freetype.org>
David Turnere9a47192006-02-28 09:26:58 +0000953
Werner Lemberge88d24c2006-02-28 21:49:54 +0000954 * Release candidate VER-2-2-0-RC4.
955 ----------------------------------
David Turnere9a47192006-02-28 09:26:58 +0000956
Werner Lemberge88d24c2006-02-28 21:49:54 +0000957 * docs/CHANGES: Documentation updates.
David Turnere9a47192006-02-28 09:26:58 +0000958
Suzuki, Toshiya (鈴木俊哉)576c3532006-02-28 01:11:57 +00009592006-02-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
960
Werner Lemberge88d24c2006-02-28 21:49:54 +0000961 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
962 build ftvalid in ft2demos. It works as dummy ABI if gxvalid is not
963 built.
Suzuki, Toshiya (鈴木俊哉)576c3532006-02-28 01:11:57 +0000964
Werner Lembergc07ee522006-02-27 18:13:12 +00009652006-02-27 Werner Lemberg <wl@gnu.org>
966
967 * include/freetype/cache/ftccache.h
968 [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of
969 ftc_node_done.
970
Werner Lemberg98d6a3a2006-02-27 19:49:34 +0000971 * src/cache/ftccache.c (ftc_node_destroy)
972 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Mark as FT_LOCAL_DEF. This
973 should now fix all possible compilation options.
974
David Turnerc13e75f2006-02-27 13:14:42 +00009752006-02-27 David Turner <david@freetype.org>
976
Werner Lemberg422d2a02006-02-27 18:25:22 +0000977 * src/base/ftutil.c (ft_mem_alloc, ft_mem_qalloc, ft_mem_realloc,
978 ft_mem_qrealloc): Return an error if a negative size is passed in
979 parameters.
David Turnerc13e75f2006-02-27 13:14:42 +0000980
Werner Lemberg98d6a3a2006-02-27 19:49:34 +0000981 * src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since
982 it needs to be exported for rogue clients.
David Turner65b96aa2006-03-07 00:38:24 +0000983
Werner Lemberg422d2a02006-02-27 18:25:22 +0000984 * src/pshinter/pshglob.c (psh_blues_set_zones_0): Prevent problems
985 with malformed fonts which have an odd number of blue values (these
986 are broken according to the specs).
David Turnerc13e75f2006-02-27 13:14:42 +0000987
Werner Lemberg422d2a02006-02-27 18:25:22 +0000988 * src/cff/cffload.c (cff_subfont_load), src/type1/t1load.c
989 (T1_Open_Face): Modify the loaders to force even-ness of
990 `num_blue_values'.
991
992 (cff_index_access_element): Ignore invalid entries in index files.
David Turnerc13e75f2006-02-27 13:14:42 +0000993
Wu, Chia-I (吳佳一)cffa8b62006-02-27 11:11:40 +00009942006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
995
Werner Lemberg98d6a3a2006-02-27 19:49:34 +0000996 * src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width
997 or height is 0.
Wu, Chia-I (吳佳一)cffa8b62006-02-27 11:11:40 +0000998
Suzuki, Toshiya (鈴木俊哉)2f239b82006-02-27 10:34:33 +00009992006-02-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1000
1001 * builds/mac/FreeType.m68k_cfm.make.txt,
1002 builds/mac/FreeType.m68k_far.make.txt,
1003 builds/mac/FreeType.ppc_carbon.make.txt,
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001004 builds/mac/FreeType.ppc_classic.make.txt: Update to new header
1005 inclusion introduced on 2006-02-16.
Suzuki, Toshiya (鈴木俊哉)2f239b82006-02-27 10:34:33 +00001006
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +000010072006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
1008
Werner Lemberg422d2a02006-02-27 18:25:22 +00001009 * src/base/ftobjs.c (GRID_FIT_METRICS): New macro.
1010 (ft_glyphslot_grid_fit_metrics, FT_Load_Glyph) [GRID_FIT_METRICS]:
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001011 Re-enable glyph metrics grid-fitting. It is now done in the base
1012 layer.
Werner Lembergc07ee522006-02-27 18:13:12 +00001013 (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Make sure the width and
1014 height are not too small or too large, just like we were doing in
1015 2.1.10.
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001016
Werner Lembergc07ee522006-02-27 18:13:12 +00001017 * src/autofit/afloader.c (af_loader_load_g): The vertical metrics
1018 are not scaled.
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001019
Werner Lembergf99d8462006-02-26 17:50:59 +000010202006-02-26 Werner Lemberg <wl@gnu.org>
1021
1022 * docs/release: Minor additions and clarifications.
1023
1024 * docs/CHANGES: Updated to reflect many fixes for backwards
1025 compatibility. Still incomplete.
1026
David Turnerb4636652006-02-26 07:57:45 +000010272006-02-26 David Turner <david@freetype.org>
1028
Werner Lemberg0aaf4292006-02-26 17:30:15 +00001029 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Re-enable
1030 conservative rounding of metrics to avoid breaking clients like
1031 Pango (see http://bugzilla.gnome.org/show_bug.cgi?id=327852).
David Turnerb4636652006-02-26 07:57:45 +00001032
Werner Lemberg20a8d0c2006-02-25 16:56:04 +000010332006-02-25 Werner Lemberg <wl@gnu.org>
1034
1035 * devel/ftoption.h: Synchronize with
1036 include/freetype/config/ftoption.h.
1037
Werner Lembergae1e4b12006-02-25 17:11:04 +00001038 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again).
1039
David Turner6c71c6b2006-02-25 12:49:40 +000010402006-02-25 David Turner <david@freetype.org>
1041
Werner Lemberg7f049f42006-02-25 16:52:16 +00001042 Fix compiler warnings as well as C++ compilation problems.
1043 Add missing prototypes.
David Turner6c71c6b2006-02-25 12:49:40 +00001044
Werner Lemberg7f049f42006-02-25 16:52:16 +00001045 * src/autofit/afcjk.c, src/base/ftobjs.c, src/base/ftutil.c,
1046 src/bdf/bdfdrivr.c, src/cff/cffcmap.c, src/cff/cffobjs.c,
1047 src/psaux/afmparse.c,, src/psaux/t1cmap.c, src/smooth/ftgrays.c
1048 src/tools/apinames.c, src/truetype/ttdriver.c: Add various casts,
1049 initialize variables, and decorate functions with FT_CALLBACK_DEF,
1050 etc., to fix compiler warnings (and C++ compiling errors).
David Turner6c71c6b2006-02-25 12:49:40 +00001051
Werner Lemberg7f049f42006-02-25 16:52:16 +00001052 * src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with
1053 gcc.
David Turnerde271ab2006-02-25 14:53:02 +00001054
Werner Lemberg7f049f42006-02-25 16:52:16 +00001055 * builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but
1056 FT_INTERNAL_STREAM_H.
David Turnerde271ab2006-02-25 14:53:02 +00001057
Werner Lemberg7f049f42006-02-25 16:52:16 +00001058 * src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H.
David Turnerde271ab2006-02-25 14:53:02 +00001059
Werner Lemberg7f049f42006-02-25 16:52:16 +00001060 * include/freetype/config/ftheader.h (FT_PFR_H): New macro.
1061
1062 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't
1063 define for C++.
1064
1065 * include/freetype/internal/services/svotval.h: Don't include
1066 FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H.
1067
1068 * include/freetype/internal/services/svpfr.h: Include FT_PFR_H.
1069
1070 * src/gzip/ftgzip.c: Include FT_GZIP_H.
1071
1072 * src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H.
1073
1074 * src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code.
David Turner6c71c6b2006-02-25 12:49:40 +00001075
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +000010762006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
1077
Wu, Chia-I (吳佳一)88242072006-02-24 11:53:21 +00001078 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
1079 ft_contour_enclosed, ft_outline_get_orientation): Commented out. We
David Turner6c71c6b2006-02-25 12:49:40 +00001080 have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized.
Wu, Chia-I (吳佳一)88242072006-02-24 11:53:21 +00001081 (FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'.
1082
10832006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
1084
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +00001085 * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update
1086 documentation.
1087
1088 * include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap),
1089 src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make
Werner Lembergd7e6b762006-02-25 06:24:28 +00001090 sure a glyph slot owns its bitmap. It is also marked experimental
1091 and due to change.
1092 (FT_GlyphSlot_Embolden): Undo the last change. It turns out that
1093 rendering the outline confuses some applications.
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +00001094
David Turnerca7d76f2006-02-24 09:09:10 +000010952006-02-24 David Turner <david@freetype.org>
1096
Werner Lembergd7e6b762006-02-25 06:24:28 +00001097 * Release candidate VER-2-2-0-RC3.
1098 ----------------------------------
David Turner478c5912006-02-24 09:56:23 +00001099
Werner Lembergd7e6b762006-02-25 06:24:28 +00001100 * src/cache/ftcbasic.c: Correct compatibility hack bug.
David Turnerca7d76f2006-02-24 09:09:10 +00001101
Wu, Chia-I (吳佳一)a8e7a012006-02-24 06:11:30 +000011022006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
1103
Werner Lembergd7e6b762006-02-25 06:24:28 +00001104 * include/freetype/freetype.h (FT_Size_RequestRec): Change the type
1105 of `width' and `height' to `FT_Long'.
Wu, Chia-I (吳佳一)a8e7a012006-02-24 06:11:30 +00001106 (enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics):
1107 New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales
1108 directly.
1109
David Turner6cda6c02006-02-23 12:37:18 +000011102006-02-23 David Turner <david@freetype.org>
1111
Werner Lembergd7e6b762006-02-25 06:24:28 +00001112 Two BDF patches from Debian libfreetype6 for 2.1.10.
David Turner6cda6c02006-02-23 12:37:18 +00001113
Werner Lembergd4303da2006-02-23 21:01:34 +00001114 * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width
1115 glyphs.
1116 Fix a problem with large encodings.
David Turner481838e2006-02-23 12:40:14 +00001117
Werner Lembergd7e6b762006-02-25 06:24:28 +00001118
1119 Fix binary compatibility issues for gnustep-back (GNUstep backend
1120 module) which still crashes under Sarge.
1121
1122 * src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec,
1123 FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data
1124 structures and enumerations.
1125 (FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New
1126 compatibility code.
David Turner88d89852006-02-23 22:35:26 +00001127
Wu, Chia-I (吳佳一)890f8072006-02-22 20:47:39 +000011282006-02-23 Chia-I Wu <b90201047@ntu.edu.tw>
1129
1130 * include/freetype/ftoutln.h (enum FT_Orientation): New value
1131 `FT_ORIENTATION_NONE'.
1132
1133 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
1134 ft_contour_enclosed, ft_outline_get_orientation): Another version of
1135 `FT_Outline_Get_Orientation'. This version differs from the public
1136 one in that each part (contour not enclosed in another contour) of the
1137 outline is checked for orientation.
1138 (FT_Outline_Embolden): Use `ft_outline_get_orientation'.
1139
1140 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and
1141 use bitmap's embolden routine when the outline one failed.
1142
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +000011432006-02-22 Chia-I Wu <b90201047@ntu.edu.tw>
1144
1145 * modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI
1146 compatibility.
1147
1148 * src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak.
1149
1150 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned,
1151 tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit
Werner Lemberg5edafed2006-02-22 08:23:35 +00001152 loading. (Only tested with bit aligned sbit with x_pos == 0.)
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +00001153
1154 * src/truetype/ttpload.c (tt_face_load_hdmx,
Werner Lemberg5edafed2006-02-22 08:23:35 +00001155 tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
1156 actually used.
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +00001157
David Turner1ae134a2006-02-21 16:50:17 +000011582006-02-21 David Turner <david@freetype.org>
1159
Werner Lemberg5edafed2006-02-22 08:23:35 +00001160 Add a new API named FT_Get_TrueType_Engine_Type to determine whether
1161 we have a patented, unpatented, or unimplemented TrueType bytecode
1162 interpreter.
David Turner0b5dc4d2006-02-21 22:36:23 +00001163
Werner Lemberg5edafed2006-02-22 08:23:35 +00001164 The FT_Get_Module_Flags API was removed consequently.
David Turner0b5dc4d2006-02-21 22:36:23 +00001165
David Turner88d89852006-02-23 22:35:26 +00001166 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed.
Werner Lemberg5edafed2006-02-22 08:23:35 +00001167 Replaced with...
1168 (FT_Get_TrueType_Engine_Type): This.
1169 (FT_TrueTypeEngineType): New enumeration.
David Turner0b5dc4d2006-02-21 22:36:23 +00001170
Werner Lemberg5edafed2006-02-22 08:23:35 +00001171 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
1172 New macro.
David Turner1ae134a2006-02-21 16:50:17 +00001173
Werner Lemberg5edafed2006-02-22 08:23:35 +00001174 * src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
1175 (FT_Module_Get_Flags): Removed. Replaced with...
1176 (FT_Get_TrueType_Engine_Type): This.
David Turnerc093db92006-02-21 17:06:35 +00001177
Werner Lemberg5edafed2006-02-22 08:23:35 +00001178 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
1179 (tt_service_truetype_engine): New service structure.
1180 (tt_services): Register it.
1181
1182 * include/freetype/internal/services/svtteng.h: New file.
1183
1184
1185 * src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented
1186 embedded bitmaps from being correctly listed and used.
1187
1188
1189 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization
1190 if FT_CONFIG_OPTION_OLD_INTERNALS is used. The is necessary because
1191 libXfont is directly accessing the HMTX data, unfortunately.
1192 Fix some compiler warnings.
1193 (tt_face_get_metrics): Ditto.
1194
1195
1196 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of
1197 character advances.
David Turner1ae134a2006-02-21 16:50:17 +00001198
David Turnerdd0f3602006-02-20 23:50:21 +000011992006-02-20 David Turner <david@freetype.org>
1200
David Turner0b5dc4d2006-02-21 22:36:23 +00001201 Support binary compatibility with the X.Org server's Xfont library.
Werner Lembergd41aecd2006-02-21 08:08:14 +00001202 Note that this change unfortunately prevents memory optimizations
1203 for the embedded bitmap loader.
David Turnerdd0f3602006-02-20 23:50:21 +00001204
Werner Lembergd41aecd2006-02-21 08:08:14 +00001205 * include/freetype/internal/sfnt.h (SFNT_Interface): Move
1206 `set_sbit_strike' and `load_sbit_metrics' fields to the location of
1207 version 2.1.8.
David Turnerdd0f3602006-02-20 23:50:21 +00001208
Werner Lembergd41aecd2006-02-21 08:08:14 +00001209 * src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call
1210 FT_Size_Request.
1211 (sfnt_interface): Updated.
1212
1213 * src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load
1214 ttsbit0.c.
1215 (tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static.
1216
1217 * src/sfnt/ttsbit.h: Updated.
David Turnerdd0f3602006-02-20 23:50:21 +00001218
David Turner0880ac32006-02-17 17:23:13 +000012192006-02-17 David Turner <david@freetype.org>
1220
Werner Lembergf145e312006-02-19 16:12:18 +00001221 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't filter out exported
1222 functions anymore. This ensures that all FT_BASE internal functions
1223 are available for dynamic linking.
1224
1225 * include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE,
1226 FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec,
1227 FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New,
1228 FTC_OldImage_Desc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx,
1229 ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup,
1230 FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup)
1231 [FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the
1232 cache sub-system. We try to recognize old legacy signatures with a
1233 gross hack (hope it works).
David Turner0880ac32006-02-17 17:23:13 +00001234
Werner Lemberg1fae6692006-02-17 16:16:40 +000012352006-02-17 Werner Lemberg <wl@gnu.org>
1236
1237 * devel/ftoption.h: Synchronize with
1238 include/freetype/config/ftoption.h.
1239
David Turnercda2d952006-02-16 22:45:31 +000012402006-02-16 David Turner <david@freetype.org>
1241
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001242 Massive changes to the internals to respect the internal object
1243 layouts and exported functions of FreeType 2.1.7. Note that the
1244 cache sub-system cannot be fully retrofitted, unfortunately.
David Turnercda2d952006-02-16 22:45:31 +00001245
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001246 * include/freetype/config/ftoption.h
1247 (FT_CONFIG_OPTION_OLD_INTERNALS): New macro.
1248
1249 * include/freetype/ftcache.h, include/freetype/cache/ftccache.h,
1250 include/freetype/cache/ftccmap.h,
1251 include/freetype/internal/ftcalc.h,
1252 include/freetype/internal/ftdriver.h,
1253 include/freetype/internal/ftmemory.h,
1254 include/freetype/internal/ftobjs.h,
1255 include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
1256 include/freetype/internal/t1types.h,
1257 include/freetype/internal/tttypes.h, src/base/ftcalc.c,
1258 src/base/ftdbgmem.c, src/base/ftobjs.c, src/base/ftutil.c,
1259 src/bdf/bdfdrivr.c, src/cache/ftccache.c, src/cache/ftccback.h,
1260 src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
1261 src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
1262 src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
1263 src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
1264 Use FT_CONFIG_OPTION_OLD_INTERNALS to revive old functions and data
1265 structures.
1266
1267 Move newly added structure elements to the end of the affected
1268 structure and add stub fields (if FT_CONFIG_OPTION_OLD_INTERNALS is
1269 defined) to assure binary compatibility with older FreeType
1270 versions.
1271 Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old
1272 functions:
1273
1274 ft_stub_set_char_sizes
1275 ft_stub_set_pixel_sizes
1276
1277 Rename the following internal functions to provide the old function
1278 names as stubs:
1279
1280 FT_Alloc -> ft_mem_alloc
1281 FT_QAlloc -> ft_mem_qalloc
1282 FT_Realloc -> ft_mem_realloc
1283 FT_QRealloc -> ft_mem_qrealloc
1284 FT_Free -> ft_mem_free
1285 FT_Alloc_Debug -> ft_mem_alloc_debug
1286 FT_QAlloc_Debug -> ft_mem_qalloc_debug
1287 FT_Realloc_Debug -> ft_mem_realloc_debug
1288 FT_QRealloc_Debug -> ft_mem_qrealloc_debug
1289 FT_Free_Debug -> ft_mem_free_debug
David Turnercda2d952006-02-16 22:45:31 +00001290
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +000012912006-02-15 Chia-I Wu <b90201047@ntu.edu.tw>
1292
1293 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
1294 unused `max_points' and `max_contours'.
David Turnercda2d952006-02-16 22:45:31 +00001295
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001296 * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
1297 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update.
1298
1299 * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused
1300 `max_components'.
1301
1302 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused
1303 `loadSize' and `loadStack'.
1304
1305 * src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context),
1306 src/sfnt/ttload.c (tt_face_load_maxp): Update.
1307
1308 * src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c
1309 (sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix
1310 compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not
1311 defined.
1312
1313 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix
1314 possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions.
1315 (finally!)
1316
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001317
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001318 For most OpenType tables, `tt_face_load_xxxx' simply loads the table
1319 and `face->root' is set later in `sfnt_load_face'. Here, we try to
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001320 make this work for _all_ tables. Also improve tracing messages.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001321
1322 * src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c,
1323 src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and
1324 then exit. Error handling or setting face->root is done later in
1325 `sfnt_load_face'.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001326
1327 * src/sfnt/sfobjs.c (sfnt_load_face): Work harder.
1328 Mac bitmap-only fonts are not scalable.
1329 Check that `face->header.Units_Per_EM' is not zero.
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001330 (LOAD_, LOADM_): Emit pretty trace messages.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001331
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001332 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics
1333 from `eblc'.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001334
1335 * src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c
1336 (load_format_20, load_format_25, tt_face_get_ps_name): Use
1337 face->max_profile.numGlyphs, instead of face->root.num_glyphs.
1338
Werner Lemberg52254022006-02-15 06:05:52 +000013392006-02-14 Werner Lemberg <wl@gnu.org>
1340
1341 * include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in
1342 documentation that negative strength values are possible.
1343 Give an example call.
1344
1345 * include/freetype/freetype.h (FT_GlyphSlotRec): Improve
1346 documentation of `outline' field.
1347
1348 * src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H.
1349 * src/sfnt/sfdriver.c: Include ttmtx.h.
1350
1351 * src/autofit/afcjk.c: Include aftypes.h and aflatin.h.
1352
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +000013532006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
1354
Wu, Chia-I (吳佳一)3dc00182006-02-14 13:36:28 +00001355 * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.
1356
13572006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
1358
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00001359 * src/sfnt/ttmtx.c (tt_face_load_hhea, tt_face_load_hmtx): Simply
1360 return error if table is missing.
1361 Check table length in non-FT_OPTIMIZE_MEMORY'ed `tt_face_load_hmtx'.
1362
1363 * src/sfnt/sfobjs.c (sfnt_load_face): Take care of missing metrics
Werner Lemberg52254022006-02-15 06:05:52 +00001364 tables. The last change makes Mac bitmap-only font not load and
1365 this fixes it.
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00001366
Werner Lemberg52254022006-02-15 06:05:52 +00001367 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation
1368 error when FT_CONFIG_OPTION_INCREMENTAL is defined.
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00001369
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +000013702006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
1371
Wu, Chia-I (吳佳一)35222ff2006-02-14 07:25:57 +00001372 Clean up the SFNT_Interface. In this final pass, `load_hmtx' is
Werner Lemberg814839a2006-07-28 11:55:48 +00001373 split from `load_hhea'.
Wu, Chia-I (吳佳一)35222ff2006-02-14 07:25:57 +00001374
1375 * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
1376 src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'.
1377
1378 * src/sfnt/sfobjs.c (sfnt_load_face): Update.
1379
13802006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
1381
Wu, Chia-I (吳佳一)e0decd12006-02-14 07:20:06 +00001382 * src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of
1383 code...
1384
13852006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
1386
Werner Lemberg52254022006-02-15 06:05:52 +00001387 Clean up the SFNT_Interface. In this pass, we want to treat the
1388 font directory (offset table and table directory) as a normal table
1389 like the others. This also means that TTCs are no longer recognized
1390 there but in `init_face'.
Wu, Chia-I (吳佳一)65863a52006-02-14 07:01:29 +00001391
1392 * include/freetype/internal/sfnt.h (SFNT_Interface),
1393 src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are
1394 combined and renamed to `load_font_dir'.
1395
1396 * src/sfnt/ttload.h, src/sfnt/ttload.c:
1397 s/sfnt_dir_check/check_table_dir/.
1398 `sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'.
1399 `tt_face_load_sfnt_header' and `tt_face_load_directory' are combined
1400 and renamed to `tt_face_load_font_dir'.
1401
1402 * src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.
1403
14042006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
1405
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00001406 Clean up the SFNT_Interface. Table loading functions are now named
Werner Lemberg52254022006-02-15 06:05:52 +00001407 after the tables' tags; `hdmx' is TrueType-specific and thus the
1408 code is moved to the truetype module; `get_metrics' is moved here
1409 from the truetype module so that the code can be shared with the cff
1410 module.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00001411
1412 This pass involves no real changes. That is, the code is moved
1413 verbatim mostly. The only exception is the return value of
1414 `tt_face_get_metrics'.
1415
1416 * include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
1417 src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
1418 src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
1419 src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
David Turnercda2d952006-02-16 22:45:31 +00001420
Werner Lemberg52254022006-02-15 06:05:52 +00001421 * src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: New files. Metrics-related
1422 tables' loading and parsing code is moved to here.
1423 Move `tt_face_get_metrics' here from the truetype module. The
1424 return value is changed from `void' to `FT_Error'.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00001425
1426 * include/freetype/internal/fttrace.h: New trace: ttmtx.
1427
1428 * src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
1429 parsing code is moved here.
Werner Lemberg814839a2006-07-28 11:55:48 +00001430 New function `tt_face_load_prep' split from `tt_face_load_fpgm'.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00001431 `tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
1432
1433 * src/cff/cffgload.c, src/cff/cffobjs.c: Update.
1434
1435 * src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
1436
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +000014372006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
1438
Wu, Chia-I (吳佳一)4c507ff2006-02-11 13:22:37 +00001439 * src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug...
1440
1441 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use
Werner Lembergd39fda22006-02-12 21:49:21 +00001442 AF_LatinMetricsRec as the dummy metrics because we cast the metrics
1443 to it later in `af_latin_hints_link_segments'.
Wu, Chia-I (吳佳一)4c507ff2006-02-11 13:22:37 +00001444
14452006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
1446
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00001447 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define
Werner Lembergd39fda22006-02-12 21:49:21 +00001448 to enable autofit CJK script support. (#define'd by default.)
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00001449
1450 * src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro.
1451
Werner Lembergd39fda22006-02-12 21:49:21 +00001452 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Make sure
1453 that `edge_distance_threshold' is always set.
1454 (af_latin_hints_link_segments): Potential divide-by-zero bug.
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00001455 Use latin constant in the scoring formula.
1456
1457 * src/autofit/afcjk.c: Minor updates due to the above three changes.
1458
1459 * docs/TODO, docs/CHANGES: Updated.
1460
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +000014612006-02-09 Chia-I Wu <b90201047@ntu.edu.tw>
1462
1463 Introduce experimental autofit CJK module based on akito's autohint
1464 patch. You need to #define AF_MOD_CJK in afcjk.c to enable it.
1465
1466 * src/autofit/afglobal.c, src/autofit/afcjk.h, src/autofit/afcjk.c,
1467 src/autofit/rules.mk, src/autofit/autofit.c, src/autofit/aftypes.h:
1468 Add CJK module based on akito's autohint patch.
1469
1470 * src/autofit/afhints.h (AF_SegmentRec): New field `len' for the
Werner Lembergd1d4bff2006-02-10 22:15:22 +00001471 overlap length of the segments.
1472 (AF_SEGMENT_LEN, AF_SEGMENT_DIST): New macros.
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +00001473
1474 * src/autofit/aflatin.h (af_latin_metrics_init_widths),
Werner Lembergd1d4bff2006-02-10 22:15:22 +00001475 src/autofit/aflatin.c (af_latin_metrics_init_widths): Made
1476 `FT_LOCAL'.
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +00001477 Use the character given by the caller.
1478 (af_latin_metrics_init_widths, af_latin_hints_link_segments): Scale
1479 the thresholds.
1480
1481 * src/autofit/afloader.c (af_loader_load_g): Respect
1482 AF_SCALER_FLAG_NO_ADVANCE.
1483
Werner Lemberg6be99f92006-02-09 07:38:57 +000014842006-02-09 Werner Lemberg <wl@gnu.org>
Suzuki, Toshiya (鈴木俊哉)4f41d632006-02-09 01:43:00 +00001485
Werner Lemberg6be99f92006-02-09 07:38:57 +00001486 * src/cid/cidparse.c (cid_parse_new): Remove shadowing variable.
Suzuki, Toshiya (鈴木俊哉)4f41d632006-02-09 01:43:00 +00001487
Werner Lemberg6be99f92006-02-09 07:38:57 +000014882006-02-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)458c3422006-02-08 12:58:24 +00001489
Werner Lemberg6be99f92006-02-09 07:38:57 +00001490 * src/cid/cidparse.c (cid_parse_new): Fix for abnormally short or
1491 broken CIDFont. Reported by Taek Kwan(TK) Lee (see ft-devel
1492 2005-11-02).
1493
14942006-02-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1495
1496 * builds/unix/configure.ac: Fix bug for `--with-old-mac-fonts'
1497 option on UNIX platform. It has been broken since 2006-01-11.
Suzuki, Toshiya (鈴木俊哉)458c3422006-02-08 12:58:24 +00001498
Werner Lemberg38beff02006-02-01 05:14:25 +000014992006-02-01 Werner Lemberg <wl@gnu.org>
1500
1501 * src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/.
1502 * src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/.
1503
Werner Lemberg03379b62006-02-01 05:40:06 +00001504 * builds/unix/unixddef.mk: Actually do define PLATFORM (fixing
1505 change from 2006-01-31).
1506 (TOP_DIR, OBJ_DIR): Update.
1507
Werner Lemberg9a8006b2006-02-01 06:07:05 +00001508 * builds/unix/install.mk (install): Fix path for ftmodule.h.
1509
Werner Lemberg54a79c82006-02-01 07:54:07 +00001510 * Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use
1511 `?=' where appropriate.
Werner Lemberg8a4de0d2006-02-01 07:52:11 +00001512
1513 * builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR),
1514 builds/win32/w32-dev.mk (TOP_DIR): Removed. Defined elsewhere.
1515
Werner Lemberg38beff02006-02-01 05:14:25 +000015162006-01-31 Werner Lemberg <wl@gnu.org>
Werner Lemberg59939242006-01-31 20:17:42 +00001517
1518 Implement new, simplified module selection. With GNU make it is now
1519 sufficient to modify a single file, `modules.cfg', to control the
1520 inclusion of modules and base extension files.
1521
1522 This change also fixes the creation of ftmodule.h; it now depends on
1523 `modules.cfg' and thus is rebuilt only if necessary.
1524
1525 Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
1526 default location.
1527
1528 * modules.cfg: New file.
1529
1530 * builds/freetype.mk: Don't include `modules.mk'.
1531 Include all `rules.mk' files as specified in `modules.cfg'.
1532 (FTOPTION_FLAG, FTOPTION_H): New variables.
1533 (FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H.
1534 Add FTOPTION_FLAG.
1535 ($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST.
1536 (CONFIG_H): Add FTMODULE_H and FTOPTION_H.
1537 (INCLUDES): Add DEVEL_DIR.
1538 (INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ,
1539 OBJ_M, OBJ_S): Use `:=', not `='.
1540 (remove_ftmodule_h): New phony target to delete `ftmodule.h'.
1541 (distclean): Add remove_ftmodule_h.
1542
1543 * builds/modules.mk: (MODULE_LIST): Removed.
1544 (make_module_list, clean_module_list): Replace targets
1545 with...
1546 (FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New
1547 variables. Reason for the change is that it is not possible to have
1548 a phony prerequisite which is run only if the target file must be
1549 rebuilt (phony prerequisites act like subroutines and are *always*
1550 executed). We only want to rebuild `ftmodule.h' if `module.cfg' is
1551 changed.
1552 Update all callers.
1553 ($FTMODULE_H)): Rule to create `ftmodule.h', depending on
1554 `modules.cfg'.
1555
1556 * builds/toplevel.mk: Rewrite and simplify module handling.
1557 (MODULES_CFG, FTMODULE_H): New variables.
1558 Include MODULES_CFG.
1559 (MODULES): New variable to include all `module.mk' and `rules.mk'
1560 files. We no longer use make's `wildcard' function for this.
1561
1562 * Makefile (USE_MODULES): Remove. Update all users.
1563 (OBJ_DIR): Define it here.
1564
1565 * src/*/module.mk: Change
1566
1567 make_module_list: foo
1568 foo: ...
1569
1570 to
1571
1572 FTMODULE_H_COMMANDS += FOO
1573 define FOO
1574 ...
1575 endef
1576
1577 in all files. `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.
1578
1579 * src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.
1580
1581 * builds/unix/detect.mk (setup): Always execute `configure' script.
1582 (have_mk): Rename to...
1583 (have_Makefile): This.
1584 Don't use `strip' function.
1585
1586 * builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is
1587 defined.
1588 (have_mk): Don't use `strip' function.
1589 Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test
1590 accordingly).
1591
1592 * builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.
1593
1594 * builds/os2/os2-dev.mk, builds/unix/unix-dev.mk,
1595 builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define
1596 BUILD_DIR but DEVEL_DIR for development header files.
1597
1598 * builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR),
1599 builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in
1600 (TOP_DIR, OBJ_DIR): Removed. Defined elsewhere.
1601
1602 * builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR),
1603 builds/win32/win32-def.mk (OBJ_DIR): Removed. Defined elsewhere.
1604
1605 * builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
1606 development header files.
1607 Don't define PLATFORM.
1608
1609 * configure: Copy `modules.cfg' to builddir if builddir != srcdir.
1610 Update snippet taken from autoconf's m4sh.m4 to current CVS version.
1611 Be more verbose.
1612
1613 * include/freetype/config/ftmodule.h: Add comments -- this file is
1614 no longer used if FreeType is built with GNU make.
1615
1616 * docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY,
1617 docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism.
1618 Other minor updates.
1619
1620 * modules.txt: Removed. Contents included in `modules.cfg'.
1621
1622
1623 * include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
1624 FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.
1625
1626 * src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug,
1627 FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug)
1628 [FT_STRICT_ALIASING]: Implement.
1629
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +000016302006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
1631
Wu, Chia-I (吳佳一)5d146852006-01-31 10:29:44 +00001632 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
Werner Lemberg59939242006-01-31 20:17:42 +00001633 (cid_face_init), src/pfr/pfrobjs.c (pfr_face_init),
1634 src/type1/t1objs.c (T1_Face_Init): Set face->height to MAX(1.2 *
1635 units_per_EM, ascender - descender).
Wu, Chia-I (吳佳一)5d146852006-01-31 10:29:44 +00001636
16372006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
1638
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +00001639 * include/freetype/internal/t1types.h (AFM_FontInfo),
1640 src/psaux/afmparse.c, src/tools/test_afm.c: Read `FontBBox',
1641 `Ascender', and `Descender' from an AFM.
1642
1643 * src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM.
1644
Werner Lemberg59939242006-01-31 20:17:42 +00001645 * include/freetype/freetype.h (FT_FaceRec): Mention that fields may
1646 be changed after file attachment.
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +00001647
Werner Lemberg7596fd32006-01-28 16:29:29 +000016482006-01-28 Werner Lemberg <wl@gnu.org>
1649
1650 * src/*/module.mk (.PHONY): Add.
1651
Werner Lemberg68a15eb2006-01-28 07:30:58 +000016522006-01-27 Werner Lemberg <wl@gnu.org>
1653
1654 * README, docs/FTL.TXT: Fix email address for bug reports.
1655 Other minor formatting.
1656
Werner Lembergf6a25502006-01-28 10:38:15 +00001657 * devel/ftoption.h: Synchronize with
1658 include/freetype/config/ftoption.h.
1659
1660 * src/autofit/module.mk (add_autofit_module), src/bdf/module.mk
1661 (add_bdf_module), src/type42/module.mk (add_type42_driver): Fix
1662 whitespace.
1663
1664 * src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv
1665 renderer classes.
1666
David Turnerff0e9e62006-01-27 09:15:53 +000016672006-01-27 David Turner <david@freetype.org>
1668
Werner Lemberg68a15eb2006-01-28 07:30:58 +00001669 * builds/unix/configure.ac: Fix build problem on Cygwin.
David Turnercda2d952006-02-16 22:45:31 +00001670
Werner Lemberg68a15eb2006-01-28 07:30:58 +00001671 * builds/unix/install.mk (install): Don't install the internal
1672 headers, and remove existing ones if found in the target install
1673 directory.
David Turner7213b4f2006-01-27 16:42:32 +00001674
Werner Lemberg68a15eb2006-01-28 07:30:58 +00001675 * src/autofit/afwarp.c: Add simple #ifdef to prevent compilation
1676 if the warp hinter isn't active (it shouldn't, still experimental).
David Turner6a681fa2006-01-27 12:11:22 +00001677
Werner Lemberg68a15eb2006-01-28 07:30:58 +00001678 * Jamfile, include/freetype/config/ftmodule.h: Remove `gxvalid'
Werner Lembergbe3c9812006-01-27 14:16:16 +00001679 and `otvalid' from the list of modules that are linked statically
1680 to a given FreeType library. Functionality has been moved to the
1681 `ftvalid' CVS module.
David Turner6a681fa2006-01-27 12:11:22 +00001682
Werner Lembergbe3c9812006-01-27 14:16:16 +00001683 Note also that current Make-based build system still compiles the
1684 modules though.
David Turner6a681fa2006-01-27 12:11:22 +00001685
Werner Lembergbe3c9812006-01-27 14:16:16 +00001686 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): New macro
1687 which controls the definitions of the memory management functions to
1688 avoid warnings with recent versions of GCC. This macro is only here
1689 to be disabled, in case we detect problems with the new scheme.
David Turner6a681fa2006-01-27 12:11:22 +00001690
Werner Lembergbe3c9812006-01-27 14:16:16 +00001691 NOTE: Disable macro to use the memory debugger -- this will be fixed
1692 later!
1693
1694 * include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_Alloc,
1695 FT_QAlloc, FT_Realloc, FT_QRealloc, FT_Free) [FT_STRICT_ALIASING]:
1696 New versions.
1697
1698
1699 * builds/win32/visualc/freetype.dsp: Updating project file to
1700 define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from
1701 compilation.
1702
1703
1704 * builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the
1705 macro FT2_BUILD_LIBRARY when compiling the library.
1706
1707 * include/freetype/config/ftheader.h: Remove inclusions of internal
1708 headers except if the macro FT2_BUILD_LIBRARY is defined.
1709
1710
1711 * include/freetype/internal/psaux.h (AFM_KernPair, AFM_TrackKern,
1712 AFM_FontInfo): Move structure declarations to...
1713 * include/freetype/internal/t1types.h: This file.
1714
1715
1716 * (many files): Fix compiler warnings.
1717 Various minor reorganizations.
1718
1719
1720 * src/cff/cffload.c (cff_font_done): Don't free static array
1721 `subfonts'.
1722
1723 * src/otvalid/otvcommn.c (otv_ClassDef_validate),
1724 src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information.
1725
Werner Lemberg68a15eb2006-01-28 07:30:58 +00001726
1727 Get rid of writable static variables (i.e., the string table) in
1728 afmparse, and fix compilation in FT2_MULTI mode.
1729
Werner Lembergbe3c9812006-01-27 14:16:16 +00001730 * src/psaux/afmparse.c: Include ft2build.h and FT_FREETYPE_H.
1731 (AFM_MAX_ARGUMENTS): Define...
1732 * src/psaux/afmparse.h: Here.
1733 * src/psaux/Jamfile (_sources): Add afmparse.
1734
1735 * src/psaux/psconv.c: Include psconv.h.
1736
1737 * src/type1/t1afm.c: Don't include FT_INTERNAL_TYPE1_TYPES_H but
1738 FT_INTERNAL_POSTSCRIPT_AUX_H.
1739 * src/type1/t1afm.h: Include FT_INTERNAL_TYPE1_TYPES_H.
David Turnerff0e9e62006-01-27 09:15:53 +00001740
Wu, Chia-I (吳佳一)4c6234d2006-01-23 10:46:38 +000017412006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
1742
Wu, Chia-I (吳佳一)bcc438b2006-01-23 14:12:40 +00001743 * include/freetype/freetype.h (FT_Select_Size): Rename the second
1744 argument from `idx' to `strike_index'.
1745 (FT_Size_Request_Type): Add FT_SIZE_REQUEST_TYPE_MAX to the end of
1746 this enum.
1747
1748 * include/freetype/internal/ftobjs.h (FT_REQUEST_WIDTH,
1749 FT_REQUEST_HEIGHT): New macros to get the width and height of a
1750 request, in fractional pixels.
1751
1752 * include/freetype/internal/ftobjs.h (FT_Select_Metrics,
1753 FT_Request_Metrics), src/base/ftobjs.c (FT_Select_Metrics,
1754 FT_Request_Metrics): New base functions to set the font metrics. They
1755 were part of FT_Select_Size/FT_Request_Size and are made independent
1756 functions so that metrics are not set again and again.
1757
1758 * src/base/ftobjs.c (FT_Select_Size, FT_Request_Size): Metrics are set
1759 only when driver's size_select/size_request is NULL. That is, drivers
1760 should set the metrics themselves.
1761 (FT_Match_Size): Round before matching. This was what we did and it
1762 does cause some problems without rounding.
1763
1764 * src/cff/cffobjs.c (cff_size_select), src/truetype/ttdriver.c
1765 (tt_size_select): Set the font metrics.
1766 s/index/strike_index/.
1767 The scaled metrics are always preferred over strikes' metrics, even
1768 when some strike is selected. This is done because the strikes'
1769 metrics are not reliable, e.g., the sign of the descender is wrong for
1770 some fonts.
1771
1772 * src/cff/cffobjs.c (cff_size_request), src/truetype/ttdriver.c
1773 (tt_size_request): Set the font metrics.
1774 Call cff_size_select/tt_size_select when some strike is matched.
1775
1776 * src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/cid/cidobjs.c,
1777 src/pcf/pcfdrivr.c, src/truetype/ttdriver.c, src/type1/t1objs.c,
1778 src/type1/t1objs.h, src/type42/t42objs.c, src/winfonts/winfnt.c:
1779 Set the font metrics.
1780 s/index/strike_index/.
1781
1782 * src/tools/test_afm.c, src/psaux/psconv.c: Older versions of these
1783 files were committed. Just a catch-up.
1784 (PS_Conv_ToFixed): Remove the `goto'.
1785 (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Speed up a little.
1786
1787 * src/sfnt/ttsbit.c (tt_face_load_sbit_strikes,
1788 tt_face_load_strike_metrics), src/sfnt/ttsbit0.c
1789 (tt_face_load_sbit_strikes, tt_face_load_strike_metrics): The
1790 advertised metrics in `available_sizes' are different from those
1791 actually used.
1792
17932006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
1794
Wu, Chia-I (吳佳一)4c6234d2006-01-23 10:46:38 +00001795 * src/psaux/psaux.c src/psaux/psauxmod.c src/type1/t1driver.c: Make
1796 AFM parser optional, controlled by `T1_CONFIG_OPTION_NO_AFM'.
1797
Werner Lemberged70ca52006-01-23 07:28:03 +000017982006-01-22 Werner Lemberg <wl@gnu.org>
1799
1800 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
Werner Lemberg4836f952006-06-06 12:54:08 +00001801 `texinfo' CVS module at savannah.gnu.org.
Werner Lemberged70ca52006-01-23 07:28:03 +00001802
Werner Lemberg1be9ebf2006-01-22 06:58:16 +000018032006-01-21 Werner Lemberg <wl@gnu.org>
1804
1805 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c.
1806
Werner Lembergb36bf522006-01-22 07:09:54 +00001807 * src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up
1808 to avoid compiler warnings.
1809
1810 * src/autofit/afwarp.c (af_warper_compute_line_best): Remove
1811 shadowing variable declarations.
1812 Fix warning parameters and replace printf with AF_LOG.
1813 (af_warper_compute): Remove unused variable.
1814
David Turnerbb4edc92006-01-21 14:31:45 +000018152006-01-20 David Turner <david@freetype.org>
1816
Werner Lemberg1be9ebf2006-01-22 06:58:16 +00001817 Adding experimental implementation of `warp hinting' (new hinting
1818 algorithm for gray-level and LCD rendering). It is disabled by
1819 default, you need to #define AF_USE_WARPER in aftypes.h.
1820
1821 * src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]:
1822 New function.
1823 * src/autofit/afhints.h: Updated.
1824
1825 * src/autofit/aflatin.c [AF_USE_WARPER]: Include afwarp.h.
1826 (af_latin_hints_init) [AF_USE_WARPER]: Reset mode to
1827 FT_RENDER_MODE_NORMAL if an LCD mode is selected.
1828 (af_latin_hints_apply) [AF_USE_WARPER]: Call af_warper_compute
1829 appropriately.
1830
1831 * src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]:
1832 Isolate code for adjusting metrics.
1833
1834 * src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by
1835 default).
1836
1837 * src/autofit/afwarp.c, src/autofit/afwarp.h: New files.
1838
1839 * src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c.
1840
1841 * src/autofit/Jamfile (_sources): Add afwarp.
David Turnerbb4edc92006-01-21 14:31:45 +00001842
David Turner8c16ed32006-01-19 13:10:49 +000018432006-01-19 David Turner <david@freetype.org>
1844
Werner Lemberge7be64e2006-01-21 17:27:32 +00001845 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug
1846 that prevented compilation when FT_OPTIMIZE_MEMORY is defined.
David Turner8c16ed32006-01-19 13:10:49 +00001847
Werner Lemberg8b560632006-01-19 08:30:58 +000018482006-01-19 Brian Weed <bw@imaginengine.com>
1849
1850 * builds/win32/visualc/freetype.dsp: Updated.
1851
Werner Lemberg47bf95d2006-01-17 16:55:32 +000018522006-01-17 Werner Lemberg <wl@gnu.org>
1853
1854 Use pscmap service in CFF module.
1855
1856 * src/cff/cffcmap.c (cff_cmap_uni_pair_compare): Removed.
1857 (cff_sid_to_glyph_name): New function.
1858 (cff_cmap_unicode_init, cff_cmap_unicode_done,
1859 cff_cmap_unicode_char_index, cff_cmap_unicode_char next): Use pscmap
1860 service.
1861 (cff_cmap_unicode_class_rec): Updated.
1862 * src/cff/cffcmap.h (CFF_CMapUnicode, CFF_CMap_UniPair): Removed.
1863
1864
1865 * src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode'
1866 return value.
1867
1868
1869 * src/psaux/afmparse.c (afm_parser_read_vals): Use double casting
Werner Lemberge7be64e2006-01-21 17:27:32 +00001870 to avoid compiler warnings regarding type-punning.
Werner Lemberg47bf95d2006-01-17 16:55:32 +00001871
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +000018722006-01-16 Chia-I Wu <b90201047@ntu.edu.tw>
1873
1874 * src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
Werner Lembergce94c7a2006-01-16 22:35:33 +00001875 implement an AFM parser.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00001876
1877 * src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
Werner Lembergce94c7a2006-01-16 22:35:33 +00001878 conversion functions (e.g., PS real number => FT_Fixed) for the
1879 PS_Parser and AFM_Parser. Some of the functions are taken, with
1880 some modifications, from the file psobjs.c.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00001881
1882 * src/psaux/psobjs.c: Use functions from psconv.c.
1883
Werner Lembergce94c7a2006-01-16 22:35:33 +00001884 * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00001885 `AFM_Parser' to the `psaux' service.
1886
Werner Lembergce94c7a2006-01-16 22:35:33 +00001887 * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include
1888 those new files.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00001889
1890 * src/tools/test_afm.c: A test program for AFM parser.
1891
Werner Lembergce94c7a2006-01-16 22:35:33 +00001892 * include/freetype/internal/services/svkern.h: New file providing a
1893 `Kerning' service. It is currently only used to get the track
1894 kerning information.
1895
1896 * include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New
1897 macro.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00001898
1899 * src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
1900 src/type1/t1afm.h: Update to use the AFM parser.
1901 Provide the `Kerning' service.
1902
1903 * include/freetype/freetype.h, src/base/ftobjs.c: New API
1904 `FT_Get_Track_Kerning'.
1905
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +000019062006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
1907
Wu, Chia-I (吳佳一)ea1e8d32006-01-15 15:01:45 +00001908 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c,
1909 src/bdf/bdfdrivr.c, src/cff/cffgload.c, src/cid/cidgload.c,
1910 src/pcf/pcfdrivr.c, src/type1/t1gload.c, src/winfonts/winfnt.c:
1911 s/ft_fake_vertical_metrics/ft_synthesize_vertical_metrics/.
1912
1913 * docs/CHANGES: Mention that vertical metrics are synthesized for
1914 fonts not having this info.
1915
19162006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
1917
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00001918 * include/freetype/internal/ftobjs.h (ft_fake_vertical_metrics),
Werner Lemberg1723dcc2006-01-15 07:30:32 +00001919 src/base/ftobjs.c (ft_fake_vertical_metrics): New function to fake
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00001920 vertical metrics.
1921
1922 * src/cff/cffgload.c, src/cid/cidgload.c, src/pcf/pcfdrivr.c,
Werner Lemberg1723dcc2006-01-15 07:30:32 +00001923 src/type1/t1gload.c, src/winfonts/winfnt.c: Fake vertical metrics,
1924 which are monotone.
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00001925
1926 * src/truetype/ttgload.c (compute_glyph_metrics): Some fixes and
Werner Lemberg1723dcc2006-01-15 07:30:32 +00001927 formattings in vertical metrics faking. There is still room for
1928 improvements (and so does the CFF module).
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00001929
19302006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
1931
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00001932 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdrivr.c
1933 (PCF_Glyph_Load), src/winfonts/winfnt.c (FNT_Load_Glyph): Don't set
Werner Lemberg1723dcc2006-01-15 07:30:32 +00001934 the linear advance fields as they are only used by the outline
1935 glyphs.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00001936
Werner Lemberg1723dcc2006-01-15 07:30:32 +00001937 * include/freetype/freetype.h: Documentation updates and
1938 clarifications.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00001939 The meaning of FT_LOAD_FORCE_AUTOHINT is changed so that no real
1940 change need be made to the code.
1941
1942 * src/base/ftobjs.c (FT_Load_Glyph): Resolve flag dependencies and
1943 decide whether to use the auto-hinter according to documentation.
1944 There should to be no real difference.
Werner Lemberg1723dcc2006-01-15 07:30:32 +00001945 Some checks (e.g., is text height positve?) after the glyph is
1946 loaded.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00001947 (FT_Select_Size, FT_Request_Size): Scales are set to wrong values.
1948 Be careful that scales won't be negative.
1949
Wu, Chia-I (吳佳一)e33dc2e2006-01-14 05:09:30 +000019502006-01-14 Chia-I Wu <b90201047@ntu.edu.tw>
1951
1952 * docs/CHANGES: Mention the size selection change.
1953
1954 * src/bdf/bdfdrivr.c (BDF_Size_Request, BDF_Size_Select),
1955 src/pcf/pcfdrivr.c (PCF_Size_Request, PCF_Size_Select),
1956 src/winfonts/winfnt.c (FNT_Size_Request, FNT_Size_Select): Do size
Werner Lemberg3d8eeb82006-01-14 07:10:45 +00001957 matching for requests of type NOMINAL and REAL_DIM.
Wu, Chia-I (吳佳一)e33dc2e2006-01-14 05:09:30 +00001958
1959 * src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when
1960 `pixel_height' is used for nominal height.
1961
1962 * src/base/ftobjs.c (FT_Request_Size): Call `FT_Match_Size' if the
1963 face is bitmap only and driver doesn't provide `request_size'. This
1964 is added merely for completion as no driver satisfies the conditions.
1965
Wu, Chia-I (吳佳一)fa7d6ab2006-01-13 12:21:31 +000019662006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
1967
1968 Introduce new size selection interface.
1969
Werner Lembergf1c2b912006-01-13 14:53:28 +00001970 * include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec):
Wu, Chia-I (吳佳一)fa7d6ab2006-01-13 12:21:31 +00001971 Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and
1972 `select_size'.
1973
1974 * include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type,
1975 FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c
1976 (FT_Select_Size, FT_Request_Size): API additions to export the new
1977 size selection interface.
1978
1979 * src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
1980 `FT_Request_Size'.
1981
1982 * include/freetype/internal/ftobjs.h (FT_Match_Size),
1983 src/base/ftobjs.c (FT_Match_Size): New function to match a size
1984 request against `available_sizes'. Drivers supporting bitmap strikes
1985 can use this function to implement `request_size'.
1986
1987 * src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
1988 src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c,
1989 src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c,
1990 src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c:
1991 Update to new size selection interface.
1992
1993 * src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c,
1994 src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c,
1995 src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size
1996 selection interface.
1997 Make `strike_index' FT_ULong and always defined.
1998 Use `load_strike_metrics' provided by SFNT interface.
1999
20002006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
2001
2002 * include/freetype/internal/sfnt.h (SFNT_Interface): New method
2003 `load_strike_metrics' used to load the strike's metrics.
2004
2005 * src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
2006 src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'.
2007
2008 * src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.
2009
2010 * src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
2011 nominal size unless it is obviously incorrect.
2012
2013 * include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
2014 FNT driver.
2015
Werner Lemberg8ab09792006-01-12 08:12:27 +000020162006-01-12 Werner Lemberg <wl@gnu.org>
2017
2018 Prepare use of pscmap service within CFF module.
2019
2020 * include/freetype/internal/services/svpscmap.h: Include
2021 FT_INTERNAL_OBJECTS_H.
2022 (PS_Unicode_Index_Func): Removed. Unused.
2023 (PS_Macintosh_Name_Func): Renamed to...
2024 (PS_Macintosh_NameFunc): This.
2025 Update all callers.
2026 (PS_Adobe_Std_Strings_Func): Renamed to...
2027 (PS_Adobe_Std_StringsFunc): This.
2028 Update all callers.
2029 (PS_UnicodesRec): This is the former `PS_Unicodes' structure.
2030 Add `cmap' member.
2031 Update all callers.
2032 (PS_Unicodes): This is now a typedef'd pointer to PS_UnicodesRec.
2033 Update all callers.
2034 (PS_Glyph_NameFunc): New typedef.
2035 (PS_Unicodes_InitFunc): Change arguments to expect a function
2036 and generic data pointer which returns a glyph name from a given
2037 index.
2038
2039 * src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index,
2040 ps_unicodes_char_next, pscmaps_interface): Updated.
2041
2042 * include/freetype/internal/t1types.h (T1_FaceRec): Updated.
2043
2044 * src/psaux/t1cmap.h (T1_CmapStdRec): Updated.
2045 (T1_CmapUnicode, T1_CmapUnicodeRec): Removed.
2046
2047 * src/psaux/t1cmap.c (t1_get_glyph_name): New callback function.
2048 (t1_cmap_unicode_init, t1_cmap_unicode_done,
2049 t1_cmap_unicode_char_index, t1_cmap_unicode_char_next,
2050 t1_cmap_unicode_class_rec): Updated.
2051
2052 * src/type42/t42types.h (T42_FaceRec): Updated.
2053
20542006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)356a4d82006-01-12 03:33:16 +00002055
2056 * include/freetype/ftmac.h: Add declaration of new functions
2057 FT_New_Face_From_FSRef and FT_GetFile_From_Mac_ATS_Name that
2058 were introduced by the jumbo patch on 2006-01-11.
2059
Werner Lemberg8ab09792006-01-12 08:12:27 +000020602006-01-11 Werner Lemberg <wl@gnu.org>
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002061
Werner Lembergadf828f2006-01-11 10:08:49 +00002062 Fix Savannah bug #15056 and use pscmap service in psaux module.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002063
Werner Lembergadf828f2006-01-11 10:08:49 +00002064 * include/freetype/internal/services/svpscmap.h (PS_UniMap): Use
2065 FT_UInt32 for `glyph_index'.
2066 (PS_Unicodes_InitFunc): Use FT_String for `glyph_names'.
2067 (PS_Unicodes_CharIndexFunc): Use FT_UInt32 for `unicode'.
2068 (PS_Unicodes_CharNextFunc): Make second argument a pointer to
2069 FT_UInt32.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002070
Werner Lembergadf828f2006-01-11 10:08:49 +00002071 * src/psnames/psmodule.c (VARIANT_BIT, BASE_GLYPH): New macros.
2072 (ps_unicode_value): Set VARIANT_BIT in return value if glyph is a
2073 variant glyph (this is, it has non-leading `.' in its name).
2074 (compare_uni_maps): Sort base glyphs before variant glyphs.
2075 (ps_unicodes_init): Use FT_String for `glyph_names' argument.
2076 Reallocate only if number of used entries is much smaller.
2077 Updated to handle variant glyphs.
2078 (ps_unicodes_char_index, ps_unicodes_char_next): Prefer base glyphs
2079 over variant glyphs.
2080 Simplify code.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002081
Werner Lembergadf828f2006-01-11 10:08:49 +00002082 * src/psaux/t1cmap.c (t1_cmap_uni_pair_compare): Removed.
2083 (t1_cmap_unicode_init, t1_cmap_unicode_char_index,
2084 t1_cmap_unicode_char_next): Use pscmap service.
2085 (t1_cmap_unicode_done): Updated.
2086
2087 * src/psaux/t1cmap.h (T1_CMapUniPair): Removed.
2088 (T1_CMapUnicode): Use PS_Unicodes structure.
2089
20902006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2091
2092 Jumbo patch to fix `deprecated' warning of cross-build for Tiger on
2093 Intel, as reported by Sean McBride <sean@rogue-research.com> on
2094 2005-08-24.
2095
2096 * src/base/ftmac.c: Heavy change to build without deprecated Carbon
2097 functions on Tiger.
2098
2099 * builds/unix/configure.ac: Add options and autochecks for Carbon
2100 functions availabilities, for MacOS X.
2101
2102 * builds/mac/ascii2mpw.py: Add converter for character `\305'.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002103 * builds/mac/FreeType.m68k_{far|cfm}.make.txt: Add conditional
Werner Lembergadf828f2006-01-11 10:08:49 +00002104 macros to avoid unavailable functions.
2105 ftmac.c must be compiled without `-strict ansi', because it disables
2106 cpp macro to use ToolBox system call.
2107
2108 * builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional
2109 macros to avoid unavailable functions.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002110
2111 * builds/mac/README: Detailed notes on function availabilities.
2112
2113 * docs/CHANGES: Notes about (possible) incompatibilities.
2114
Werner Lemberge8f92af2006-01-08 13:43:30 +000021152006-01-08 Werner Lemberg <wl@gnu.org>
2116
Werner Lemberg6cdab922006-01-08 22:34:01 +00002117 * docs/CHANGES: Updated.
2118
21192006-01-08 Huw D M Davies <h.davies1@physics.ox.ac.uk>
2120
2121 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): New
2122 declaration.
2123
2124 * src/base/ftobjs.c (FT_Module_Get_Flags): New function.
2125
21262006-01-07 Werner Lemberg <wl@gnu.org>
2127
Werner Lemberge8f92af2006-01-08 13:43:30 +00002128 * src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable
Werner Lemberg30bd2842006-01-08 19:38:42 +00002129 `bitmaps'. Reported by Yu Lei <yulei0@gmail.com>.
2130
2131 * src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/.
2132 Reported by Niels Boldt <nielsboldt@gmail.com>.
Werner Lemberge8f92af2006-01-08 13:43:30 +00002133
21342005-12-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)3dfcef62005-12-28 06:47:12 +00002135
Werner Lemberg05cda082006-01-08 13:37:15 +00002136 * src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for
2137 MPW compiler.
Suzuki, Toshiya (鈴木俊哉)3dfcef62005-12-28 06:47:12 +00002138
David Turnere6bb9532005-12-23 13:32:06 +000021392005-12-23 David Turner <david@freetype.org>
2140
Werner Lemberg083ba0b2005-12-23 15:10:54 +00002141 * Jamfile (RefDoc), docs/reference/README: Fix it so that `jam
2142 refdoc' works correctly to generate the API reference in
2143 `docs/reference'.
David Turnere6bb9532005-12-23 13:32:06 +00002144
Werner Lemberg083ba0b2005-12-23 15:10:54 +00002145 * src/tools/docmaker/tohtml.py (print_html_field,
2146 print_html_field_list): Update to output nicer fields lists in the
2147 API reference.
David Turnere6bb9532005-12-23 13:32:06 +00002148
2149 * src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now
Werner Lemberg083ba0b2005-12-23 15:10:54 +00002150 forces auto-hinting.
David Turnere6bb9532005-12-23 13:32:06 +00002151
Werner Lemberg083ba0b2005-12-23 15:10:54 +00002152 * freetype/freetype.h: Updating the documentation for
2153 FT_LOAD_TARGET_XXX and FT_Render_Mode values.
David Turnere6bb9532005-12-23 13:32:06 +00002154
Werner Lemberg6be99f92006-02-09 07:38:57 +000021552005-12-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)53be6e92005-12-23 12:22:46 +00002156
Werner Lemberg083ba0b2005-12-23 15:10:54 +00002157 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Count scalable faces
2158 in supported formats (sfnt, LWFN) only, and ignore bitmap faces in
2159 unsupported formats (fbit, NFNT). The number of available faces are
2160 passed via face->num_faces. If bitmap faces are embedded in sfnt
2161 resource, face->num_fixed_size is correctly set. In public API,
2162 FT_New_Face() and FT_New_Face_From_FSSpec() count the faces as
2163 FT_GetFile_From_Mac_Name(), which ignores NFNT resources.
Suzuki, Toshiya (鈴木俊哉)53be6e92005-12-23 12:22:46 +00002164
2165 * doc/CHANGES: Mention the changes.
2166
Wu, Chia-I (吳佳一)ce34d122005-12-17 13:12:49 +000021672005-12-17 Chia-I Wu <b90201047@ntu.edu.tw>
2168
2169 * src/truetype/ttinterp.c (Update_Max): Set current size of buffer
2170 correctly (so that memory debug system won't panic).
2171
Wu, Chia-I (吳佳一)dcb8b712005-12-16 14:27:14 +000021722005-12-16 Chia-I Wu <b90201047@ntu.edu.tw>
2173
2174 * include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics),
2175 src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed.
2176
2177 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round.
2178
2179 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
2180 (cid_slot_load_glyph), src/truetype/ttgload.c (compute_glyph_metrics),
2181 src/type1/t1gload.c (T1_Load_Glyph): Do not round glyph metrics.
2182
2183 * doc/CHANGES: Mention the changes.
2184
David Turner5b5f3822005-12-14 16:37:15 +000021852005-12-13 David Turner <david@freetype.org>
2186
Werner Lembergb79b5132005-12-20 12:01:58 +00002187 Change the implementation of the LIGHT hinting mode to completely
2188 disable horizontal hinting. This is an experimental effort to
2189 integrate David Chester's latest patch without affecting the other
2190 hinting modes as well.
David Turner5b5f3822005-12-14 16:37:15 +00002191
Werner Lembergb79b5132005-12-20 12:01:58 +00002192 Note that this doesn't force auto-hinting for all fonts, however.
David Turner5b5f3822005-12-14 16:37:15 +00002193
Werner Lembergb79b5132005-12-20 12:01:58 +00002194 * src/autofit/afhints.c (af_glyph_hints_reload): Don't set
2195 scaler_fiags here but...
2196 (af_glyph_hints_rescale): Here.
David Turner8def3c82005-12-14 16:38:31 +00002197
Werner Lembergb79b5132005-12-20 12:01:58 +00002198 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
2199 hinting for `light' hinting mode.
David Turnerdb0182f2005-12-14 21:16:33 +00002200
David Turnerdb0182f2005-12-14 21:16:33 +00002201
Werner Lembergb79b5132005-12-20 12:01:58 +00002202 * Jamfile: Small fix to ensure that ftexport.sym is placed into the
2203 same location as other generated objects (i.e., within the `objs'
2204 directory of the current directory).
David Turnerdb0182f2005-12-14 21:16:33 +00002205
Werner Lembergb79b5132005-12-20 12:01:58 +00002206
2207 Add support for an embedded `BDF ' table within SFNT-based bitmap
2208 font files. This is used to store atoms & properties from the
2209 original BDF fonts that were used to generate the font file.
2210
2211 The feature is controlled by TT_CONFIG_OPTION_BDF within
2212 `ftoption.h' and is used to implement FT_Get_BDF_Property for these
2213 font files.
2214
2215 At the moment, this is still experimental, the BDF table format
2216 isn't cast into stone yet.
2217
2218 * include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New
2219 macro.
2220
2221 * include/freetype/config/ftstdlib.h (ft_memchr): New macro.
2222
2223 * include/freetype/internal/tttypes.h (TT_BDFRec, TT_BDF)
2224 [TT_CONFIG_OPTION_BDF]: New structure.
2225 (TT_FaceRec) [TT_CONFIG_OPTION_BDF]: New member `bdf'.
2226
2227 * include/freetype/ttags.h (TTAG_BDF): New macro.
2228
2229 * src/sfnt/Jamfile (_sources): Add ttbdf.
2230
2231 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c.
2232
2233 * src/sfnt/sfdriver.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h and
2234 FT_SERVICE_BDF_H.
2235 (sfnt_get_charset_it) [TT_CONFIG_OPTION_BDF]: New function.
2236 (sfnt_service_bdf) [TT_CONFIG_OPTION_BDF]: New service.
2237 (sfnt_servives) [TT_CONFIG_OPTION_BDF]: Add sfnt_service_bdf.
2238
2239 * src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c.
2240
2241 * src/sfnt/sfobjs.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h.
2242 (sfnt_done_face) [TT_CONFIG_OPTION_BDF]: Call
2243 tt_face_free_bdf_props.
2244
2245 * src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files.
David Turner89a2a4b2005-12-14 20:38:15 +00002246
Werner Lemberg364db082005-12-07 20:34:11 +000022472005-12-07 Werner Lemberg <wl@gnu.org>
2248
2249 * src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to...
2250 * src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs.
2251
Wu, Chia-I (吳佳一)a3690cd2005-12-06 08:24:01 +000022522005-12-06 Chia-I Wu <b90201047@ntu.edu.tw>
2253
2254 * src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is
2255 initialized twice.
2256 size->strike_index is not initialized.
2257
Werner Lemberg2a0903a2005-12-03 08:13:43 +000022582005-12-02 Taek Kwan(TK) Lee <taeklee@gmail.com>
2259
Werner Lemberg3b8db662005-12-06 10:47:44 +00002260 * src/type42/t42objs.c (T42_Face_Init): Replace call to
Werner Lemberg2a0903a2005-12-03 08:13:43 +00002261 FT_New_Memory_Face with call to FT_Open_Face to pass `params'.
2262
Werner Lembergb797fdb2005-11-30 08:48:32 +000022632005-11-30 Werner Lemberg <wl@gnu.org>
2264
2265 * docs/CHANGES: Document ftdump's `-v' option.
Werner Lembergb5d88e82005-11-30 08:55:51 +00002266 Document latest charmap code changes.
Werner Lembergb797fdb2005-11-30 08:48:32 +00002267
Werner Lemberg44e47d52005-11-30 18:47:49 +00002268 * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h:
2269 s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/.
2270
Wu, Chia-I (吳佳一)a28bc4c2005-11-30 02:39:10 +000022712005-11-30 Chia-I Wu <b90201047@ntu.edu.tw>
2272
2273 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary,
2274 tt_cmap12_char_map_binary): Fix compiler warnings.
2275
Wu, Chia-I (吳佳一)569ec4e2005-11-29 11:27:51 +000022762005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
2277
Werner Lemberg44e47d52005-11-30 18:47:49 +00002278 Major update to distinguish between unsorted and overlapping
2279 segments for cmap format 4. For overlapping but sorted segments,
2280 which is previously considered unsorted, we still use binary search.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002281
David Turner5b5f3822005-12-14 16:37:15 +00002282 * src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002283 (TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros.
2284
2285 * src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined.
David Turner5b5f3822005-12-14 16:37:15 +00002286 (TT_CMap4Rec_): Remove `old_charcode' and `table_length'.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002287 (tt_cmap4_reset): Removed.
2288 (tt_cmap4_init): Updated accordingly.
2289 (tt_cmap4_next): Updated accordingly.
Werner Lemberg44e47d52005-11-30 18:47:49 +00002290 Take care of overlapping segments.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002291 (tt_cmap4_validate): Make sure the subtable is large enough.
2292 Do not check glyph_ids because some fonts set the length wrongly.
Werner Lemberg05cda082006-01-08 13:37:15 +00002293 Also, if all segments have offset 0, glyph_ids is always invalid.
Werner Lemberg44e47d52005-11-30 18:47:49 +00002294 It does not cause any problem so far only because the check misses
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002295 equality.
Werner Lemberg44e47d52005-11-30 18:47:49 +00002296 Distinguish between unsorted and overlapping segments.
2297 (tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions
2298 to do `charcode => glyph index' by linear/binary search.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002299 (tt_cmap4_char_index, tt_cmap4_char_next): Use
2300 tt_cmap4_char_map_linear and tt_cmap4_char_map_binary.
2301 (tt_face_build_cmaps): Treat the return value of validator as flags
2302 for cmap.
2303
23042005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
2305
Werner Lemberg44e47d52005-11-30 18:47:49 +00002306 * src/sfnt/ttcmap.c (TT_CMap12Rec_, tt_cmap12_init, tt_cmap12_next):
2307 New structures and functions for fast `next char'.
2308 (tt_cmap12_char_map_binary): New function to do `charcode => glyph
2309 index' by binary search.
Wu, Chia-I (吳佳一)569ec4e2005-11-29 11:27:51 +00002310 (tt_cmap12_char_index, tt_cmap12_char_next): Use
2311 tt_cmap12_char_map_binary.
2312 (tt_face_build_cmaps): Check table and offset correctly (equality is
2313 missing).
2314
Werner Lemberg4e03fe72006-04-29 06:20:09 +000023152005-11-15 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würknerdf1598e2005-11-25 08:04:09 +00002316
2317 * builds/amiga/smakefile: Adjusted the compiler options
2318 to the current sources, now really builds the gxvalid, gzip
2319 and psnames modules.
2320
2321 * builds/amiga/src/base/ftsystem.c: The assumed Seek() position
2322 in the file cache was off by one byte which could cause false
2323 errors in font files.
2324
Werner Lemberg6be99f92006-02-09 07:38:57 +000023252005-11-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)6b1c5972005-11-24 05:16:57 +00002326
2327 * builds/mac/FreeType.m68k_far.make.txt,
2328 builds/mac/FreeType.m68k_cfm.make.txt,
2329 builds/mac/FreeType.ppc_classic.make.txt,
2330 builds/mac/FreeType.ppc_carbon.make.txt:
2331 Updated for MPW to build all available modules.
2332
Werner Lemberg4e03fe72006-04-29 06:20:09 +000023332005-11-21 Håvard Wall <haavardw@ifi.uio.no>
Werner Lemberg67ba2112005-11-21 17:32:03 +00002334
2335 * src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Done): Fix small
2336 memory leak.
2337
Werner Lemberg840232a2005-11-21 12:36:42 +000023382005-11-21 Werner Lemberg <wl@gnu.org>
2339
2340 * src/sfnt/ttload.c (sfnt_init): Add tracing message.
2341
Wu, Chia-I (吳佳一)d81947e2005-11-21 03:04:03 +000023422005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
2343
Werner Lemberg840232a2005-11-21 12:36:42 +00002344 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Image_offset was
Werner Lemberg05cda082006-01-08 13:37:15 +00002345 added twice to image_start if image_format was 2 or 5.
Wu, Chia-I (吳佳一)275be9b2005-11-21 03:05:34 +00002346
23472005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
2348
Wu, Chia-I (吳佳一)d81947e2005-11-21 03:04:03 +00002349 * src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known
2350 before loading the table directory.
2351
2352 * src/sfnt/ttload.c (tt_face_load_sfnt_header,
2353 tt_face_load_directory): Delay sfnt_dir_check from
2354 tt_face_load_sfnt_header to tt_face_load_directory.
2355
Wu, Chia-I (吳佳一)6f1eca02005-11-20 08:24:24 +000023562005-11-20 Chia-I Wu <b90201047@ntu.edu.tw>
2357
2358 * src/sfnt/ttload.c (sfnt_dir_check): Clean up and return correct
2359 error code.
2360 (sfnt_init): New function to fill in face->ttc_header. A non-TTC font
2361 is synthesized into a TTC font with one offset table.
2362 (tt_face_load_sfnt_header): Use sfnt_init.
Werner Lemberg05cda082006-01-08 13:37:15 +00002363 Fix an invalid access if the font is TTC and face_index is -1.
Wu, Chia-I (吳佳一)6f1eca02005-11-20 08:24:24 +00002364
Werner Lemberg1a293d62005-11-18 08:23:06 +000023652005-11-18 Werner Lemberg <wl@gnu.org>
2366
2367 * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number
2368 of metrics instead of aborting. Patch suggested by Derek Noonburg.
2369
Werner Lemberg6c990452005-11-18 21:10:59 +00002370 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
2371 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Scale
2372 the glyph properly if no hinter is available.
2373
2374 * docs/CHANGES: Mention scaling bug.
2375
Suzuki, Toshiya (鈴木俊哉)8d81d412005-11-18 07:47:06 +000023762005-11-18 susuzki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2377
2378 * include/freetype/ftgxval.h, src/base/ftgxval.c
2379 (FT_TrueTypeGX_Free, FT_ClassicKern_Free): New functions to free
2380 buffers allocated by gxvalid module.
2381 * include/freetype/ftotval.h, src/base/ftotval.c
2382 (FT_OpenType_Free): New function to free buffer allocated by
2383 otvalid module.
2384
Wu, Chia-I (吳佳一)cb182382005-11-18 04:29:31 +000023852005-11-18 Chia-I Wu <b90201047@ntu.edu.tw>
2386
2387 * builds/unix/ftsystem.c (FT_Stream_Open, FT_New_Memory,
2388 FT_Done_Memory), builds/vms/ftsystem.c (FT_Stream_Open, FT_New_Memory,
2389 FT_Done_Memory), builds/win32/ftdebug.c (FT_Message, FT_Panic):
2390 s/FT_EXPORT/FT_BASE/.
2391
Werner Lemberg4e03fe72006-04-29 06:20:09 +000023922005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner4859ac42005-11-17 14:21:07 +00002393
Detlef Würkner0acfc1f2005-11-17 16:54:54 +00002394 * builds/amiga/src/base/ftdebug.c (FT_Trace_Get_Count,
2395 FT_Trace_Get_Name, FT_Message, FT_Panic),
2396 builds/amiga/src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory,
2397 FT_Stream_Open): s/FT_EXPORT/FT_BASE/.
2398
Werner Lemberg4e03fe72006-04-29 06:20:09 +000023992005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner0acfc1f2005-11-17 16:54:54 +00002400
Werner Lemberg1a293d62005-11-18 08:23:06 +00002401 * builds/amiga/makefile, builds/amiga/makefile.os4,
Detlef Würknerdf1598e2005-11-25 08:04:09 +00002402 builds/amiga/smakefile,
Detlef Würkner4859ac42005-11-17 14:21:07 +00002403 builds/amiga/include/freetype/config/ftmodule.h: Updated the Amiga
Werner Lemberg1a293d62005-11-18 08:23:06 +00002404 build files (added support for the gxvalid module).
Detlef Würkner4859ac42005-11-17 14:21:07 +00002405
Werner Lembergcfc0cf22005-11-17 08:12:00 +000024062005-11-17 Werner Lemberg <wl@gnu.org>
2407
2408 Add vertical metrics support to OpenType CFF outlines. Based on a
Werner Lemberg1a293d62005-11-18 08:23:06 +00002409 patch from Mike Moening <MikeM@RetekSolutions.com>.
Werner Lembergcfc0cf22005-11-17 08:12:00 +00002410
2411 * src/cff/cffgload.c (cff_face_get_vertical_metrics): New function.
2412 (cff_slot_load): Use cff_face_get_vertical_metrics.
2413
2414 * docs/CHANGES: Updated.
2415
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +000024162005-11-17 Chia-I Wu <b90201047@ntu.edu.tw>
2417
2418 * src/base/ftcalc.c (FT_MulTo64): Commented out.
2419
Werner Lembergcfc0cf22005-11-17 08:12:00 +00002420 * include/freetype/internal/ftcalc.h (FT_SqrtFixed),
2421 src/base/ftcalc.c (FT_SqrtFixed),
2422 include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
2423 FT_Trace_Get_Name, FT_Message, FT_Panic), src/base/ftdebug.c
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00002424 (FT_Trace_Get_Count, FT_Trace_Get_Name, FT_Message, FT_Panic),
Werner Lembergcfc0cf22005-11-17 08:12:00 +00002425 include/freetype/internal/ftobjs.h (FT_New_Memory, FT_Done_Memory),
2426 include/freetype/internal/ftstream.h (FT_Stream_Open),
2427 src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory, FT_Stream_Open):
2428 s/FT_EXPORT/FT_BASE/.
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00002429
Werner Lembergcfc0cf22005-11-17 08:12:00 +00002430 * builds/exports.mk: Manually add TT_New_Context to EXPORTS_LIST
2431 too.
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00002432
David Turnerf7cc1812005-11-15 17:30:56 +000024332005-11-15 David Turner <david@freetype.org>
2434
Werner Lemberg674ba912005-11-16 18:09:27 +00002435 * src/base/fttrigon.c (ft_trig_prenorm): Fix a bug that created
David Turnerf7cc1812005-11-15 17:30:56 +00002436 invalid computations, resulting in very weird bugs in TrueType
Werner Lemberg674ba912005-11-16 18:09:27 +00002437 bytecode hinted fonts.
David Turnerf7cc1812005-11-15 17:30:56 +00002438
Werner Lemberg674ba912005-11-16 18:09:27 +00002439 * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Don't perform a
2440 structure copy each time.
David Turnerf7cc1812005-11-15 17:30:56 +00002441
Werner Lembergd829ff72005-11-12 17:07:11 +000024422005-11-11 Werner Lemberg <wl@gnu.org>
2443
2444 * src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c
2445 (FTC_Manager_Check): Remove FT_EXPORT_DEF tag.
2446
David Turnerf7cc1812005-11-15 17:30:56 +00002447 * src/base/ftcalc.c (FT_Add64): Remove FT_EXPORT_DEF tag.
Werner Lembergd829ff72005-11-12 17:07:11 +00002448 (FT_Div64by32, FT_Sqrt32): Commented out. Unused.
2449
2450 * include/freetype/internal/ftcalc.h (SQRT_32): Removed. Unused.
2451 (FT_Sqrt32): Commented out. Unused.
2452
2453 * include/freetype/cache/ftccache.h:
2454 s/ftc_node_destroy/FTC_Node_Destroy/.
2455
2456 * src/cache/ftccback.h (ftc_node_destroy): New declaration.
2457
2458 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF tag.
2459 (FTC_Node_Destroy): New exported wrapper function for
2460 ftc_node_destroy.
2461
2462 * src/cache/ftcmanag.c: Include ftccback.c.
2463
Werner Lemberg4309edc2005-11-11 15:49:14 +000024642005-11-10 Werner Lemberg <wl@gnu.org>
2465
2466 * src/autofit/afangles.c, src/autofit/aftypes.h (af_angle_diff):
2467 Comment out. Unused.
2468
Werner Lembergf2c53302005-11-11 16:20:59 +00002469 * builds/exports.mk ($(EXPORTS_LIST)): Add TT_RunIns.
2470
Werner Lemberg4309edc2005-11-11 15:49:14 +000024712005-11-10 Christian Biesinger <cbiesinger@web.de>
2472
2473 * builds/beos/beos.mk: Call beos-def.mk before anything else to
2474 define the separator.
2475
2476 * builds/unix/unix-cc.in (LINK_LIBRARY): Add `-no-undefined' flag.
2477
Werner Lembergea4c3dc2005-11-08 09:10:16 +000024782005-11-07 Werner Lemberg <wl@gnu.org>
2479
2480 * src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning
2481 table available'. From Sergey Tolstov <stolstov@esri.com>.
2482
Werner Lemberg4e03fe72006-04-29 06:20:09 +000024832005-11-03 Ville Syrjälä <syrjala@sci.fi>
Werner Lembergb2d02532005-11-04 06:58:49 +00002484
2485 * src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak.
2486
24872005-11-02 Werner Lemberg <wl@gnu.org>
2488
2489 Make compiling instructions in docs/CUSTOMIZE work again.
2490
2491 * builds/unix/unix-cc.in (CPPFLAGS): New variable.
2492 (CFLAGS): Don't include @CPPFLAGS@.
2493 * builds/freetype.mk (FT_CFLAGS): Add CPPFLAGS.
2494
David Turnerdab24542005-11-02 09:24:00 +000024952005-10-28 David Turner <david@freetype.org>
2496
Werner Lembergcee37a32005-11-12 07:34:40 +00002497 Update build system to support the generation of a list of exported
2498 symbols or Windows .DEF files by parsing the public headers with the
Werner Lembergb2d02532005-11-04 06:58:49 +00002499 `apinames' tool located in src/tools/apinames.c.
David Turnerdab24542005-11-02 09:24:00 +00002500
Werner Lembergb2d02532005-11-04 06:58:49 +00002501 Only tested on Unix at the moment. On Windows, the .DEF file is
2502 generated but isn't used yet to generate a DLL.
David Turnerdab24542005-11-02 09:24:00 +00002503
Werner Lembergcee37a32005-11-12 07:34:40 +00002504 * builds/exports.mk: New file.
David Turnerdab24542005-11-02 09:24:00 +00002505
Werner Lembergcee37a32005-11-12 07:34:40 +00002506 * builds/freetype.mk: Include exports.mk.
2507 (dll): New target.
2508 (clean_project_dos): Fix rule.
David Turnerdab24542005-11-02 09:24:00 +00002509
Werner Lembergcee37a32005-11-12 07:34:40 +00002510 * builds/compiler/visualc.mk (TE), builds/dos/dos-def.mk (E),
2511 builds/os2/os2-def.mk (E), builds/win32/win32-def.mk (E): New
2512 variables for controlling executable extensions.
David Turnerdab24542005-11-02 09:24:00 +00002513
Werner Lembergcee37a32005-11-12 07:34:40 +00002514 * builds/unix/unix-cc.in (EXPORTS_LIST, CCexe),
2515 builds/win32/w32-bcc.mk, builds/win32/w32-gcc.mk,
2516 builds/win32/w32-icc.mk, builds/win32/w32-icc.mk,
2517 builds/win32/w32-mingw32.mk, builds/win32/w32-vcc,
2518 builds/win32/w32-wat.mk (EXPORTS_LIST, EXPORT_OPTIONS,
2519 APINAMES_OPTIONS): New targets for controlling the `apinames' tool.
2520
2521 * Jamfile (GenExportSymbols): Updated.
2522
2523
2524 * src/pfr/pfrtypes.h, src/pfr/pfrload.c, src/pfr/pfrobjs.c
2525 [!FT_OPTIMIZE_MEMORY]: Fold memory optimization code into
2526 FT_OPTIMIZE_MEMORY chunks for better maintainability and simplicity.
2527
2528
2529 * src/base/fttrigon.c (ft_trig_prenorm), src/base/ftcalc.c
2530 (FT_MulFix): Performance optimizations.
2531
2532
2533 * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
2534 FT_GLYPHLOADER_CHECK_C, FT_GLYPHLOADER_CHECK_POINTS): New macros for
2535 checking points and contours. Update callers to use
2536 FT_GLYPHLOADER_CHECK_POINTS instead of FT_GlyphLoader_CheckPoints
2537 at profile-detected hot-spots.
2538
2539 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Set `adjust'
2540 to 0 to not call `AdjustPoints' every time.
2541
David Turnerdab24542005-11-02 09:24:00 +00002542
Werner Lembergb2d02532005-11-04 06:58:49 +00002543 * src/autofit/aftypes.h (AF_ANGLE_DIFF): New macro to inline
2544 FT_Angle_Diff.
David Turnerdab24542005-11-02 09:24:00 +00002545
Werner Lembergcee37a32005-11-12 07:34:40 +00002546 * src/autofit/afhints.c (af_direction_compute): Re-implement.
2547 (af_glyph_hints_compute_inflections, af_glyph_hints_reload): Use
Werner Lembergb2d02532005-11-04 06:58:49 +00002548 AF_ANGLE_DIFF to speed up the detection of inflexions.
David Turnerdab24542005-11-02 09:24:00 +00002549
Werner Lembergcee37a32005-11-12 07:34:40 +00002550
2551 * src/tools/apinames.c: Include <string.h>.
2552 (OutputFormat): New enumeration.
2553 (names_dump): Add two parameters to control output format and DLL
2554 name.
2555 (names_dump_windef): Removed. Code folded into `names_dump'.
2556 (read_header_file): Use isalnum, not isalpha. Otherwise function
2557 names with digits aren't read correctly.
2558 (usage): Updated.
2559 (main): New option `-o' to control output file name.
2560 New option `-d' to indicate DLL file name.
2561 Extend `-w' flag to handle Borland and Watcom compilers and linkers.
2562
Suzuki, Toshiya (鈴木俊哉)45115762005-10-28 15:39:58 +000025632005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2564
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00002565 * builds/mac/ftlib.prj, builds/mac/freetype.mak: Removed.
2566 ftlib.prj is unmaintained and incompatible with current tree.
2567 freetype.mak is unrecoverably broken.
2568
2569 * builds/mac/ftlib.prj.xml: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00002570 Generated by Metrowerks CodeWarrior 9.0.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00002571
2572 * builds/mac/FreeType.m68k_far.make.txt,
2573 builds/mac/FreeType.m68k_cfm.make.txt,
2574 builds/mac/FreeType.ppc_classic.make.txt,
2575 builds/mac/FreeType.ppc_carbon.make.txt: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00002576 Skeleton files of MPW makefiles.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00002577
2578 * builds/mac/ascii2mpw.py: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00002579 Python script to make MPW makefile from skeleton.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00002580
2581 * builds/mac/README: Updated.
2582 Almost rewritten to use new files.
2583
25842005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2585
Werner Lemberg05cda082006-01-08 13:37:15 +00002586 * src/base/ftmac.c: Fix invalid casts from NULL to integer typed
2587 variables. Advised by David Turner, Masatake YAMATO, Sean McBride,
Suzuki, Toshiya (鈴木俊哉)45115762005-10-28 15:39:58 +00002588 and George Williams.
2589
Werner Lemberg4b5661c2005-10-27 21:28:35 +000025902005-10-27 Werner Lemberg <wl@gnu.org>
2591
2592 * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed.
2593 Obsolete.
2594
Werner Lemberg43b057b2005-10-26 18:37:40 +000025952005-10-25 Werner Lemberg <wl@gnu.org>
2596
2597 * src/sfnt/sfdriver.c (sfnt_interface): Move out
2598 `tt_face_get_kerning' from a #ifdef clause. Reported by Tony J.
2599 Ibbs <tibs@sj.co.uk>.
2600
Werner Lemberg6c0e7342005-10-23 19:31:01 +000026012005-10-23 Werner Lemberg <wl@gnu.org>
2602
2603 * src/base/ftdbgmem.c (ft_mem_debug_realloc): Make it compile with
2604 C++.
2605
David Turner398d64c2005-10-21 10:01:25 +000026062005-10-21 David Turner <david@freetype.org>
2607
Werner Lemberg90968f72005-10-22 10:34:45 +00002608 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_debug_realloc):
2609 Another realloc memory counting bug fix.
David Turner398d64c2005-10-21 10:01:25 +00002610
Werner Lemberg90968f72005-10-22 10:34:45 +00002611 * src/tools/Jamfile: Add missing file.
David Turner398d64c2005-10-21 10:01:25 +00002612
Werner Lemberg90968f72005-10-22 10:34:45 +00002613 * src/lzw/Jamfile: Fix incorrect source file reference.
David Turner398d64c2005-10-21 10:01:25 +00002614
David Turnerc1b6d082005-10-20 15:33:34 +000026152005-10-20 David Turner <david@freetype.org>
2616
Werner Lemberg560d5fe2005-10-21 09:08:28 +00002617 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_table_remove,
2618 ft_mem_debug_alloc, ft_mem_debug_free, ft_mem_debug_realloc): Fixes
2619 to better account for memory reallocations.
David Turnerc1b6d082005-10-20 15:33:34 +00002620
Werner Lemberg560d5fe2005-10-21 09:08:28 +00002621 * src/lzw/ftlzw2.c, src/lzw/ftzopen.h, src/lzw/ftzopen.c,
David Turner398d64c2005-10-21 10:01:25 +00002622 src/lzw/rules.mk: First version of LZW loader re-implementation.
2623 Apparently, this saves about 330 KB of heap memory when loading
Werner Lemberg560d5fe2005-10-21 09:08:28 +00002624 timR24.pcf.Z.
David Turnerc1b6d082005-10-20 15:33:34 +00002625
Wu, Chia-I (吳佳一)7e307762005-10-20 02:13:46 +000026262005-10-20 Chia-I Wu <b90201047@ntu.edu.tw>
2627
2628 * include/freetype/ftbitmap.h (FT_Bitmap_Copy, FT_Bitmap_Embolden),
2629 src/base/ftbdf.c (FT_Get_BDF_Property), src/cache/ftcmru.c
Werner Lemberg560d5fe2005-10-21 09:08:28 +00002630 (FTC_MruList_Reset, FTC_MruList_Done, FTC_MruList_Lookup): Fix
2631 FT_EXPORT/FT_EXPORT_DEF tagging.
Wu, Chia-I (吳佳一)7e307762005-10-20 02:13:46 +00002632
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +000026332005-10-19 Chia-I Wu <b90201047@ntu.edu.tw>
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002634
Werner Lemberg560d5fe2005-10-21 09:08:28 +00002635 * src/truetype/ttgload.c (TT_Load_Glyph): Allow size->ttmetrics to
2636 be invalid when FT_LOAD_NO_SCALE is set.
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +00002637
26382005-10-17 David Turner <david@freetype.org>
2639
2640 * src/base/ftobjs.c (FT_Open_Face): Don't call FT_New_GlyphSlot and
2641 FT_New_Size if we are opening a face with face_index < 0 (which is
2642 only used for testing the format).
2643
2644 * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate):
2645 Remove compiler warning.
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002646
26472005-10-16 David Turner <david@freetype.org>
2648
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +00002649 * src/tools/apinames.c: Add new tool to extract public API function
2650 names from header files.
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002651
26522005-10-05 Werner Lemberg <wl@gnu.org>
2653
2654 Add FT_FACE_FLAG_HINTER to indicate that a specific font driver has
2655 a hinting engine of its own.
2656
2657 * include/freetype/freetype.h (FT_FACE_FLAG_HINTER): New macro.
2658
2659 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
2660 (cid_face_init), src/truetype/ttobjs.c (tt_face_init)
2661 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER], src/type1/t1objs.c
2662 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init)
2663 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Update face flags.
2664
2665 * docs/CHANGES: Document it.
2666
26672005-09-27 Werner Lemberg <wl@gnu.org>
2668
2669 * builds/unix/freetype2.m4: Add license exception so that the file
2670 can be used in any other autoconf script.
2671
26722005-09-26 David Turner <david@freetype.org>
2673
2674 * src/autofit/aflatin.c (af_latin_compute_stem_width): Fix bad
2675 computation of the `vertical' flag, causing ugly things in LCD mode
2676 and others.
2677
26782005-09-23 David Turner <david@freetype.org>
2679
2680 * src/autofit/aflatin.c (af_latin_hints_init): Fix a bug that
2681 prevented internal hint mode bitflags from being computed correctly.
2682
2683 * src/base/Jamfile: Adding src/base/ftgxval.c.
2684
2685 * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
2686 src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c, src/gxvalid/gxvkern.c,
2687 src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
2688 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
2689 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
2690 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmorx.c,
2691 src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
2692 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx5.c,
2693 src/gxvalid/gxvopbd.c, src/gxvalid/gxvprop.c,
2694 src/truetype/ttgload.c: Remove _many_ compiler warnings when
2695 compiling with Visual C++ at maximum level (/W4).
2696
2697 * src/autofit/afangles.c (af_angle_atan): Replaced CORDIC-based
2698 implementation with one using lookup tables. This simple thing
2699 speeds up glyph loading by 18%, according to ftbench!
2700
2701 * src/sfnt/sfdriver.c (sfnt_get_interface): Don't check for
2702 `get_sfnt' and `load_sfnt' module interfaces.
2703
27042005-09-22 Werner Lemberg <wl@gnu.org>
2705
2706 * docs/CHANGES: Mention SING Glyphlet support.
2707
27082005-09-22 David Turner <david@freetype.org>
2709
2710 * src/base/Jamfile: Disable compilation of ftgxval module
2711 temporarily.
2712
27132005-09-19 David Somers <dsomers@omz13.com>
2714
2715 * freetype2/src/sfnt/ttload.c (sfnt_dir_check): Modified to allow a
2716 font to have no `head' table if tables `SING' and `META' are
2717 present; this is to support `SING Glyphlet'.
2718
2719 `SING Glyphlet' is an extension to OpenType developed by Adobe
2720 primarily to facilitate adding supplemental glyphs to an OpenType
2721 font (with emphasis on, but not necessariy limited to, gaiji to a
2722 CJK font). A SING Glyphlet Font is an OpenType font that contains
2723 the outline(s), either in a `glyf' or `CFF' table, for a glyph;
2724 `cmap', `BASE', and `GSUB' tables are present with the same format
2725 and functionaliy as a regular OpenType font; there are no `name',
2726 `head', `OS/2', and `post' tables; there are two new tables, `SING'
2727 which contains details about the glyphlet, and `META' which contains
2728 metadata.
2729
2730 Further information on the SING Glyphlet format can be found at:
2731
2732 http://www.adobe.com/products/indesign/sing_gaiji.html
2733
2734 * freetype2/include/freetype/ttags.h (TTAG_SING, TTAG_META): New
2735 macros for the OpenType tables `SING' and `META'. These two tables
2736 are used in SING Glyphlet Format fonts.
2737
27382005-09-09 Werner Lemberg <wl@gnu.org>
2739
2740 * src/sfnt/sfobjs.c (sfnt_load_face): Reactivate code to set
2741 FT_FACE_FLAG_KERNING which has been commented out erroneously.
2742
2743 * docs/CHANGES: Document it.
2744
27452005-09-05 Werner Lemberg <wl@gnu.org>
2746
2747 Fixes for `make multi' and using C++ compiler.
2748
2749 * gxvalid/gxvcommn.c (gxv_set_length_by_ushort_offset,
2750 gxv_set_length_by_ulong_offset, gxv_array_getlimits_byte,
2751 gxv_array_getlimits_ushort): Declare with FT_LOCAL_DEF.
2752 (gxv_compare_ranges): Make it static.
2753 (gxv_LookupTable_fmt0_validate, gxv_LookupTable_fmt2_validate,
2754 gxv_LookupTable_fmt4_validate, gxv_LookupTable_fmt6_validate,
2755 gxv_LookupTable_fmt8_validate, gxv_LookupTable_validate): Improve
2756 trace messages.
2757 (gxv_StateArray_validate, gxv_XStateArray_validate): s/class/clazz/.
2758 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
2759 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Move to
2760 gxvcommn.h.
2761
2762 * gxvalid/gxvcommn.h: Add prototypes for
2763 gxv_StateTable_subtable_setup, gxv_XStateTable_subtable_setup,
2764 gxv_XStateTable_validate, gxv_array_getlimits_byte,
2765 gxv_array_getlimits_ushort, gxv_set_length_by_ushort_offset,
2766 gxv_set_length_by_ulong_offset, gxv_odtect_add_range,
2767 gxv_odtect_validate.
2768 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
2769 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Moved from
2770 gxvcommn.c.
2771
2772 * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
2773 gxv_bsln_parts_fmt1_validate): Improve trace messages.
2774
2775 * gxvalid/gxvfeat.c: Split off predefined registry stuff to...
2776 * gxvalid/gxvfeat.h: New file.
2777
2778 * gxvalid/gxvjust.c (gxv_just_wdc_entry_validate): Improve trace
2779 message.
2780
2781 * gxvalid/gxvkern.c (GXV_kern_Dialect): Add KERN_DIALECT_UNKNOWN.
2782 (gxv_kern_subtable_fmt1_valueTable_load,
2783 gxv_kern_subtable_fmt1_subtable_setup,
2784 gxv_kern_subtable_fmt1_entry_validate): Fix C++ compiler errors.
2785 (gxv_kern_coverage_validate): Use KERN_DIALECT_UNKWOWN.
2786 Improve trace message.
2787 (gxv_kern_validate_generic): Fix C++ compiler error.
2788 Improve trace message.
2789 (gxv_kern_validate_classic): Fix C++ compiler error.
2790
2791 * gxvalid/gxvmort0.c (gxv_mort_subtable_type0_validate): Declare
2792 with FT_LOCAL_DEF.
2793
2794 * gxvalid/gxvmort1.c
2795 (gxv_mort_subtable_type1_substitutionTable_load,
2796 gxv_mort_subtable_type1_subtable_setup): Fix C++ compiler errors.
2797 (gxv_mort_subtable_type1_substTable_validate): Improve trace
2798 message.
2799 (gxv_mort_subtable_type1_validate): Declare with FT_LOCAL_DEF.
2800
2801 * gxvalid/gxvmort2.c (gxv_mort_subtable_type2_opttable_load,
2802 gxv_mort_subtable_type2_subtable_setup,
2803 gxv_mort_subtable_type2_ligActionOffset_validate,
2804 gxv_mort_subtable_type2_ligatureTable_validate): Fix C++ compiler
2805 errors.
2806 (gxv_mort_subtable_type2_validate): Declare with FT_LOCAL_DEF.
2807
2808 * gxvalid/gxvmort4.c (gxv_mort_subtable_type4_validate): Declare
2809 with FT_LOCAL_DEF.
2810
2811 * gxvalid/gxvmort5.c (gxv_mort_subtable_type5_subtable_setup,
2812 gxv_mort_subtable_type5_InsertList_validate): Fix C++ compiler
2813 errors.
2814 (gxv_mort_subtable_type5_validate): Declare with FT_LOCAL_DEF.
2815
2816 * gxvalid/gxvmort.c: Include gxvfeat.h.
2817 (gxv_mort_featurearray_validate, gxv_mort_coverage_validate):
2818 Declare with FT_LOCAL_DEF.
2819 (gxv_mort_subtables_validate, gxv_mort_validate): Improve trace
2820 messages.
2821
2822 * gxvalid/gxvmort.h (gxv_mort_feature_validate): Remove.
2823
2824 * gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_validate): Declare
2825 with FT_LOCAL_DEF.
2826
2827 * gxvalid/gxvmorx1.c
2828 (gxv_morx_subtable_type1_substitutionTable_load,
2829 gxv_morx_subtable_type1_subtable_setup,
2830 gxv_morx_subtable_type1_entry_validate,
2831 gxv_morx_subtable_type1_substitutionTable_validate): Fix C++
2832 compiler errors.
2833 (gxv_morx_subtable_type1_validate): Declare with FT_LOCAL_DEF.
2834
2835 * gxvalid/gxvmorx2.c (gxv_morx_subtable_type2_opttable_load,
2836 gxv_morx_subtable_type2_subtable_setup,
2837 gxv_morx_subtable_type2_ligActionIndex_validate,
2838 gxv_morx_subtable_type2_ligatureTable_validate): Fix C++ compiler
2839 errors.
2840 (gxv_morx_subtable_type2_validate): Declare with FT_LOCAL_DEF.
2841 Fix typo.
2842
2843 * gxvalid/gxvmorx4.c (gxv_morx_subtable_type4_validate): Declare
2844 with FT_LOCAL_DEF.
2845
2846 * gxvalid/gxvmorx5.c (gxv_morx_subtable_type5_insertionGlyph_load,
2847 gxv_morx_subtable_type5_subtable_setup): Fix C++ compiler error.
2848 (gxv_morx_subtable_type5_validate): Declare with FT_LOCAL_DEF.
2849
2850 * gxvalid/gxvmorx.c (gxv_morx_subtables_validate,
2851 gxv_morx_validate): Improve trace message.
2852
2853 * gxvalid/gxvopbd.c (gxv_opbd_LookupFmt4_transit): Fix compiler
2854 warnings.
2855 (gxv_opbd_validate): Improve trace message.
2856
2857 * gxvalid/gxvprop.c: Decorate constants with `U' and `L' where
2858 appropriate.
2859 (gxv_prop_zero_advance_validate, gxv_prop_validate): Improve trace
2860 message.
2861
2862 * gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): Remove unused
2863 parameter. Update all callers.
2864 (gxv_trak_validate): Improve trace message.
2865
2866 * rules.mk (GXV_DRV_H): Add gxvfeat.h.
2867
28682005-09-01 Werner Lemberg <wl@gnu.org>
2869
2870 * src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'.
2871
2872 * src/gxvalid/gxmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE),
2873 src/gxvalid/gxmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix
2874 typo.
2875
2876 * src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
2877 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx4.c,
2878 src/gxvalid/gxvmorx5.c, src/gxvalid/gxvmort.c: Improve trace
2879 messages.
2880 Decorate constants with `U' and `L' where appropriate.
2881 Fix compiler warnings.
2882
28832005-08-31 Werner Lemberg <wl@gnu.org>
2884
2885 * src/truetype/ttgload.c (load_truetype_glyph): Fix typo.
2886
2887 * src/gxvalid/gxvbsln.c (gxv_bsln_validate): Fix trace message.
2888
2889 * src/gxvalid/gxvcommn.c (gxv_odtect_add_range): Use `const'.
2890
2891 * src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c,
2892 src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmod.c,
2893 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
2894 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
2895 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmort.c: Improve trace
2896 messages.
2897 Decorate constants with `U' and `L' where appropriate.
2898 Fix compiler warnings.
2899
29002005-08-30 Werner Lemberg <wl@gnu.org>
2901
2902 * src/gxvalid/README: Revised.
2903 * src/gxvalid/gxvbsln.c: Fix compiler warnings.
2904 * src/gxvalid/gxvcommn.c: Fix compiler warnings.
2905 (gxv_XEntryTable_validate, gxv_compare_ranges): Remove unused
2906 parameter. Update all callers.
2907 Improve trace messages.
2908 Some formatting.
2909
29102005-08-29 Werner Lemberg <wl@gnu.org>
2911
2912 * include/freetype/freetype.h, include/freetype/ftchapters.h: Add
2913 a preliminary section with some explanations about user allocation.
2914
2915 * src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
2916 Don't abort if there are no data types, functions, etc., in a
2917 section.
2918 Print synopsis only if we have a data type, function, etc.
2919
2920 * docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
2921 docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
2922 docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
2923
29242005-08-28 George Williams <gww@silcom.com>
2925
2926 * src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed.
2927 (load_truetype_glyph): Limit recursion depth by `maxComponentDepth'.
2928
29292005-08-25 J. Ali Harlow <ali@avrc.city.ac.uk>
2930
2931 * builds/unix/freetype2.in (CFlags): Add missing directory.
2932
29332005-08-24 Werner Lemberg <wl@gnu.org>
2934
2935 * docs/CHANGES: Mention gxvalid module.
2936
29372005-08-23 Werner Lemberg <wl@gnu.org>
2938
2939 * src/autofit/aflatin.c (af_latin_metrics_scale): Initialize
2940 render mode properly. Reported by chris@dokein.co.uk.
2941
Werner Lemberg6be99f92006-02-09 07:38:57 +000029422005-08-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002943
2944 Add gxvalid module to validate TrueType GX/AAT tables.
2945
2946 Modifications on existing files:
2947
2948 * Jamfile: Register gxvalid module.
2949 * src/base/Jamfile: Register ftgxval.c.
2950 * src/base/rule.mk: Register ftgxval.c.
2951 * docs/INSTALL.ANY: Register gxvalid/gxvalid.c.
2952
2953 * include/freetype/config/ftheader.h (FT_GX_VALIDATE_H): New macro
2954 to include gxvalid header file.
2955 * include/freetype/config/ftmodule.h: Register gxv_module_class.
2956
2957 * include/freetype/ftchapters.h: Add comment about gx_validation.
2958 * include/freetype/ftotval.h: Change keyword FT_VALIDATE_XXX
2959 to FT_VALIDATE_OTXXX to co-exist with gxvalid.
2960 * include/freetype/tttags.h: Add tags for TrueType GX/AAT tables.
2961
2962 * include/freetype/internal/ftserv.h (FT_SERVICE_GX_VALIDATE_H): New
2963 macro for gxvalid service.
2964 * include/freetype/internal/fttrace.h: Add trace facilities for
2965 gxvalid.
2966
2967 New files on existing directories:
2968
2969 * include/freetype/internal/services/svgxval.h: Registration of
2970 validation service for TrueType GX/AAT and classic kern table.
2971 * include/freetype/ftgxval.h: Public API definition to use gxvalid.
2972 * src/base/ftgxval.c: Public API of gxvalid.
2973
2974 New files under src/gxvalid/:
2975
2976 * src/gxvalid/Jamfile src/gxvalid/README src/gxvalid/module.mk
2977 src/gxvalid/rules.mk src/gxvalid/gxvalid.c src/gxvalid/gxvalid.h
2978 src/gxvalid/gxvbsln.c src/gxvalid/gxvcommn.c src/gxvalid/gxvcommn.h
2979 src/gxvalid/gxverror.h src/gxvalid/gxvfeat.c src/gxvalid/gxvfgen.c
2980 src/gxvalid/gxvjust.c src/gxvalid/gxvkern.c src/gxvalid/gxvlcar.c
2981 src/gxvalid/gxvmod.c src/gxvalid/gxvmod.h src/gxvalid/gxvmort.c
2982 src/gxvalid/gxvmort.h src/gxvalid/gxvmort0.c src/gxvalid/gxvmort1.c
2983 src/gxvalid/gxvmort2.c src/gxvalid/gxvmort4.c src/gxvalid/gxvmort5.c
2984 src/gxvalid/gxvmorx.c src/gxvalid/gxvmorx.h src/gxvalid/gxvmorx0.c
2985 src/gxvalid/gxvmorx1.c src/gxvalid/gxvmorx2.c src/gxvalid/gxvmorx4.c
2986 src/gxvalid/gxvmorx5.c src/gxvalid/gxvopbd.c src/gxvalid/gxvprop.c
2987 src/gxvalid/gxvtrak.c: New files, gxvalid body.
2988
29892005-08-21 Werner Lemberg <wl@gnu.org>
2990
2991 * src/truetype/ttgload.c (TT_Load_Glyph): Only translate outline
2992 to (0,0) if bit 1 of the `head' table isn't set. This improves
2993 rendering of buggy fonts.
2994
29952005-08-20 Chia I Wu <b90201047@ntu.edu.tw>
2996
2997 * src/truetype/ttdriver.c (Load_Glyph): Don't check the validity of
2998 ttmetrics here. TrueType fonts with only sbits always have
2999 ttmetrics.valid set to false.
3000
3001 * src/truetype/ttgload.c (TT_Load_Glyph): Check that ttmetrics is
3002 valid before loading outline glyph.
3003
3004 * src/cache/ftcimage.c (FTC_INode_New): Fix a memory leak.
3005
30062005-08-20 Werner Lemberg <wl@gnu.org>
3007
3008 * src/sfnt/ttload.c (tt_face_load_metrics_header): Ignore missing
3009 `hhea' table for SFNT Mac fonts. Change based on a patch by
3010 mpsuzuki@hiroshima-u.ac.jp.
3011
30122005-08-20 Masatake YAMATO <jet@gyve.org>
3013
3014 * src/otvalid/otvmod.c (otv_validate): Use ft_validator_run instead
3015 of ft_setjmp.
3016
30172005-08-19 Werner Lemberg <wl@gnu.org>
3018
3019 * src/truetype/ttgload.c (load_truetype_glyph): Fix compiler
3020 warnings.
3021
30222005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
3023
3024 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright
3025 messages.
3026
30272005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
3028
3029 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Remove original
3030 TT_Done_Context and rename TT_Destroy_Context to TT_Done_Context
3031 with slight changes.
3032 Update all callers.
3033 (TT_New_Context): Now takes TT_Driver argument directly.
3034 Update all callers.
3035
3036 * src/truetype/ttobjs.h (tt_slot_init): New function.
3037 * src/truetype/ttobjs.c (tt_driver_init): Initialize execution
3038 context here.
3039 (tt_slot_init): New function to create extra points for the internal
3040 glyph loader. We then use it directly, instead of face's glyph
3041 loader, when loading glyph.
3042
3043 * src/truetype/ttdriver.c (tt_driver_class): Use tt_slot_init for
3044 glyph slot initialization.
3045 (Load_Glyph): Load flag dependencies are handled here. Return error
3046 if size is NULL.
3047
3048 * src/truetype/ttgload.c: Heavy cleanup and refactoring.
3049 (org_to_cur): Removed.
3050 (TT_Load_Simple_Glyph): Call FT_GlyphLoader_CheckPoints.
3051 (TT_Hint_Glyph): New funcion to hint a zone, prepared by caller.
3052 (TT_Process_Simple_Glyph): s/load/loader/.
3053 Use loader->pp values instead of recalculation.
3054 Use TT_Hint_Glyph.
3055 No need to save/restore loader->stream before and after
3056 TT_Vary_Get_Glyph_Deltas now.
3057 (TT_LOADER_SET_PP): New macro to calculate and set the four phantom
3058 points.
3059 (load_truetype_glyph): Never set exec->glyphSize to 0. This closes
3060 Savannah bug #13107.
3061 Forget glyph frame before calling TT_Process_Simple_Glyph.
3062 Use TT_LOADER_SET_PP.
3063 Scale all four phantom points.
3064 Split off some functionality to ...
3065 (TT_Process_Composite_Component, TT_Process_Composite_Glyph): These
3066 new functions.
3067 (TT_Load_Glyph): Set various fields of `glyph' here, not in
3068 load_truetype_glyph and compute_glyph_metrics.
3069 Split off some functionality to ...
3070 (load_sbit_image, tt_loader_init): These new functions.
3071 (compute_glyph_metrics): Call FT_Outline_Get_CBox.
3072
30732005-08-08 Werner Lemberg <wl@gnu.org>
3074
3075 * docs/INSTALL.ANY: Updated.
3076
30772005-08-05 Werner Lemberg <wl@gnu.org>
3078
3079 * src/cff/cffgload.c (cff_builder_close_contour),
3080 src/psaux/psobjs.c (t1_builder_close_contour): Protect against
3081 zero `outline' pointer.
3082
3083 * src/base/ftgloadr.c (FT_GlyphLoader_Add): Protect against zero
3084 `loader' address.
3085
30862005-08-03 Werner Lemberg <wl@gnu.org>
3087
3088 * src/sfnt/sfdriver.c (sfnt_interface) [FT_OPTIMIZE_MEMORY]:
3089 Reactivate pointers to tt_find_sbit_image and tt_load_sbit_metrics
3090 to make X work again.
3091
30922005-08-02 Werner Lemberg <wl@gnu.org>
3093
3094 * src/otvalid/otvcommn.h: Remove dead code.
3095
30962005-07-31 Chia I Wu <b90201047@ntu.edu.tw>
3097
3098 * src/truetype/ttobjs.h (tt_size_run_fpgm, tt_size_run_prep): New
3099 functions.
3100
3101 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): New
3102 functions.
3103 (tt_size_init): Add 4, instead of 2, (phantom) points to twilight
3104 zone.
3105 Move code that runs fpgm to tt_size_run_fpgm.
3106 (Reset_Outline_Size): Move code that runs prep to tt_size_run_prep.
3107 (tt_glyphzone_new): Allocate right size of arrays.
3108 Set max_points and max_contours properly.
3109
31102005-07-26 Chia I Wu <b90201047@ntu.edu.tw>
3111
3112 * src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary
3113 computations and clean up.
3114
3115 * src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the
3116 internal copy of metrics.
3117
31182005-07-12 Werner Lemberg <wl@gnu.org>
3119
3120 * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix prototype.
3121 Reported by Xerxes.
3122
31232005-07-04 Werner Lemberg <wl@gnu.org>
3124
3125 * include/freetype/internal/ftmemory.h (FT_REALLOC_ARRAY): Fix typo.
3126 Reported by Brett Hutley.
3127
31282005-06-30 David Turner <david@freetype.org>
3129
3130 * src/sfnt/ftbitmap.c, src/truetype/ttgload.c, src/sfnt/ttcmap.c:
3131 Removing compiler warnings (Visual C++ /W4).
3132
3133
3134 Implement a work-around for broken C preprocessor in Visual C++ (it
3135 has been confirmed by the MS developers that it is indeed a bug
3136 which won't be fixed in the very near future).
3137
3138 * Jamfile (FT2_COMPONENTS): Include otvalid (again).
3139
3140 * src/otvalid/otvcommn.h (OTV_NAME, OTV_FUNC): New macros.
3141 (OTV_NEST1, OTV_NEST2, OTV_NEST3): Use OTV_NAME and OTV_FUNC to
3142 avoid argument expansion by argument prescan.
3143 Append `Func' to all affected macros and change them to take just a
3144 single argument. Example: `AttachList' is renamed to
3145 `AttachListFunc'.
3146
3147 * src/otvalid/otvgdef.c, src/otvalid/otvgpos.c,
3148 src/otvalid/otvgsub.c, src/otvjstf.c: Append `Func' to macros
3149 affected by the changes to OTV_NESTx and modify them to take just a
3150 single argument.
3151
31522005-06-20 Chia I Wu <b90201047@ntu.edu.tw>
3153
3154 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: New function
3155 ft_glyphslot_grid_fit_metrics.
3156
3157 * src/truetype/ttgload.c (compute_glyph_metrics): Use
3158 ft_glyphslot_grid_fit_metrics.
3159
3160 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
3161 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Use
3162 ft_glyphslot_grid_fit_metrics.
3163 FT_Outline_Get_CBox is called twice.
3164
3165 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Modify metrics to more
3166 reasonable values when emboldening outline glyphs. The theoretic
3167 ones are unrealistic.
3168
31692005-06-16 Chia I Wu <b90201047@ntu.edu.tw>
3170
3171 * src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
3172 halved.
3173
3174 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
3175 strength.
3176 Don't increase slot->advance.y.
3177
31782005-06-16 Werner Lemberg <wl@gnu.org>
3179
3180 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
3181 (FREETYPE_PATCH): Set to 0.
3182
3183 * builds/unix/configure.ac (version_info): Set to 9:9:3.
3184 Currently, we are still binary compatible.
3185
3186 * builds/win32/visualc/index.html,
3187 builds/win32/visualc/freetype.dsp,
3188 builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
3189
3190 * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
3191 s/2.1.9/2.1.10/.
3192
3193 * docs/CHANGES, docs/VERSION.DLL: Updated.
3194
3195 * ChangeLog: Split off older entries into...
3196 * ChangeLog.20, ChangeLog.21: These new files.
3197
31982005-06-15 Kirill Smelkov <kirr@mns.spb.ru>
3199
3200 The next release will be 2.2.0, so don't worry about source code
3201 backwards compatibility.
3202
3203 * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
3204 FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
3205 FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
3206 include/freetype/ftrender.h (FT_Glyph_TransformFunc,
3207 FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
3208 parameters with `const' where appropriate.
3209
32102005-06-15 Chia I Wu <b90201047@ntu.edu.tw>
3211
3212 * src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
3213 to make glyphs centered vertically.
3214
3215 * src/truetype/ttgload.c (compute_glyph_metrics): Compute
3216 vertBearingY to make glyphs centered vertically.
3217 Fix some bugs in vertical metrics:
3218
3219 . loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
3220 units.
3221 . As we use the glyph's cbox to calculate the top bearing now
3222 there iss no need to adjust `top'.
3223
32242005-06-15 Werner Lemberg <wl@gnu.org>
3225
3226 * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
3227 in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake.
3228
32292005-06-13 Werner Lemberg <wl@gnu.org>
3230
3231 * docs/release: Update.
3232
3233----------------------------------------------------------------------------
3234
Werner Lemberg435046b2006-01-11 10:57:42 +00003235Copyright 2005, 2006 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003236David Turner, Robert Wilhelm, and Werner Lemberg.
3237
3238This file is part of the FreeType project, and may only be used, modified,
3239and distributed under the terms of the FreeType project license,
3240LICENSE.TXT. By continuing to use, modify, or distribute this file you
3241indicate that you have read the license and understand and accept it
3242fully.
3243
3244
3245Local Variables:
3246version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00003247coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003248End: