blob: 20e60005a1d402d8141986d4840e92d039843a18 [file] [log] [blame]
David Turner8a317cf2006-09-27 07:52:48 +000012006-09-27 David Turner <david@freetype.org>
2
3 * include/freetype/freetype.h: bumping FT_FREETYPE_PATCH to 2
4 for an upcoming 2.2.2 release
5
6 * include/freetype/ftlcdfil.h, src/freetype/ftlcdfil.c:
7 added a new API to support color filtering of subpixel glyph
8 bitmaps. In default build, the function FT_Library_SetLcdFilter
9 returns FT_Err_Unimplemented_Feature; you need to #define
10 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile
11 the real implementation
12
13 * src/smooth/ftsmooth.c: adding support for sub-pixel color
14 filtering; simplifying a few function calls
15
16 * include/freetype/config/ftheader.h: adding FT_LCD_FILTER_H
17 macro that points to <freetype/ftlcdfil.h>
18
Werner Lemberge20df4a2006-09-27 06:29:21 +0000192006-09-26 David Bustin
20
21 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
22 correctly. Reported as Savannah bug #17843.
23
David Turner6f8c6222006-09-26 15:42:44 +0000242006-09-26 David Turner <david@freetype.org>
25
Werner Lemberg110246c2006-09-26 21:55:44 +000026 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
27 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
28 horizontal and vertical hinting for the purpose of debugging the
29 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +000030
Werner Lemberg110246c2006-09-26 21:55:44 +000031 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
32 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +000033
Werner Lemberg110246c2006-09-26 21:55:44 +000034 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
35
36 * include/freetype/config/ftoption.h, devel/ftoption.h
37 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
38 we want to compile LCD-optimized rendering code la ClearType) or
39 not. The macro *must* be disabled in default builds of the library
40 for patent reasons.
41
42 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
43 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
44 isn't defined at compile time. This only changes the content of the
45 rendered glyph to match the one of normal gray-level rendering,
46 hence clients should not need to be modified.
47
48 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +000049
Werner Lemberg745ff2c2006-09-19 05:48:02 +0000502006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
51
52 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
53 LWFN fails and both are available.
54
David Turnerf3050052006-09-11 12:00:32 +0000552006-09-11 David Turner <david@freetype.org>
56
Werner Lembergf9644552006-09-12 13:48:10 +000057 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
58 report their English names through an Apple Roman
59 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +000060
Werner Lembergf9644552006-09-12 13:48:10 +000061 If the font uses another name entry with language_id == English, it
62 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +000063
Werner Lembergf9644552006-09-12 13:48:10 +000064 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
65 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +000066
Werner Lemberg36d2eab2006-09-05 19:24:34 +0000672006-09-05 Werner Lemberg <wl@gnu.org>
68
69 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +000070 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +000071 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
72 `HAN NOM B.ttf').
73
74 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
75
David Turner772e55d2006-09-05 09:45:15 +0000762006-09-05 David Turner <david@freetype.org>
77
Werner Lemberg36d2eab2006-09-05 19:24:34 +000078 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +000079
Werner Lemberg36d2eab2006-09-05 19:24:34 +000080 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
81 (TRaster): Remove `count_ex' and `count_ey'.
82 (gray_find_cell): Remove 2nd and 3rd argument.
83 (gray_alloc_cell): Merged with `gray_find_cell'.
84 (gray_record_cell): Simplify.
85 (gray_set_cell): Rewrite.
86 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
87 (gray_render_span): Don't use FT_MEM_SET for small values.
88 (gray_dump_cells) [DEBUG_GRAYS]: New function.
89 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
90 bitmap scanline.
91 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +000092
David Turneraa557a92006-09-04 16:42:44 +0000932006-09-04 David Turner <david@freetype.org>
94
Werner Lembergd1fc7d42006-09-05 07:55:42 +000095 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
96 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +000097
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000982006-09-03 Werner Lemberg <wl@gnu.org>
99
100 * devel/ftoption.h: Synchronize with
101 include/freetype/config/ftoption.h.
102
103 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
104 variable declaration.
105 (gray_convert_glyph): Fix compiler warnings.
106
David Turner6d79f212006-09-01 14:09:35 +00001072006-09-01 David Turner <david@freetype.org>
108
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000109 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
110 to recognize a few fonts that require the automatic unpatented
111 loader.
David Turnerbd502952006-09-01 19:05:24 +0000112
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000113 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
114 rasterizer. The speed improvement is between 15% and 25%, depending
115 on the font data.
116
117 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
118 (TCell): Redefine.
119 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
120 (gray_init_cells): Updated.
121 (gray_find_cell, gray_alloc_cell): New functions.
122 (gray_record_cell): Rewritten to use `gray_find_cell' and
123 `gray_alloc_cell'.
124 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
125 QSORT_THRESHOLD):
126 Removed.
127 (gray_shell_sort, gray_quick_sort, gray_check_sort,
128 gray_dump_cells): Removed.
129 (gray_sweep): Rewritten.
130 (gray_convert_glyph): Rewrite code which used one of the sorting
131 functions.
132 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +0000133
Werner Lembergd898aed2006-08-29 09:50:34 +00001342006-08-29 Dr. Werner Fink <werner@suse.de>
135
136 * configure: Make it possible to handle configure options which
137 have strings containing spaces.
138
1392006-08-27 David Turner <david@freetype.org>
140
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000141 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
142 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
143 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
144
145 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
146 src/truetype/truetype.c, src/truetype/ttdriver.c,
147 src/truetype/ttgload.c, src/truetype/ttgload.h,
148 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
149 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
150 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
151
152 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
153 member `force_autohint'.
154
155 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
156
157 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
158 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +0000159
Jens Claudiusa787f452006-08-27 11:26:18 +00001602006-08-27 Jens Claudius <jens.claudius@yahoo.com>
161
162 Fix miscellaneous compiler warnings.
163
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000164 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
165 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +0000166
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000167 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
168 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
169 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +0000170
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000171 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
172 volatileness of argument to ft_longjmp. Spotted by Werner
173 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +0000174
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000175 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
176 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +0000177
Werner Lemberg2d8629b2006-09-03 06:18:45 +0000178 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
179 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +0000180
Werner Lembergc4c35b72006-08-27 08:03:46 +00001812006-08-27 Werner Lemberg <wl@gnu.org>
182
183 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
184 Reported by Jens.
185
Jens Claudius088e44e2006-08-22 14:24:30 +00001862006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +0000187
Jens Claudius088e44e2006-08-22 14:24:30 +0000188 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +0000189 about addresses of volatile objects passed as function arguments as
190 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +0000191
Werner Lembergc4c35b72006-08-27 08:03:46 +0000192 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
193 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +0000194
195 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
196 argument `table' a pointer to a volatile object.
197
198 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
199 argument `table' a pointer to a volatile object.
200
Jens Claudius2652bd52006-08-18 17:20:37 +00002012006-08-18 Jens Claudius <jens.claudius@yahoo.com>
202
203 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
204 variable `_sfnt' as volatile since it must keep its value across
205 a call to ft_setjmp.
206 (gxv_validate): Same for local variables `memory' and `valid'.
207 (classic_kern_validate): Same for local variables `memory',
208 `ckern', and `valid'.
209
210 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
211 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
212 `jstf', and 'valid'.
213
214 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
215 local variable `cmap'.
216
David Turner9fbfc6a2006-08-16 09:11:31 +00002172006-08-16 David Turner <david@freetype.org>
218
Werner Lemberg12342992006-08-19 11:18:09 +0000219 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
220 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +0000221
Werner Lemberg12342992006-08-19 11:18:09 +0000222 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
223 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +0000224
David Turner33f5f242006-08-16 16:50:55 +0000225
Werner Lemberg12342992006-08-19 11:18:09 +0000226 Improvements to native TrueType hinting. This is a first try,
227 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
228
229 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
230 `extra_points2'.
231
232 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
233 `orus'.
234
235 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
236 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
237 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
238 handle `extra_points2'.
239
240 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
241 Remove compiler warning.
242 (cur_to_arg): Remove macro.
243 (TT_Hint_Glyph): Updated.
244 (TT_Process_Simple_Glyph): Handle `orus'.
245
246 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
247 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
248 (LOC_Ins_IUP): Renamed to...
249 (IUP_WorkerRec): This.
250 Add `orus' member.
251 (Shift): Renamed to...
252 (_iup_worker_shift): This.
253 Updated.
254 (Interp): Renamed to...
255 (_iup_worker_interpolate): This.
256 Updated to handle `orus'.
257 (Ins_IUP): Updated.
258
259 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
260 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +0000261
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002622006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
263
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +0000264 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +0000265 build ftvalid in ft2demos. This has been inadvertedly changed
266 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +0000267
2682006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
269
Werner Lemberg12342992006-08-19 11:18:09 +0000270 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
271 Jens:
272 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +0000273
Werner Lemberg12342992006-08-19 11:18:09 +0000274 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
275 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +0000276
277 * freetype2/src/gxvalid/gxvmod.c: Ditto.
278
Jens Claudius9950adc2006-08-13 12:14:36 +00002792006-08-13 Jens Claudius <jens.claudius@yahoo.com>
280
Werner Lemberg12342992006-08-19 11:18:09 +0000281 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
282 T1_TOKEN_TYPE_KEY.
283 (T1_FieldRec): Add `dict'.
284 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
285 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
286 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +0000287
Werner Lemberg12342992006-08-19 11:18:09 +0000288 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
289 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +0000290
291 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
292
293 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +0000294 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
295 not T1_TOKEN_TYPE_ANY.
296 (ps_parser_load_field): Make sure a token that should be a string or
297 name is really a string or name.
298 Avoid memory leak if a keyword has been already encountered and its
299 value is overwritten.
300 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
301 T1_FIELD_XXX.
302 (parse_dict): Ignore keywords that occur in the wrong dictionary
303 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +0000304
Werner Lemberg12342992006-08-19 11:18:09 +0000305 * freetype2/src/type1/t1tokens.h: Adjust invocations of
306 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +0000307
Werner Lemberg12342992006-08-19 11:18:09 +0000308 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
309 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +0000310
Werner Lemberga4d6a1c2006-07-19 09:54:56 +00003112006-07-18 Jens Claudius <jens.claudius@yahoo.com>
312
313 Move creation of field `buildchar' of T1_DecoderRec out of
314 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
315 of it.
316
317 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
318 and `T1_Compute_Max_Advance'.
319
320 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
321 Remove field `face', add `len_buildchar'.
322
323 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
324 field `buildchar'.
325
326 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
327 finisher for T1_Decoder.
328 (cid_slot_load_glyph): Do not ignore failure when initializing the
329 T1_Decoder.
330
331 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
332 Updated.
333 (t1_decoder_init): Remove initialization of fields `buildchar' and
334 `len_buildchar'.
335 (t1_decoder_done): Remove deallocation of field `buildchar'.
336
337 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
338 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
339 T1_Decoder.
340 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
341 `len_buildchar'; make sure to call finisher for T1_Decoder even in
342 case of error.
343
344 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
345 `buildchar' of T1_FaceRec.
346
347 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
348 `buildchar' of T1_FaceRec.
349
Werner Lemberg1a380e02006-07-14 18:28:08 +00003502006-07-14 Jens Claudius <jens.claudius@yahoo.com>
351
352 * freetype2/include/freetype/internal/psaux.h: New macros
353 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
354 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
355 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
356 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
357 (T1_DecoderRec): New fields `buildchar' and `face'.
358 (IS_PS_TOKEN): New macro.
359
360 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
361 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
362
363 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
364 `default_design_vector' and `num_default_design_vector'.
365
366 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
367 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
368 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
369
370 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
371 `token' argument to be NULL if we want only to count the number of
372 tokens.
373 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
374 want to skip the array.
375 (ps_tofixedarray): Allow `values' argument to be NULL if we just
376 want to skip the array.
377
378 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
379 support for (partially commented out) othersubrs 19-25, 27, and 28.
380 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
381 (t1_decoder_done): Release new field `buildchar'.
382
383 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
384 functions.
385 (t1_keywords): Register them.
386 (t1_allocate_blend): Updated.
387 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
388 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
389 (parse_dict): Remove `keyword_flags' argument.
390 Use new macro IS_PS_TOKEN.
391 Changed function so that later PostScript definitions override
392 earlier ones.
393 (t1_init_loader): Initialize new field `keywords_encountered'.
394 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
395 `len_buildchar'.
396 Remove `keywords_flags'.
397
398 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
399 `keywords_encountered'.
400 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
401
402 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
403 New entries for parsing /NDV, /CDV, and /DesignVector.
404
Werner Lemberg4af3c4d2006-07-08 21:31:24 +00004052006-07-07 Werner Lemberg <wl@gnu.org>
406
407 Add many checks to protect against malformed PCF files.
408
409 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
410 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
411
412 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
413 data and check that tables don't overlap (using a simple
414 bubblesort).
415 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
416 New macros which give the size of data structures in the data
417 stream.
418 (pcf_get_properties): Use rough estimates to get array size limits.
419 Assign `face->nprops' and `face->properties' earlier so that a call
420 to PCF_Face_Done can do the clean-up in case of error.
421 Protect against invalid string offsets.
422 (pcf_get_metrics): Clean up code.
423 Adjust tracing message levels.
424 Use rough estimate to get array size limit.
425 (pcf_get_bitmaps): Clean up code.
426 Adjust tracing message levels.
427 Use rough estimates to get offset limits.
428 (pcf_get_encodings): Adjust tracing message level.
429 (pcf_get_accel): Clean up code.
430
Werner Lemberg8eb05252006-06-27 06:20:01 +00004312006-06-26 Werner Lemberg <wl@gnu.org>
432
433 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
434 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
435
Werner Lemberg24703f82006-06-26 19:12:51 +00004362006-06-26 Jens Claudius <jens.claudius@yahoo.com>
437
438 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
439 (t1_decoder_parse_charstrings): Operator with
440 opcode 15 pops its two arguments.
441 Handle the case where the pops of an othersubr may be part of a
442 subroutine.
443 Handle unknown othersubrs gracefully: count their operands and let
444 the following pop operators push the operands as the results onto
445 the Type1 stack.
446 Improve handling of setcurrentpoint opcode.
447
Werner Lembergc011f4c2006-06-26 09:40:00 +00004482006-06-25 Jens Claudius <jens.claudius@yahoo.com>
449
450 The Type 1 parser now skips over top-level procedures as required
451 for a `Simplified Parser'. This makes the parser more robust as it
452 doesn't poke around in PostScript code. Additionally, it makes the
453 FontDirectory hackery in src/type1/t1load.c unnecessary.
454
455 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
456 (skip_literal_string): Add FT_Error as return value.
457 Handle escapes better.
458 (skip_string): Add FT_Error as return value.
459 Don't set `parser->error' but return error code directly.
460 (skip_procedure): New function.
461 (ps_parser_skip_PS_token): Handle procedures.
462 Update code.
463 (ps_parser_to_token): Update code.
464 (ps_parser_load_field_table): Handle bbox entries also.
465
466 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
467 Add commented-out code for synthetic fonts.
468
Werner Lemberga2da05c2006-06-25 06:27:27 +00004692006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
470
471 Fix two hinting bugs as reported in
472 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
473
474 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
475 `first_point' member.
476
477 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
478 `first_point'.
479 (TT_Process_Composite_Glyph): Always untouch points.
480
481 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
482 `first_point' and `last_point' in case of composite glyphs.
483 (Ins_IUP): Fix computation of `end_point'.
484
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00004852006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
486
Werner Lembergef3d2c22006-06-25 06:07:14 +0000487 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
488 Mac. The original patch was written by David Sachitano and Lawrence
489 Coopet, and modified by Sean McBride for MPW compatibility. Only
490 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +0000491
Werner Lembergef3d2c22006-06-25 06:07:14 +0000492 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
493 Mac OS X platforms.
494 (OS_INLINE): Undefine before definition.
495 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
496 FontAssociation table in FOND resource.
497 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
498 and fontSize at each entry of FontAssociation table in FOND
499 resource.
500 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
501 ffStylOff of FamilyRecord header of FOND resource, the header,
502 fontSize, fontID at each entry of FontAssociation table, and
503 StyleMapping table.
504 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +0000505
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00005062006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
507
Werner Lemberg67d2f3a2006-06-16 06:50:36 +0000508 Public API of TrueTypeGX, OpenType, and classic kern table validator
509 should return `FT_Err_Unimplemented_Feature' if validation service
510 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +0000511 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +0000512 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
513
Werner Lemberg67d2f3a2006-06-16 06:50:36 +0000514 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
515 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
516 unavailable.
517 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
518 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +0000519
Werner Lemberg67d2f3a2006-06-16 06:50:36 +0000520 * src/base/ftotval.c (FT_OpenType_Validate): Return
521 FT_Err_Unimplemented_Feature if OpenType validation service is
522 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +0000523
Werner Lembergb10e45a2006-06-08 07:32:56 +00005242006-06-08 Werner Lemberg <wl@gnu.org>
525
526 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
527 errors.
528
David Turner5f1f7502006-06-07 05:11:50 +00005292006-06-07 David Turner <david@freetype.org>
530
Werner Lemberg7d48cb02006-06-08 06:00:08 +0000531 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
532 (T1_Read_Metrics): Fix memory leak which happened when the metrics
533 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +0000534
David Turner457b4a82006-06-06 08:14:14 +00005352006-06-06 David Turner <david@freetype.org>
536
Werner Lemberg4836f952006-06-06 12:54:08 +0000537 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +0000538
Werner Lemberg4836f952006-06-06 12:54:08 +0000539 We change `ps_unicodes_init' so that it also takes a
540 `free_glyph_name' callback to release the glyph names returned by
541 `get_glyph_name'
542
543 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
544 Renamed to ...
545 (PS_GetGlyphNameFunc): This.
546 (PS_FreeGlyphNameFunc): New typedef.
547 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
548
549 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
550 argument.
551 (cff_sid_free_glyph_name): New function.
552 (cff_cmap_unicode_init): Updated.
553
554 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
555
556 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
557 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +0000558
559
David Turner09717352006-06-04 14:33:08 +00005602006-06-04 David Turner <david@freetype.org>
561
Werner Lembergd724f202006-06-04 15:17:41 +0000562 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
563 `item_size == 0' as well -- though this sounds weird, it can
564 theorically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +0000565
Werner Lembergd724f202006-06-04 15:17:41 +0000566 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
567 of `face->num_glyphs' which missed the last glyph, due to
568 the offset-by-1 computation, since the PFR format doesn't
569 guarantee that glyph index 0 corresponds to the `missing
570 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +0000571
Werner Lemberg33779662006-05-26 06:30:05 +00005722006-05-25 Werner Lemberg <wl@gnu.org>
573
574 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
575 `-no-undefined'. Reported by Christian Biesinger.
576
Werner Lemberg24773d62006-05-20 08:53:13 +00005772006-05-19 Brian Weed <bw@imaginengine.com>
578
579 * builds/win32/visualc/freetype.dsp: Release libraries no longer
580 have debug information, and debug libraries use `C7 compatible'
581 debug info.
582
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00005832006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
584
Werner Lemberga6523a62006-05-20 08:47:01 +0000585 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +0000586 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +0000587
Werner Lemberga6523a62006-05-20 08:47:01 +0000588 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
589 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +0000590
591 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +0000592 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +0000593
5942006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
595
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +0000596 * build/unix/configure.raw: Add a fallback to disable Carbon
597 dependency, if configured with no options on Mac OS X.
598
5992006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
600
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +0000601 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +0000602 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +0000603 the second part of Savannah bug #16590.
604
Werner Lemberg545c4e52006-05-17 22:55:04 +00006052006-05-18 Werner Lemberg <wl@gnu.org>
606
607 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
608 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
609
David Turnerdc3ff312006-05-17 12:59:35 +00006102006-05-17 David Turner <david@freetype.org>
611
Werner Lemberg545c4e52006-05-17 22:55:04 +0000612 This is a major patch used to drastically improve the performance of
613 loading glyphs. This both speeds up loading the glyph vectors
614 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +0000615
Werner Lemberg545c4e52006-05-17 22:55:04 +0000616 We now use inline assembler code with GCC to implement `FT_MulFix',
617 which is probably the most important function related to the
618 engine's performance.
David Turner281679d2006-05-17 13:34:21 +0000619
Werner Lemberg545c4e52006-05-17 22:55:04 +0000620 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +0000621
622
Werner Lemberg545c4e52006-05-17 22:55:04 +0000623 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
624 `cursor' and `limit'.
625
626 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
627 New functions.
628 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
629 [TEST]: Remove.
630
631 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
632 code.
633
634 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
635 `FT_ZERO'
636 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
637 (af_glyph_hints_reload: Rewrite recognition of weak points.
638
639 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
640 constant values out of the loops.
641
642 * src/autofit/aftypes.h: Updated.
643
644 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
645
646 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
647 product to get orientation.
648
649 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
650 (FT_Stream_OpenGzip): Use it to handle small files directly in
651 memory.
652
653 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
654 Improve performance.
655
656 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
657 `limit'.
658
659 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
660 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
661 exceedingly large values of number of contours. Speed up by
662 reducing the number of loops.
663
664 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
665
666
667 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
668 used to detect rogue clients from 4 to 16. This is to prevent some
669 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
670 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +0000671
Werner Lembergde2d90a2006-05-17 08:54:30 +00006722007-05-17 Werner Lemberg <wl@gnu.org>
673
674 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +0000675 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +0000676
6772006-05-16 Werner Lemberg <wl@gnu.org>
678
679 * docs/PROBLEMS: Updated icl issues.
680
Werner Lemberg6756dc12006-05-12 08:00:13 +00006812006-05-12 Werner Lemberg <wl@gnu.org>
682
Werner Lemberg8ab412d2006-05-12 15:09:02 +0000683
684 * Version 2.2.1 released.
Werner Lembergde2d90a2006-05-17 08:54:30 +0000685 =========================
Werner Lemberg8ab412d2006-05-12 15:09:02 +0000686
687
688 Tag sources with `VER-2-2-1'.
689
6902006-05-12 Werner Lemberg <wl@gnu.org>
691
Werner Lemberg6756dc12006-05-12 08:00:13 +0000692 * src/tools/docmaker/sources.py (re_source_keywords): Add word
693 boundary markers.
694 * src/tools/docmaker/content.py (re_field): Allow `.' in field names
695 (but not at the beginning or end).
Werner Lemberge12a4712006-05-12 14:20:43 +0000696 * src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset.
Werner Lemberg6e467a62006-05-12 15:05:45 +0000697 (block_footer): Split into...
698 (block_footer_start, block_footer_middle, block_footer_end): This to
699 add navigation buttons.
700 (HtmlFormatter::block_exit): Updated.
Werner Lemberg6756dc12006-05-12 08:00:13 +0000701
702 * include/freetype/*: Many minor documentation improvements (adding
703 links, spelling errors, etc.).
704
Werner Lembergfd74ec62006-05-12 04:00:44 +00007052006-05-11 Werner Lemberg <wl@gnu.org>
706
707 * README: Minor updates.
708
709 * include/freetype/*: s/scale/scaling value/ where appropriate.
710 Many other minor documentation improvements.
711
712 * src/tools/docmaker/sources.py (re_italic, re_bold): Handle
713 trailing punctuation.
714 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Add
715 warning message for undefined cross references.
716 Update handling of re_italic and re_bold.
717
Yamato, Masatake (大和正武)28b55a92006-05-11 03:01:42 +00007182006-05-11 Masatake YAMATO <jet@gyve.org>
David Turner281679d2006-05-17 13:34:21 +0000719
720 * builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if
Yamato, Masatake (大和正武)28b55a92006-05-11 03:01:42 +0000721 read system call returns -1.
722 Remove a redundant parenthesis.
723
Werner Lembergb80d85f2006-05-10 04:47:35 +00007242006-05-10 Werner Lemberg <wl@gnu.org>
725
726 * builds/unix/ftsystem.c (FT_Stream_Open): Avoid infinite loop if
727 given an empty, un-mmap()able file. Reported and suggested fix in
728 Savannah bug #16555.
729
Werner Lemberge0d15592006-05-10 13:44:47 +0000730 * builds/freetype.mk (refdoc): Write-protect the `docmaker'
731 directory to suppress generation of .pyc files. According to the
732 Python docs there isn't a more elegant solution (currently).
733
734 * builds/toplevel.mk (dist): New target which builds .tar.gz,
735 .tar.bz2, and .zip files. Note that the version number is still
736 hard-coded.
737 (do-dist): Sub-target of `dist'.
738 (CONFIG_GUESS, CONFIG_SUB): New variables.
739 (.PHONY): Updated.
740
Werner Lemberga127ca42006-05-09 13:41:50 +00007412006-05-09 Rajeev Pahuja <rpahuja@esri.com>
742
743 * builds/win32/visualc/freetype.sln,
744 builds/win32/visualc/freetype.vcproj: Upgraded to VS.NET 2005 from
745 VS.NET 2003
746 Added files ftbbox.c, fttype1.c, ftwinfnt.c, ftsynth.c.
747
748 * builds/win32/visualc/index.html: Updated.
749
Werner Lemberg4df5b262006-05-08 07:10:29 +00007502006-05-07 Werner Lemberg <wl@gnu.org>
751
752 Put version information into the configure script. Reported by Paul
753 Watson <pwatson@redlinepy.com>.
754
755 * builds/unix/configure.ac: Renamed to...
756 * builds/unix/configure.raw: This which now serves (with appropriate
757 modifications) as a template for configure.ac.
758
759 * version.sed: New script.
760
761 * autogen.sh: Generate configure.ac from configure.raw, using
762 FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h.
763
Werner Lemberg1639c792006-05-06 16:44:58 +00007642006-05-06 Werner Lemberg <wl@gnu.org>
765
766 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
767
768 * builds/unix/configure.ac (version_info): Set to 9:10:3.
769
770 * builds/win32/visualc/index.html,
771 builds/win32/visualc/freetype.dsp,
772 builds/win32/visualc/freetype.vcproj, builds/freetype.mk (refdoc),
773 Jamfile (RefDoc), README: s/220/221/, s/2.2.0/2.2.1/.
774 Minor updates.
775
776 * docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS:
777 Updated.
778
779 * builds/unix/install-sh: Updated from `texinfo' CVS module at
Werner Lemberg4836f952006-06-06 12:54:08 +0000780 savannah.gnu.org.
Werner Lemberg1639c792006-05-06 16:44:58 +0000781
782 * devel/ftoption.h: Synchronize with
783 include/freetype/config/ftoption.h.
784
Werner Lemberg4f3b5bb2006-05-04 07:13:05 +00007852006-05-04 Werner Lemberg <wl@gnu.org>
786
787 * src/lzw/ftlzw2.c: Renamed to...
788 * src/lzw/ftlzw.c: This.
789
790 * src/lzw/Jamfile, src/lzw/rules.mk: Updated.
791
792 * builds/mac/FreeType.m68k_cfm.make.txt,
793 builds/mac/FreeType.m68k_far.make.txt,
794 builds/mac/FreeType.ppc_carbon.make.txt,
795 builds/mac/FreeType.ppc_classic.make.txt: Updated.
796
David Turner679a2522006-05-03 09:40:33 +00007972006-05-03 David Turner <david@freetype.org>
798
Werner Lemberga94746c2006-05-03 20:39:55 +0000799 Allow compilation again with C++ compilers.
800
801 * include/freetype/internal/ftmemory.h (FT_ASSIGNP,
802 FT_ASSIGNP_INNER): New macros which do the actual assignment, and
803 which exist in two variants (for C and C++).
804 Update callers accordingly.
David Turner679a2522006-05-03 09:40:33 +0000805
Werner Lemberg58eed042006-05-02 22:26:09 +00008062006-05-03 Werner Lemberg <wl@gnu.org>
807
808 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed.
809
Werner Lembergc6afa122006-05-02 22:22:16 +00008102006-05-02 Werner Lemberg <wl@gnu.org>
811
812 * include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++).
813 (FT_ALLOC): Remove redundant redefinition.
814
815 * builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use
816 `-Wstrict-prototypes'.
817
818 * src/base/ftstream.c (FT_Stream_EnterFrame): Add cast.
819
Werner Lemberg58eed042006-05-02 22:26:09 +0000820 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]:
821 Remove `extern'.
Werner Lemberg94204892006-05-02 22:24:06 +0000822
David Turner264f3072006-05-02 06:34:27 +00008232006-05-02 David Turner <david@freetype.org>
824
Werner Lembergc6afa122006-05-02 22:22:16 +0000825 Update the memory management functions and macros to safely deal
826 with array size buffer overflows. This corresponds to attemps to
827 allocate arrays that are too large. For an example, consider the
828 following code:
David Turner264f3072006-05-02 06:34:27 +0000829
Werner Lembergc6afa122006-05-02 22:22:16 +0000830 count = read_uint32_from_file(); array = malloc( sizeof ( Item ) *
831 count ); for ( nn = 0; nn < count; nn++ )
832 array[nn] = read_item_from_file();
David Turner264f3072006-05-02 06:34:27 +0000833
Werner Lembergc6afa122006-05-02 22:22:16 +0000834 If `count' is larger than `FT_UINT_MAX/sizeof(Item)', the
835 multiplication overflows, and the array allocated os smaller than
836 the data read from the file. In this case, the heap will be
837 trashed, and this can be used as a denial-of-service attack, or make
838 the engine crash later.
David Turner264f3072006-05-02 06:34:27 +0000839
Werner Lembergc6afa122006-05-02 22:22:16 +0000840 The FT_ARRAY_NEW and FT_ARRAY_RENEW macros now ensure that the new
841 count is no larger than `FT_INT_MAX/item_size', otherwise a new
842 error code `FT_Err_Array_Too_Large' will be returned.
David Turner264f3072006-05-02 06:34:27 +0000843
Werner Lembergc6afa122006-05-02 22:22:16 +0000844 Note that the memory debugger now works again when FT_DEBUG_MEMORY
845 is defined. FT_STRICT_ALIASING has disappeared; the corresponding
846 code is now the default.
David Turner264f3072006-05-02 06:34:27 +0000847
David Turner9ca78252006-05-02 09:00:29 +0000848
Werner Lembergc6afa122006-05-02 22:22:16 +0000849 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]:
850 Don't use `extern'.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +0000851
Werner Lembergc6afa122006-05-02 22:22:16 +0000852 * include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error
853 code.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +0000854
Werner Lembergc6afa122006-05-02 22:22:16 +0000855 * include/freetype/internal/ftmemory.h (FT_DEBUG_INNER)
856 [FT_DEBUG_MEMORY]: New macro.
857 (ft_mem_realloc, ft_mem_qrealloc): Pass new object size count also.
858 (ft_mem_alloc_debug, ft_mem_qalloc_debug, ft_mem_realloc_debug,
859 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
860 (FT_MEM_ALLOC, FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC,
861 FT_MEM_FREE): Redefine.
862 (FT_MEM_NEW_ARRAY, FT_MEM_RENEW_ARRAY, FT_MEM_QNEW_ARRAY,
863 FT_MEM_QRENEW_ARRAY): Redefine.
864 (FT_ALLOC_MULT, FT_REALLOC_MULT, FT_MEM_QALLOC_MULT,
865 FT_MEM_QREALLOC_MULT): New macros. Update callers where
866 appropriate.
867 (FT_MEM_SET_ERROR): Slightly redefine.
868
869
870 * src/base/ftdbgmem.c (_ft_debug_file, _ft_debug_lineno)
871 [FT_DEBUG_MEMORY]: New global variables, replacing...
872 (FT_MemTable_Rec) [FT_DEBUG_MEMORY]: Remove `filename' and
873 `line_no'. Update all callers.
874 (ft_mem_debug_alloc) [FT_DEBUG_MEMORY]: Avoid possible integer
875 overflow.
876 (ft_mem_alloc_debug, ft_mem_realloc_debug, ft_mem_qalloc_debug,
877 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
878
879 * src/base/ftmac.c (read_lwfn): Catch integer overflow.
880 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus): Ditto.
881 * src/base/ftutil.c: Remove special code for FT_STRICT_ALIASING.
882 (ft_mem_alloc. ft_mem_realloc, ft_mem_qrealloc): Rewrite.
883
Werner Lemberg4f3b5bb2006-05-04 07:13:05 +0000884
885 * include/freetype/ftstream.h (FT_FRAME_ENTER, FT_FRAME_EXIT,
886 FT_FRAME_EXTRACT, FT_FRAME_RELEASE): Use FT_DEBUG_INNER to report the
887 place where the frames were entered, extracted, exited or released
888 in the memory debugger.
889
890 * src/base/ftstream.c (FT_Stream_ReleaseFrame) [FT_DEBUG_MEMORY]:
891 Call ft_mem_free.
892 (FT_Stream_EnterFrame) [FT_DEBUG_MEMORY]: Use ft_mem_qalloc.
893 (FT_Stream_ExitFrame) [FT_DEBUG_MEMORY]: Use ft_mem_free.
894
Werner Lembergc6afa122006-05-02 22:22:16 +00008952006-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
896
897 * src/base/ftobjs.c (Mac_Read_POST_Resource): Correct pfb_pos
898 initialization, remove extra cast to copy to pfb_lenpos. This fixes
899 parsing of PFB fonts with MacOS resource fork (bug introduced
900 2003-09-11). Patch provided by Huib-Jan Imbens <ft@imbens.nl>.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +0000901
Werner Lemberg8fe65392006-04-29 07:31:16 +00009022006-04-29 Werner Lemberg <wl@gnu.org>
903
904 Further C library abstraction. Based on a patch from
905 msn2@bidyut.com.
906
907 * include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE,
908 ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc,
909 ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for
910 C library functions. Update all users accordingly (and catch some
911 other places where the C library function was used instead of the
912 wrapper functions).
913
914 * src/base/ftsystem.c: Don't include stdio.h and stdlib.h.
915 * src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't
916 include malloc.h.
917
Werner Lemberg06fceb32006-04-29 07:53:40 +0000918
919 * builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c
920 and forthcoming versions.
921
Werner Lemberg50ef72b2006-04-29 07:02:36 +00009222006-04-28 Werner Lemberg <wl@gnu.org>
923
924 * src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed,
925 obsolete.
926
Werner Lemberg12cceaa2006-04-27 05:02:35 +00009272006-04-27 yi luo <luoyi.ly@gmail.com>
928
929 * builds/win32/visualc/freetype.vcproj: Updated.
930
David Turner3b47dd62006-04-26 19:34:24 +00009312006-04-26 David Turner <david@freetype.org>
932
Werner Lemberg12cceaa2006-04-27 05:02:35 +0000933
934 * Version 2.2 released.
Werner Lembergc6afa122006-05-02 22:22:16 +0000935 =======================
Werner Lemberg12cceaa2006-04-27 05:02:35 +0000936
937
938 Tag sources with `VER-2-2-0'.
David Turner3b47dd62006-04-26 19:34:24 +0000939
Werner Lemberg564b4432006-04-26 15:02:52 +00009402006-04-26 Werner Lemberg <wl@gnu.org>
941
942 * src/psaux/psobjs.c (shift_elements): Don't use FT_Long but
Werner Lemberg4e03fe72006-04-29 06:20:09 +0000943 FT_PtrDiff for `delta'. Reported by Céline PILLET
Werner Lemberg564b4432006-04-26 15:02:52 +0000944 <Celine.Pillet@Tagginfo.com>.
945
David Turner8e438ea2006-04-21 08:35:11 +00009462006-04-21 David Turner <david@freetype.org>
947
Werner Lemberg8a8c6022006-04-22 12:24:52 +0000948 * include/freetype/ftincrem.h: Documentation updates.
949 (FT_Incremental_Interface): New typedef.
David Turner8e438ea2006-04-21 08:35:11 +0000950
Werner Lemberg8a8c6022006-04-22 12:24:52 +0000951 * include/freetype/ftmodapi.h, include/freetype/ftglyph.h:
952 Documentation updates.
953
954 * include/freetype/freetype.h: Documentation update.
955 (FT_HAS_FAST_GLYPHS): Always set to 0.
956
957 * include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New):
958 Take an FT_Library argument instead of FT_Memory.
959
960 * src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2).
David Turner7aa20102006-04-21 08:38:35 +0000961
David Turner65c7c772006-04-13 07:51:58 +00009622006-04-13 David Turner <david@freetype.org>
963
Werner Lemberg8a8c6022006-04-22 12:24:52 +0000964 * src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove
965 superfluous code in the auto-fitter's loader.
David Turner65c7c772006-04-13 07:51:58 +0000966
Werner Lemberg4e03fe72006-04-29 06:20:09 +00009672006-04-05 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner7d043222006-04-05 07:17:12 +0000968
969 * builds/amiga/makefile, builds/amiga/makefile.os4,
970 builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define.
971
Werner Lemberg7f18de62006-04-03 16:47:34 +00009722006-04-03 luoyi <luoyi.ly@gmail.com>
973
974 * builds/compiler/intelc.mk (TE): New variable.
975 (ANSIFLAGS): Updated.
976
Werner Lembergfd7456c2006-04-03 15:46:48 +00009772006-04-03 Werner Lemberg <wl@gnu.org>
978
979 * builds/exports.mk (clean_symbols_list, clean_apinames): Removed.
980 (CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE).
981 (.PHONY): Updated.
982
983 * configure.ac: Minor fixes to improve --help output.
984
Werner Lemberg764b2512006-04-03 16:42:39 +0000985
986 * docs/PROBLEMS: New file.
987
Werner Lemberg40917862006-04-01 18:49:07 +00009882006-04-01 David Turner <david@freetype.org>
David Turner0f15e1c2006-04-01 16:11:53 +0000989
Werner Lemberg40917862006-04-01 18:49:07 +0000990 * docs/CHANGES: Updated.
David Turnercf603712006-04-01 16:22:06 +0000991
Werner Lemberg40917862006-04-01 18:49:07 +0000992 * include/freetype/ftcache.h, include/freetype/config/ftheader.h:
993 Update documentation comments.
David Turner0f15e1c2006-04-01 16:11:53 +0000994
Werner Lemberg6e9df682006-04-01 05:22:07 +00009952006-04-01 Werner Lemberg <wl@gnu.org>
996
997 * builds/unix/install.mk (uninstall): Don't handle `cache'
998 directory which no longer exists.
999
Werner Lemberg4e03fe72006-04-29 06:20:09 +000010002006-03-29 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würknerd51b41e2006-03-29 06:35:26 +00001001
Werner Lemberg6e9df682006-04-01 05:22:07 +00001002 * src/psaux/psconv.c: Changed some variables which are expected to
1003 hold negative values from `char' to `FT_Char' to allow building with
1004 a compiler where `char' is unsigned by default.
Detlef Würknerd51b41e2006-03-29 06:35:26 +00001005
David Turner42137bc2006-03-27 20:10:26 +000010062006-03-27 David Turner <david@freetype.org>
1007
Werner Lembergfa3651e2006-03-28 05:06:50 +00001008 * src/sfnt/ttkern.c (tt_face_get_kerning): Fix a serious bug that
1009 causes some programs to go into an infinite loop when dealing with
1010 fonts that don't have a properly sorted kerning sub-table.
David Turner42137bc2006-03-27 20:10:26 +00001011
Werner Lemberg26170df2006-03-26 07:19:07 +000010122006-03-26 Werner Lemberg <wl@gnu.org>
1013
1014 * src/bdf/bdflib.c (ERRMSG4): New macro.
1015 (_bdf_parse_glyphs): Handle invalid BBX values.
1016
1017 * include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error
1018 macro.
1019
Werner Lemberg4db32ec2006-03-24 11:54:53 +000010202006-03-23 Werner Lemberg <wl@gnu.org>
1021
1022 * docs/CHANGES: Updated.
1023
Werner Lembergd6e24982006-03-24 18:31:47 +00001024
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001025 * src/tools/docmaker/tohtml.py (html_header_2): Add horizontal
1026 padding between table elements.
Werner Lemberge0dd18f2006-03-24 12:14:48 +00001027 (html_header_1): The `DOCTYPE' comment must be in uppercase.
Werner Lembergd6e24982006-03-24 18:31:47 +00001028 (make_html_para): Convert `...' quotations into real left and
1029 right single quotes.
1030 Use `para_header' and `para_footer'.
1031
1032 * src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'"
1033 also.
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001034
David Turner2ce92032006-03-23 20:58:20 +000010352006-03-23 David Turner <david@freetype.org>
1036
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001037 Add FT_Get_SubGlyph_Info API to retrieve subglyph data. Note that
Werner Lembergc6afa122006-05-02 22:22:16 +00001038 we do not expose the FT_SubGlyphRec structure.
David Turner2ce92032006-03-23 20:58:20 +00001039
Werner Lemberg4db32ec2006-03-24 11:54:53 +00001040 * include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved
1041 to...
1042 * include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here.
1043 (FT_Get_SybGlyph_Info): New declaration.
1044
1045 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function.
1046
1047
1048 * src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and
Werner Lembergc6afa122006-05-02 22:22:16 +00001049 rsb_delta correctly in edge cases.
David Turner2ce92032006-03-23 20:58:20 +00001050
Werner Lemberg3867d2f2006-03-22 08:03:06 +000010512006-03-22 Werner Lemberg <wl@gnu.org>
1052
Werner Lemberg6c5b6172006-03-22 15:30:41 +00001053 * src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup)
1054 [!FTC_INLINE]: Compile conditionally.
1055 * src/cache/ftccache.h: Updated.
1056
1057 * src/cache/ftcglyph.c (FTC_GNode_Init, FTC_GNode_UnselectFamily,
1058 FTC_GNode_Done, FTC_GNode_Compare, FTC_Family_Init, FTC_GCache_New):
1059 s/FT_EXPORT/FT_LOCAL/.
1060 (FTC_GCache_Init, FTC_GCache_Done): Commented out.
1061 (FTC_GCache_Lookup) [!FTC_INLINE]: Compile conditionally.
1062 s/FT_EXPORT/FT_LOCAL/.
1063 * src/cache/ftcglyph.h: Updated.
1064
1065 * src/cache/ftcimage.c (FTC_INode_Free, FTC_INode_New):
1066 s/FT_EXPORT/FT_LOCAL/.
1067 (FTC_INode_Weight): Commented out.
1068 * src/cache/ftcimage.h: Updated.
1069
1070 * src/cache/ftmanag.c (FTC_Manager_Compress,
1071 FTC_Manager_RegisterCache, FTC_Manager_FlushN):
1072 s/FT_EXPORT/FT_LOCAL/.
1073 * src/cache/ftmanag.h: Updated.
1074
1075 * src/cache/ftcsbits.c (FTC_SNode_Free, FTC_SNode_New,
1076 FTC_SNode_Compare): s/FT_EXPORT/FT_LOCAL/.
1077 (FTC_SNode_Weight): Commented out.
1078 * src/cache/ftcsbits.h: Updated.
1079
10802006-03-22 Werner Lemberg <wl@gnu.org>
1081
Werner Lemberg3867d2f2006-03-22 08:03:06 +00001082 * src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy):
1083 Remove, unused.
1084
1085 * src/cache/ftccmap.h: Remove, unused.
1086
1087 * src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h.
1088
Werner Lemberg5556dd22006-03-21 21:36:33 +000010892006-03-21 Zhe Su <james.su@gmail.com>
1090
1091 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve
1092 algorithm.
1093
Werner Lemberg26377002006-03-21 18:41:40 +000010942006-03-21 Werner Lemberg <wl@gnu.org>
1095
1096 * src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member.
1097
1098 * src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'.
1099
1100 * src/cff/cffgload.c (cff_slot_load): Change type of third parameter
1101 to `FT_UInt'.
1102 Check range of `glyph_index'.
1103 * src/cff/cffgload.h: Updated.
1104
Werner Lemberg8439fe82006-03-21 21:04:33 +00001105
Werner Lemberg95f206b2006-03-21 20:47:28 +00001106 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset
1107 correctly.
1108
Werner Lemberg8439fe82006-03-21 21:04:33 +00001109
1110 * builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc),
1111 README: s/2.1.10/2.2/.
1112
Werner Lemberg26377002006-03-21 18:41:40 +000011132006-03-21 David Turner <david@freetype.org>
David Turner24b9e872006-03-21 16:30:04 +00001114
Werner Lemberga62007f2006-03-21 17:41:40 +00001115 * src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug
1116 that crashes the auto-hinter (introduced by previous patch).
David Turner24b9e872006-03-21 16:30:04 +00001117
Werner Lemberg5a73d8d2006-03-20 16:55:32 +000011182006-03-20 Werner Lemberg <wl@gnu.org>
David Turnerdad2a2d2006-03-20 11:48:13 +00001119
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001120 * builds/freetype.mk (CACHE_DIR, CACHE_H): Remove.
1121 (FREETYPE_H): Updated.
David Turnere091ce32006-03-20 16:01:28 +00001122
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001123 * src/cache/rules.mk (CACHE_H_DIR): Remove.
1124 (CACHE_DRV_H): Updated.
David Turnerda95af62006-03-20 13:32:33 +00001125
Werner Lemberg5a73d8d2006-03-20 16:55:32 +000011262006-03-20 David Turner <david@freetype.org>
David Turnerda95af62006-03-20 13:32:33 +00001127
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001128 * include/freetype/cache/ftccache.h,
1129 include/freetype/cache/ftccmap.h, include/freetype/cache/ftcglyph.h
1130 include/freetype/cache/ftcimage.h include/freetype/cache/ftcmanag.h
1131 include/freetype/cache/ftcmru.h include/freetype/cache/ftcsbits.h:
1132 Move to...
David Turner505667c2006-03-20 12:13:14 +00001133
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001134 * src/cache/ftccache.h, src/cache/ftcglyph.h, src/cache/ftcimage.h,
1135 src/cache/ftcsbits.h, src/cache/ftcmanag.h, src/cache/ftccmap.h,
1136 src/cache/ftcmru.h: This new location.
1137 Update declarations according to the changes in the corresponding
1138 source files.
David Turner256de4b2006-03-20 12:10:24 +00001139
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001140 Note that these files are not used by FreeType clients; all public
1141 APIs of the cache module have been already moved to
1142 `include/freetype/ftcache.h', and all FT_CACHE_INTERNAL_XXXX_H
1143 macros resolve to it.
David Turner256de4b2006-03-20 12:10:24 +00001144
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001145 Reason for the move is to allow modifications of the internals
1146 without interferences with rogue clients. Note that there are no
1147 known clients that access the cache internals at the moment.
David Turner256de4b2006-03-20 12:10:24 +00001148
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001149 * builds/unix/install.mk (install): Don't install headers from
1150 $(CACHE_H).
1151 Remove `freetype/cache' from the target directory.
David Turnerdad2a2d2006-03-20 11:48:13 +00001152
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001153 * include/freetype/config/ftheader.h (FT_CACHE_MANAGER_H,
1154 FT_CACHE_INTERNAL_MRU_H, FT_CACHE_INTERNAL_MANAGER_H,
1155 FT_CACHE_INTERNAL_CACHE_H, FT_CACHE_INTERNAL_GLYPH_H,
1156 FT_CACHE_INTERNAL_IMAGE_H, FT_CACHE_INTERNAL_SBITS_H): Point to
1157 FT_CACHE_H.
David Turnerdad2a2d2006-03-20 11:48:13 +00001158
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001159 * src/cache/ftcbasic.c, src/cache/ftccache.h, src/cache/ftccback.h,
1160 src/cache/ftccmap.c, src/cache/ftcglyph.c, src/cache/ftcglyph.h,
1161 src/cache/ftcimage.c, src/cache/ftcimage.h, src/cache/ftcmanag.c,
1162 src/cache/ftcmanag.h, src/cache/ftcmru.h, src/cache/ftcsbits.c,
1163 src/cache/ftcsbits.h: Don't use the FT_CACHE_INTERNAL_XXX_H macros
1164 but include the headers directly (which are now in `src/cache').
David Turnerdad2a2d2006-03-20 11:48:13 +00001165
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00001166 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
1167 macros but include the headers directly.
1168 (FTC_Cache_Init, FTC_Cache_Done, FTC_Cache_NewNode,
1169 FTC_Cache_Lookup, FTC_Cache_RemoveFaceID): Declare as FT_LOCAL_DEF.
1170
1171 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
1172 macros but include the headers directly.
1173 (FTC_MruNode_Prepend, FTC_MruNode_Up, FTC_MruNode_Remove,
1174 FTC_MruList_Init, FTC_MruList_Reset, FTC_MruList_Done,
1175 FTC_MruList_New, FTC_MruList_Remove, FTC_MruList_RemoveSelection):
1176 Declare as FT_LOCAL_DEF.
1177 (FTC_MruListFind, FTC_MruList_Lookup) [!FTC_INLINE]: Compile
1178 conditionally.
1179 Declare as FT_LOCAL_DEF.
1180
1181
1182 * builds/win32/visualc/freetype.dsp: Update project file, add
1183 missing base source files (ftstroke.c, ftxf86.c, etc.).
1184
1185
1186 * src/autofit/afcjk.c, src/autofit/aflatin.c, src/base/ftobjs.c,
1187 src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrobjs.c,
1188 src/sfnt/sfobjs.c, src/sfnt/ttmtx.c, src/type1/t1afm.c,
1189 src/type1/t1objs.c: Remove compiler warnings when building with
1190 Visual C++ 6 and /W4.
1191
1192 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
1193 hinting for italic/oblique fonts.
1194
1195
1196
1197 * src/truetype/ttpload.c, src/truetype/ttpload.h
1198 (tt_face_get_device_metrics): Change second argument to `FT_UInt'.
1199
12002006-03-06 David Turner <david@freetype.org>
David Turner65b96aa2006-03-07 00:38:24 +00001201
Werner Lemberge6a8fca2006-03-07 23:53:55 +00001202 * src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in
1203 Mozilla/FireFox print preview in Ubuntu Hoary.
David Turner65b96aa2006-03-07 00:38:24 +00001204
Wu, Chia-I (吳佳一)a87b08a2006-02-28 09:53:23 +000012052006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
1206
Wu, Chia-I (吳佳一)9f5d3de2006-02-28 13:21:50 +00001207 * src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not
1208 return error when size == 0.
1209
12102006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
1211
Werner Lemberge88d24c2006-02-28 21:49:54 +00001212 * src/base/ftobjs.c (FT_Done_Library): Remove modules in reverse
1213 order so that type42 module is removed before truetype module. This
1214 avoids double free in some occasions.
Wu, Chia-I (吳佳一)a87b08a2006-02-28 09:53:23 +00001215
Werner Lembergc6afa122006-05-02 22:22:16 +000012162006-02-28 David Turner <david@freetype.org>
David Turnere9a47192006-02-28 09:26:58 +00001217
Werner Lemberge88d24c2006-02-28 21:49:54 +00001218 * Release candidate VER-2-2-0-RC4.
1219 ----------------------------------
David Turnere9a47192006-02-28 09:26:58 +00001220
Werner Lemberge88d24c2006-02-28 21:49:54 +00001221 * docs/CHANGES: Documentation updates.
David Turnere9a47192006-02-28 09:26:58 +00001222
Suzuki, Toshiya (鈴木俊哉)576c3532006-02-28 01:11:57 +000012232006-02-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1224
Werner Lemberge88d24c2006-02-28 21:49:54 +00001225 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
1226 build ftvalid in ft2demos. It works as dummy ABI if gxvalid is not
1227 built.
Suzuki, Toshiya (鈴木俊哉)576c3532006-02-28 01:11:57 +00001228
Werner Lembergc07ee522006-02-27 18:13:12 +000012292006-02-27 Werner Lemberg <wl@gnu.org>
1230
1231 * include/freetype/cache/ftccache.h
1232 [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of
1233 ftc_node_done.
1234
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001235 * src/cache/ftccache.c (ftc_node_destroy)
1236 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Mark as FT_LOCAL_DEF. This
1237 should now fix all possible compilation options.
1238
David Turnerc13e75f2006-02-27 13:14:42 +000012392006-02-27 David Turner <david@freetype.org>
1240
Werner Lemberg422d2a02006-02-27 18:25:22 +00001241 * src/base/ftutil.c (ft_mem_alloc, ft_mem_qalloc, ft_mem_realloc,
1242 ft_mem_qrealloc): Return an error if a negative size is passed in
1243 parameters.
David Turnerc13e75f2006-02-27 13:14:42 +00001244
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001245 * src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since
1246 it needs to be exported for rogue clients.
David Turner65b96aa2006-03-07 00:38:24 +00001247
Werner Lemberg422d2a02006-02-27 18:25:22 +00001248 * src/pshinter/pshglob.c (psh_blues_set_zones_0): Prevent problems
1249 with malformed fonts which have an odd number of blue values (these
1250 are broken according to the specs).
David Turnerc13e75f2006-02-27 13:14:42 +00001251
Werner Lemberg422d2a02006-02-27 18:25:22 +00001252 * src/cff/cffload.c (cff_subfont_load), src/type1/t1load.c
1253 (T1_Open_Face): Modify the loaders to force even-ness of
1254 `num_blue_values'.
1255
1256 (cff_index_access_element): Ignore invalid entries in index files.
David Turnerc13e75f2006-02-27 13:14:42 +00001257
Wu, Chia-I (吳佳一)cffa8b62006-02-27 11:11:40 +000012582006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
1259
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001260 * src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width
1261 or height is 0.
Wu, Chia-I (吳佳一)cffa8b62006-02-27 11:11:40 +00001262
Suzuki, Toshiya (鈴木俊哉)2f239b82006-02-27 10:34:33 +000012632006-02-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1264
1265 * builds/mac/FreeType.m68k_cfm.make.txt,
1266 builds/mac/FreeType.m68k_far.make.txt,
1267 builds/mac/FreeType.ppc_carbon.make.txt,
Werner Lemberg98d6a3a2006-02-27 19:49:34 +00001268 builds/mac/FreeType.ppc_classic.make.txt: Update to new header
1269 inclusion introduced on 2006-02-16.
Suzuki, Toshiya (鈴木俊哉)2f239b82006-02-27 10:34:33 +00001270
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +000012712006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
1272
Werner Lemberg422d2a02006-02-27 18:25:22 +00001273 * src/base/ftobjs.c (GRID_FIT_METRICS): New macro.
1274 (ft_glyphslot_grid_fit_metrics, FT_Load_Glyph) [GRID_FIT_METRICS]:
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001275 Re-enable glyph metrics grid-fitting. It is now done in the base
1276 layer.
Werner Lembergc07ee522006-02-27 18:13:12 +00001277 (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Make sure the width and
1278 height are not too small or too large, just like we were doing in
1279 2.1.10.
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001280
Werner Lembergc07ee522006-02-27 18:13:12 +00001281 * src/autofit/afloader.c (af_loader_load_g): The vertical metrics
1282 are not scaled.
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00001283
Werner Lembergf99d8462006-02-26 17:50:59 +000012842006-02-26 Werner Lemberg <wl@gnu.org>
1285
1286 * docs/release: Minor additions and clarifications.
1287
1288 * docs/CHANGES: Updated to reflect many fixes for backwards
1289 compatibility. Still incomplete.
1290
David Turnerb4636652006-02-26 07:57:45 +000012912006-02-26 David Turner <david@freetype.org>
1292
Werner Lemberg0aaf4292006-02-26 17:30:15 +00001293 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Re-enable
1294 conservative rounding of metrics to avoid breaking clients like
1295 Pango (see http://bugzilla.gnome.org/show_bug.cgi?id=327852).
David Turnerb4636652006-02-26 07:57:45 +00001296
Werner Lemberg20a8d0c2006-02-25 16:56:04 +000012972006-02-25 Werner Lemberg <wl@gnu.org>
1298
1299 * devel/ftoption.h: Synchronize with
1300 include/freetype/config/ftoption.h.
1301
Werner Lembergae1e4b12006-02-25 17:11:04 +00001302 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again).
1303
David Turner6c71c6b2006-02-25 12:49:40 +000013042006-02-25 David Turner <david@freetype.org>
1305
Werner Lemberg7f049f42006-02-25 16:52:16 +00001306 Fix compiler warnings as well as C++ compilation problems.
1307 Add missing prototypes.
David Turner6c71c6b2006-02-25 12:49:40 +00001308
Werner Lemberg7f049f42006-02-25 16:52:16 +00001309 * src/autofit/afcjk.c, src/base/ftobjs.c, src/base/ftutil.c,
1310 src/bdf/bdfdrivr.c, src/cff/cffcmap.c, src/cff/cffobjs.c,
1311 src/psaux/afmparse.c,, src/psaux/t1cmap.c, src/smooth/ftgrays.c
1312 src/tools/apinames.c, src/truetype/ttdriver.c: Add various casts,
1313 initialize variables, and decorate functions with FT_CALLBACK_DEF,
1314 etc., to fix compiler warnings (and C++ compiling errors).
David Turner6c71c6b2006-02-25 12:49:40 +00001315
Werner Lemberg7f049f42006-02-25 16:52:16 +00001316 * src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with
1317 gcc.
David Turnerde271ab2006-02-25 14:53:02 +00001318
Werner Lemberg7f049f42006-02-25 16:52:16 +00001319 * builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but
1320 FT_INTERNAL_STREAM_H.
David Turnerde271ab2006-02-25 14:53:02 +00001321
Werner Lemberg7f049f42006-02-25 16:52:16 +00001322 * src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H.
David Turnerde271ab2006-02-25 14:53:02 +00001323
Werner Lemberg7f049f42006-02-25 16:52:16 +00001324 * include/freetype/config/ftheader.h (FT_PFR_H): New macro.
1325
1326 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't
1327 define for C++.
1328
1329 * include/freetype/internal/services/svotval.h: Don't include
1330 FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H.
1331
1332 * include/freetype/internal/services/svpfr.h: Include FT_PFR_H.
1333
1334 * src/gzip/ftgzip.c: Include FT_GZIP_H.
1335
1336 * src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H.
1337
1338 * src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code.
David Turner6c71c6b2006-02-25 12:49:40 +00001339
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +000013402006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
1341
Wu, Chia-I (吳佳一)88242072006-02-24 11:53:21 +00001342 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
1343 ft_contour_enclosed, ft_outline_get_orientation): Commented out. We
David Turner6c71c6b2006-02-25 12:49:40 +00001344 have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized.
Wu, Chia-I (吳佳一)88242072006-02-24 11:53:21 +00001345 (FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'.
1346
13472006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
1348
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +00001349 * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update
1350 documentation.
1351
1352 * include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap),
1353 src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make
Werner Lembergd7e6b762006-02-25 06:24:28 +00001354 sure a glyph slot owns its bitmap. It is also marked experimental
1355 and due to change.
1356 (FT_GlyphSlot_Embolden): Undo the last change. It turns out that
1357 rendering the outline confuses some applications.
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +00001358
David Turnerca7d76f2006-02-24 09:09:10 +000013592006-02-24 David Turner <david@freetype.org>
1360
Werner Lembergd7e6b762006-02-25 06:24:28 +00001361 * Release candidate VER-2-2-0-RC3.
1362 ----------------------------------
David Turner478c5912006-02-24 09:56:23 +00001363
Werner Lembergd7e6b762006-02-25 06:24:28 +00001364 * src/cache/ftcbasic.c: Correct compatibility hack bug.
David Turnerca7d76f2006-02-24 09:09:10 +00001365
Wu, Chia-I (吳佳一)a8e7a012006-02-24 06:11:30 +000013662006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
1367
Werner Lembergd7e6b762006-02-25 06:24:28 +00001368 * include/freetype/freetype.h (FT_Size_RequestRec): Change the type
1369 of `width' and `height' to `FT_Long'.
Wu, Chia-I (吳佳一)a8e7a012006-02-24 06:11:30 +00001370 (enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics):
1371 New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales
1372 directly.
1373
David Turner6cda6c02006-02-23 12:37:18 +000013742006-02-23 David Turner <david@freetype.org>
1375
Werner Lembergd7e6b762006-02-25 06:24:28 +00001376 Two BDF patches from Debian libfreetype6 for 2.1.10.
David Turner6cda6c02006-02-23 12:37:18 +00001377
Werner Lembergd4303da2006-02-23 21:01:34 +00001378 * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width
1379 glyphs.
1380 Fix a problem with large encodings.
David Turner481838e2006-02-23 12:40:14 +00001381
Werner Lembergd7e6b762006-02-25 06:24:28 +00001382
1383 Fix binary compatibility issues for gnustep-back (GNUstep backend
1384 module) which still crashes under Sarge.
1385
1386 * src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec,
1387 FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data
1388 structures and enumerations.
1389 (FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New
1390 compatibility code.
David Turner88d89852006-02-23 22:35:26 +00001391
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001392 * src/cache/ftcbasic.c: Fix a silly bug that prevented our `hack' to
David Turneraa557a92006-09-04 16:42:44 +00001393 support rogue clients compiled against 2.1.7 to work correctly.
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001394 This probably explains the GNUstep crashes with the second release
1395 candidate.
David Turnerbd502952006-09-01 19:05:24 +00001396
Wu, Chia-I (吳佳一)890f8072006-02-22 20:47:39 +000013972006-02-23 Chia-I Wu <b90201047@ntu.edu.tw>
1398
1399 * include/freetype/ftoutln.h (enum FT_Orientation): New value
1400 `FT_ORIENTATION_NONE'.
1401
1402 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
1403 ft_contour_enclosed, ft_outline_get_orientation): Another version of
1404 `FT_Outline_Get_Orientation'. This version differs from the public
1405 one in that each part (contour not enclosed in another contour) of the
1406 outline is checked for orientation.
1407 (FT_Outline_Embolden): Use `ft_outline_get_orientation'.
1408
1409 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and
1410 use bitmap's embolden routine when the outline one failed.
1411
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +000014122006-02-22 Chia-I Wu <b90201047@ntu.edu.tw>
1413
1414 * modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI
1415 compatibility.
1416
1417 * src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak.
1418
1419 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned,
1420 tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit
Werner Lemberg5edafed2006-02-22 08:23:35 +00001421 loading. (Only tested with bit aligned sbit with x_pos == 0.)
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +00001422
1423 * src/truetype/ttpload.c (tt_face_load_hdmx,
Werner Lemberg5edafed2006-02-22 08:23:35 +00001424 tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
1425 actually used.
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +00001426
David Turner1ae134a2006-02-21 16:50:17 +000014272006-02-21 David Turner <david@freetype.org>
1428
Werner Lemberg5edafed2006-02-22 08:23:35 +00001429 Add a new API named FT_Get_TrueType_Engine_Type to determine whether
1430 we have a patented, unpatented, or unimplemented TrueType bytecode
1431 interpreter.
David Turner0b5dc4d2006-02-21 22:36:23 +00001432
Werner Lemberg5edafed2006-02-22 08:23:35 +00001433 The FT_Get_Module_Flags API was removed consequently.
David Turner0b5dc4d2006-02-21 22:36:23 +00001434
David Turner88d89852006-02-23 22:35:26 +00001435 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed.
Werner Lemberg5edafed2006-02-22 08:23:35 +00001436 Replaced with...
1437 (FT_Get_TrueType_Engine_Type): This.
1438 (FT_TrueTypeEngineType): New enumeration.
David Turner0b5dc4d2006-02-21 22:36:23 +00001439
Werner Lemberg5edafed2006-02-22 08:23:35 +00001440 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
1441 New macro.
David Turner1ae134a2006-02-21 16:50:17 +00001442
Werner Lemberg5edafed2006-02-22 08:23:35 +00001443 * src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
1444 (FT_Module_Get_Flags): Removed. Replaced with...
1445 (FT_Get_TrueType_Engine_Type): This.
David Turnerc093db92006-02-21 17:06:35 +00001446
Werner Lemberg5edafed2006-02-22 08:23:35 +00001447 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
1448 (tt_service_truetype_engine): New service structure.
1449 (tt_services): Register it.
1450
1451 * include/freetype/internal/services/svtteng.h: New file.
1452
1453
1454 * src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented
1455 embedded bitmaps from being correctly listed and used.
1456
1457
1458 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization
1459 if FT_CONFIG_OPTION_OLD_INTERNALS is used. The is necessary because
1460 libXfont is directly accessing the HMTX data, unfortunately.
1461 Fix some compiler warnings.
1462 (tt_face_get_metrics): Ditto.
1463
1464
1465 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of
1466 character advances.
David Turner1ae134a2006-02-21 16:50:17 +00001467
David Turnerdd0f3602006-02-20 23:50:21 +000014682006-02-20 David Turner <david@freetype.org>
1469
David Turner0b5dc4d2006-02-21 22:36:23 +00001470 Support binary compatibility with the X.Org server's Xfont library.
Werner Lembergd41aecd2006-02-21 08:08:14 +00001471 Note that this change unfortunately prevents memory optimizations
1472 for the embedded bitmap loader.
David Turnerdd0f3602006-02-20 23:50:21 +00001473
Werner Lembergd41aecd2006-02-21 08:08:14 +00001474 * include/freetype/internal/sfnt.h (SFNT_Interface): Move
1475 `set_sbit_strike' and `load_sbit_metrics' fields to the location of
1476 version 2.1.8.
David Turnerdd0f3602006-02-20 23:50:21 +00001477
Werner Lembergd41aecd2006-02-21 08:08:14 +00001478 * src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call
1479 FT_Size_Request.
1480 (sfnt_interface): Updated.
1481
1482 * src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load
1483 ttsbit0.c.
1484 (tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static.
1485
1486 * src/sfnt/ttsbit.h: Updated.
David Turnerdd0f3602006-02-20 23:50:21 +00001487
David Turner0880ac32006-02-17 17:23:13 +000014882006-02-17 David Turner <david@freetype.org>
1489
Werner Lembergf145e312006-02-19 16:12:18 +00001490 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't filter out exported
1491 functions anymore. This ensures that all FT_BASE internal functions
1492 are available for dynamic linking.
1493
1494 * include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE,
1495 FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec,
1496 FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New,
1497 FTC_OldImage_Desc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx,
1498 ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup,
1499 FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup)
1500 [FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the
1501 cache sub-system. We try to recognize old legacy signatures with a
1502 gross hack (hope it works).
David Turner0880ac32006-02-17 17:23:13 +00001503
Werner Lemberg1fae6692006-02-17 16:16:40 +000015042006-02-17 Werner Lemberg <wl@gnu.org>
1505
1506 * devel/ftoption.h: Synchronize with
1507 include/freetype/config/ftoption.h.
1508
David Turnercda2d952006-02-16 22:45:31 +000015092006-02-16 David Turner <david@freetype.org>
1510
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001511 Massive changes to the internals to respect the internal object
1512 layouts and exported functions of FreeType 2.1.7. Note that the
1513 cache sub-system cannot be fully retrofitted, unfortunately.
David Turnercda2d952006-02-16 22:45:31 +00001514
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001515 * include/freetype/config/ftoption.h
1516 (FT_CONFIG_OPTION_OLD_INTERNALS): New macro.
1517
1518 * include/freetype/ftcache.h, include/freetype/cache/ftccache.h,
1519 include/freetype/cache/ftccmap.h,
1520 include/freetype/internal/ftcalc.h,
1521 include/freetype/internal/ftdriver.h,
1522 include/freetype/internal/ftmemory.h,
1523 include/freetype/internal/ftobjs.h,
1524 include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
1525 include/freetype/internal/t1types.h,
1526 include/freetype/internal/tttypes.h, src/base/ftcalc.c,
1527 src/base/ftdbgmem.c, src/base/ftobjs.c, src/base/ftutil.c,
1528 src/bdf/bdfdrivr.c, src/cache/ftccache.c, src/cache/ftccback.h,
1529 src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
1530 src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
1531 src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
1532 src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
1533 Use FT_CONFIG_OPTION_OLD_INTERNALS to revive old functions and data
1534 structures.
1535
1536 Move newly added structure elements to the end of the affected
1537 structure and add stub fields (if FT_CONFIG_OPTION_OLD_INTERNALS is
1538 defined) to assure binary compatibility with older FreeType
1539 versions.
1540 Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old
1541 functions:
1542
1543 ft_stub_set_char_sizes
1544 ft_stub_set_pixel_sizes
1545
1546 Rename the following internal functions to provide the old function
1547 names as stubs:
1548
1549 FT_Alloc -> ft_mem_alloc
1550 FT_QAlloc -> ft_mem_qalloc
1551 FT_Realloc -> ft_mem_realloc
1552 FT_QRealloc -> ft_mem_qrealloc
1553 FT_Free -> ft_mem_free
1554 FT_Alloc_Debug -> ft_mem_alloc_debug
1555 FT_QAlloc_Debug -> ft_mem_qalloc_debug
1556 FT_Realloc_Debug -> ft_mem_realloc_debug
1557 FT_QRealloc_Debug -> ft_mem_qrealloc_debug
1558 FT_Free_Debug -> ft_mem_free_debug
David Turnercda2d952006-02-16 22:45:31 +00001559
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +000015602006-02-15 Chia-I Wu <b90201047@ntu.edu.tw>
1561
1562 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
1563 unused `max_points' and `max_contours'.
David Turnercda2d952006-02-16 22:45:31 +00001564
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001565 * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
1566 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update.
1567
1568 * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused
1569 `max_components'.
1570
1571 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused
1572 `loadSize' and `loadStack'.
1573
1574 * src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context),
1575 src/sfnt/ttload.c (tt_face_load_maxp): Update.
1576
1577 * src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c
1578 (sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix
1579 compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not
1580 defined.
1581
1582 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix
1583 possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions.
1584 (finally!)
1585
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001586
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001587 For most OpenType tables, `tt_face_load_xxxx' simply loads the table
1588 and `face->root' is set later in `sfnt_load_face'. Here, we try to
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001589 make this work for _all_ tables. Also improve tracing messages.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001590
1591 * src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c,
1592 src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and
1593 then exit. Error handling or setting face->root is done later in
1594 `sfnt_load_face'.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001595
1596 * src/sfnt/sfobjs.c (sfnt_load_face): Work harder.
1597 Mac bitmap-only fonts are not scalable.
1598 Check that `face->header.Units_Per_EM' is not zero.
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001599 (LOAD_, LOADM_): Emit pretty trace messages.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001600
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001601 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics
1602 from `eblc'.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001603
1604 * src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c
1605 (load_format_20, load_format_25, tt_face_get_ps_name): Use
1606 face->max_profile.numGlyphs, instead of face->root.num_glyphs.
1607
Werner Lemberg52254022006-02-15 06:05:52 +000016082006-02-14 Werner Lemberg <wl@gnu.org>
1609
1610 * include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in
1611 documentation that negative strength values are possible.
1612 Give an example call.
1613
1614 * include/freetype/freetype.h (FT_GlyphSlotRec): Improve
1615 documentation of `outline' field.
1616
1617 * src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H.
1618 * src/sfnt/sfdriver.c: Include ttmtx.h.
1619
1620 * src/autofit/afcjk.c: Include aftypes.h and aflatin.h.
1621
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +000016222006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
1623
Wu, Chia-I (吳佳一)3dc00182006-02-14 13:36:28 +00001624 * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.
1625
16262006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
1627
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00001628 * src/sfnt/ttmtx.c (tt_face_load_hhea, tt_face_load_hmtx): Simply
1629 return error if table is missing.
1630 Check table length in non-FT_OPTIMIZE_MEMORY'ed `tt_face_load_hmtx'.
1631
1632 * src/sfnt/sfobjs.c (sfnt_load_face): Take care of missing metrics
Werner Lemberg52254022006-02-15 06:05:52 +00001633 tables. The last change makes Mac bitmap-only font not load and
1634 this fixes it.
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00001635
Werner Lemberg52254022006-02-15 06:05:52 +00001636 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation
1637 error when FT_CONFIG_OPTION_INCREMENTAL is defined.
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00001638
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +000016392006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
1640
Wu, Chia-I (吳佳一)35222ff2006-02-14 07:25:57 +00001641 Clean up the SFNT_Interface. In this final pass, `load_hmtx' is
Werner Lemberg814839a2006-07-28 11:55:48 +00001642 split from `load_hhea'.
Wu, Chia-I (吳佳一)35222ff2006-02-14 07:25:57 +00001643
1644 * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
1645 src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'.
1646
1647 * src/sfnt/sfobjs.c (sfnt_load_face): Update.
1648
16492006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
1650
Wu, Chia-I (吳佳一)e0decd12006-02-14 07:20:06 +00001651 * src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of
1652 code...
1653
16542006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
1655
Werner Lemberg52254022006-02-15 06:05:52 +00001656 Clean up the SFNT_Interface. In this pass, we want to treat the
1657 font directory (offset table and table directory) as a normal table
1658 like the others. This also means that TTCs are no longer recognized
1659 there but in `init_face'.
Wu, Chia-I (吳佳一)65863a52006-02-14 07:01:29 +00001660
1661 * include/freetype/internal/sfnt.h (SFNT_Interface),
1662 src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are
1663 combined and renamed to `load_font_dir'.
1664
1665 * src/sfnt/ttload.h, src/sfnt/ttload.c:
1666 s/sfnt_dir_check/check_table_dir/.
1667 `sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'.
1668 `tt_face_load_sfnt_header' and `tt_face_load_directory' are combined
1669 and renamed to `tt_face_load_font_dir'.
1670
1671 * src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.
1672
16732006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
1674
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00001675 Clean up the SFNT_Interface. Table loading functions are now named
Werner Lemberg52254022006-02-15 06:05:52 +00001676 after the tables' tags; `hdmx' is TrueType-specific and thus the
1677 code is moved to the truetype module; `get_metrics' is moved here
1678 from the truetype module so that the code can be shared with the cff
1679 module.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00001680
1681 This pass involves no real changes. That is, the code is moved
1682 verbatim mostly. The only exception is the return value of
1683 `tt_face_get_metrics'.
1684
1685 * include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
1686 src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
1687 src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
1688 src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
David Turnercda2d952006-02-16 22:45:31 +00001689
Werner Lemberg52254022006-02-15 06:05:52 +00001690 * src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: New files. Metrics-related
1691 tables' loading and parsing code is moved to here.
1692 Move `tt_face_get_metrics' here from the truetype module. The
1693 return value is changed from `void' to `FT_Error'.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00001694
1695 * include/freetype/internal/fttrace.h: New trace: ttmtx.
1696
1697 * src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
1698 parsing code is moved here.
Werner Lemberg814839a2006-07-28 11:55:48 +00001699 New function `tt_face_load_prep' split from `tt_face_load_fpgm'.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00001700 `tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
1701
1702 * src/cff/cffgload.c, src/cff/cffobjs.c: Update.
1703
1704 * src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
1705
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +000017062006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
1707
Wu, Chia-I (吳佳一)4c507ff2006-02-11 13:22:37 +00001708 * src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug...
1709
1710 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use
Werner Lembergd39fda22006-02-12 21:49:21 +00001711 AF_LatinMetricsRec as the dummy metrics because we cast the metrics
1712 to it later in `af_latin_hints_link_segments'.
Wu, Chia-I (吳佳一)4c507ff2006-02-11 13:22:37 +00001713
17142006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
1715
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00001716 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define
Werner Lembergd39fda22006-02-12 21:49:21 +00001717 to enable autofit CJK script support. (#define'd by default.)
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00001718
1719 * src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro.
1720
Werner Lembergd39fda22006-02-12 21:49:21 +00001721 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Make sure
1722 that `edge_distance_threshold' is always set.
1723 (af_latin_hints_link_segments): Potential divide-by-zero bug.
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00001724 Use latin constant in the scoring formula.
1725
1726 * src/autofit/afcjk.c: Minor updates due to the above three changes.
1727
1728 * docs/TODO, docs/CHANGES: Updated.
1729
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +000017302006-02-09 Chia-I Wu <b90201047@ntu.edu.tw>
1731
1732 Introduce experimental autofit CJK module based on akito's autohint
1733 patch. You need to #define AF_MOD_CJK in afcjk.c to enable it.
1734
1735 * src/autofit/afglobal.c, src/autofit/afcjk.h, src/autofit/afcjk.c,
1736 src/autofit/rules.mk, src/autofit/autofit.c, src/autofit/aftypes.h:
1737 Add CJK module based on akito's autohint patch.
1738
1739 * src/autofit/afhints.h (AF_SegmentRec): New field `len' for the
Werner Lembergd1d4bff2006-02-10 22:15:22 +00001740 overlap length of the segments.
1741 (AF_SEGMENT_LEN, AF_SEGMENT_DIST): New macros.
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +00001742
1743 * src/autofit/aflatin.h (af_latin_metrics_init_widths),
Werner Lembergd1d4bff2006-02-10 22:15:22 +00001744 src/autofit/aflatin.c (af_latin_metrics_init_widths): Made
1745 `FT_LOCAL'.
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +00001746 Use the character given by the caller.
1747 (af_latin_metrics_init_widths, af_latin_hints_link_segments): Scale
1748 the thresholds.
1749
1750 * src/autofit/afloader.c (af_loader_load_g): Respect
1751 AF_SCALER_FLAG_NO_ADVANCE.
1752
Werner Lemberg6be99f92006-02-09 07:38:57 +000017532006-02-09 Werner Lemberg <wl@gnu.org>
Suzuki, Toshiya (鈴木俊哉)4f41d632006-02-09 01:43:00 +00001754
Werner Lemberg6be99f92006-02-09 07:38:57 +00001755 * src/cid/cidparse.c (cid_parse_new): Remove shadowing variable.
Suzuki, Toshiya (鈴木俊哉)4f41d632006-02-09 01:43:00 +00001756
Werner Lemberg6be99f92006-02-09 07:38:57 +000017572006-02-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)458c3422006-02-08 12:58:24 +00001758
Werner Lemberg6be99f92006-02-09 07:38:57 +00001759 * src/cid/cidparse.c (cid_parse_new): Fix for abnormally short or
1760 broken CIDFont. Reported by Taek Kwan(TK) Lee (see ft-devel
1761 2005-11-02).
1762
17632006-02-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1764
1765 * builds/unix/configure.ac: Fix bug for `--with-old-mac-fonts'
1766 option on UNIX platform. It has been broken since 2006-01-11.
Suzuki, Toshiya (鈴木俊哉)458c3422006-02-08 12:58:24 +00001767
Werner Lemberg38beff02006-02-01 05:14:25 +000017682006-02-01 Werner Lemberg <wl@gnu.org>
1769
1770 * src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/.
1771 * src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/.
1772
Werner Lemberg03379b62006-02-01 05:40:06 +00001773 * builds/unix/unixddef.mk: Actually do define PLATFORM (fixing
1774 change from 2006-01-31).
1775 (TOP_DIR, OBJ_DIR): Update.
1776
Werner Lemberg9a8006b2006-02-01 06:07:05 +00001777 * builds/unix/install.mk (install): Fix path for ftmodule.h.
1778
Werner Lemberg54a79c82006-02-01 07:54:07 +00001779 * Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use
1780 `?=' where appropriate.
Werner Lemberg8a4de0d2006-02-01 07:52:11 +00001781
1782 * builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR),
1783 builds/win32/w32-dev.mk (TOP_DIR): Removed. Defined elsewhere.
1784
Werner Lemberg38beff02006-02-01 05:14:25 +000017852006-01-31 Werner Lemberg <wl@gnu.org>
Werner Lemberg59939242006-01-31 20:17:42 +00001786
1787 Implement new, simplified module selection. With GNU make it is now
1788 sufficient to modify a single file, `modules.cfg', to control the
1789 inclusion of modules and base extension files.
1790
1791 This change also fixes the creation of ftmodule.h; it now depends on
1792 `modules.cfg' and thus is rebuilt only if necessary.
1793
1794 Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
1795 default location.
1796
1797 * modules.cfg: New file.
1798
1799 * builds/freetype.mk: Don't include `modules.mk'.
1800 Include all `rules.mk' files as specified in `modules.cfg'.
1801 (FTOPTION_FLAG, FTOPTION_H): New variables.
1802 (FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H.
1803 Add FTOPTION_FLAG.
1804 ($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST.
1805 (CONFIG_H): Add FTMODULE_H and FTOPTION_H.
1806 (INCLUDES): Add DEVEL_DIR.
1807 (INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ,
1808 OBJ_M, OBJ_S): Use `:=', not `='.
1809 (remove_ftmodule_h): New phony target to delete `ftmodule.h'.
1810 (distclean): Add remove_ftmodule_h.
1811
1812 * builds/modules.mk: (MODULE_LIST): Removed.
1813 (make_module_list, clean_module_list): Replace targets
1814 with...
1815 (FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New
1816 variables. Reason for the change is that it is not possible to have
1817 a phony prerequisite which is run only if the target file must be
1818 rebuilt (phony prerequisites act like subroutines and are *always*
1819 executed). We only want to rebuild `ftmodule.h' if `module.cfg' is
1820 changed.
1821 Update all callers.
1822 ($FTMODULE_H)): Rule to create `ftmodule.h', depending on
1823 `modules.cfg'.
1824
1825 * builds/toplevel.mk: Rewrite and simplify module handling.
1826 (MODULES_CFG, FTMODULE_H): New variables.
1827 Include MODULES_CFG.
1828 (MODULES): New variable to include all `module.mk' and `rules.mk'
1829 files. We no longer use make's `wildcard' function for this.
1830
1831 * Makefile (USE_MODULES): Remove. Update all users.
1832 (OBJ_DIR): Define it here.
1833
1834 * src/*/module.mk: Change
1835
1836 make_module_list: foo
1837 foo: ...
1838
1839 to
1840
1841 FTMODULE_H_COMMANDS += FOO
1842 define FOO
1843 ...
1844 endef
1845
1846 in all files. `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.
1847
1848 * src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.
1849
1850 * builds/unix/detect.mk (setup): Always execute `configure' script.
1851 (have_mk): Rename to...
1852 (have_Makefile): This.
1853 Don't use `strip' function.
1854
1855 * builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is
1856 defined.
1857 (have_mk): Don't use `strip' function.
1858 Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test
1859 accordingly).
1860
1861 * builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.
1862
1863 * builds/os2/os2-dev.mk, builds/unix/unix-dev.mk,
1864 builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define
1865 BUILD_DIR but DEVEL_DIR for development header files.
1866
1867 * builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR),
1868 builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in
1869 (TOP_DIR, OBJ_DIR): Removed. Defined elsewhere.
1870
1871 * builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR),
1872 builds/win32/win32-def.mk (OBJ_DIR): Removed. Defined elsewhere.
1873
1874 * builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
1875 development header files.
1876 Don't define PLATFORM.
1877
1878 * configure: Copy `modules.cfg' to builddir if builddir != srcdir.
1879 Update snippet taken from autoconf's m4sh.m4 to current CVS version.
1880 Be more verbose.
1881
1882 * include/freetype/config/ftmodule.h: Add comments -- this file is
1883 no longer used if FreeType is built with GNU make.
1884
1885 * docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY,
1886 docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism.
1887 Other minor updates.
1888
1889 * modules.txt: Removed. Contents included in `modules.cfg'.
1890
1891
1892 * include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
1893 FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.
1894
1895 * src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug,
1896 FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug)
1897 [FT_STRICT_ALIASING]: Implement.
1898
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +000018992006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
1900
Wu, Chia-I (吳佳一)5d146852006-01-31 10:29:44 +00001901 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
Werner Lemberg59939242006-01-31 20:17:42 +00001902 (cid_face_init), src/pfr/pfrobjs.c (pfr_face_init),
1903 src/type1/t1objs.c (T1_Face_Init): Set face->height to MAX(1.2 *
1904 units_per_EM, ascender - descender).
Wu, Chia-I (吳佳一)5d146852006-01-31 10:29:44 +00001905
19062006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
1907
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +00001908 * include/freetype/internal/t1types.h (AFM_FontInfo),
1909 src/psaux/afmparse.c, src/tools/test_afm.c: Read `FontBBox',
1910 `Ascender', and `Descender' from an AFM.
1911
1912 * src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM.
1913
Werner Lemberg59939242006-01-31 20:17:42 +00001914 * include/freetype/freetype.h (FT_FaceRec): Mention that fields may
1915 be changed after file attachment.
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +00001916
Werner Lemberg7596fd32006-01-28 16:29:29 +000019172006-01-28 Werner Lemberg <wl@gnu.org>
1918
1919 * src/*/module.mk (.PHONY): Add.
1920
Werner Lemberg68a15eb2006-01-28 07:30:58 +000019212006-01-27 Werner Lemberg <wl@gnu.org>
1922
1923 * README, docs/FTL.TXT: Fix email address for bug reports.
1924 Other minor formatting.
1925
Werner Lembergf6a25502006-01-28 10:38:15 +00001926 * devel/ftoption.h: Synchronize with
1927 include/freetype/config/ftoption.h.
1928
1929 * src/autofit/module.mk (add_autofit_module), src/bdf/module.mk
1930 (add_bdf_module), src/type42/module.mk (add_type42_driver): Fix
1931 whitespace.
1932
1933 * src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv
1934 renderer classes.
1935
David Turnerff0e9e62006-01-27 09:15:53 +000019362006-01-27 David Turner <david@freetype.org>
1937
Werner Lemberg68a15eb2006-01-28 07:30:58 +00001938 * builds/unix/configure.ac: Fix build problem on Cygwin.
David Turnercda2d952006-02-16 22:45:31 +00001939
Werner Lemberg68a15eb2006-01-28 07:30:58 +00001940 * builds/unix/install.mk (install): Don't install the internal
1941 headers, and remove existing ones if found in the target install
1942 directory.
David Turner7213b4f2006-01-27 16:42:32 +00001943
Werner Lemberg68a15eb2006-01-28 07:30:58 +00001944 * src/autofit/afwarp.c: Add simple #ifdef to prevent compilation
1945 if the warp hinter isn't active (it shouldn't, still experimental).
David Turner6a681fa2006-01-27 12:11:22 +00001946
Werner Lemberg68a15eb2006-01-28 07:30:58 +00001947 * Jamfile, include/freetype/config/ftmodule.h: Remove `gxvalid'
Werner Lembergbe3c9812006-01-27 14:16:16 +00001948 and `otvalid' from the list of modules that are linked statically
1949 to a given FreeType library. Functionality has been moved to the
1950 `ftvalid' CVS module.
David Turner6a681fa2006-01-27 12:11:22 +00001951
Werner Lembergbe3c9812006-01-27 14:16:16 +00001952 Note also that current Make-based build system still compiles the
1953 modules though.
David Turner6a681fa2006-01-27 12:11:22 +00001954
Werner Lembergbe3c9812006-01-27 14:16:16 +00001955 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): New macro
1956 which controls the definitions of the memory management functions to
1957 avoid warnings with recent versions of GCC. This macro is only here
1958 to be disabled, in case we detect problems with the new scheme.
David Turner6a681fa2006-01-27 12:11:22 +00001959
Werner Lembergbe3c9812006-01-27 14:16:16 +00001960 NOTE: Disable macro to use the memory debugger -- this will be fixed
1961 later!
1962
1963 * include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_Alloc,
1964 FT_QAlloc, FT_Realloc, FT_QRealloc, FT_Free) [FT_STRICT_ALIASING]:
1965 New versions.
1966
1967
1968 * builds/win32/visualc/freetype.dsp: Updating project file to
1969 define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from
1970 compilation.
1971
1972
1973 * builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the
1974 macro FT2_BUILD_LIBRARY when compiling the library.
1975
1976 * include/freetype/config/ftheader.h: Remove inclusions of internal
1977 headers except if the macro FT2_BUILD_LIBRARY is defined.
1978
1979
1980 * include/freetype/internal/psaux.h (AFM_KernPair, AFM_TrackKern,
1981 AFM_FontInfo): Move structure declarations to...
1982 * include/freetype/internal/t1types.h: This file.
1983
1984
1985 * (many files): Fix compiler warnings.
1986 Various minor reorganizations.
1987
1988
1989 * src/cff/cffload.c (cff_font_done): Don't free static array
1990 `subfonts'.
1991
1992 * src/otvalid/otvcommn.c (otv_ClassDef_validate),
1993 src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information.
1994
Werner Lemberg68a15eb2006-01-28 07:30:58 +00001995
1996 Get rid of writable static variables (i.e., the string table) in
1997 afmparse, and fix compilation in FT2_MULTI mode.
1998
Werner Lembergbe3c9812006-01-27 14:16:16 +00001999 * src/psaux/afmparse.c: Include ft2build.h and FT_FREETYPE_H.
2000 (AFM_MAX_ARGUMENTS): Define...
2001 * src/psaux/afmparse.h: Here.
2002 * src/psaux/Jamfile (_sources): Add afmparse.
2003
2004 * src/psaux/psconv.c: Include psconv.h.
2005
2006 * src/type1/t1afm.c: Don't include FT_INTERNAL_TYPE1_TYPES_H but
2007 FT_INTERNAL_POSTSCRIPT_AUX_H.
2008 * src/type1/t1afm.h: Include FT_INTERNAL_TYPE1_TYPES_H.
David Turnerff0e9e62006-01-27 09:15:53 +00002009
Wu, Chia-I (吳佳一)4c6234d2006-01-23 10:46:38 +000020102006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
2011
Wu, Chia-I (吳佳一)bcc438b2006-01-23 14:12:40 +00002012 * include/freetype/freetype.h (FT_Select_Size): Rename the second
2013 argument from `idx' to `strike_index'.
2014 (FT_Size_Request_Type): Add FT_SIZE_REQUEST_TYPE_MAX to the end of
2015 this enum.
2016
2017 * include/freetype/internal/ftobjs.h (FT_REQUEST_WIDTH,
2018 FT_REQUEST_HEIGHT): New macros to get the width and height of a
2019 request, in fractional pixels.
2020
2021 * include/freetype/internal/ftobjs.h (FT_Select_Metrics,
2022 FT_Request_Metrics), src/base/ftobjs.c (FT_Select_Metrics,
2023 FT_Request_Metrics): New base functions to set the font metrics. They
2024 were part of FT_Select_Size/FT_Request_Size and are made independent
2025 functions so that metrics are not set again and again.
2026
2027 * src/base/ftobjs.c (FT_Select_Size, FT_Request_Size): Metrics are set
2028 only when driver's size_select/size_request is NULL. That is, drivers
2029 should set the metrics themselves.
2030 (FT_Match_Size): Round before matching. This was what we did and it
2031 does cause some problems without rounding.
2032
2033 * src/cff/cffobjs.c (cff_size_select), src/truetype/ttdriver.c
2034 (tt_size_select): Set the font metrics.
2035 s/index/strike_index/.
2036 The scaled metrics are always preferred over strikes' metrics, even
2037 when some strike is selected. This is done because the strikes'
2038 metrics are not reliable, e.g., the sign of the descender is wrong for
2039 some fonts.
2040
2041 * src/cff/cffobjs.c (cff_size_request), src/truetype/ttdriver.c
2042 (tt_size_request): Set the font metrics.
2043 Call cff_size_select/tt_size_select when some strike is matched.
2044
2045 * src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/cid/cidobjs.c,
2046 src/pcf/pcfdrivr.c, src/truetype/ttdriver.c, src/type1/t1objs.c,
2047 src/type1/t1objs.h, src/type42/t42objs.c, src/winfonts/winfnt.c:
2048 Set the font metrics.
2049 s/index/strike_index/.
2050
2051 * src/tools/test_afm.c, src/psaux/psconv.c: Older versions of these
2052 files were committed. Just a catch-up.
2053 (PS_Conv_ToFixed): Remove the `goto'.
2054 (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Speed up a little.
2055
2056 * src/sfnt/ttsbit.c (tt_face_load_sbit_strikes,
2057 tt_face_load_strike_metrics), src/sfnt/ttsbit0.c
2058 (tt_face_load_sbit_strikes, tt_face_load_strike_metrics): The
2059 advertised metrics in `available_sizes' are different from those
2060 actually used.
2061
20622006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
2063
Wu, Chia-I (吳佳一)4c6234d2006-01-23 10:46:38 +00002064 * src/psaux/psaux.c src/psaux/psauxmod.c src/type1/t1driver.c: Make
2065 AFM parser optional, controlled by `T1_CONFIG_OPTION_NO_AFM'.
2066
Werner Lemberged70ca52006-01-23 07:28:03 +000020672006-01-22 Werner Lemberg <wl@gnu.org>
2068
2069 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
Werner Lemberg4836f952006-06-06 12:54:08 +00002070 `texinfo' CVS module at savannah.gnu.org.
Werner Lemberged70ca52006-01-23 07:28:03 +00002071
Werner Lemberg1be9ebf2006-01-22 06:58:16 +000020722006-01-21 Werner Lemberg <wl@gnu.org>
2073
2074 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c.
2075
Werner Lembergb36bf522006-01-22 07:09:54 +00002076 * src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up
2077 to avoid compiler warnings.
2078
2079 * src/autofit/afwarp.c (af_warper_compute_line_best): Remove
2080 shadowing variable declarations.
2081 Fix warning parameters and replace printf with AF_LOG.
2082 (af_warper_compute): Remove unused variable.
2083
David Turnerbb4edc92006-01-21 14:31:45 +000020842006-01-20 David Turner <david@freetype.org>
2085
Werner Lemberg1be9ebf2006-01-22 06:58:16 +00002086 Adding experimental implementation of `warp hinting' (new hinting
2087 algorithm for gray-level and LCD rendering). It is disabled by
2088 default, you need to #define AF_USE_WARPER in aftypes.h.
2089
2090 * src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]:
2091 New function.
2092 * src/autofit/afhints.h: Updated.
2093
2094 * src/autofit/aflatin.c [AF_USE_WARPER]: Include afwarp.h.
2095 (af_latin_hints_init) [AF_USE_WARPER]: Reset mode to
2096 FT_RENDER_MODE_NORMAL if an LCD mode is selected.
2097 (af_latin_hints_apply) [AF_USE_WARPER]: Call af_warper_compute
2098 appropriately.
2099
2100 * src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]:
2101 Isolate code for adjusting metrics.
2102
2103 * src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by
2104 default).
2105
2106 * src/autofit/afwarp.c, src/autofit/afwarp.h: New files.
2107
2108 * src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c.
2109
2110 * src/autofit/Jamfile (_sources): Add afwarp.
David Turnerbb4edc92006-01-21 14:31:45 +00002111
David Turner8c16ed32006-01-19 13:10:49 +000021122006-01-19 David Turner <david@freetype.org>
2113
Werner Lemberge7be64e2006-01-21 17:27:32 +00002114 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug
2115 that prevented compilation when FT_OPTIMIZE_MEMORY is defined.
David Turner8c16ed32006-01-19 13:10:49 +00002116
Werner Lemberg8b560632006-01-19 08:30:58 +000021172006-01-19 Brian Weed <bw@imaginengine.com>
2118
2119 * builds/win32/visualc/freetype.dsp: Updated.
2120
Werner Lemberg47bf95d2006-01-17 16:55:32 +000021212006-01-17 Werner Lemberg <wl@gnu.org>
2122
2123 Use pscmap service in CFF module.
2124
2125 * src/cff/cffcmap.c (cff_cmap_uni_pair_compare): Removed.
2126 (cff_sid_to_glyph_name): New function.
2127 (cff_cmap_unicode_init, cff_cmap_unicode_done,
2128 cff_cmap_unicode_char_index, cff_cmap_unicode_char next): Use pscmap
2129 service.
2130 (cff_cmap_unicode_class_rec): Updated.
2131 * src/cff/cffcmap.h (CFF_CMapUnicode, CFF_CMap_UniPair): Removed.
2132
2133
2134 * src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode'
2135 return value.
2136
2137
2138 * src/psaux/afmparse.c (afm_parser_read_vals): Use double casting
Werner Lemberge7be64e2006-01-21 17:27:32 +00002139 to avoid compiler warnings regarding type-punning.
Werner Lemberg47bf95d2006-01-17 16:55:32 +00002140
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +000021412006-01-16 Chia-I Wu <b90201047@ntu.edu.tw>
2142
2143 * src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
Werner Lembergce94c7a2006-01-16 22:35:33 +00002144 implement an AFM parser.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002145
2146 * src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
Werner Lembergce94c7a2006-01-16 22:35:33 +00002147 conversion functions (e.g., PS real number => FT_Fixed) for the
2148 PS_Parser and AFM_Parser. Some of the functions are taken, with
2149 some modifications, from the file psobjs.c.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002150
2151 * src/psaux/psobjs.c: Use functions from psconv.c.
2152
Werner Lembergce94c7a2006-01-16 22:35:33 +00002153 * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002154 `AFM_Parser' to the `psaux' service.
2155
Werner Lembergce94c7a2006-01-16 22:35:33 +00002156 * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include
2157 those new files.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002158
2159 * src/tools/test_afm.c: A test program for AFM parser.
2160
Werner Lembergce94c7a2006-01-16 22:35:33 +00002161 * include/freetype/internal/services/svkern.h: New file providing a
2162 `Kerning' service. It is currently only used to get the track
2163 kerning information.
2164
2165 * include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New
2166 macro.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00002167
2168 * src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
2169 src/type1/t1afm.h: Update to use the AFM parser.
2170 Provide the `Kerning' service.
2171
2172 * include/freetype/freetype.h, src/base/ftobjs.c: New API
2173 `FT_Get_Track_Kerning'.
2174
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +000021752006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
2176
Wu, Chia-I (吳佳一)ea1e8d32006-01-15 15:01:45 +00002177 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c,
2178 src/bdf/bdfdrivr.c, src/cff/cffgload.c, src/cid/cidgload.c,
2179 src/pcf/pcfdrivr.c, src/type1/t1gload.c, src/winfonts/winfnt.c:
2180 s/ft_fake_vertical_metrics/ft_synthesize_vertical_metrics/.
2181
2182 * docs/CHANGES: Mention that vertical metrics are synthesized for
2183 fonts not having this info.
2184
21852006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
2186
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002187 * include/freetype/internal/ftobjs.h (ft_fake_vertical_metrics),
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002188 src/base/ftobjs.c (ft_fake_vertical_metrics): New function to fake
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002189 vertical metrics.
2190
2191 * src/cff/cffgload.c, src/cid/cidgload.c, src/pcf/pcfdrivr.c,
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002192 src/type1/t1gload.c, src/winfonts/winfnt.c: Fake vertical metrics,
2193 which are monotone.
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002194
2195 * src/truetype/ttgload.c (compute_glyph_metrics): Some fixes and
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002196 formattings in vertical metrics faking. There is still room for
2197 improvements (and so does the CFF module).
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00002198
21992006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
2200
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002201 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdrivr.c
2202 (PCF_Glyph_Load), src/winfonts/winfnt.c (FNT_Load_Glyph): Don't set
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002203 the linear advance fields as they are only used by the outline
2204 glyphs.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002205
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002206 * include/freetype/freetype.h: Documentation updates and
2207 clarifications.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002208 The meaning of FT_LOAD_FORCE_AUTOHINT is changed so that no real
2209 change need be made to the code.
2210
2211 * src/base/ftobjs.c (FT_Load_Glyph): Resolve flag dependencies and
2212 decide whether to use the auto-hinter according to documentation.
2213 There should to be no real difference.
Werner Lemberg1723dcc2006-01-15 07:30:32 +00002214 Some checks (e.g., is text height positve?) after the glyph is
2215 loaded.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00002216 (FT_Select_Size, FT_Request_Size): Scales are set to wrong values.
2217 Be careful that scales won't be negative.
2218
Wu, Chia-I (吳佳一)e33dc2e2006-01-14 05:09:30 +000022192006-01-14 Chia-I Wu <b90201047@ntu.edu.tw>
2220
2221 * docs/CHANGES: Mention the size selection change.
2222
2223 * src/bdf/bdfdrivr.c (BDF_Size_Request, BDF_Size_Select),
2224 src/pcf/pcfdrivr.c (PCF_Size_Request, PCF_Size_Select),
2225 src/winfonts/winfnt.c (FNT_Size_Request, FNT_Size_Select): Do size
Werner Lemberg3d8eeb82006-01-14 07:10:45 +00002226 matching for requests of type NOMINAL and REAL_DIM.
Wu, Chia-I (吳佳一)e33dc2e2006-01-14 05:09:30 +00002227
2228 * src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when
2229 `pixel_height' is used for nominal height.
2230
2231 * src/base/ftobjs.c (FT_Request_Size): Call `FT_Match_Size' if the
2232 face is bitmap only and driver doesn't provide `request_size'. This
2233 is added merely for completion as no driver satisfies the conditions.
2234
Wu, Chia-I (吳佳一)fa7d6ab2006-01-13 12:21:31 +000022352006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
2236
2237 Introduce new size selection interface.
2238
Werner Lembergf1c2b912006-01-13 14:53:28 +00002239 * include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec):
Wu, Chia-I (吳佳一)fa7d6ab2006-01-13 12:21:31 +00002240 Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and
2241 `select_size'.
2242
2243 * include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type,
2244 FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c
2245 (FT_Select_Size, FT_Request_Size): API additions to export the new
2246 size selection interface.
2247
2248 * src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
2249 `FT_Request_Size'.
2250
2251 * include/freetype/internal/ftobjs.h (FT_Match_Size),
2252 src/base/ftobjs.c (FT_Match_Size): New function to match a size
2253 request against `available_sizes'. Drivers supporting bitmap strikes
2254 can use this function to implement `request_size'.
2255
2256 * src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
2257 src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c,
2258 src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c,
2259 src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c:
2260 Update to new size selection interface.
2261
2262 * src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c,
2263 src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c,
2264 src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size
2265 selection interface.
2266 Make `strike_index' FT_ULong and always defined.
2267 Use `load_strike_metrics' provided by SFNT interface.
2268
22692006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
2270
2271 * include/freetype/internal/sfnt.h (SFNT_Interface): New method
2272 `load_strike_metrics' used to load the strike's metrics.
2273
2274 * src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
2275 src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'.
2276
2277 * src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.
2278
2279 * src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
2280 nominal size unless it is obviously incorrect.
2281
2282 * include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
2283 FNT driver.
2284
Werner Lemberg8ab09792006-01-12 08:12:27 +000022852006-01-12 Werner Lemberg <wl@gnu.org>
2286
2287 Prepare use of pscmap service within CFF module.
2288
2289 * include/freetype/internal/services/svpscmap.h: Include
2290 FT_INTERNAL_OBJECTS_H.
2291 (PS_Unicode_Index_Func): Removed. Unused.
2292 (PS_Macintosh_Name_Func): Renamed to...
2293 (PS_Macintosh_NameFunc): This.
2294 Update all callers.
2295 (PS_Adobe_Std_Strings_Func): Renamed to...
2296 (PS_Adobe_Std_StringsFunc): This.
2297 Update all callers.
2298 (PS_UnicodesRec): This is the former `PS_Unicodes' structure.
2299 Add `cmap' member.
2300 Update all callers.
2301 (PS_Unicodes): This is now a typedef'd pointer to PS_UnicodesRec.
2302 Update all callers.
2303 (PS_Glyph_NameFunc): New typedef.
2304 (PS_Unicodes_InitFunc): Change arguments to expect a function
2305 and generic data pointer which returns a glyph name from a given
2306 index.
2307
2308 * src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index,
2309 ps_unicodes_char_next, pscmaps_interface): Updated.
2310
2311 * include/freetype/internal/t1types.h (T1_FaceRec): Updated.
2312
2313 * src/psaux/t1cmap.h (T1_CmapStdRec): Updated.
2314 (T1_CmapUnicode, T1_CmapUnicodeRec): Removed.
2315
2316 * src/psaux/t1cmap.c (t1_get_glyph_name): New callback function.
2317 (t1_cmap_unicode_init, t1_cmap_unicode_done,
2318 t1_cmap_unicode_char_index, t1_cmap_unicode_char_next,
2319 t1_cmap_unicode_class_rec): Updated.
2320
2321 * src/type42/t42types.h (T42_FaceRec): Updated.
2322
23232006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)356a4d82006-01-12 03:33:16 +00002324
2325 * include/freetype/ftmac.h: Add declaration of new functions
2326 FT_New_Face_From_FSRef and FT_GetFile_From_Mac_ATS_Name that
2327 were introduced by the jumbo patch on 2006-01-11.
2328
Werner Lemberg8ab09792006-01-12 08:12:27 +000023292006-01-11 Werner Lemberg <wl@gnu.org>
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002330
Werner Lembergadf828f2006-01-11 10:08:49 +00002331 Fix Savannah bug #15056 and use pscmap service in psaux module.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002332
Werner Lembergadf828f2006-01-11 10:08:49 +00002333 * include/freetype/internal/services/svpscmap.h (PS_UniMap): Use
2334 FT_UInt32 for `glyph_index'.
2335 (PS_Unicodes_InitFunc): Use FT_String for `glyph_names'.
2336 (PS_Unicodes_CharIndexFunc): Use FT_UInt32 for `unicode'.
2337 (PS_Unicodes_CharNextFunc): Make second argument a pointer to
2338 FT_UInt32.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002339
Werner Lembergadf828f2006-01-11 10:08:49 +00002340 * src/psnames/psmodule.c (VARIANT_BIT, BASE_GLYPH): New macros.
2341 (ps_unicode_value): Set VARIANT_BIT in return value if glyph is a
2342 variant glyph (this is, it has non-leading `.' in its name).
2343 (compare_uni_maps): Sort base glyphs before variant glyphs.
2344 (ps_unicodes_init): Use FT_String for `glyph_names' argument.
2345 Reallocate only if number of used entries is much smaller.
2346 Updated to handle variant glyphs.
2347 (ps_unicodes_char_index, ps_unicodes_char_next): Prefer base glyphs
2348 over variant glyphs.
2349 Simplify code.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002350
Werner Lembergadf828f2006-01-11 10:08:49 +00002351 * src/psaux/t1cmap.c (t1_cmap_uni_pair_compare): Removed.
2352 (t1_cmap_unicode_init, t1_cmap_unicode_char_index,
2353 t1_cmap_unicode_char_next): Use pscmap service.
2354 (t1_cmap_unicode_done): Updated.
2355
2356 * src/psaux/t1cmap.h (T1_CMapUniPair): Removed.
2357 (T1_CMapUnicode): Use PS_Unicodes structure.
2358
23592006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2360
2361 Jumbo patch to fix `deprecated' warning of cross-build for Tiger on
2362 Intel, as reported by Sean McBride <sean@rogue-research.com> on
2363 2005-08-24.
2364
2365 * src/base/ftmac.c: Heavy change to build without deprecated Carbon
2366 functions on Tiger.
2367
2368 * builds/unix/configure.ac: Add options and autochecks for Carbon
2369 functions availabilities, for MacOS X.
2370
2371 * builds/mac/ascii2mpw.py: Add converter for character `\305'.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002372 * builds/mac/FreeType.m68k_{far|cfm}.make.txt: Add conditional
Werner Lembergadf828f2006-01-11 10:08:49 +00002373 macros to avoid unavailable functions.
2374 ftmac.c must be compiled without `-strict ansi', because it disables
2375 cpp macro to use ToolBox system call.
2376
2377 * builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional
2378 macros to avoid unavailable functions.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00002379
2380 * builds/mac/README: Detailed notes on function availabilities.
2381
2382 * docs/CHANGES: Notes about (possible) incompatibilities.
2383
Werner Lemberge8f92af2006-01-08 13:43:30 +000023842006-01-08 Werner Lemberg <wl@gnu.org>
2385
Werner Lemberg6cdab922006-01-08 22:34:01 +00002386 * docs/CHANGES: Updated.
2387
23882006-01-08 Huw D M Davies <h.davies1@physics.ox.ac.uk>
2389
2390 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): New
2391 declaration.
2392
2393 * src/base/ftobjs.c (FT_Module_Get_Flags): New function.
2394
23952006-01-07 Werner Lemberg <wl@gnu.org>
2396
Werner Lemberge8f92af2006-01-08 13:43:30 +00002397 * src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable
Werner Lemberg30bd2842006-01-08 19:38:42 +00002398 `bitmaps'. Reported by Yu Lei <yulei0@gmail.com>.
2399
2400 * src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/.
2401 Reported by Niels Boldt <nielsboldt@gmail.com>.
Werner Lemberge8f92af2006-01-08 13:43:30 +00002402
24032005-12-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)3dfcef62005-12-28 06:47:12 +00002404
Werner Lemberg05cda082006-01-08 13:37:15 +00002405 * src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for
2406 MPW compiler.
Suzuki, Toshiya (鈴木俊哉)3dfcef62005-12-28 06:47:12 +00002407
David Turnere6bb9532005-12-23 13:32:06 +000024082005-12-23 David Turner <david@freetype.org>
2409
Werner Lemberg083ba0b2005-12-23 15:10:54 +00002410 * Jamfile (RefDoc), docs/reference/README: Fix it so that `jam
2411 refdoc' works correctly to generate the API reference in
2412 `docs/reference'.
David Turnere6bb9532005-12-23 13:32:06 +00002413
Werner Lemberg083ba0b2005-12-23 15:10:54 +00002414 * src/tools/docmaker/tohtml.py (print_html_field,
2415 print_html_field_list): Update to output nicer fields lists in the
2416 API reference.
David Turnere6bb9532005-12-23 13:32:06 +00002417
2418 * src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now
Werner Lemberg083ba0b2005-12-23 15:10:54 +00002419 forces auto-hinting.
David Turnere6bb9532005-12-23 13:32:06 +00002420
Werner Lemberg083ba0b2005-12-23 15:10:54 +00002421 * freetype/freetype.h: Updating the documentation for
2422 FT_LOAD_TARGET_XXX and FT_Render_Mode values.
David Turnere6bb9532005-12-23 13:32:06 +00002423
Werner Lemberg6be99f92006-02-09 07:38:57 +000024242005-12-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)53be6e92005-12-23 12:22:46 +00002425
Werner Lemberg083ba0b2005-12-23 15:10:54 +00002426 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Count scalable faces
2427 in supported formats (sfnt, LWFN) only, and ignore bitmap faces in
2428 unsupported formats (fbit, NFNT). The number of available faces are
2429 passed via face->num_faces. If bitmap faces are embedded in sfnt
2430 resource, face->num_fixed_size is correctly set. In public API,
2431 FT_New_Face() and FT_New_Face_From_FSSpec() count the faces as
2432 FT_GetFile_From_Mac_Name(), which ignores NFNT resources.
Suzuki, Toshiya (鈴木俊哉)53be6e92005-12-23 12:22:46 +00002433
2434 * doc/CHANGES: Mention the changes.
2435
Wu, Chia-I (吳佳一)ce34d122005-12-17 13:12:49 +000024362005-12-17 Chia-I Wu <b90201047@ntu.edu.tw>
2437
2438 * src/truetype/ttinterp.c (Update_Max): Set current size of buffer
2439 correctly (so that memory debug system won't panic).
2440
Wu, Chia-I (吳佳一)dcb8b712005-12-16 14:27:14 +000024412005-12-16 Chia-I Wu <b90201047@ntu.edu.tw>
2442
2443 * include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics),
2444 src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed.
2445
2446 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round.
2447
2448 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
2449 (cid_slot_load_glyph), src/truetype/ttgload.c (compute_glyph_metrics),
2450 src/type1/t1gload.c (T1_Load_Glyph): Do not round glyph metrics.
2451
2452 * doc/CHANGES: Mention the changes.
2453
David Turner5b5f3822005-12-14 16:37:15 +000024542005-12-13 David Turner <david@freetype.org>
2455
Werner Lembergb79b5132005-12-20 12:01:58 +00002456 Change the implementation of the LIGHT hinting mode to completely
2457 disable horizontal hinting. This is an experimental effort to
2458 integrate David Chester's latest patch without affecting the other
2459 hinting modes as well.
David Turner5b5f3822005-12-14 16:37:15 +00002460
Werner Lembergb79b5132005-12-20 12:01:58 +00002461 Note that this doesn't force auto-hinting for all fonts, however.
David Turner5b5f3822005-12-14 16:37:15 +00002462
Werner Lembergb79b5132005-12-20 12:01:58 +00002463 * src/autofit/afhints.c (af_glyph_hints_reload): Don't set
2464 scaler_fiags here but...
2465 (af_glyph_hints_rescale): Here.
David Turner8def3c82005-12-14 16:38:31 +00002466
Werner Lembergb79b5132005-12-20 12:01:58 +00002467 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
2468 hinting for `light' hinting mode.
David Turnerdb0182f2005-12-14 21:16:33 +00002469
David Turnerdb0182f2005-12-14 21:16:33 +00002470
Werner Lembergb79b5132005-12-20 12:01:58 +00002471 * Jamfile: Small fix to ensure that ftexport.sym is placed into the
2472 same location as other generated objects (i.e., within the `objs'
2473 directory of the current directory).
David Turnerdb0182f2005-12-14 21:16:33 +00002474
Werner Lembergb79b5132005-12-20 12:01:58 +00002475
2476 Add support for an embedded `BDF ' table within SFNT-based bitmap
2477 font files. This is used to store atoms & properties from the
2478 original BDF fonts that were used to generate the font file.
2479
2480 The feature is controlled by TT_CONFIG_OPTION_BDF within
2481 `ftoption.h' and is used to implement FT_Get_BDF_Property for these
2482 font files.
2483
2484 At the moment, this is still experimental, the BDF table format
2485 isn't cast into stone yet.
2486
2487 * include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New
2488 macro.
2489
2490 * include/freetype/config/ftstdlib.h (ft_memchr): New macro.
2491
2492 * include/freetype/internal/tttypes.h (TT_BDFRec, TT_BDF)
2493 [TT_CONFIG_OPTION_BDF]: New structure.
2494 (TT_FaceRec) [TT_CONFIG_OPTION_BDF]: New member `bdf'.
2495
2496 * include/freetype/ttags.h (TTAG_BDF): New macro.
2497
2498 * src/sfnt/Jamfile (_sources): Add ttbdf.
2499
2500 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c.
2501
2502 * src/sfnt/sfdriver.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h and
2503 FT_SERVICE_BDF_H.
2504 (sfnt_get_charset_it) [TT_CONFIG_OPTION_BDF]: New function.
2505 (sfnt_service_bdf) [TT_CONFIG_OPTION_BDF]: New service.
2506 (sfnt_servives) [TT_CONFIG_OPTION_BDF]: Add sfnt_service_bdf.
2507
2508 * src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c.
2509
2510 * src/sfnt/sfobjs.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h.
2511 (sfnt_done_face) [TT_CONFIG_OPTION_BDF]: Call
2512 tt_face_free_bdf_props.
2513
2514 * src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files.
David Turner89a2a4b2005-12-14 20:38:15 +00002515
Werner Lemberg364db082005-12-07 20:34:11 +000025162005-12-07 Werner Lemberg <wl@gnu.org>
2517
2518 * src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to...
2519 * src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs.
2520
Wu, Chia-I (吳佳一)a3690cd2005-12-06 08:24:01 +000025212005-12-06 Chia-I Wu <b90201047@ntu.edu.tw>
2522
2523 * src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is
2524 initialized twice.
2525 size->strike_index is not initialized.
2526
Werner Lemberg2a0903a2005-12-03 08:13:43 +000025272005-12-02 Taek Kwan(TK) Lee <taeklee@gmail.com>
2528
Werner Lemberg3b8db662005-12-06 10:47:44 +00002529 * src/type42/t42objs.c (T42_Face_Init): Replace call to
Werner Lemberg2a0903a2005-12-03 08:13:43 +00002530 FT_New_Memory_Face with call to FT_Open_Face to pass `params'.
2531
Werner Lembergb797fdb2005-11-30 08:48:32 +000025322005-11-30 Werner Lemberg <wl@gnu.org>
2533
2534 * docs/CHANGES: Document ftdump's `-v' option.
Werner Lembergb5d88e82005-11-30 08:55:51 +00002535 Document latest charmap code changes.
Werner Lembergb797fdb2005-11-30 08:48:32 +00002536
Werner Lemberg44e47d52005-11-30 18:47:49 +00002537 * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h:
2538 s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/.
2539
Wu, Chia-I (吳佳一)a28bc4c2005-11-30 02:39:10 +000025402005-11-30 Chia-I Wu <b90201047@ntu.edu.tw>
2541
2542 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary,
2543 tt_cmap12_char_map_binary): Fix compiler warnings.
2544
Wu, Chia-I (吳佳一)569ec4e2005-11-29 11:27:51 +000025452005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
2546
Werner Lemberg44e47d52005-11-30 18:47:49 +00002547 Major update to distinguish between unsorted and overlapping
2548 segments for cmap format 4. For overlapping but sorted segments,
2549 which is previously considered unsorted, we still use binary search.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002550
David Turner5b5f3822005-12-14 16:37:15 +00002551 * src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002552 (TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros.
2553
2554 * src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined.
David Turner5b5f3822005-12-14 16:37:15 +00002555 (TT_CMap4Rec_): Remove `old_charcode' and `table_length'.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002556 (tt_cmap4_reset): Removed.
2557 (tt_cmap4_init): Updated accordingly.
2558 (tt_cmap4_next): Updated accordingly.
Werner Lemberg44e47d52005-11-30 18:47:49 +00002559 Take care of overlapping segments.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002560 (tt_cmap4_validate): Make sure the subtable is large enough.
2561 Do not check glyph_ids because some fonts set the length wrongly.
Werner Lemberg05cda082006-01-08 13:37:15 +00002562 Also, if all segments have offset 0, glyph_ids is always invalid.
Werner Lemberg44e47d52005-11-30 18:47:49 +00002563 It does not cause any problem so far only because the check misses
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002564 equality.
Werner Lemberg44e47d52005-11-30 18:47:49 +00002565 Distinguish between unsorted and overlapping segments.
2566 (tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions
2567 to do `charcode => glyph index' by linear/binary search.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002568 (tt_cmap4_char_index, tt_cmap4_char_next): Use
2569 tt_cmap4_char_map_linear and tt_cmap4_char_map_binary.
2570 (tt_face_build_cmaps): Treat the return value of validator as flags
2571 for cmap.
2572
25732005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
2574
Werner Lemberg44e47d52005-11-30 18:47:49 +00002575 * src/sfnt/ttcmap.c (TT_CMap12Rec_, tt_cmap12_init, tt_cmap12_next):
2576 New structures and functions for fast `next char'.
2577 (tt_cmap12_char_map_binary): New function to do `charcode => glyph
2578 index' by binary search.
Wu, Chia-I (吳佳一)569ec4e2005-11-29 11:27:51 +00002579 (tt_cmap12_char_index, tt_cmap12_char_next): Use
2580 tt_cmap12_char_map_binary.
2581 (tt_face_build_cmaps): Check table and offset correctly (equality is
2582 missing).
2583
Werner Lemberg4e03fe72006-04-29 06:20:09 +000025842005-11-15 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würknerdf1598e2005-11-25 08:04:09 +00002585
2586 * builds/amiga/smakefile: Adjusted the compiler options
2587 to the current sources, now really builds the gxvalid, gzip
2588 and psnames modules.
2589
2590 * builds/amiga/src/base/ftsystem.c: The assumed Seek() position
2591 in the file cache was off by one byte which could cause false
2592 errors in font files.
2593
Werner Lemberg6be99f92006-02-09 07:38:57 +000025942005-11-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)6b1c5972005-11-24 05:16:57 +00002595
2596 * builds/mac/FreeType.m68k_far.make.txt,
2597 builds/mac/FreeType.m68k_cfm.make.txt,
2598 builds/mac/FreeType.ppc_classic.make.txt,
2599 builds/mac/FreeType.ppc_carbon.make.txt:
2600 Updated for MPW to build all available modules.
2601
Werner Lemberg4e03fe72006-04-29 06:20:09 +000026022005-11-21 Håvard Wall <haavardw@ifi.uio.no>
Werner Lemberg67ba2112005-11-21 17:32:03 +00002603
2604 * src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Done): Fix small
2605 memory leak.
2606
Werner Lemberg840232a2005-11-21 12:36:42 +000026072005-11-21 Werner Lemberg <wl@gnu.org>
2608
2609 * src/sfnt/ttload.c (sfnt_init): Add tracing message.
2610
Wu, Chia-I (吳佳一)d81947e2005-11-21 03:04:03 +000026112005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
2612
Werner Lemberg840232a2005-11-21 12:36:42 +00002613 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Image_offset was
Werner Lemberg05cda082006-01-08 13:37:15 +00002614 added twice to image_start if image_format was 2 or 5.
Wu, Chia-I (吳佳一)275be9b2005-11-21 03:05:34 +00002615
26162005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
2617
Wu, Chia-I (吳佳一)d81947e2005-11-21 03:04:03 +00002618 * src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known
2619 before loading the table directory.
2620
2621 * src/sfnt/ttload.c (tt_face_load_sfnt_header,
2622 tt_face_load_directory): Delay sfnt_dir_check from
2623 tt_face_load_sfnt_header to tt_face_load_directory.
2624
Wu, Chia-I (吳佳一)6f1eca02005-11-20 08:24:24 +000026252005-11-20 Chia-I Wu <b90201047@ntu.edu.tw>
2626
2627 * src/sfnt/ttload.c (sfnt_dir_check): Clean up and return correct
2628 error code.
2629 (sfnt_init): New function to fill in face->ttc_header. A non-TTC font
2630 is synthesized into a TTC font with one offset table.
2631 (tt_face_load_sfnt_header): Use sfnt_init.
Werner Lemberg05cda082006-01-08 13:37:15 +00002632 Fix an invalid access if the font is TTC and face_index is -1.
Wu, Chia-I (吳佳一)6f1eca02005-11-20 08:24:24 +00002633
Werner Lemberg1a293d62005-11-18 08:23:06 +000026342005-11-18 Werner Lemberg <wl@gnu.org>
2635
2636 * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number
2637 of metrics instead of aborting. Patch suggested by Derek Noonburg.
2638
Werner Lemberg6c990452005-11-18 21:10:59 +00002639 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
2640 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Scale
2641 the glyph properly if no hinter is available.
2642
2643 * docs/CHANGES: Mention scaling bug.
2644
Suzuki, Toshiya (鈴木俊哉)8d81d412005-11-18 07:47:06 +000026452005-11-18 susuzki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2646
2647 * include/freetype/ftgxval.h, src/base/ftgxval.c
2648 (FT_TrueTypeGX_Free, FT_ClassicKern_Free): New functions to free
2649 buffers allocated by gxvalid module.
2650 * include/freetype/ftotval.h, src/base/ftotval.c
2651 (FT_OpenType_Free): New function to free buffer allocated by
2652 otvalid module.
2653
Wu, Chia-I (吳佳一)cb182382005-11-18 04:29:31 +000026542005-11-18 Chia-I Wu <b90201047@ntu.edu.tw>
2655
2656 * builds/unix/ftsystem.c (FT_Stream_Open, FT_New_Memory,
2657 FT_Done_Memory), builds/vms/ftsystem.c (FT_Stream_Open, FT_New_Memory,
2658 FT_Done_Memory), builds/win32/ftdebug.c (FT_Message, FT_Panic):
2659 s/FT_EXPORT/FT_BASE/.
2660
Werner Lemberg4e03fe72006-04-29 06:20:09 +000026612005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner4859ac42005-11-17 14:21:07 +00002662
Detlef Würkner0acfc1f2005-11-17 16:54:54 +00002663 * builds/amiga/src/base/ftdebug.c (FT_Trace_Get_Count,
2664 FT_Trace_Get_Name, FT_Message, FT_Panic),
2665 builds/amiga/src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory,
2666 FT_Stream_Open): s/FT_EXPORT/FT_BASE/.
2667
Werner Lemberg4e03fe72006-04-29 06:20:09 +000026682005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner0acfc1f2005-11-17 16:54:54 +00002669
Werner Lemberg1a293d62005-11-18 08:23:06 +00002670 * builds/amiga/makefile, builds/amiga/makefile.os4,
Detlef Würknerdf1598e2005-11-25 08:04:09 +00002671 builds/amiga/smakefile,
Detlef Würkner4859ac42005-11-17 14:21:07 +00002672 builds/amiga/include/freetype/config/ftmodule.h: Updated the Amiga
Werner Lemberg1a293d62005-11-18 08:23:06 +00002673 build files (added support for the gxvalid module).
Detlef Würkner4859ac42005-11-17 14:21:07 +00002674
Werner Lembergcfc0cf22005-11-17 08:12:00 +000026752005-11-17 Werner Lemberg <wl@gnu.org>
2676
2677 Add vertical metrics support to OpenType CFF outlines. Based on a
Werner Lemberg1a293d62005-11-18 08:23:06 +00002678 patch from Mike Moening <MikeM@RetekSolutions.com>.
Werner Lembergcfc0cf22005-11-17 08:12:00 +00002679
2680 * src/cff/cffgload.c (cff_face_get_vertical_metrics): New function.
2681 (cff_slot_load): Use cff_face_get_vertical_metrics.
2682
2683 * docs/CHANGES: Updated.
2684
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +000026852005-11-17 Chia-I Wu <b90201047@ntu.edu.tw>
2686
2687 * src/base/ftcalc.c (FT_MulTo64): Commented out.
2688
Werner Lembergcfc0cf22005-11-17 08:12:00 +00002689 * include/freetype/internal/ftcalc.h (FT_SqrtFixed),
2690 src/base/ftcalc.c (FT_SqrtFixed),
2691 include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
2692 FT_Trace_Get_Name, FT_Message, FT_Panic), src/base/ftdebug.c
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00002693 (FT_Trace_Get_Count, FT_Trace_Get_Name, FT_Message, FT_Panic),
Werner Lembergcfc0cf22005-11-17 08:12:00 +00002694 include/freetype/internal/ftobjs.h (FT_New_Memory, FT_Done_Memory),
2695 include/freetype/internal/ftstream.h (FT_Stream_Open),
2696 src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory, FT_Stream_Open):
2697 s/FT_EXPORT/FT_BASE/.
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00002698
Werner Lembergcfc0cf22005-11-17 08:12:00 +00002699 * builds/exports.mk: Manually add TT_New_Context to EXPORTS_LIST
2700 too.
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00002701
David Turnerf7cc1812005-11-15 17:30:56 +000027022005-11-15 David Turner <david@freetype.org>
2703
Werner Lemberg674ba912005-11-16 18:09:27 +00002704 * src/base/fttrigon.c (ft_trig_prenorm): Fix a bug that created
David Turnerf7cc1812005-11-15 17:30:56 +00002705 invalid computations, resulting in very weird bugs in TrueType
Werner Lemberg674ba912005-11-16 18:09:27 +00002706 bytecode hinted fonts.
David Turnerf7cc1812005-11-15 17:30:56 +00002707
Werner Lemberg674ba912005-11-16 18:09:27 +00002708 * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Don't perform a
2709 structure copy each time.
David Turnerf7cc1812005-11-15 17:30:56 +00002710
Werner Lembergd829ff72005-11-12 17:07:11 +000027112005-11-11 Werner Lemberg <wl@gnu.org>
2712
2713 * src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c
2714 (FTC_Manager_Check): Remove FT_EXPORT_DEF tag.
2715
David Turnerf7cc1812005-11-15 17:30:56 +00002716 * src/base/ftcalc.c (FT_Add64): Remove FT_EXPORT_DEF tag.
Werner Lembergd829ff72005-11-12 17:07:11 +00002717 (FT_Div64by32, FT_Sqrt32): Commented out. Unused.
2718
2719 * include/freetype/internal/ftcalc.h (SQRT_32): Removed. Unused.
2720 (FT_Sqrt32): Commented out. Unused.
2721
2722 * include/freetype/cache/ftccache.h:
2723 s/ftc_node_destroy/FTC_Node_Destroy/.
2724
2725 * src/cache/ftccback.h (ftc_node_destroy): New declaration.
2726
2727 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF tag.
2728 (FTC_Node_Destroy): New exported wrapper function for
2729 ftc_node_destroy.
2730
2731 * src/cache/ftcmanag.c: Include ftccback.c.
2732
Werner Lemberg4309edc2005-11-11 15:49:14 +000027332005-11-10 Werner Lemberg <wl@gnu.org>
2734
2735 * src/autofit/afangles.c, src/autofit/aftypes.h (af_angle_diff):
2736 Comment out. Unused.
2737
Werner Lembergf2c53302005-11-11 16:20:59 +00002738 * builds/exports.mk ($(EXPORTS_LIST)): Add TT_RunIns.
2739
Werner Lemberg4309edc2005-11-11 15:49:14 +000027402005-11-10 Christian Biesinger <cbiesinger@web.de>
2741
2742 * builds/beos/beos.mk: Call beos-def.mk before anything else to
2743 define the separator.
2744
2745 * builds/unix/unix-cc.in (LINK_LIBRARY): Add `-no-undefined' flag.
2746
Werner Lembergea4c3dc2005-11-08 09:10:16 +000027472005-11-07 Werner Lemberg <wl@gnu.org>
2748
2749 * src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning
2750 table available'. From Sergey Tolstov <stolstov@esri.com>.
2751
Werner Lemberg4e03fe72006-04-29 06:20:09 +000027522005-11-03 Ville Syrjälä <syrjala@sci.fi>
Werner Lembergb2d02532005-11-04 06:58:49 +00002753
2754 * src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak.
2755
27562005-11-02 Werner Lemberg <wl@gnu.org>
2757
2758 Make compiling instructions in docs/CUSTOMIZE work again.
2759
2760 * builds/unix/unix-cc.in (CPPFLAGS): New variable.
2761 (CFLAGS): Don't include @CPPFLAGS@.
2762 * builds/freetype.mk (FT_CFLAGS): Add CPPFLAGS.
2763
David Turnerdab24542005-11-02 09:24:00 +000027642005-10-28 David Turner <david@freetype.org>
2765
Werner Lembergcee37a32005-11-12 07:34:40 +00002766 Update build system to support the generation of a list of exported
2767 symbols or Windows .DEF files by parsing the public headers with the
Werner Lembergb2d02532005-11-04 06:58:49 +00002768 `apinames' tool located in src/tools/apinames.c.
David Turnerdab24542005-11-02 09:24:00 +00002769
Werner Lembergb2d02532005-11-04 06:58:49 +00002770 Only tested on Unix at the moment. On Windows, the .DEF file is
2771 generated but isn't used yet to generate a DLL.
David Turnerdab24542005-11-02 09:24:00 +00002772
Werner Lembergcee37a32005-11-12 07:34:40 +00002773 * builds/exports.mk: New file.
David Turnerdab24542005-11-02 09:24:00 +00002774
Werner Lembergcee37a32005-11-12 07:34:40 +00002775 * builds/freetype.mk: Include exports.mk.
2776 (dll): New target.
2777 (clean_project_dos): Fix rule.
David Turnerdab24542005-11-02 09:24:00 +00002778
Werner Lembergcee37a32005-11-12 07:34:40 +00002779 * builds/compiler/visualc.mk (TE), builds/dos/dos-def.mk (E),
2780 builds/os2/os2-def.mk (E), builds/win32/win32-def.mk (E): New
2781 variables for controlling executable extensions.
David Turnerdab24542005-11-02 09:24:00 +00002782
Werner Lembergcee37a32005-11-12 07:34:40 +00002783 * builds/unix/unix-cc.in (EXPORTS_LIST, CCexe),
2784 builds/win32/w32-bcc.mk, builds/win32/w32-gcc.mk,
2785 builds/win32/w32-icc.mk, builds/win32/w32-icc.mk,
2786 builds/win32/w32-mingw32.mk, builds/win32/w32-vcc,
2787 builds/win32/w32-wat.mk (EXPORTS_LIST, EXPORT_OPTIONS,
2788 APINAMES_OPTIONS): New targets for controlling the `apinames' tool.
2789
2790 * Jamfile (GenExportSymbols): Updated.
2791
2792
2793 * src/pfr/pfrtypes.h, src/pfr/pfrload.c, src/pfr/pfrobjs.c
2794 [!FT_OPTIMIZE_MEMORY]: Fold memory optimization code into
2795 FT_OPTIMIZE_MEMORY chunks for better maintainability and simplicity.
2796
2797
2798 * src/base/fttrigon.c (ft_trig_prenorm), src/base/ftcalc.c
2799 (FT_MulFix): Performance optimizations.
2800
2801
2802 * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
2803 FT_GLYPHLOADER_CHECK_C, FT_GLYPHLOADER_CHECK_POINTS): New macros for
2804 checking points and contours. Update callers to use
2805 FT_GLYPHLOADER_CHECK_POINTS instead of FT_GlyphLoader_CheckPoints
2806 at profile-detected hot-spots.
2807
2808 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Set `adjust'
2809 to 0 to not call `AdjustPoints' every time.
2810
David Turnerdab24542005-11-02 09:24:00 +00002811
Werner Lembergb2d02532005-11-04 06:58:49 +00002812 * src/autofit/aftypes.h (AF_ANGLE_DIFF): New macro to inline
2813 FT_Angle_Diff.
David Turnerdab24542005-11-02 09:24:00 +00002814
Werner Lembergcee37a32005-11-12 07:34:40 +00002815 * src/autofit/afhints.c (af_direction_compute): Re-implement.
2816 (af_glyph_hints_compute_inflections, af_glyph_hints_reload): Use
Werner Lembergb2d02532005-11-04 06:58:49 +00002817 AF_ANGLE_DIFF to speed up the detection of inflexions.
David Turnerdab24542005-11-02 09:24:00 +00002818
Werner Lembergcee37a32005-11-12 07:34:40 +00002819
2820 * src/tools/apinames.c: Include <string.h>.
2821 (OutputFormat): New enumeration.
2822 (names_dump): Add two parameters to control output format and DLL
2823 name.
2824 (names_dump_windef): Removed. Code folded into `names_dump'.
2825 (read_header_file): Use isalnum, not isalpha. Otherwise function
2826 names with digits aren't read correctly.
2827 (usage): Updated.
2828 (main): New option `-o' to control output file name.
2829 New option `-d' to indicate DLL file name.
2830 Extend `-w' flag to handle Borland and Watcom compilers and linkers.
2831
Suzuki, Toshiya (鈴木俊哉)45115762005-10-28 15:39:58 +000028322005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2833
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00002834 * builds/mac/ftlib.prj, builds/mac/freetype.mak: Removed.
2835 ftlib.prj is unmaintained and incompatible with current tree.
2836 freetype.mak is unrecoverably broken.
2837
2838 * builds/mac/ftlib.prj.xml: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00002839 Generated by Metrowerks CodeWarrior 9.0.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00002840
2841 * builds/mac/FreeType.m68k_far.make.txt,
2842 builds/mac/FreeType.m68k_cfm.make.txt,
2843 builds/mac/FreeType.ppc_classic.make.txt,
2844 builds/mac/FreeType.ppc_carbon.make.txt: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00002845 Skeleton files of MPW makefiles.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00002846
2847 * builds/mac/ascii2mpw.py: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00002848 Python script to make MPW makefile from skeleton.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00002849
2850 * builds/mac/README: Updated.
2851 Almost rewritten to use new files.
2852
28532005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2854
Werner Lemberg05cda082006-01-08 13:37:15 +00002855 * src/base/ftmac.c: Fix invalid casts from NULL to integer typed
2856 variables. Advised by David Turner, Masatake YAMATO, Sean McBride,
Suzuki, Toshiya (鈴木俊哉)45115762005-10-28 15:39:58 +00002857 and George Williams.
2858
Werner Lemberg4b5661c2005-10-27 21:28:35 +000028592005-10-27 Werner Lemberg <wl@gnu.org>
2860
2861 * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed.
2862 Obsolete.
2863
Werner Lemberg43b057b2005-10-26 18:37:40 +000028642005-10-25 Werner Lemberg <wl@gnu.org>
2865
2866 * src/sfnt/sfdriver.c (sfnt_interface): Move out
2867 `tt_face_get_kerning' from a #ifdef clause. Reported by Tony J.
2868 Ibbs <tibs@sj.co.uk>.
2869
Werner Lemberg6c0e7342005-10-23 19:31:01 +000028702005-10-23 Werner Lemberg <wl@gnu.org>
2871
2872 * src/base/ftdbgmem.c (ft_mem_debug_realloc): Make it compile with
2873 C++.
2874
David Turner398d64c2005-10-21 10:01:25 +000028752005-10-21 David Turner <david@freetype.org>
2876
Werner Lemberg90968f72005-10-22 10:34:45 +00002877 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_debug_realloc):
2878 Another realloc memory counting bug fix.
David Turner398d64c2005-10-21 10:01:25 +00002879
Werner Lemberg90968f72005-10-22 10:34:45 +00002880 * src/tools/Jamfile: Add missing file.
David Turner398d64c2005-10-21 10:01:25 +00002881
Werner Lemberg90968f72005-10-22 10:34:45 +00002882 * src/lzw/Jamfile: Fix incorrect source file reference.
David Turner398d64c2005-10-21 10:01:25 +00002883
David Turnerc1b6d082005-10-20 15:33:34 +000028842005-10-20 David Turner <david@freetype.org>
2885
Werner Lemberg560d5fe2005-10-21 09:08:28 +00002886 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_table_remove,
2887 ft_mem_debug_alloc, ft_mem_debug_free, ft_mem_debug_realloc): Fixes
2888 to better account for memory reallocations.
David Turnerc1b6d082005-10-20 15:33:34 +00002889
Werner Lemberg560d5fe2005-10-21 09:08:28 +00002890 * src/lzw/ftlzw2.c, src/lzw/ftzopen.h, src/lzw/ftzopen.c,
David Turner398d64c2005-10-21 10:01:25 +00002891 src/lzw/rules.mk: First version of LZW loader re-implementation.
2892 Apparently, this saves about 330 KB of heap memory when loading
Werner Lemberg560d5fe2005-10-21 09:08:28 +00002893 timR24.pcf.Z.
David Turnerc1b6d082005-10-20 15:33:34 +00002894
Wu, Chia-I (吳佳一)7e307762005-10-20 02:13:46 +000028952005-10-20 Chia-I Wu <b90201047@ntu.edu.tw>
2896
2897 * include/freetype/ftbitmap.h (FT_Bitmap_Copy, FT_Bitmap_Embolden),
2898 src/base/ftbdf.c (FT_Get_BDF_Property), src/cache/ftcmru.c
Werner Lemberg560d5fe2005-10-21 09:08:28 +00002899 (FTC_MruList_Reset, FTC_MruList_Done, FTC_MruList_Lookup): Fix
2900 FT_EXPORT/FT_EXPORT_DEF tagging.
Wu, Chia-I (吳佳一)7e307762005-10-20 02:13:46 +00002901
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +000029022005-10-19 Chia-I Wu <b90201047@ntu.edu.tw>
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002903
Werner Lemberg560d5fe2005-10-21 09:08:28 +00002904 * src/truetype/ttgload.c (TT_Load_Glyph): Allow size->ttmetrics to
2905 be invalid when FT_LOAD_NO_SCALE is set.
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +00002906
29072005-10-17 David Turner <david@freetype.org>
2908
2909 * src/base/ftobjs.c (FT_Open_Face): Don't call FT_New_GlyphSlot and
2910 FT_New_Size if we are opening a face with face_index < 0 (which is
2911 only used for testing the format).
2912
2913 * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate):
2914 Remove compiler warning.
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002915
29162005-10-16 David Turner <david@freetype.org>
2917
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +00002918 * src/tools/apinames.c: Add new tool to extract public API function
2919 names from header files.
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002920
29212005-10-05 Werner Lemberg <wl@gnu.org>
2922
2923 Add FT_FACE_FLAG_HINTER to indicate that a specific font driver has
2924 a hinting engine of its own.
2925
2926 * include/freetype/freetype.h (FT_FACE_FLAG_HINTER): New macro.
2927
2928 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
2929 (cid_face_init), src/truetype/ttobjs.c (tt_face_init)
2930 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER], src/type1/t1objs.c
2931 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init)
2932 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Update face flags.
2933
2934 * docs/CHANGES: Document it.
2935
29362005-09-27 Werner Lemberg <wl@gnu.org>
2937
2938 * builds/unix/freetype2.m4: Add license exception so that the file
2939 can be used in any other autoconf script.
2940
29412005-09-26 David Turner <david@freetype.org>
2942
2943 * src/autofit/aflatin.c (af_latin_compute_stem_width): Fix bad
2944 computation of the `vertical' flag, causing ugly things in LCD mode
2945 and others.
2946
29472005-09-23 David Turner <david@freetype.org>
2948
2949 * src/autofit/aflatin.c (af_latin_hints_init): Fix a bug that
2950 prevented internal hint mode bitflags from being computed correctly.
2951
2952 * src/base/Jamfile: Adding src/base/ftgxval.c.
2953
2954 * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
2955 src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c, src/gxvalid/gxvkern.c,
2956 src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
2957 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
2958 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
2959 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmorx.c,
2960 src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
2961 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx5.c,
2962 src/gxvalid/gxvopbd.c, src/gxvalid/gxvprop.c,
2963 src/truetype/ttgload.c: Remove _many_ compiler warnings when
2964 compiling with Visual C++ at maximum level (/W4).
2965
2966 * src/autofit/afangles.c (af_angle_atan): Replaced CORDIC-based
2967 implementation with one using lookup tables. This simple thing
2968 speeds up glyph loading by 18%, according to ftbench!
2969
2970 * src/sfnt/sfdriver.c (sfnt_get_interface): Don't check for
2971 `get_sfnt' and `load_sfnt' module interfaces.
2972
29732005-09-22 Werner Lemberg <wl@gnu.org>
2974
2975 * docs/CHANGES: Mention SING Glyphlet support.
2976
29772005-09-22 David Turner <david@freetype.org>
2978
2979 * src/base/Jamfile: Disable compilation of ftgxval module
2980 temporarily.
2981
29822005-09-19 David Somers <dsomers@omz13.com>
2983
2984 * freetype2/src/sfnt/ttload.c (sfnt_dir_check): Modified to allow a
2985 font to have no `head' table if tables `SING' and `META' are
2986 present; this is to support `SING Glyphlet'.
2987
2988 `SING Glyphlet' is an extension to OpenType developed by Adobe
2989 primarily to facilitate adding supplemental glyphs to an OpenType
2990 font (with emphasis on, but not necessariy limited to, gaiji to a
2991 CJK font). A SING Glyphlet Font is an OpenType font that contains
2992 the outline(s), either in a `glyf' or `CFF' table, for a glyph;
2993 `cmap', `BASE', and `GSUB' tables are present with the same format
2994 and functionaliy as a regular OpenType font; there are no `name',
2995 `head', `OS/2', and `post' tables; there are two new tables, `SING'
2996 which contains details about the glyphlet, and `META' which contains
2997 metadata.
2998
2999 Further information on the SING Glyphlet format can be found at:
3000
3001 http://www.adobe.com/products/indesign/sing_gaiji.html
3002
3003 * freetype2/include/freetype/ttags.h (TTAG_SING, TTAG_META): New
3004 macros for the OpenType tables `SING' and `META'. These two tables
3005 are used in SING Glyphlet Format fonts.
3006
30072005-09-09 Werner Lemberg <wl@gnu.org>
3008
3009 * src/sfnt/sfobjs.c (sfnt_load_face): Reactivate code to set
3010 FT_FACE_FLAG_KERNING which has been commented out erroneously.
3011
3012 * docs/CHANGES: Document it.
3013
30142005-09-05 Werner Lemberg <wl@gnu.org>
3015
3016 Fixes for `make multi' and using C++ compiler.
3017
3018 * gxvalid/gxvcommn.c (gxv_set_length_by_ushort_offset,
3019 gxv_set_length_by_ulong_offset, gxv_array_getlimits_byte,
3020 gxv_array_getlimits_ushort): Declare with FT_LOCAL_DEF.
3021 (gxv_compare_ranges): Make it static.
3022 (gxv_LookupTable_fmt0_validate, gxv_LookupTable_fmt2_validate,
3023 gxv_LookupTable_fmt4_validate, gxv_LookupTable_fmt6_validate,
3024 gxv_LookupTable_fmt8_validate, gxv_LookupTable_validate): Improve
3025 trace messages.
3026 (gxv_StateArray_validate, gxv_XStateArray_validate): s/class/clazz/.
3027 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
3028 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Move to
3029 gxvcommn.h.
3030
3031 * gxvalid/gxvcommn.h: Add prototypes for
3032 gxv_StateTable_subtable_setup, gxv_XStateTable_subtable_setup,
3033 gxv_XStateTable_validate, gxv_array_getlimits_byte,
3034 gxv_array_getlimits_ushort, gxv_set_length_by_ushort_offset,
3035 gxv_set_length_by_ulong_offset, gxv_odtect_add_range,
3036 gxv_odtect_validate.
3037 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
3038 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Moved from
3039 gxvcommn.c.
3040
3041 * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
3042 gxv_bsln_parts_fmt1_validate): Improve trace messages.
3043
3044 * gxvalid/gxvfeat.c: Split off predefined registry stuff to...
3045 * gxvalid/gxvfeat.h: New file.
3046
3047 * gxvalid/gxvjust.c (gxv_just_wdc_entry_validate): Improve trace
3048 message.
3049
3050 * gxvalid/gxvkern.c (GXV_kern_Dialect): Add KERN_DIALECT_UNKNOWN.
3051 (gxv_kern_subtable_fmt1_valueTable_load,
3052 gxv_kern_subtable_fmt1_subtable_setup,
3053 gxv_kern_subtable_fmt1_entry_validate): Fix C++ compiler errors.
3054 (gxv_kern_coverage_validate): Use KERN_DIALECT_UNKWOWN.
3055 Improve trace message.
3056 (gxv_kern_validate_generic): Fix C++ compiler error.
3057 Improve trace message.
3058 (gxv_kern_validate_classic): Fix C++ compiler error.
3059
3060 * gxvalid/gxvmort0.c (gxv_mort_subtable_type0_validate): Declare
3061 with FT_LOCAL_DEF.
3062
3063 * gxvalid/gxvmort1.c
3064 (gxv_mort_subtable_type1_substitutionTable_load,
3065 gxv_mort_subtable_type1_subtable_setup): Fix C++ compiler errors.
3066 (gxv_mort_subtable_type1_substTable_validate): Improve trace
3067 message.
3068 (gxv_mort_subtable_type1_validate): Declare with FT_LOCAL_DEF.
3069
3070 * gxvalid/gxvmort2.c (gxv_mort_subtable_type2_opttable_load,
3071 gxv_mort_subtable_type2_subtable_setup,
3072 gxv_mort_subtable_type2_ligActionOffset_validate,
3073 gxv_mort_subtable_type2_ligatureTable_validate): Fix C++ compiler
3074 errors.
3075 (gxv_mort_subtable_type2_validate): Declare with FT_LOCAL_DEF.
3076
3077 * gxvalid/gxvmort4.c (gxv_mort_subtable_type4_validate): Declare
3078 with FT_LOCAL_DEF.
3079
3080 * gxvalid/gxvmort5.c (gxv_mort_subtable_type5_subtable_setup,
3081 gxv_mort_subtable_type5_InsertList_validate): Fix C++ compiler
3082 errors.
3083 (gxv_mort_subtable_type5_validate): Declare with FT_LOCAL_DEF.
3084
3085 * gxvalid/gxvmort.c: Include gxvfeat.h.
3086 (gxv_mort_featurearray_validate, gxv_mort_coverage_validate):
3087 Declare with FT_LOCAL_DEF.
3088 (gxv_mort_subtables_validate, gxv_mort_validate): Improve trace
3089 messages.
3090
3091 * gxvalid/gxvmort.h (gxv_mort_feature_validate): Remove.
3092
3093 * gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_validate): Declare
3094 with FT_LOCAL_DEF.
3095
3096 * gxvalid/gxvmorx1.c
3097 (gxv_morx_subtable_type1_substitutionTable_load,
3098 gxv_morx_subtable_type1_subtable_setup,
3099 gxv_morx_subtable_type1_entry_validate,
3100 gxv_morx_subtable_type1_substitutionTable_validate): Fix C++
3101 compiler errors.
3102 (gxv_morx_subtable_type1_validate): Declare with FT_LOCAL_DEF.
3103
3104 * gxvalid/gxvmorx2.c (gxv_morx_subtable_type2_opttable_load,
3105 gxv_morx_subtable_type2_subtable_setup,
3106 gxv_morx_subtable_type2_ligActionIndex_validate,
3107 gxv_morx_subtable_type2_ligatureTable_validate): Fix C++ compiler
3108 errors.
3109 (gxv_morx_subtable_type2_validate): Declare with FT_LOCAL_DEF.
3110 Fix typo.
3111
3112 * gxvalid/gxvmorx4.c (gxv_morx_subtable_type4_validate): Declare
3113 with FT_LOCAL_DEF.
3114
3115 * gxvalid/gxvmorx5.c (gxv_morx_subtable_type5_insertionGlyph_load,
3116 gxv_morx_subtable_type5_subtable_setup): Fix C++ compiler error.
3117 (gxv_morx_subtable_type5_validate): Declare with FT_LOCAL_DEF.
3118
3119 * gxvalid/gxvmorx.c (gxv_morx_subtables_validate,
3120 gxv_morx_validate): Improve trace message.
3121
3122 * gxvalid/gxvopbd.c (gxv_opbd_LookupFmt4_transit): Fix compiler
3123 warnings.
3124 (gxv_opbd_validate): Improve trace message.
3125
3126 * gxvalid/gxvprop.c: Decorate constants with `U' and `L' where
3127 appropriate.
3128 (gxv_prop_zero_advance_validate, gxv_prop_validate): Improve trace
3129 message.
3130
3131 * gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): Remove unused
3132 parameter. Update all callers.
3133 (gxv_trak_validate): Improve trace message.
3134
3135 * rules.mk (GXV_DRV_H): Add gxvfeat.h.
3136
31372005-09-01 Werner Lemberg <wl@gnu.org>
3138
3139 * src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'.
3140
3141 * src/gxvalid/gxmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE),
3142 src/gxvalid/gxmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix
3143 typo.
3144
3145 * src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
3146 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx4.c,
3147 src/gxvalid/gxvmorx5.c, src/gxvalid/gxvmort.c: Improve trace
3148 messages.
3149 Decorate constants with `U' and `L' where appropriate.
3150 Fix compiler warnings.
3151
31522005-08-31 Werner Lemberg <wl@gnu.org>
3153
3154 * src/truetype/ttgload.c (load_truetype_glyph): Fix typo.
3155
3156 * src/gxvalid/gxvbsln.c (gxv_bsln_validate): Fix trace message.
3157
3158 * src/gxvalid/gxvcommn.c (gxv_odtect_add_range): Use `const'.
3159
3160 * src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c,
3161 src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmod.c,
3162 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
3163 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
3164 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmort.c: Improve trace
3165 messages.
3166 Decorate constants with `U' and `L' where appropriate.
3167 Fix compiler warnings.
3168
31692005-08-30 Werner Lemberg <wl@gnu.org>
3170
3171 * src/gxvalid/README: Revised.
3172 * src/gxvalid/gxvbsln.c: Fix compiler warnings.
3173 * src/gxvalid/gxvcommn.c: Fix compiler warnings.
3174 (gxv_XEntryTable_validate, gxv_compare_ranges): Remove unused
3175 parameter. Update all callers.
3176 Improve trace messages.
3177 Some formatting.
3178
31792005-08-29 Werner Lemberg <wl@gnu.org>
3180
3181 * include/freetype/freetype.h, include/freetype/ftchapters.h: Add
3182 a preliminary section with some explanations about user allocation.
3183
3184 * src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
3185 Don't abort if there are no data types, functions, etc., in a
3186 section.
3187 Print synopsis only if we have a data type, function, etc.
3188
3189 * docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
3190 docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
3191 docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
3192
31932005-08-28 George Williams <gww@silcom.com>
3194
3195 * src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed.
3196 (load_truetype_glyph): Limit recursion depth by `maxComponentDepth'.
3197
31982005-08-25 J. Ali Harlow <ali@avrc.city.ac.uk>
3199
3200 * builds/unix/freetype2.in (CFlags): Add missing directory.
3201
32022005-08-24 Werner Lemberg <wl@gnu.org>
3203
3204 * docs/CHANGES: Mention gxvalid module.
3205
32062005-08-23 Werner Lemberg <wl@gnu.org>
3207
3208 * src/autofit/aflatin.c (af_latin_metrics_scale): Initialize
3209 render mode properly. Reported by chris@dokein.co.uk.
3210
Werner Lemberg6be99f92006-02-09 07:38:57 +000032112005-08-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003212
3213 Add gxvalid module to validate TrueType GX/AAT tables.
3214
3215 Modifications on existing files:
3216
3217 * Jamfile: Register gxvalid module.
3218 * src/base/Jamfile: Register ftgxval.c.
3219 * src/base/rule.mk: Register ftgxval.c.
3220 * docs/INSTALL.ANY: Register gxvalid/gxvalid.c.
3221
3222 * include/freetype/config/ftheader.h (FT_GX_VALIDATE_H): New macro
3223 to include gxvalid header file.
3224 * include/freetype/config/ftmodule.h: Register gxv_module_class.
3225
3226 * include/freetype/ftchapters.h: Add comment about gx_validation.
3227 * include/freetype/ftotval.h: Change keyword FT_VALIDATE_XXX
3228 to FT_VALIDATE_OTXXX to co-exist with gxvalid.
3229 * include/freetype/tttags.h: Add tags for TrueType GX/AAT tables.
3230
3231 * include/freetype/internal/ftserv.h (FT_SERVICE_GX_VALIDATE_H): New
3232 macro for gxvalid service.
3233 * include/freetype/internal/fttrace.h: Add trace facilities for
3234 gxvalid.
3235
3236 New files on existing directories:
3237
3238 * include/freetype/internal/services/svgxval.h: Registration of
3239 validation service for TrueType GX/AAT and classic kern table.
3240 * include/freetype/ftgxval.h: Public API definition to use gxvalid.
3241 * src/base/ftgxval.c: Public API of gxvalid.
3242
3243 New files under src/gxvalid/:
3244
3245 * src/gxvalid/Jamfile src/gxvalid/README src/gxvalid/module.mk
3246 src/gxvalid/rules.mk src/gxvalid/gxvalid.c src/gxvalid/gxvalid.h
3247 src/gxvalid/gxvbsln.c src/gxvalid/gxvcommn.c src/gxvalid/gxvcommn.h
3248 src/gxvalid/gxverror.h src/gxvalid/gxvfeat.c src/gxvalid/gxvfgen.c
3249 src/gxvalid/gxvjust.c src/gxvalid/gxvkern.c src/gxvalid/gxvlcar.c
3250 src/gxvalid/gxvmod.c src/gxvalid/gxvmod.h src/gxvalid/gxvmort.c
3251 src/gxvalid/gxvmort.h src/gxvalid/gxvmort0.c src/gxvalid/gxvmort1.c
3252 src/gxvalid/gxvmort2.c src/gxvalid/gxvmort4.c src/gxvalid/gxvmort5.c
3253 src/gxvalid/gxvmorx.c src/gxvalid/gxvmorx.h src/gxvalid/gxvmorx0.c
3254 src/gxvalid/gxvmorx1.c src/gxvalid/gxvmorx2.c src/gxvalid/gxvmorx4.c
3255 src/gxvalid/gxvmorx5.c src/gxvalid/gxvopbd.c src/gxvalid/gxvprop.c
3256 src/gxvalid/gxvtrak.c: New files, gxvalid body.
3257
32582005-08-21 Werner Lemberg <wl@gnu.org>
3259
3260 * src/truetype/ttgload.c (TT_Load_Glyph): Only translate outline
3261 to (0,0) if bit 1 of the `head' table isn't set. This improves
3262 rendering of buggy fonts.
3263
32642005-08-20 Chia I Wu <b90201047@ntu.edu.tw>
3265
3266 * src/truetype/ttdriver.c (Load_Glyph): Don't check the validity of
3267 ttmetrics here. TrueType fonts with only sbits always have
3268 ttmetrics.valid set to false.
3269
3270 * src/truetype/ttgload.c (TT_Load_Glyph): Check that ttmetrics is
3271 valid before loading outline glyph.
3272
3273 * src/cache/ftcimage.c (FTC_INode_New): Fix a memory leak.
3274
32752005-08-20 Werner Lemberg <wl@gnu.org>
3276
3277 * src/sfnt/ttload.c (tt_face_load_metrics_header): Ignore missing
3278 `hhea' table for SFNT Mac fonts. Change based on a patch by
3279 mpsuzuki@hiroshima-u.ac.jp.
3280
32812005-08-20 Masatake YAMATO <jet@gyve.org>
3282
3283 * src/otvalid/otvmod.c (otv_validate): Use ft_validator_run instead
3284 of ft_setjmp.
3285
32862005-08-19 Werner Lemberg <wl@gnu.org>
3287
3288 * src/truetype/ttgload.c (load_truetype_glyph): Fix compiler
3289 warnings.
3290
32912005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
3292
3293 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright
3294 messages.
3295
32962005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
3297
3298 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Remove original
3299 TT_Done_Context and rename TT_Destroy_Context to TT_Done_Context
3300 with slight changes.
3301 Update all callers.
3302 (TT_New_Context): Now takes TT_Driver argument directly.
3303 Update all callers.
3304
3305 * src/truetype/ttobjs.h (tt_slot_init): New function.
3306 * src/truetype/ttobjs.c (tt_driver_init): Initialize execution
3307 context here.
3308 (tt_slot_init): New function to create extra points for the internal
3309 glyph loader. We then use it directly, instead of face's glyph
3310 loader, when loading glyph.
3311
3312 * src/truetype/ttdriver.c (tt_driver_class): Use tt_slot_init for
3313 glyph slot initialization.
3314 (Load_Glyph): Load flag dependencies are handled here. Return error
3315 if size is NULL.
3316
3317 * src/truetype/ttgload.c: Heavy cleanup and refactoring.
3318 (org_to_cur): Removed.
3319 (TT_Load_Simple_Glyph): Call FT_GlyphLoader_CheckPoints.
3320 (TT_Hint_Glyph): New funcion to hint a zone, prepared by caller.
3321 (TT_Process_Simple_Glyph): s/load/loader/.
3322 Use loader->pp values instead of recalculation.
3323 Use TT_Hint_Glyph.
3324 No need to save/restore loader->stream before and after
3325 TT_Vary_Get_Glyph_Deltas now.
3326 (TT_LOADER_SET_PP): New macro to calculate and set the four phantom
3327 points.
3328 (load_truetype_glyph): Never set exec->glyphSize to 0. This closes
3329 Savannah bug #13107.
3330 Forget glyph frame before calling TT_Process_Simple_Glyph.
3331 Use TT_LOADER_SET_PP.
3332 Scale all four phantom points.
3333 Split off some functionality to ...
3334 (TT_Process_Composite_Component, TT_Process_Composite_Glyph): These
3335 new functions.
3336 (TT_Load_Glyph): Set various fields of `glyph' here, not in
3337 load_truetype_glyph and compute_glyph_metrics.
3338 Split off some functionality to ...
3339 (load_sbit_image, tt_loader_init): These new functions.
3340 (compute_glyph_metrics): Call FT_Outline_Get_CBox.
3341
33422005-08-08 Werner Lemberg <wl@gnu.org>
3343
3344 * docs/INSTALL.ANY: Updated.
3345
33462005-08-05 Werner Lemberg <wl@gnu.org>
3347
3348 * src/cff/cffgload.c (cff_builder_close_contour),
3349 src/psaux/psobjs.c (t1_builder_close_contour): Protect against
3350 zero `outline' pointer.
3351
3352 * src/base/ftgloadr.c (FT_GlyphLoader_Add): Protect against zero
3353 `loader' address.
3354
33552005-08-03 Werner Lemberg <wl@gnu.org>
3356
3357 * src/sfnt/sfdriver.c (sfnt_interface) [FT_OPTIMIZE_MEMORY]:
3358 Reactivate pointers to tt_find_sbit_image and tt_load_sbit_metrics
3359 to make X work again.
3360
33612005-08-02 Werner Lemberg <wl@gnu.org>
3362
3363 * src/otvalid/otvcommn.h: Remove dead code.
3364
33652005-07-31 Chia I Wu <b90201047@ntu.edu.tw>
3366
3367 * src/truetype/ttobjs.h (tt_size_run_fpgm, tt_size_run_prep): New
3368 functions.
3369
3370 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): New
3371 functions.
3372 (tt_size_init): Add 4, instead of 2, (phantom) points to twilight
3373 zone.
3374 Move code that runs fpgm to tt_size_run_fpgm.
3375 (Reset_Outline_Size): Move code that runs prep to tt_size_run_prep.
3376 (tt_glyphzone_new): Allocate right size of arrays.
3377 Set max_points and max_contours properly.
3378
33792005-07-26 Chia I Wu <b90201047@ntu.edu.tw>
3380
3381 * src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary
3382 computations and clean up.
3383
3384 * src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the
3385 internal copy of metrics.
3386
33872005-07-12 Werner Lemberg <wl@gnu.org>
3388
3389 * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix prototype.
3390 Reported by Xerxes.
3391
33922005-07-04 Werner Lemberg <wl@gnu.org>
3393
3394 * include/freetype/internal/ftmemory.h (FT_REALLOC_ARRAY): Fix typo.
3395 Reported by Brett Hutley.
3396
33972005-06-30 David Turner <david@freetype.org>
3398
3399 * src/sfnt/ftbitmap.c, src/truetype/ttgload.c, src/sfnt/ttcmap.c:
3400 Removing compiler warnings (Visual C++ /W4).
3401
3402
3403 Implement a work-around for broken C preprocessor in Visual C++ (it
3404 has been confirmed by the MS developers that it is indeed a bug
3405 which won't be fixed in the very near future).
3406
3407 * Jamfile (FT2_COMPONENTS): Include otvalid (again).
3408
3409 * src/otvalid/otvcommn.h (OTV_NAME, OTV_FUNC): New macros.
3410 (OTV_NEST1, OTV_NEST2, OTV_NEST3): Use OTV_NAME and OTV_FUNC to
3411 avoid argument expansion by argument prescan.
3412 Append `Func' to all affected macros and change them to take just a
3413 single argument. Example: `AttachList' is renamed to
3414 `AttachListFunc'.
3415
3416 * src/otvalid/otvgdef.c, src/otvalid/otvgpos.c,
3417 src/otvalid/otvgsub.c, src/otvjstf.c: Append `Func' to macros
3418 affected by the changes to OTV_NESTx and modify them to take just a
3419 single argument.
3420
34212005-06-20 Chia I Wu <b90201047@ntu.edu.tw>
3422
3423 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: New function
3424 ft_glyphslot_grid_fit_metrics.
3425
3426 * src/truetype/ttgload.c (compute_glyph_metrics): Use
3427 ft_glyphslot_grid_fit_metrics.
3428
3429 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
3430 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Use
3431 ft_glyphslot_grid_fit_metrics.
3432 FT_Outline_Get_CBox is called twice.
3433
3434 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Modify metrics to more
3435 reasonable values when emboldening outline glyphs. The theoretic
3436 ones are unrealistic.
3437
34382005-06-16 Chia I Wu <b90201047@ntu.edu.tw>
3439
3440 * src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
3441 halved.
3442
3443 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
3444 strength.
3445 Don't increase slot->advance.y.
3446
34472005-06-16 Werner Lemberg <wl@gnu.org>
3448
3449 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
3450 (FREETYPE_PATCH): Set to 0.
3451
3452 * builds/unix/configure.ac (version_info): Set to 9:9:3.
3453 Currently, we are still binary compatible.
3454
3455 * builds/win32/visualc/index.html,
3456 builds/win32/visualc/freetype.dsp,
3457 builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
3458
3459 * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
3460 s/2.1.9/2.1.10/.
3461
3462 * docs/CHANGES, docs/VERSION.DLL: Updated.
3463
3464 * ChangeLog: Split off older entries into...
3465 * ChangeLog.20, ChangeLog.21: These new files.
3466
34672005-06-15 Kirill Smelkov <kirr@mns.spb.ru>
3468
3469 The next release will be 2.2.0, so don't worry about source code
3470 backwards compatibility.
3471
3472 * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
3473 FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
3474 FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
3475 include/freetype/ftrender.h (FT_Glyph_TransformFunc,
3476 FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
3477 parameters with `const' where appropriate.
3478
34792005-06-15 Chia I Wu <b90201047@ntu.edu.tw>
3480
3481 * src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
3482 to make glyphs centered vertically.
3483
3484 * src/truetype/ttgload.c (compute_glyph_metrics): Compute
3485 vertBearingY to make glyphs centered vertically.
3486 Fix some bugs in vertical metrics:
3487
3488 . loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
3489 units.
3490 . As we use the glyph's cbox to calculate the top bearing now
3491 there iss no need to adjust `top'.
3492
34932005-06-15 Werner Lemberg <wl@gnu.org>
3494
3495 * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
3496 in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake.
3497
34982005-06-13 Werner Lemberg <wl@gnu.org>
3499
3500 * docs/release: Update.
3501
3502----------------------------------------------------------------------------
3503
Werner Lemberg435046b2006-01-11 10:57:42 +00003504Copyright 2005, 2006 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003505David Turner, Robert Wilhelm, and Werner Lemberg.
3506
3507This file is part of the FreeType project, and may only be used, modified,
3508and distributed under the terms of the FreeType project license,
3509LICENSE.TXT. By continuing to use, modify, or distribute this file you
3510indicate that you have read the license and understand and accept it
3511fully.
3512
3513
3514Local Variables:
3515version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00003516coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003517End: