blob: ea53ece2b52a9a3697832546ed9a9a504c592ecb [file] [log] [blame]
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000012006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2
3 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for
4 Intel Mac. The original patch was written by David Sachitano
5 and Lawrence Coopet, modified by Sean McBride for MPW
6 compatibility. Only required data are converted, unused data
7 are left in big endian.
8
9 * src/base/ftmac.c:
10 Undefine existing OS_INLINE before definition.
11 Include <Endian.h> for byteorder macros for non Mac OS X
12 platforms.
13 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header
14 of FontAssociation table in FOND resource.
15 (count_faces_scalable): Insert EndianS16_BtoN to parse the
16 header and fontSize at each entry of FontAssociation table
17 in FOND resource.
18 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to
19 parse ffStylOff of FamilyRecord header of FOND resource,
20 the header, fontSize, fontID at each entry of FontAssociation
21 table, and StyleMapping table.
22 (count_faces): HUnlock is suspended after all FOND utilization.
23
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +0000242006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
25
Werner Lemberg67d2f3a2006-06-16 06:50:36 +000026 Public API of TrueTypeGX, OpenType, and classic kern table validator
27 should return `FT_Err_Unimplemented_Feature' if validation service
28 is unavailable (disabled in `modules.cfg'). It is originally
29 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000030 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
31
Werner Lemberg67d2f3a2006-06-16 06:50:36 +000032 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
33 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
34 unavailable.
35 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
36 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000037
Werner Lemberg67d2f3a2006-06-16 06:50:36 +000038 * src/base/ftotval.c (FT_OpenType_Validate): Return
39 FT_Err_Unimplemented_Feature if OpenType validation service is
40 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000041
Werner Lembergb10e45a2006-06-08 07:32:56 +0000422006-06-08 Werner Lemberg <wl@gnu.org>
43
44 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
45 errors.
46
David Turner5f1f7502006-06-07 05:11:50 +0000472006-06-07 David Turner <david@freetype.org>
48
Werner Lemberg7d48cb02006-06-08 06:00:08 +000049 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
50 (T1_Read_Metrics): Fix memory leak which happened when the metrics
51 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +000052
David Turner457b4a82006-06-06 08:14:14 +0000532006-06-06 David Turner <david@freetype.org>
54
Werner Lemberg4836f952006-06-06 12:54:08 +000055 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +000056
Werner Lemberg4836f952006-06-06 12:54:08 +000057 We change `ps_unicodes_init' so that it also takes a
58 `free_glyph_name' callback to release the glyph names returned by
59 `get_glyph_name'
60
61 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
62 Renamed to ...
63 (PS_GetGlyphNameFunc): This.
64 (PS_FreeGlyphNameFunc): New typedef.
65 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
66
67 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
68 argument.
69 (cff_sid_free_glyph_name): New function.
70 (cff_cmap_unicode_init): Updated.
71
72 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
73
74 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
75 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +000076
77
David Turner09717352006-06-04 14:33:08 +0000782006-06-04 David Turner <david@freetype.org>
79
Werner Lembergd724f202006-06-04 15:17:41 +000080 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
81 `item_size == 0' as well -- though this sounds weird, it can
82 theorically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +000083
Werner Lembergd724f202006-06-04 15:17:41 +000084 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
85 of `face->num_glyphs' which missed the last glyph, due to
86 the offset-by-1 computation, since the PFR format doesn't
87 guarantee that glyph index 0 corresponds to the `missing
88 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +000089
Werner Lemberg33779662006-05-26 06:30:05 +0000902006-05-25 Werner Lemberg <wl@gnu.org>
91
92 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
93 `-no-undefined'. Reported by Christian Biesinger.
94
Werner Lemberg24773d62006-05-20 08:53:13 +0000952006-05-19 Brian Weed <bw@imaginengine.com>
96
97 * builds/win32/visualc/freetype.dsp: Release libraries no longer
98 have debug information, and debug libraries use `C7 compatible'
99 debug info.
100
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001012006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
102
Werner Lemberga6523a62006-05-20 08:47:01 +0000103 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +0000104 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +0000105
Werner Lemberga6523a62006-05-20 08:47:01 +0000106 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
107 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +0000108
109 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +0000110 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +0000111
1122006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
113
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +0000114 * build/unix/configure.raw: Add a fallback to disable Carbon
115 dependency, if configured with no options on Mac OS X.
116
1172006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
118
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +0000119 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +0000120 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +0000121 the second part of Savannah bug #16590.
122
Werner Lemberg545c4e52006-05-17 22:55:04 +00001232006-05-18 Werner Lemberg <wl@gnu.org>
124
125 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
126 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
127
David Turnerdc3ff312006-05-17 12:59:35 +00001282006-05-17 David Turner <david@freetype.org>
129
Werner Lemberg545c4e52006-05-17 22:55:04 +0000130 This is a major patch used to drastically improve the performance of
131 loading glyphs. This both speeds up loading the glyph vectors
132 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +0000133
Werner Lemberg545c4e52006-05-17 22:55:04 +0000134 We now use inline assembler code with GCC to implement `FT_MulFix',
135 which is probably the most important function related to the
136 engine's performance.
David Turner281679d2006-05-17 13:34:21 +0000137
Werner Lemberg545c4e52006-05-17 22:55:04 +0000138 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +0000139
140
Werner Lemberg545c4e52006-05-17 22:55:04 +0000141 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
142 `cursor' and `limit'.
143
144 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
145 New functions.
146 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
147 [TEST]: Remove.
148
149 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
150 code.
151
152 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
153 `FT_ZERO'
154 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
155 (af_glyph_hints_reload: Rewrite recognition of weak points.
156
157 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
158 constant values out of the loops.
159
160 * src/autofit/aftypes.h: Updated.
161
162 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
163
164 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
165 product to get orientation.
166
167 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
168 (FT_Stream_OpenGzip): Use it to handle small files directly in
169 memory.
170
171 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
172 Improve performance.
173
174 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
175 `limit'.
176
177 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
178 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
179 exceedingly large values of number of contours. Speed up by
180 reducing the number of loops.
181
182 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
183
184
185 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
186 used to detect rogue clients from 4 to 16. This is to prevent some
187 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
188 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +0000189
Werner Lembergde2d90a2006-05-17 08:54:30 +00001902007-05-17 Werner Lemberg <wl@gnu.org>
191
192 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +0000193 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +0000194
1952006-05-16 Werner Lemberg <wl@gnu.org>
196
197 * docs/PROBLEMS: Updated icl issues.
198
Werner Lemberg6756dc12006-05-12 08:00:13 +00001992006-05-12 Werner Lemberg <wl@gnu.org>
200
Werner Lemberg8ab412d2006-05-12 15:09:02 +0000201
202 * Version 2.2.1 released.
Werner Lembergde2d90a2006-05-17 08:54:30 +0000203 =========================
Werner Lemberg8ab412d2006-05-12 15:09:02 +0000204
205
206 Tag sources with `VER-2-2-1'.
207
2082006-05-12 Werner Lemberg <wl@gnu.org>
209
Werner Lemberg6756dc12006-05-12 08:00:13 +0000210 * src/tools/docmaker/sources.py (re_source_keywords): Add word
211 boundary markers.
212 * src/tools/docmaker/content.py (re_field): Allow `.' in field names
213 (but not at the beginning or end).
Werner Lemberge12a4712006-05-12 14:20:43 +0000214 * src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset.
Werner Lemberg6e467a62006-05-12 15:05:45 +0000215 (block_footer): Split into...
216 (block_footer_start, block_footer_middle, block_footer_end): This to
217 add navigation buttons.
218 (HtmlFormatter::block_exit): Updated.
Werner Lemberg6756dc12006-05-12 08:00:13 +0000219
220 * include/freetype/*: Many minor documentation improvements (adding
221 links, spelling errors, etc.).
222
Werner Lembergfd74ec62006-05-12 04:00:44 +00002232006-05-11 Werner Lemberg <wl@gnu.org>
224
225 * README: Minor updates.
226
227 * include/freetype/*: s/scale/scaling value/ where appropriate.
228 Many other minor documentation improvements.
229
230 * src/tools/docmaker/sources.py (re_italic, re_bold): Handle
231 trailing punctuation.
232 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Add
233 warning message for undefined cross references.
234 Update handling of re_italic and re_bold.
235
Yamato, Masatake (大和正武)28b55a92006-05-11 03:01:42 +00002362006-05-11 Masatake YAMATO <jet@gyve.org>
David Turner281679d2006-05-17 13:34:21 +0000237
238 * builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if
Yamato, Masatake (大和正武)28b55a92006-05-11 03:01:42 +0000239 read system call returns -1.
240 Remove a redundant parenthesis.
241
Werner Lembergb80d85f2006-05-10 04:47:35 +00002422006-05-10 Werner Lemberg <wl@gnu.org>
243
244 * builds/unix/ftsystem.c (FT_Stream_Open): Avoid infinite loop if
245 given an empty, un-mmap()able file. Reported and suggested fix in
246 Savannah bug #16555.
247
Werner Lemberge0d15592006-05-10 13:44:47 +0000248 * builds/freetype.mk (refdoc): Write-protect the `docmaker'
249 directory to suppress generation of .pyc files. According to the
250 Python docs there isn't a more elegant solution (currently).
251
252 * builds/toplevel.mk (dist): New target which builds .tar.gz,
253 .tar.bz2, and .zip files. Note that the version number is still
254 hard-coded.
255 (do-dist): Sub-target of `dist'.
256 (CONFIG_GUESS, CONFIG_SUB): New variables.
257 (.PHONY): Updated.
258
Werner Lemberga127ca42006-05-09 13:41:50 +00002592006-05-09 Rajeev Pahuja <rpahuja@esri.com>
260
261 * builds/win32/visualc/freetype.sln,
262 builds/win32/visualc/freetype.vcproj: Upgraded to VS.NET 2005 from
263 VS.NET 2003
264 Added files ftbbox.c, fttype1.c, ftwinfnt.c, ftsynth.c.
265
266 * builds/win32/visualc/index.html: Updated.
267
Werner Lemberg4df5b262006-05-08 07:10:29 +00002682006-05-07 Werner Lemberg <wl@gnu.org>
269
270 Put version information into the configure script. Reported by Paul
271 Watson <pwatson@redlinepy.com>.
272
273 * builds/unix/configure.ac: Renamed to...
274 * builds/unix/configure.raw: This which now serves (with appropriate
275 modifications) as a template for configure.ac.
276
277 * version.sed: New script.
278
279 * autogen.sh: Generate configure.ac from configure.raw, using
280 FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h.
281
Werner Lemberg1639c792006-05-06 16:44:58 +00002822006-05-06 Werner Lemberg <wl@gnu.org>
283
284 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
285
286 * builds/unix/configure.ac (version_info): Set to 9:10:3.
287
288 * builds/win32/visualc/index.html,
289 builds/win32/visualc/freetype.dsp,
290 builds/win32/visualc/freetype.vcproj, builds/freetype.mk (refdoc),
291 Jamfile (RefDoc), README: s/220/221/, s/2.2.0/2.2.1/.
292 Minor updates.
293
294 * docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS:
295 Updated.
296
297 * builds/unix/install-sh: Updated from `texinfo' CVS module at
Werner Lemberg4836f952006-06-06 12:54:08 +0000298 savannah.gnu.org.
Werner Lemberg1639c792006-05-06 16:44:58 +0000299
300 * devel/ftoption.h: Synchronize with
301 include/freetype/config/ftoption.h.
302
Werner Lemberg4f3b5bb2006-05-04 07:13:05 +00003032006-05-04 Werner Lemberg <wl@gnu.org>
304
305 * src/lzw/ftlzw2.c: Renamed to...
306 * src/lzw/ftlzw.c: This.
307
308 * src/lzw/Jamfile, src/lzw/rules.mk: Updated.
309
310 * builds/mac/FreeType.m68k_cfm.make.txt,
311 builds/mac/FreeType.m68k_far.make.txt,
312 builds/mac/FreeType.ppc_carbon.make.txt,
313 builds/mac/FreeType.ppc_classic.make.txt: Updated.
314
David Turner679a2522006-05-03 09:40:33 +00003152006-05-03 David Turner <david@freetype.org>
316
Werner Lemberga94746c2006-05-03 20:39:55 +0000317 Allow compilation again with C++ compilers.
318
319 * include/freetype/internal/ftmemory.h (FT_ASSIGNP,
320 FT_ASSIGNP_INNER): New macros which do the actual assignment, and
321 which exist in two variants (for C and C++).
322 Update callers accordingly.
David Turner679a2522006-05-03 09:40:33 +0000323
Werner Lemberg58eed042006-05-02 22:26:09 +00003242006-05-03 Werner Lemberg <wl@gnu.org>
325
326 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed.
327
Werner Lembergc6afa122006-05-02 22:22:16 +00003282006-05-02 Werner Lemberg <wl@gnu.org>
329
330 * include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++).
331 (FT_ALLOC): Remove redundant redefinition.
332
333 * builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use
334 `-Wstrict-prototypes'.
335
336 * src/base/ftstream.c (FT_Stream_EnterFrame): Add cast.
337
Werner Lemberg58eed042006-05-02 22:26:09 +0000338 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]:
339 Remove `extern'.
Werner Lemberg94204892006-05-02 22:24:06 +0000340
David Turner264f3072006-05-02 06:34:27 +00003412006-05-02 David Turner <david@freetype.org>
342
Werner Lembergc6afa122006-05-02 22:22:16 +0000343 Update the memory management functions and macros to safely deal
344 with array size buffer overflows. This corresponds to attemps to
345 allocate arrays that are too large. For an example, consider the
346 following code:
David Turner264f3072006-05-02 06:34:27 +0000347
Werner Lembergc6afa122006-05-02 22:22:16 +0000348 count = read_uint32_from_file(); array = malloc( sizeof ( Item ) *
349 count ); for ( nn = 0; nn < count; nn++ )
350 array[nn] = read_item_from_file();
David Turner264f3072006-05-02 06:34:27 +0000351
Werner Lembergc6afa122006-05-02 22:22:16 +0000352 If `count' is larger than `FT_UINT_MAX/sizeof(Item)', the
353 multiplication overflows, and the array allocated os smaller than
354 the data read from the file. In this case, the heap will be
355 trashed, and this can be used as a denial-of-service attack, or make
356 the engine crash later.
David Turner264f3072006-05-02 06:34:27 +0000357
Werner Lembergc6afa122006-05-02 22:22:16 +0000358 The FT_ARRAY_NEW and FT_ARRAY_RENEW macros now ensure that the new
359 count is no larger than `FT_INT_MAX/item_size', otherwise a new
360 error code `FT_Err_Array_Too_Large' will be returned.
David Turner264f3072006-05-02 06:34:27 +0000361
Werner Lembergc6afa122006-05-02 22:22:16 +0000362 Note that the memory debugger now works again when FT_DEBUG_MEMORY
363 is defined. FT_STRICT_ALIASING has disappeared; the corresponding
364 code is now the default.
David Turner264f3072006-05-02 06:34:27 +0000365
David Turner9ca78252006-05-02 09:00:29 +0000366
Werner Lembergc6afa122006-05-02 22:22:16 +0000367 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]:
368 Don't use `extern'.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +0000369
Werner Lembergc6afa122006-05-02 22:22:16 +0000370 * include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error
371 code.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +0000372
Werner Lembergc6afa122006-05-02 22:22:16 +0000373 * include/freetype/internal/ftmemory.h (FT_DEBUG_INNER)
374 [FT_DEBUG_MEMORY]: New macro.
375 (ft_mem_realloc, ft_mem_qrealloc): Pass new object size count also.
376 (ft_mem_alloc_debug, ft_mem_qalloc_debug, ft_mem_realloc_debug,
377 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
378 (FT_MEM_ALLOC, FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC,
379 FT_MEM_FREE): Redefine.
380 (FT_MEM_NEW_ARRAY, FT_MEM_RENEW_ARRAY, FT_MEM_QNEW_ARRAY,
381 FT_MEM_QRENEW_ARRAY): Redefine.
382 (FT_ALLOC_MULT, FT_REALLOC_MULT, FT_MEM_QALLOC_MULT,
383 FT_MEM_QREALLOC_MULT): New macros. Update callers where
384 appropriate.
385 (FT_MEM_SET_ERROR): Slightly redefine.
386
387
388 * src/base/ftdbgmem.c (_ft_debug_file, _ft_debug_lineno)
389 [FT_DEBUG_MEMORY]: New global variables, replacing...
390 (FT_MemTable_Rec) [FT_DEBUG_MEMORY]: Remove `filename' and
391 `line_no'. Update all callers.
392 (ft_mem_debug_alloc) [FT_DEBUG_MEMORY]: Avoid possible integer
393 overflow.
394 (ft_mem_alloc_debug, ft_mem_realloc_debug, ft_mem_qalloc_debug,
395 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
396
397 * src/base/ftmac.c (read_lwfn): Catch integer overflow.
398 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus): Ditto.
399 * src/base/ftutil.c: Remove special code for FT_STRICT_ALIASING.
400 (ft_mem_alloc. ft_mem_realloc, ft_mem_qrealloc): Rewrite.
401
Werner Lemberg4f3b5bb2006-05-04 07:13:05 +0000402
403 * include/freetype/ftstream.h (FT_FRAME_ENTER, FT_FRAME_EXIT,
404 FT_FRAME_EXTRACT, FT_FRAME_RELEASE): Use FT_DEBUG_INNER to report the
405 place where the frames were entered, extracted, exited or released
406 in the memory debugger.
407
408 * src/base/ftstream.c (FT_Stream_ReleaseFrame) [FT_DEBUG_MEMORY]:
409 Call ft_mem_free.
410 (FT_Stream_EnterFrame) [FT_DEBUG_MEMORY]: Use ft_mem_qalloc.
411 (FT_Stream_ExitFrame) [FT_DEBUG_MEMORY]: Use ft_mem_free.
412
Werner Lembergc6afa122006-05-02 22:22:16 +00004132006-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
414
415 * src/base/ftobjs.c (Mac_Read_POST_Resource): Correct pfb_pos
416 initialization, remove extra cast to copy to pfb_lenpos. This fixes
417 parsing of PFB fonts with MacOS resource fork (bug introduced
418 2003-09-11). Patch provided by Huib-Jan Imbens <ft@imbens.nl>.
Suzuki, Toshiya (鈴木俊哉)a2295402006-04-30 04:46:17 +0000419
Werner Lemberg8fe65392006-04-29 07:31:16 +00004202006-04-29 Werner Lemberg <wl@gnu.org>
421
422 Further C library abstraction. Based on a patch from
423 msn2@bidyut.com.
424
425 * include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE,
426 ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc,
427 ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for
428 C library functions. Update all users accordingly (and catch some
429 other places where the C library function was used instead of the
430 wrapper functions).
431
432 * src/base/ftsystem.c: Don't include stdio.h and stdlib.h.
433 * src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't
434 include malloc.h.
435
Werner Lemberg06fceb32006-04-29 07:53:40 +0000436
437 * builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c
438 and forthcoming versions.
439
Werner Lemberg50ef72b2006-04-29 07:02:36 +00004402006-04-28 Werner Lemberg <wl@gnu.org>
441
442 * src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed,
443 obsolete.
444
Werner Lemberg12cceaa2006-04-27 05:02:35 +00004452006-04-27 yi luo <luoyi.ly@gmail.com>
446
447 * builds/win32/visualc/freetype.vcproj: Updated.
448
David Turner3b47dd62006-04-26 19:34:24 +00004492006-04-26 David Turner <david@freetype.org>
450
Werner Lemberg12cceaa2006-04-27 05:02:35 +0000451
452 * Version 2.2 released.
Werner Lembergc6afa122006-05-02 22:22:16 +0000453 =======================
Werner Lemberg12cceaa2006-04-27 05:02:35 +0000454
455
456 Tag sources with `VER-2-2-0'.
David Turner3b47dd62006-04-26 19:34:24 +0000457
Werner Lemberg564b4432006-04-26 15:02:52 +00004582006-04-26 Werner Lemberg <wl@gnu.org>
459
460 * src/psaux/psobjs.c (shift_elements): Don't use FT_Long but
Werner Lemberg4e03fe72006-04-29 06:20:09 +0000461 FT_PtrDiff for `delta'. Reported by Céline PILLET
Werner Lemberg564b4432006-04-26 15:02:52 +0000462 <Celine.Pillet@Tagginfo.com>.
463
David Turner8e438ea2006-04-21 08:35:11 +00004642006-04-21 David Turner <david@freetype.org>
465
Werner Lemberg8a8c6022006-04-22 12:24:52 +0000466 * include/freetype/ftincrem.h: Documentation updates.
467 (FT_Incremental_Interface): New typedef.
David Turner8e438ea2006-04-21 08:35:11 +0000468
Werner Lemberg8a8c6022006-04-22 12:24:52 +0000469 * include/freetype/ftmodapi.h, include/freetype/ftglyph.h:
470 Documentation updates.
471
472 * include/freetype/freetype.h: Documentation update.
473 (FT_HAS_FAST_GLYPHS): Always set to 0.
474
475 * include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New):
476 Take an FT_Library argument instead of FT_Memory.
477
478 * src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2).
David Turner7aa20102006-04-21 08:38:35 +0000479
David Turner65c7c772006-04-13 07:51:58 +00004802006-04-13 David Turner <david@freetype.org>
481
Werner Lemberg8a8c6022006-04-22 12:24:52 +0000482 * src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove
483 superfluous code in the auto-fitter's loader.
David Turner65c7c772006-04-13 07:51:58 +0000484
Werner Lemberg4e03fe72006-04-29 06:20:09 +00004852006-04-05 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner7d043222006-04-05 07:17:12 +0000486
487 * builds/amiga/makefile, builds/amiga/makefile.os4,
488 builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define.
489
Werner Lemberg7f18de62006-04-03 16:47:34 +00004902006-04-03 luoyi <luoyi.ly@gmail.com>
491
492 * builds/compiler/intelc.mk (TE): New variable.
493 (ANSIFLAGS): Updated.
494
Werner Lembergfd7456c2006-04-03 15:46:48 +00004952006-04-03 Werner Lemberg <wl@gnu.org>
496
497 * builds/exports.mk (clean_symbols_list, clean_apinames): Removed.
498 (CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE).
499 (.PHONY): Updated.
500
501 * configure.ac: Minor fixes to improve --help output.
502
Werner Lemberg764b2512006-04-03 16:42:39 +0000503
504 * docs/PROBLEMS: New file.
505
Werner Lemberg40917862006-04-01 18:49:07 +00005062006-04-01 David Turner <david@freetype.org>
David Turner0f15e1c2006-04-01 16:11:53 +0000507
Werner Lemberg40917862006-04-01 18:49:07 +0000508 * docs/CHANGES: Updated.
David Turnercf603712006-04-01 16:22:06 +0000509
Werner Lemberg40917862006-04-01 18:49:07 +0000510 * include/freetype/ftcache.h, include/freetype/config/ftheader.h:
511 Update documentation comments.
David Turner0f15e1c2006-04-01 16:11:53 +0000512
Werner Lemberg6e9df682006-04-01 05:22:07 +00005132006-04-01 Werner Lemberg <wl@gnu.org>
514
515 * builds/unix/install.mk (uninstall): Don't handle `cache'
516 directory which no longer exists.
517
Werner Lemberg4e03fe72006-04-29 06:20:09 +00005182006-03-29 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würknerd51b41e2006-03-29 06:35:26 +0000519
Werner Lemberg6e9df682006-04-01 05:22:07 +0000520 * src/psaux/psconv.c: Changed some variables which are expected to
521 hold negative values from `char' to `FT_Char' to allow building with
522 a compiler where `char' is unsigned by default.
Detlef Würknerd51b41e2006-03-29 06:35:26 +0000523
David Turner42137bc2006-03-27 20:10:26 +00005242006-03-27 David Turner <david@freetype.org>
525
Werner Lembergfa3651e2006-03-28 05:06:50 +0000526 * src/sfnt/ttkern.c (tt_face_get_kerning): Fix a serious bug that
527 causes some programs to go into an infinite loop when dealing with
528 fonts that don't have a properly sorted kerning sub-table.
David Turner42137bc2006-03-27 20:10:26 +0000529
Werner Lemberg26170df2006-03-26 07:19:07 +00005302006-03-26 Werner Lemberg <wl@gnu.org>
531
532 * src/bdf/bdflib.c (ERRMSG4): New macro.
533 (_bdf_parse_glyphs): Handle invalid BBX values.
534
535 * include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error
536 macro.
537
Werner Lemberg4db32ec2006-03-24 11:54:53 +00005382006-03-23 Werner Lemberg <wl@gnu.org>
539
540 * docs/CHANGES: Updated.
541
Werner Lembergd6e24982006-03-24 18:31:47 +0000542
Werner Lemberg4db32ec2006-03-24 11:54:53 +0000543 * src/tools/docmaker/tohtml.py (html_header_2): Add horizontal
544 padding between table elements.
Werner Lemberge0dd18f2006-03-24 12:14:48 +0000545 (html_header_1): The `DOCTYPE' comment must be in uppercase.
Werner Lembergd6e24982006-03-24 18:31:47 +0000546 (make_html_para): Convert `...' quotations into real left and
547 right single quotes.
548 Use `para_header' and `para_footer'.
549
550 * src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'"
551 also.
Werner Lemberg4db32ec2006-03-24 11:54:53 +0000552
David Turner2ce92032006-03-23 20:58:20 +00005532006-03-23 David Turner <david@freetype.org>
554
Werner Lemberg4db32ec2006-03-24 11:54:53 +0000555 Add FT_Get_SubGlyph_Info API to retrieve subglyph data. Note that
Werner Lembergc6afa122006-05-02 22:22:16 +0000556 we do not expose the FT_SubGlyphRec structure.
David Turner2ce92032006-03-23 20:58:20 +0000557
Werner Lemberg4db32ec2006-03-24 11:54:53 +0000558 * include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved
559 to...
560 * include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here.
561 (FT_Get_SybGlyph_Info): New declaration.
562
563 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function.
564
565
566 * src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and
Werner Lembergc6afa122006-05-02 22:22:16 +0000567 rsb_delta correctly in edge cases.
David Turner2ce92032006-03-23 20:58:20 +0000568
Werner Lemberg3867d2f2006-03-22 08:03:06 +00005692006-03-22 Werner Lemberg <wl@gnu.org>
570
Werner Lemberg6c5b6172006-03-22 15:30:41 +0000571 * src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup)
572 [!FTC_INLINE]: Compile conditionally.
573 * src/cache/ftccache.h: Updated.
574
575 * src/cache/ftcglyph.c (FTC_GNode_Init, FTC_GNode_UnselectFamily,
576 FTC_GNode_Done, FTC_GNode_Compare, FTC_Family_Init, FTC_GCache_New):
577 s/FT_EXPORT/FT_LOCAL/.
578 (FTC_GCache_Init, FTC_GCache_Done): Commented out.
579 (FTC_GCache_Lookup) [!FTC_INLINE]: Compile conditionally.
580 s/FT_EXPORT/FT_LOCAL/.
581 * src/cache/ftcglyph.h: Updated.
582
583 * src/cache/ftcimage.c (FTC_INode_Free, FTC_INode_New):
584 s/FT_EXPORT/FT_LOCAL/.
585 (FTC_INode_Weight): Commented out.
586 * src/cache/ftcimage.h: Updated.
587
588 * src/cache/ftmanag.c (FTC_Manager_Compress,
589 FTC_Manager_RegisterCache, FTC_Manager_FlushN):
590 s/FT_EXPORT/FT_LOCAL/.
591 * src/cache/ftmanag.h: Updated.
592
593 * src/cache/ftcsbits.c (FTC_SNode_Free, FTC_SNode_New,
594 FTC_SNode_Compare): s/FT_EXPORT/FT_LOCAL/.
595 (FTC_SNode_Weight): Commented out.
596 * src/cache/ftcsbits.h: Updated.
597
5982006-03-22 Werner Lemberg <wl@gnu.org>
599
Werner Lemberg3867d2f2006-03-22 08:03:06 +0000600 * src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy):
601 Remove, unused.
602
603 * src/cache/ftccmap.h: Remove, unused.
604
605 * src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h.
606
Werner Lemberg5556dd22006-03-21 21:36:33 +00006072006-03-21 Zhe Su <james.su@gmail.com>
608
609 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve
610 algorithm.
611
Werner Lemberg26377002006-03-21 18:41:40 +00006122006-03-21 Werner Lemberg <wl@gnu.org>
613
614 * src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member.
615
616 * src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'.
617
618 * src/cff/cffgload.c (cff_slot_load): Change type of third parameter
619 to `FT_UInt'.
620 Check range of `glyph_index'.
621 * src/cff/cffgload.h: Updated.
622
Werner Lemberg8439fe82006-03-21 21:04:33 +0000623
Werner Lemberg95f206b2006-03-21 20:47:28 +0000624 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset
625 correctly.
626
Werner Lemberg8439fe82006-03-21 21:04:33 +0000627
628 * builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc),
629 README: s/2.1.10/2.2/.
630
Werner Lemberg26377002006-03-21 18:41:40 +00006312006-03-21 David Turner <david@freetype.org>
David Turner24b9e872006-03-21 16:30:04 +0000632
Werner Lemberga62007f2006-03-21 17:41:40 +0000633 * src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug
634 that crashes the auto-hinter (introduced by previous patch).
David Turner24b9e872006-03-21 16:30:04 +0000635
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00006362006-03-20 Werner Lemberg <wl@gnu.org>
David Turnerdad2a2d2006-03-20 11:48:13 +0000637
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000638 * builds/freetype.mk (CACHE_DIR, CACHE_H): Remove.
639 (FREETYPE_H): Updated.
David Turnere091ce32006-03-20 16:01:28 +0000640
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000641 * src/cache/rules.mk (CACHE_H_DIR): Remove.
642 (CACHE_DRV_H): Updated.
David Turnerda95af62006-03-20 13:32:33 +0000643
Werner Lemberg5a73d8d2006-03-20 16:55:32 +00006442006-03-20 David Turner <david@freetype.org>
David Turnerda95af62006-03-20 13:32:33 +0000645
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000646 * include/freetype/cache/ftccache.h,
647 include/freetype/cache/ftccmap.h, include/freetype/cache/ftcglyph.h
648 include/freetype/cache/ftcimage.h include/freetype/cache/ftcmanag.h
649 include/freetype/cache/ftcmru.h include/freetype/cache/ftcsbits.h:
650 Move to...
David Turner505667c2006-03-20 12:13:14 +0000651
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000652 * src/cache/ftccache.h, src/cache/ftcglyph.h, src/cache/ftcimage.h,
653 src/cache/ftcsbits.h, src/cache/ftcmanag.h, src/cache/ftccmap.h,
654 src/cache/ftcmru.h: This new location.
655 Update declarations according to the changes in the corresponding
656 source files.
David Turner256de4b2006-03-20 12:10:24 +0000657
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000658 Note that these files are not used by FreeType clients; all public
659 APIs of the cache module have been already moved to
660 `include/freetype/ftcache.h', and all FT_CACHE_INTERNAL_XXXX_H
661 macros resolve to it.
David Turner256de4b2006-03-20 12:10:24 +0000662
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000663 Reason for the move is to allow modifications of the internals
664 without interferences with rogue clients. Note that there are no
665 known clients that access the cache internals at the moment.
David Turner256de4b2006-03-20 12:10:24 +0000666
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000667 * builds/unix/install.mk (install): Don't install headers from
668 $(CACHE_H).
669 Remove `freetype/cache' from the target directory.
David Turnerdad2a2d2006-03-20 11:48:13 +0000670
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000671 * include/freetype/config/ftheader.h (FT_CACHE_MANAGER_H,
672 FT_CACHE_INTERNAL_MRU_H, FT_CACHE_INTERNAL_MANAGER_H,
673 FT_CACHE_INTERNAL_CACHE_H, FT_CACHE_INTERNAL_GLYPH_H,
674 FT_CACHE_INTERNAL_IMAGE_H, FT_CACHE_INTERNAL_SBITS_H): Point to
675 FT_CACHE_H.
David Turnerdad2a2d2006-03-20 11:48:13 +0000676
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000677 * src/cache/ftcbasic.c, src/cache/ftccache.h, src/cache/ftccback.h,
678 src/cache/ftccmap.c, src/cache/ftcglyph.c, src/cache/ftcglyph.h,
679 src/cache/ftcimage.c, src/cache/ftcimage.h, src/cache/ftcmanag.c,
680 src/cache/ftcmanag.h, src/cache/ftcmru.h, src/cache/ftcsbits.c,
681 src/cache/ftcsbits.h: Don't use the FT_CACHE_INTERNAL_XXX_H macros
682 but include the headers directly (which are now in `src/cache').
David Turnerdad2a2d2006-03-20 11:48:13 +0000683
Werner Lemberg5a73d8d2006-03-20 16:55:32 +0000684 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
685 macros but include the headers directly.
686 (FTC_Cache_Init, FTC_Cache_Done, FTC_Cache_NewNode,
687 FTC_Cache_Lookup, FTC_Cache_RemoveFaceID): Declare as FT_LOCAL_DEF.
688
689 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
690 macros but include the headers directly.
691 (FTC_MruNode_Prepend, FTC_MruNode_Up, FTC_MruNode_Remove,
692 FTC_MruList_Init, FTC_MruList_Reset, FTC_MruList_Done,
693 FTC_MruList_New, FTC_MruList_Remove, FTC_MruList_RemoveSelection):
694 Declare as FT_LOCAL_DEF.
695 (FTC_MruListFind, FTC_MruList_Lookup) [!FTC_INLINE]: Compile
696 conditionally.
697 Declare as FT_LOCAL_DEF.
698
699
700 * builds/win32/visualc/freetype.dsp: Update project file, add
701 missing base source files (ftstroke.c, ftxf86.c, etc.).
702
703
704 * src/autofit/afcjk.c, src/autofit/aflatin.c, src/base/ftobjs.c,
705 src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrobjs.c,
706 src/sfnt/sfobjs.c, src/sfnt/ttmtx.c, src/type1/t1afm.c,
707 src/type1/t1objs.c: Remove compiler warnings when building with
708 Visual C++ 6 and /W4.
709
710 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
711 hinting for italic/oblique fonts.
712
713
714
715 * src/truetype/ttpload.c, src/truetype/ttpload.h
716 (tt_face_get_device_metrics): Change second argument to `FT_UInt'.
717
7182006-03-06 David Turner <david@freetype.org>
David Turner65b96aa2006-03-07 00:38:24 +0000719
Werner Lemberge6a8fca2006-03-07 23:53:55 +0000720 * src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in
721 Mozilla/FireFox print preview in Ubuntu Hoary.
David Turner65b96aa2006-03-07 00:38:24 +0000722
Wu, Chia-I (吳佳一)a87b08a2006-02-28 09:53:23 +00007232006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
724
Wu, Chia-I (吳佳一)9f5d3de2006-02-28 13:21:50 +0000725 * src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not
726 return error when size == 0.
727
7282006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
729
Werner Lemberge88d24c2006-02-28 21:49:54 +0000730 * src/base/ftobjs.c (FT_Done_Library): Remove modules in reverse
731 order so that type42 module is removed before truetype module. This
732 avoids double free in some occasions.
Wu, Chia-I (吳佳一)a87b08a2006-02-28 09:53:23 +0000733
Werner Lembergc6afa122006-05-02 22:22:16 +00007342006-02-28 David Turner <david@freetype.org>
David Turnere9a47192006-02-28 09:26:58 +0000735
Werner Lemberge88d24c2006-02-28 21:49:54 +0000736 * Release candidate VER-2-2-0-RC4.
737 ----------------------------------
David Turnere9a47192006-02-28 09:26:58 +0000738
Werner Lemberge88d24c2006-02-28 21:49:54 +0000739 * docs/CHANGES: Documentation updates.
David Turnere9a47192006-02-28 09:26:58 +0000740
Suzuki, Toshiya (鈴木俊哉)576c3532006-02-28 01:11:57 +00007412006-02-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
742
Werner Lemberge88d24c2006-02-28 21:49:54 +0000743 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
744 build ftvalid in ft2demos. It works as dummy ABI if gxvalid is not
745 built.
Suzuki, Toshiya (鈴木俊哉)576c3532006-02-28 01:11:57 +0000746
Werner Lembergc07ee522006-02-27 18:13:12 +00007472006-02-27 Werner Lemberg <wl@gnu.org>
748
749 * include/freetype/cache/ftccache.h
750 [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of
751 ftc_node_done.
752
Werner Lemberg98d6a3a2006-02-27 19:49:34 +0000753 * src/cache/ftccache.c (ftc_node_destroy)
754 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Mark as FT_LOCAL_DEF. This
755 should now fix all possible compilation options.
756
David Turnerc13e75f2006-02-27 13:14:42 +00007572006-02-27 David Turner <david@freetype.org>
758
Werner Lemberg422d2a02006-02-27 18:25:22 +0000759 * src/base/ftutil.c (ft_mem_alloc, ft_mem_qalloc, ft_mem_realloc,
760 ft_mem_qrealloc): Return an error if a negative size is passed in
761 parameters.
David Turnerc13e75f2006-02-27 13:14:42 +0000762
Werner Lemberg98d6a3a2006-02-27 19:49:34 +0000763 * src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since
764 it needs to be exported for rogue clients.
David Turner65b96aa2006-03-07 00:38:24 +0000765
Werner Lemberg422d2a02006-02-27 18:25:22 +0000766 * src/pshinter/pshglob.c (psh_blues_set_zones_0): Prevent problems
767 with malformed fonts which have an odd number of blue values (these
768 are broken according to the specs).
David Turnerc13e75f2006-02-27 13:14:42 +0000769
Werner Lemberg422d2a02006-02-27 18:25:22 +0000770 * src/cff/cffload.c (cff_subfont_load), src/type1/t1load.c
771 (T1_Open_Face): Modify the loaders to force even-ness of
772 `num_blue_values'.
773
774 (cff_index_access_element): Ignore invalid entries in index files.
David Turnerc13e75f2006-02-27 13:14:42 +0000775
Wu, Chia-I (吳佳一)cffa8b62006-02-27 11:11:40 +00007762006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
777
Werner Lemberg98d6a3a2006-02-27 19:49:34 +0000778 * src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width
779 or height is 0.
Wu, Chia-I (吳佳一)cffa8b62006-02-27 11:11:40 +0000780
Suzuki, Toshiya (鈴木俊哉)2f239b82006-02-27 10:34:33 +00007812006-02-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
782
783 * builds/mac/FreeType.m68k_cfm.make.txt,
784 builds/mac/FreeType.m68k_far.make.txt,
785 builds/mac/FreeType.ppc_carbon.make.txt,
Werner Lemberg98d6a3a2006-02-27 19:49:34 +0000786 builds/mac/FreeType.ppc_classic.make.txt: Update to new header
787 inclusion introduced on 2006-02-16.
Suzuki, Toshiya (鈴木俊哉)2f239b82006-02-27 10:34:33 +0000788
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +00007892006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
790
Werner Lemberg422d2a02006-02-27 18:25:22 +0000791 * src/base/ftobjs.c (GRID_FIT_METRICS): New macro.
792 (ft_glyphslot_grid_fit_metrics, FT_Load_Glyph) [GRID_FIT_METRICS]:
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +0000793 Re-enable glyph metrics grid-fitting. It is now done in the base
794 layer.
Werner Lembergc07ee522006-02-27 18:13:12 +0000795 (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Make sure the width and
796 height are not too small or too large, just like we were doing in
797 2.1.10.
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +0000798
Werner Lembergc07ee522006-02-27 18:13:12 +0000799 * src/autofit/afloader.c (af_loader_load_g): The vertical metrics
800 are not scaled.
Wu, Chia-I (吳佳一)2e48a1a2006-02-27 09:18:07 +0000801
Werner Lembergf99d8462006-02-26 17:50:59 +00008022006-02-26 Werner Lemberg <wl@gnu.org>
803
804 * docs/release: Minor additions and clarifications.
805
806 * docs/CHANGES: Updated to reflect many fixes for backwards
807 compatibility. Still incomplete.
808
David Turnerb4636652006-02-26 07:57:45 +00008092006-02-26 David Turner <david@freetype.org>
810
Werner Lemberg0aaf4292006-02-26 17:30:15 +0000811 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Re-enable
812 conservative rounding of metrics to avoid breaking clients like
813 Pango (see http://bugzilla.gnome.org/show_bug.cgi?id=327852).
David Turnerb4636652006-02-26 07:57:45 +0000814
Werner Lemberg20a8d0c2006-02-25 16:56:04 +00008152006-02-25 Werner Lemberg <wl@gnu.org>
816
817 * devel/ftoption.h: Synchronize with
818 include/freetype/config/ftoption.h.
819
Werner Lembergae1e4b12006-02-25 17:11:04 +0000820 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again).
821
David Turner6c71c6b2006-02-25 12:49:40 +00008222006-02-25 David Turner <david@freetype.org>
823
Werner Lemberg7f049f42006-02-25 16:52:16 +0000824 Fix compiler warnings as well as C++ compilation problems.
825 Add missing prototypes.
David Turner6c71c6b2006-02-25 12:49:40 +0000826
Werner Lemberg7f049f42006-02-25 16:52:16 +0000827 * src/autofit/afcjk.c, src/base/ftobjs.c, src/base/ftutil.c,
828 src/bdf/bdfdrivr.c, src/cff/cffcmap.c, src/cff/cffobjs.c,
829 src/psaux/afmparse.c,, src/psaux/t1cmap.c, src/smooth/ftgrays.c
830 src/tools/apinames.c, src/truetype/ttdriver.c: Add various casts,
831 initialize variables, and decorate functions with FT_CALLBACK_DEF,
832 etc., to fix compiler warnings (and C++ compiling errors).
David Turner6c71c6b2006-02-25 12:49:40 +0000833
Werner Lemberg7f049f42006-02-25 16:52:16 +0000834 * src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with
835 gcc.
David Turnerde271ab2006-02-25 14:53:02 +0000836
Werner Lemberg7f049f42006-02-25 16:52:16 +0000837 * builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but
838 FT_INTERNAL_STREAM_H.
David Turnerde271ab2006-02-25 14:53:02 +0000839
Werner Lemberg7f049f42006-02-25 16:52:16 +0000840 * src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H.
David Turnerde271ab2006-02-25 14:53:02 +0000841
Werner Lemberg7f049f42006-02-25 16:52:16 +0000842 * include/freetype/config/ftheader.h (FT_PFR_H): New macro.
843
844 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't
845 define for C++.
846
847 * include/freetype/internal/services/svotval.h: Don't include
848 FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H.
849
850 * include/freetype/internal/services/svpfr.h: Include FT_PFR_H.
851
852 * src/gzip/ftgzip.c: Include FT_GZIP_H.
853
854 * src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H.
855
856 * src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code.
David Turner6c71c6b2006-02-25 12:49:40 +0000857
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +00008582006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
859
Wu, Chia-I (吳佳一)88242072006-02-24 11:53:21 +0000860 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
861 ft_contour_enclosed, ft_outline_get_orientation): Commented out. We
David Turner6c71c6b2006-02-25 12:49:40 +0000862 have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized.
Wu, Chia-I (吳佳一)88242072006-02-24 11:53:21 +0000863 (FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'.
864
8652006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
866
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +0000867 * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update
868 documentation.
869
870 * include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap),
871 src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make
Werner Lembergd7e6b762006-02-25 06:24:28 +0000872 sure a glyph slot owns its bitmap. It is also marked experimental
873 and due to change.
874 (FT_GlyphSlot_Embolden): Undo the last change. It turns out that
875 rendering the outline confuses some applications.
Wu, Chia-I (吳佳一)03264612006-02-24 11:18:40 +0000876
David Turnerca7d76f2006-02-24 09:09:10 +00008772006-02-24 David Turner <david@freetype.org>
878
Werner Lembergd7e6b762006-02-25 06:24:28 +0000879 * Release candidate VER-2-2-0-RC3.
880 ----------------------------------
David Turner478c5912006-02-24 09:56:23 +0000881
Werner Lembergd7e6b762006-02-25 06:24:28 +0000882 * src/cache/ftcbasic.c: Correct compatibility hack bug.
David Turnerca7d76f2006-02-24 09:09:10 +0000883
Wu, Chia-I (吳佳一)a8e7a012006-02-24 06:11:30 +00008842006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
885
Werner Lembergd7e6b762006-02-25 06:24:28 +0000886 * include/freetype/freetype.h (FT_Size_RequestRec): Change the type
887 of `width' and `height' to `FT_Long'.
Wu, Chia-I (吳佳一)a8e7a012006-02-24 06:11:30 +0000888 (enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics):
889 New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales
890 directly.
891
David Turner6cda6c02006-02-23 12:37:18 +00008922006-02-23 David Turner <david@freetype.org>
893
Werner Lembergd7e6b762006-02-25 06:24:28 +0000894 Two BDF patches from Debian libfreetype6 for 2.1.10.
David Turner6cda6c02006-02-23 12:37:18 +0000895
Werner Lembergd4303da2006-02-23 21:01:34 +0000896 * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width
897 glyphs.
898 Fix a problem with large encodings.
David Turner481838e2006-02-23 12:40:14 +0000899
Werner Lembergd7e6b762006-02-25 06:24:28 +0000900
901 Fix binary compatibility issues for gnustep-back (GNUstep backend
902 module) which still crashes under Sarge.
903
904 * src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec,
905 FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data
906 structures and enumerations.
907 (FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New
908 compatibility code.
David Turner88d89852006-02-23 22:35:26 +0000909
Wu, Chia-I (吳佳一)890f8072006-02-22 20:47:39 +00009102006-02-23 Chia-I Wu <b90201047@ntu.edu.tw>
911
912 * include/freetype/ftoutln.h (enum FT_Orientation): New value
913 `FT_ORIENTATION_NONE'.
914
915 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
916 ft_contour_enclosed, ft_outline_get_orientation): Another version of
917 `FT_Outline_Get_Orientation'. This version differs from the public
918 one in that each part (contour not enclosed in another contour) of the
919 outline is checked for orientation.
920 (FT_Outline_Embolden): Use `ft_outline_get_orientation'.
921
922 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and
923 use bitmap's embolden routine when the outline one failed.
924
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +00009252006-02-22 Chia-I Wu <b90201047@ntu.edu.tw>
926
927 * modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI
928 compatibility.
929
930 * src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak.
931
932 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned,
933 tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit
Werner Lemberg5edafed2006-02-22 08:23:35 +0000934 loading. (Only tested with bit aligned sbit with x_pos == 0.)
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +0000935
936 * src/truetype/ttpload.c (tt_face_load_hdmx,
Werner Lemberg5edafed2006-02-22 08:23:35 +0000937 tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
938 actually used.
Wu, Chia-I (吳佳一)facd9af2006-02-22 07:59:35 +0000939
David Turner1ae134a2006-02-21 16:50:17 +00009402006-02-21 David Turner <david@freetype.org>
941
Werner Lemberg5edafed2006-02-22 08:23:35 +0000942 Add a new API named FT_Get_TrueType_Engine_Type to determine whether
943 we have a patented, unpatented, or unimplemented TrueType bytecode
944 interpreter.
David Turner0b5dc4d2006-02-21 22:36:23 +0000945
Werner Lemberg5edafed2006-02-22 08:23:35 +0000946 The FT_Get_Module_Flags API was removed consequently.
David Turner0b5dc4d2006-02-21 22:36:23 +0000947
David Turner88d89852006-02-23 22:35:26 +0000948 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed.
Werner Lemberg5edafed2006-02-22 08:23:35 +0000949 Replaced with...
950 (FT_Get_TrueType_Engine_Type): This.
951 (FT_TrueTypeEngineType): New enumeration.
David Turner0b5dc4d2006-02-21 22:36:23 +0000952
Werner Lemberg5edafed2006-02-22 08:23:35 +0000953 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
954 New macro.
David Turner1ae134a2006-02-21 16:50:17 +0000955
Werner Lemberg5edafed2006-02-22 08:23:35 +0000956 * src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
957 (FT_Module_Get_Flags): Removed. Replaced with...
958 (FT_Get_TrueType_Engine_Type): This.
David Turnerc093db92006-02-21 17:06:35 +0000959
Werner Lemberg5edafed2006-02-22 08:23:35 +0000960 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
961 (tt_service_truetype_engine): New service structure.
962 (tt_services): Register it.
963
964 * include/freetype/internal/services/svtteng.h: New file.
965
966
967 * src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented
968 embedded bitmaps from being correctly listed and used.
969
970
971 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization
972 if FT_CONFIG_OPTION_OLD_INTERNALS is used. The is necessary because
973 libXfont is directly accessing the HMTX data, unfortunately.
974 Fix some compiler warnings.
975 (tt_face_get_metrics): Ditto.
976
977
978 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of
979 character advances.
David Turner1ae134a2006-02-21 16:50:17 +0000980
David Turnerdd0f3602006-02-20 23:50:21 +00009812006-02-20 David Turner <david@freetype.org>
982
David Turner0b5dc4d2006-02-21 22:36:23 +0000983 Support binary compatibility with the X.Org server's Xfont library.
Werner Lembergd41aecd2006-02-21 08:08:14 +0000984 Note that this change unfortunately prevents memory optimizations
985 for the embedded bitmap loader.
David Turnerdd0f3602006-02-20 23:50:21 +0000986
Werner Lembergd41aecd2006-02-21 08:08:14 +0000987 * include/freetype/internal/sfnt.h (SFNT_Interface): Move
988 `set_sbit_strike' and `load_sbit_metrics' fields to the location of
989 version 2.1.8.
David Turnerdd0f3602006-02-20 23:50:21 +0000990
Werner Lembergd41aecd2006-02-21 08:08:14 +0000991 * src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call
992 FT_Size_Request.
993 (sfnt_interface): Updated.
994
995 * src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load
996 ttsbit0.c.
997 (tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static.
998
999 * src/sfnt/ttsbit.h: Updated.
David Turnerdd0f3602006-02-20 23:50:21 +00001000
David Turner0880ac32006-02-17 17:23:13 +000010012006-02-17 David Turner <david@freetype.org>
1002
Werner Lembergf145e312006-02-19 16:12:18 +00001003 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't filter out exported
1004 functions anymore. This ensures that all FT_BASE internal functions
1005 are available for dynamic linking.
1006
1007 * include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE,
1008 FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec,
1009 FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New,
1010 FTC_OldImage_Desc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx,
1011 ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup,
1012 FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup)
1013 [FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the
1014 cache sub-system. We try to recognize old legacy signatures with a
1015 gross hack (hope it works).
David Turner0880ac32006-02-17 17:23:13 +00001016
Werner Lemberg1fae6692006-02-17 16:16:40 +000010172006-02-17 Werner Lemberg <wl@gnu.org>
1018
1019 * devel/ftoption.h: Synchronize with
1020 include/freetype/config/ftoption.h.
1021
David Turnercda2d952006-02-16 22:45:31 +000010222006-02-16 David Turner <david@freetype.org>
1023
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001024 Massive changes to the internals to respect the internal object
1025 layouts and exported functions of FreeType 2.1.7. Note that the
1026 cache sub-system cannot be fully retrofitted, unfortunately.
David Turnercda2d952006-02-16 22:45:31 +00001027
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001028 * include/freetype/config/ftoption.h
1029 (FT_CONFIG_OPTION_OLD_INTERNALS): New macro.
1030
1031 * include/freetype/ftcache.h, include/freetype/cache/ftccache.h,
1032 include/freetype/cache/ftccmap.h,
1033 include/freetype/internal/ftcalc.h,
1034 include/freetype/internal/ftdriver.h,
1035 include/freetype/internal/ftmemory.h,
1036 include/freetype/internal/ftobjs.h,
1037 include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
1038 include/freetype/internal/t1types.h,
1039 include/freetype/internal/tttypes.h, src/base/ftcalc.c,
1040 src/base/ftdbgmem.c, src/base/ftobjs.c, src/base/ftutil.c,
1041 src/bdf/bdfdrivr.c, src/cache/ftccache.c, src/cache/ftccback.h,
1042 src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
1043 src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
1044 src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
1045 src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
1046 Use FT_CONFIG_OPTION_OLD_INTERNALS to revive old functions and data
1047 structures.
1048
1049 Move newly added structure elements to the end of the affected
1050 structure and add stub fields (if FT_CONFIG_OPTION_OLD_INTERNALS is
1051 defined) to assure binary compatibility with older FreeType
1052 versions.
1053 Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old
1054 functions:
1055
1056 ft_stub_set_char_sizes
1057 ft_stub_set_pixel_sizes
1058
1059 Rename the following internal functions to provide the old function
1060 names as stubs:
1061
1062 FT_Alloc -> ft_mem_alloc
1063 FT_QAlloc -> ft_mem_qalloc
1064 FT_Realloc -> ft_mem_realloc
1065 FT_QRealloc -> ft_mem_qrealloc
1066 FT_Free -> ft_mem_free
1067 FT_Alloc_Debug -> ft_mem_alloc_debug
1068 FT_QAlloc_Debug -> ft_mem_qalloc_debug
1069 FT_Realloc_Debug -> ft_mem_realloc_debug
1070 FT_QRealloc_Debug -> ft_mem_qrealloc_debug
1071 FT_Free_Debug -> ft_mem_free_debug
David Turnercda2d952006-02-16 22:45:31 +00001072
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +000010732006-02-15 Chia-I Wu <b90201047@ntu.edu.tw>
1074
1075 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
1076 unused `max_points' and `max_contours'.
David Turnercda2d952006-02-16 22:45:31 +00001077
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001078 * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
1079 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update.
1080
1081 * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused
1082 `max_components'.
1083
1084 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused
1085 `loadSize' and `loadStack'.
1086
1087 * src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context),
1088 src/sfnt/ttload.c (tt_face_load_maxp): Update.
1089
1090 * src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c
1091 (sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix
1092 compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not
1093 defined.
1094
1095 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix
1096 possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions.
1097 (finally!)
1098
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001099
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001100 For most OpenType tables, `tt_face_load_xxxx' simply loads the table
1101 and `face->root' is set later in `sfnt_load_face'. Here, we try to
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001102 make this work for _all_ tables. Also improve tracing messages.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001103
1104 * src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c,
1105 src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and
1106 then exit. Error handling or setting face->root is done later in
1107 `sfnt_load_face'.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001108
1109 * src/sfnt/sfobjs.c (sfnt_load_face): Work harder.
1110 Mac bitmap-only fonts are not scalable.
1111 Check that `face->header.Units_Per_EM' is not zero.
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001112 (LOAD_, LOADM_): Emit pretty trace messages.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001113
Werner Lemberg8e6f8c42006-02-17 08:07:09 +00001114 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics
1115 from `eblc'.
Wu, Chia-I (吳佳一)0d565fd2006-02-15 07:44:31 +00001116
1117 * src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c
1118 (load_format_20, load_format_25, tt_face_get_ps_name): Use
1119 face->max_profile.numGlyphs, instead of face->root.num_glyphs.
1120
Werner Lemberg52254022006-02-15 06:05:52 +000011212006-02-14 Werner Lemberg <wl@gnu.org>
1122
1123 * include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in
1124 documentation that negative strength values are possible.
1125 Give an example call.
1126
1127 * include/freetype/freetype.h (FT_GlyphSlotRec): Improve
1128 documentation of `outline' field.
1129
1130 * src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H.
1131 * src/sfnt/sfdriver.c: Include ttmtx.h.
1132
1133 * src/autofit/afcjk.c: Include aftypes.h and aflatin.h.
1134
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +000011352006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
1136
Wu, Chia-I (吳佳一)3dc00182006-02-14 13:36:28 +00001137 * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.
1138
11392006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
1140
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00001141 * src/sfnt/ttmtx.c (tt_face_load_hhea, tt_face_load_hmtx): Simply
1142 return error if table is missing.
1143 Check table length in non-FT_OPTIMIZE_MEMORY'ed `tt_face_load_hmtx'.
1144
1145 * src/sfnt/sfobjs.c (sfnt_load_face): Take care of missing metrics
Werner Lemberg52254022006-02-15 06:05:52 +00001146 tables. The last change makes Mac bitmap-only font not load and
1147 this fixes it.
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00001148
Werner Lemberg52254022006-02-15 06:05:52 +00001149 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation
1150 error when FT_CONFIG_OPTION_INCREMENTAL is defined.
Wu, Chia-I (吳佳一)9a2b3b62006-02-14 08:37:03 +00001151
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +000011522006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
1153
Wu, Chia-I (吳佳一)35222ff2006-02-14 07:25:57 +00001154 Clean up the SFNT_Interface. In this final pass, `load_hmtx' is
1155 splitted from `load_hhea'.
1156
1157 * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
1158 src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'.
1159
1160 * src/sfnt/sfobjs.c (sfnt_load_face): Update.
1161
11622006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
1163
Wu, Chia-I (吳佳一)e0decd12006-02-14 07:20:06 +00001164 * src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of
1165 code...
1166
11672006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
1168
Werner Lemberg52254022006-02-15 06:05:52 +00001169 Clean up the SFNT_Interface. In this pass, we want to treat the
1170 font directory (offset table and table directory) as a normal table
1171 like the others. This also means that TTCs are no longer recognized
1172 there but in `init_face'.
Wu, Chia-I (吳佳一)65863a52006-02-14 07:01:29 +00001173
1174 * include/freetype/internal/sfnt.h (SFNT_Interface),
1175 src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are
1176 combined and renamed to `load_font_dir'.
1177
1178 * src/sfnt/ttload.h, src/sfnt/ttload.c:
1179 s/sfnt_dir_check/check_table_dir/.
1180 `sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'.
1181 `tt_face_load_sfnt_header' and `tt_face_load_directory' are combined
1182 and renamed to `tt_face_load_font_dir'.
1183
1184 * src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.
1185
11862006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
1187
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00001188 Clean up the SFNT_Interface. Table loading functions are now named
Werner Lemberg52254022006-02-15 06:05:52 +00001189 after the tables' tags; `hdmx' is TrueType-specific and thus the
1190 code is moved to the truetype module; `get_metrics' is moved here
1191 from the truetype module so that the code can be shared with the cff
1192 module.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00001193
1194 This pass involves no real changes. That is, the code is moved
1195 verbatim mostly. The only exception is the return value of
1196 `tt_face_get_metrics'.
1197
1198 * include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
1199 src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
1200 src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
1201 src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
David Turnercda2d952006-02-16 22:45:31 +00001202
Werner Lemberg52254022006-02-15 06:05:52 +00001203 * src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: New files. Metrics-related
1204 tables' loading and parsing code is moved to here.
1205 Move `tt_face_get_metrics' here from the truetype module. The
1206 return value is changed from `void' to `FT_Error'.
Wu, Chia-I (吳佳一)f5aa47b2006-02-14 06:40:10 +00001207
1208 * include/freetype/internal/fttrace.h: New trace: ttmtx.
1209
1210 * src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
1211 parsing code is moved here.
1212 New function `tt_face_load_prep' splitted from `tt_face_load_fpgm'.
1213 `tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
1214
1215 * src/cff/cffgload.c, src/cff/cffobjs.c: Update.
1216
1217 * src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
1218
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +000012192006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
1220
Wu, Chia-I (吳佳一)4c507ff2006-02-11 13:22:37 +00001221 * src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug...
1222
1223 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use
Werner Lembergd39fda22006-02-12 21:49:21 +00001224 AF_LatinMetricsRec as the dummy metrics because we cast the metrics
1225 to it later in `af_latin_hints_link_segments'.
Wu, Chia-I (吳佳一)4c507ff2006-02-11 13:22:37 +00001226
12272006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
1228
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00001229 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define
Werner Lembergd39fda22006-02-12 21:49:21 +00001230 to enable autofit CJK script support. (#define'd by default.)
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00001231
1232 * src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro.
1233
Werner Lembergd39fda22006-02-12 21:49:21 +00001234 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Make sure
1235 that `edge_distance_threshold' is always set.
1236 (af_latin_hints_link_segments): Potential divide-by-zero bug.
Wu, Chia-I (吳佳一)f9a69132006-02-11 12:12:02 +00001237 Use latin constant in the scoring formula.
1238
1239 * src/autofit/afcjk.c: Minor updates due to the above three changes.
1240
1241 * docs/TODO, docs/CHANGES: Updated.
1242
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +000012432006-02-09 Chia-I Wu <b90201047@ntu.edu.tw>
1244
1245 Introduce experimental autofit CJK module based on akito's autohint
1246 patch. You need to #define AF_MOD_CJK in afcjk.c to enable it.
1247
1248 * src/autofit/afglobal.c, src/autofit/afcjk.h, src/autofit/afcjk.c,
1249 src/autofit/rules.mk, src/autofit/autofit.c, src/autofit/aftypes.h:
1250 Add CJK module based on akito's autohint patch.
1251
1252 * src/autofit/afhints.h (AF_SegmentRec): New field `len' for the
Werner Lembergd1d4bff2006-02-10 22:15:22 +00001253 overlap length of the segments.
1254 (AF_SEGMENT_LEN, AF_SEGMENT_DIST): New macros.
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +00001255
1256 * src/autofit/aflatin.h (af_latin_metrics_init_widths),
Werner Lembergd1d4bff2006-02-10 22:15:22 +00001257 src/autofit/aflatin.c (af_latin_metrics_init_widths): Made
1258 `FT_LOCAL'.
Wu, Chia-I (吳佳一)4cdb45c2006-02-09 14:17:04 +00001259 Use the character given by the caller.
1260 (af_latin_metrics_init_widths, af_latin_hints_link_segments): Scale
1261 the thresholds.
1262
1263 * src/autofit/afloader.c (af_loader_load_g): Respect
1264 AF_SCALER_FLAG_NO_ADVANCE.
1265
Werner Lemberg6be99f92006-02-09 07:38:57 +000012662006-02-09 Werner Lemberg <wl@gnu.org>
Suzuki, Toshiya (鈴木俊哉)4f41d632006-02-09 01:43:00 +00001267
Werner Lemberg6be99f92006-02-09 07:38:57 +00001268 * src/cid/cidparse.c (cid_parse_new): Remove shadowing variable.
Suzuki, Toshiya (鈴木俊哉)4f41d632006-02-09 01:43:00 +00001269
Werner Lemberg6be99f92006-02-09 07:38:57 +000012702006-02-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)458c3422006-02-08 12:58:24 +00001271
Werner Lemberg6be99f92006-02-09 07:38:57 +00001272 * src/cid/cidparse.c (cid_parse_new): Fix for abnormally short or
1273 broken CIDFont. Reported by Taek Kwan(TK) Lee (see ft-devel
1274 2005-11-02).
1275
12762006-02-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1277
1278 * builds/unix/configure.ac: Fix bug for `--with-old-mac-fonts'
1279 option on UNIX platform. It has been broken since 2006-01-11.
Suzuki, Toshiya (鈴木俊哉)458c3422006-02-08 12:58:24 +00001280
Werner Lemberg38beff02006-02-01 05:14:25 +000012812006-02-01 Werner Lemberg <wl@gnu.org>
1282
1283 * src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/.
1284 * src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/.
1285
Werner Lemberg03379b62006-02-01 05:40:06 +00001286 * builds/unix/unixddef.mk: Actually do define PLATFORM (fixing
1287 change from 2006-01-31).
1288 (TOP_DIR, OBJ_DIR): Update.
1289
Werner Lemberg9a8006b2006-02-01 06:07:05 +00001290 * builds/unix/install.mk (install): Fix path for ftmodule.h.
1291
Werner Lemberg54a79c82006-02-01 07:54:07 +00001292 * Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use
1293 `?=' where appropriate.
Werner Lemberg8a4de0d2006-02-01 07:52:11 +00001294
1295 * builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR),
1296 builds/win32/w32-dev.mk (TOP_DIR): Removed. Defined elsewhere.
1297
Werner Lemberg38beff02006-02-01 05:14:25 +000012982006-01-31 Werner Lemberg <wl@gnu.org>
Werner Lemberg59939242006-01-31 20:17:42 +00001299
1300 Implement new, simplified module selection. With GNU make it is now
1301 sufficient to modify a single file, `modules.cfg', to control the
1302 inclusion of modules and base extension files.
1303
1304 This change also fixes the creation of ftmodule.h; it now depends on
1305 `modules.cfg' and thus is rebuilt only if necessary.
1306
1307 Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
1308 default location.
1309
1310 * modules.cfg: New file.
1311
1312 * builds/freetype.mk: Don't include `modules.mk'.
1313 Include all `rules.mk' files as specified in `modules.cfg'.
1314 (FTOPTION_FLAG, FTOPTION_H): New variables.
1315 (FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H.
1316 Add FTOPTION_FLAG.
1317 ($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST.
1318 (CONFIG_H): Add FTMODULE_H and FTOPTION_H.
1319 (INCLUDES): Add DEVEL_DIR.
1320 (INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ,
1321 OBJ_M, OBJ_S): Use `:=', not `='.
1322 (remove_ftmodule_h): New phony target to delete `ftmodule.h'.
1323 (distclean): Add remove_ftmodule_h.
1324
1325 * builds/modules.mk: (MODULE_LIST): Removed.
1326 (make_module_list, clean_module_list): Replace targets
1327 with...
1328 (FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New
1329 variables. Reason for the change is that it is not possible to have
1330 a phony prerequisite which is run only if the target file must be
1331 rebuilt (phony prerequisites act like subroutines and are *always*
1332 executed). We only want to rebuild `ftmodule.h' if `module.cfg' is
1333 changed.
1334 Update all callers.
1335 ($FTMODULE_H)): Rule to create `ftmodule.h', depending on
1336 `modules.cfg'.
1337
1338 * builds/toplevel.mk: Rewrite and simplify module handling.
1339 (MODULES_CFG, FTMODULE_H): New variables.
1340 Include MODULES_CFG.
1341 (MODULES): New variable to include all `module.mk' and `rules.mk'
1342 files. We no longer use make's `wildcard' function for this.
1343
1344 * Makefile (USE_MODULES): Remove. Update all users.
1345 (OBJ_DIR): Define it here.
1346
1347 * src/*/module.mk: Change
1348
1349 make_module_list: foo
1350 foo: ...
1351
1352 to
1353
1354 FTMODULE_H_COMMANDS += FOO
1355 define FOO
1356 ...
1357 endef
1358
1359 in all files. `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.
1360
1361 * src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.
1362
1363 * builds/unix/detect.mk (setup): Always execute `configure' script.
1364 (have_mk): Rename to...
1365 (have_Makefile): This.
1366 Don't use `strip' function.
1367
1368 * builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is
1369 defined.
1370 (have_mk): Don't use `strip' function.
1371 Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test
1372 accordingly).
1373
1374 * builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.
1375
1376 * builds/os2/os2-dev.mk, builds/unix/unix-dev.mk,
1377 builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define
1378 BUILD_DIR but DEVEL_DIR for development header files.
1379
1380 * builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR),
1381 builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in
1382 (TOP_DIR, OBJ_DIR): Removed. Defined elsewhere.
1383
1384 * builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR),
1385 builds/win32/win32-def.mk (OBJ_DIR): Removed. Defined elsewhere.
1386
1387 * builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
1388 development header files.
1389 Don't define PLATFORM.
1390
1391 * configure: Copy `modules.cfg' to builddir if builddir != srcdir.
1392 Update snippet taken from autoconf's m4sh.m4 to current CVS version.
1393 Be more verbose.
1394
1395 * include/freetype/config/ftmodule.h: Add comments -- this file is
1396 no longer used if FreeType is built with GNU make.
1397
1398 * docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY,
1399 docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism.
1400 Other minor updates.
1401
1402 * modules.txt: Removed. Contents included in `modules.cfg'.
1403
1404
1405 * include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
1406 FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.
1407
1408 * src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug,
1409 FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug)
1410 [FT_STRICT_ALIASING]: Implement.
1411
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +000014122006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
1413
Wu, Chia-I (吳佳一)5d146852006-01-31 10:29:44 +00001414 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
Werner Lemberg59939242006-01-31 20:17:42 +00001415 (cid_face_init), src/pfr/pfrobjs.c (pfr_face_init),
1416 src/type1/t1objs.c (T1_Face_Init): Set face->height to MAX(1.2 *
1417 units_per_EM, ascender - descender).
Wu, Chia-I (吳佳一)5d146852006-01-31 10:29:44 +00001418
14192006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
1420
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +00001421 * include/freetype/internal/t1types.h (AFM_FontInfo),
1422 src/psaux/afmparse.c, src/tools/test_afm.c: Read `FontBBox',
1423 `Ascender', and `Descender' from an AFM.
1424
1425 * src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM.
1426
Werner Lemberg59939242006-01-31 20:17:42 +00001427 * include/freetype/freetype.h (FT_FaceRec): Mention that fields may
1428 be changed after file attachment.
Wu, Chia-I (吳佳一)98d802b2006-01-31 07:01:24 +00001429
Werner Lemberg7596fd32006-01-28 16:29:29 +000014302006-01-28 Werner Lemberg <wl@gnu.org>
1431
1432 * src/*/module.mk (.PHONY): Add.
1433
Werner Lemberg68a15eb2006-01-28 07:30:58 +000014342006-01-27 Werner Lemberg <wl@gnu.org>
1435
1436 * README, docs/FTL.TXT: Fix email address for bug reports.
1437 Other minor formatting.
1438
Werner Lembergf6a25502006-01-28 10:38:15 +00001439 * devel/ftoption.h: Synchronize with
1440 include/freetype/config/ftoption.h.
1441
1442 * src/autofit/module.mk (add_autofit_module), src/bdf/module.mk
1443 (add_bdf_module), src/type42/module.mk (add_type42_driver): Fix
1444 whitespace.
1445
1446 * src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv
1447 renderer classes.
1448
David Turnerff0e9e62006-01-27 09:15:53 +000014492006-01-27 David Turner <david@freetype.org>
1450
Werner Lemberg68a15eb2006-01-28 07:30:58 +00001451 * builds/unix/configure.ac: Fix build problem on Cygwin.
David Turnercda2d952006-02-16 22:45:31 +00001452
Werner Lemberg68a15eb2006-01-28 07:30:58 +00001453 * builds/unix/install.mk (install): Don't install the internal
1454 headers, and remove existing ones if found in the target install
1455 directory.
David Turner7213b4f2006-01-27 16:42:32 +00001456
Werner Lemberg68a15eb2006-01-28 07:30:58 +00001457 * src/autofit/afwarp.c: Add simple #ifdef to prevent compilation
1458 if the warp hinter isn't active (it shouldn't, still experimental).
David Turner6a681fa2006-01-27 12:11:22 +00001459
Werner Lemberg68a15eb2006-01-28 07:30:58 +00001460 * Jamfile, include/freetype/config/ftmodule.h: Remove `gxvalid'
Werner Lembergbe3c9812006-01-27 14:16:16 +00001461 and `otvalid' from the list of modules that are linked statically
1462 to a given FreeType library. Functionality has been moved to the
1463 `ftvalid' CVS module.
David Turner6a681fa2006-01-27 12:11:22 +00001464
Werner Lembergbe3c9812006-01-27 14:16:16 +00001465 Note also that current Make-based build system still compiles the
1466 modules though.
David Turner6a681fa2006-01-27 12:11:22 +00001467
Werner Lembergbe3c9812006-01-27 14:16:16 +00001468 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): New macro
1469 which controls the definitions of the memory management functions to
1470 avoid warnings with recent versions of GCC. This macro is only here
1471 to be disabled, in case we detect problems with the new scheme.
David Turner6a681fa2006-01-27 12:11:22 +00001472
Werner Lembergbe3c9812006-01-27 14:16:16 +00001473 NOTE: Disable macro to use the memory debugger -- this will be fixed
1474 later!
1475
1476 * include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_Alloc,
1477 FT_QAlloc, FT_Realloc, FT_QRealloc, FT_Free) [FT_STRICT_ALIASING]:
1478 New versions.
1479
1480
1481 * builds/win32/visualc/freetype.dsp: Updating project file to
1482 define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from
1483 compilation.
1484
1485
1486 * builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the
1487 macro FT2_BUILD_LIBRARY when compiling the library.
1488
1489 * include/freetype/config/ftheader.h: Remove inclusions of internal
1490 headers except if the macro FT2_BUILD_LIBRARY is defined.
1491
1492
1493 * include/freetype/internal/psaux.h (AFM_KernPair, AFM_TrackKern,
1494 AFM_FontInfo): Move structure declarations to...
1495 * include/freetype/internal/t1types.h: This file.
1496
1497
1498 * (many files): Fix compiler warnings.
1499 Various minor reorganizations.
1500
1501
1502 * src/cff/cffload.c (cff_font_done): Don't free static array
1503 `subfonts'.
1504
1505 * src/otvalid/otvcommn.c (otv_ClassDef_validate),
1506 src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information.
1507
Werner Lemberg68a15eb2006-01-28 07:30:58 +00001508
1509 Get rid of writable static variables (i.e., the string table) in
1510 afmparse, and fix compilation in FT2_MULTI mode.
1511
Werner Lembergbe3c9812006-01-27 14:16:16 +00001512 * src/psaux/afmparse.c: Include ft2build.h and FT_FREETYPE_H.
1513 (AFM_MAX_ARGUMENTS): Define...
1514 * src/psaux/afmparse.h: Here.
1515 * src/psaux/Jamfile (_sources): Add afmparse.
1516
1517 * src/psaux/psconv.c: Include psconv.h.
1518
1519 * src/type1/t1afm.c: Don't include FT_INTERNAL_TYPE1_TYPES_H but
1520 FT_INTERNAL_POSTSCRIPT_AUX_H.
1521 * src/type1/t1afm.h: Include FT_INTERNAL_TYPE1_TYPES_H.
David Turnerff0e9e62006-01-27 09:15:53 +00001522
Wu, Chia-I (吳佳一)4c6234d2006-01-23 10:46:38 +000015232006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
1524
Wu, Chia-I (吳佳一)bcc438b2006-01-23 14:12:40 +00001525 * include/freetype/freetype.h (FT_Select_Size): Rename the second
1526 argument from `idx' to `strike_index'.
1527 (FT_Size_Request_Type): Add FT_SIZE_REQUEST_TYPE_MAX to the end of
1528 this enum.
1529
1530 * include/freetype/internal/ftobjs.h (FT_REQUEST_WIDTH,
1531 FT_REQUEST_HEIGHT): New macros to get the width and height of a
1532 request, in fractional pixels.
1533
1534 * include/freetype/internal/ftobjs.h (FT_Select_Metrics,
1535 FT_Request_Metrics), src/base/ftobjs.c (FT_Select_Metrics,
1536 FT_Request_Metrics): New base functions to set the font metrics. They
1537 were part of FT_Select_Size/FT_Request_Size and are made independent
1538 functions so that metrics are not set again and again.
1539
1540 * src/base/ftobjs.c (FT_Select_Size, FT_Request_Size): Metrics are set
1541 only when driver's size_select/size_request is NULL. That is, drivers
1542 should set the metrics themselves.
1543 (FT_Match_Size): Round before matching. This was what we did and it
1544 does cause some problems without rounding.
1545
1546 * src/cff/cffobjs.c (cff_size_select), src/truetype/ttdriver.c
1547 (tt_size_select): Set the font metrics.
1548 s/index/strike_index/.
1549 The scaled metrics are always preferred over strikes' metrics, even
1550 when some strike is selected. This is done because the strikes'
1551 metrics are not reliable, e.g., the sign of the descender is wrong for
1552 some fonts.
1553
1554 * src/cff/cffobjs.c (cff_size_request), src/truetype/ttdriver.c
1555 (tt_size_request): Set the font metrics.
1556 Call cff_size_select/tt_size_select when some strike is matched.
1557
1558 * src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/cid/cidobjs.c,
1559 src/pcf/pcfdrivr.c, src/truetype/ttdriver.c, src/type1/t1objs.c,
1560 src/type1/t1objs.h, src/type42/t42objs.c, src/winfonts/winfnt.c:
1561 Set the font metrics.
1562 s/index/strike_index/.
1563
1564 * src/tools/test_afm.c, src/psaux/psconv.c: Older versions of these
1565 files were committed. Just a catch-up.
1566 (PS_Conv_ToFixed): Remove the `goto'.
1567 (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Speed up a little.
1568
1569 * src/sfnt/ttsbit.c (tt_face_load_sbit_strikes,
1570 tt_face_load_strike_metrics), src/sfnt/ttsbit0.c
1571 (tt_face_load_sbit_strikes, tt_face_load_strike_metrics): The
1572 advertised metrics in `available_sizes' are different from those
1573 actually used.
1574
15752006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
1576
Wu, Chia-I (吳佳一)4c6234d2006-01-23 10:46:38 +00001577 * src/psaux/psaux.c src/psaux/psauxmod.c src/type1/t1driver.c: Make
1578 AFM parser optional, controlled by `T1_CONFIG_OPTION_NO_AFM'.
1579
Werner Lemberged70ca52006-01-23 07:28:03 +000015802006-01-22 Werner Lemberg <wl@gnu.org>
1581
1582 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
Werner Lemberg4836f952006-06-06 12:54:08 +00001583 `texinfo' CVS module at savannah.gnu.org.
Werner Lemberged70ca52006-01-23 07:28:03 +00001584
Werner Lemberg1be9ebf2006-01-22 06:58:16 +000015852006-01-21 Werner Lemberg <wl@gnu.org>
1586
1587 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c.
1588
Werner Lembergb36bf522006-01-22 07:09:54 +00001589 * src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up
1590 to avoid compiler warnings.
1591
1592 * src/autofit/afwarp.c (af_warper_compute_line_best): Remove
1593 shadowing variable declarations.
1594 Fix warning parameters and replace printf with AF_LOG.
1595 (af_warper_compute): Remove unused variable.
1596
David Turnerbb4edc92006-01-21 14:31:45 +000015972006-01-20 David Turner <david@freetype.org>
1598
Werner Lemberg1be9ebf2006-01-22 06:58:16 +00001599 Adding experimental implementation of `warp hinting' (new hinting
1600 algorithm for gray-level and LCD rendering). It is disabled by
1601 default, you need to #define AF_USE_WARPER in aftypes.h.
1602
1603 * src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]:
1604 New function.
1605 * src/autofit/afhints.h: Updated.
1606
1607 * src/autofit/aflatin.c [AF_USE_WARPER]: Include afwarp.h.
1608 (af_latin_hints_init) [AF_USE_WARPER]: Reset mode to
1609 FT_RENDER_MODE_NORMAL if an LCD mode is selected.
1610 (af_latin_hints_apply) [AF_USE_WARPER]: Call af_warper_compute
1611 appropriately.
1612
1613 * src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]:
1614 Isolate code for adjusting metrics.
1615
1616 * src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by
1617 default).
1618
1619 * src/autofit/afwarp.c, src/autofit/afwarp.h: New files.
1620
1621 * src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c.
1622
1623 * src/autofit/Jamfile (_sources): Add afwarp.
David Turnerbb4edc92006-01-21 14:31:45 +00001624
David Turner8c16ed32006-01-19 13:10:49 +000016252006-01-19 David Turner <david@freetype.org>
1626
Werner Lemberge7be64e2006-01-21 17:27:32 +00001627 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug
1628 that prevented compilation when FT_OPTIMIZE_MEMORY is defined.
David Turner8c16ed32006-01-19 13:10:49 +00001629
Werner Lemberg8b560632006-01-19 08:30:58 +000016302006-01-19 Brian Weed <bw@imaginengine.com>
1631
1632 * builds/win32/visualc/freetype.dsp: Updated.
1633
Werner Lemberg47bf95d2006-01-17 16:55:32 +000016342006-01-17 Werner Lemberg <wl@gnu.org>
1635
1636 Use pscmap service in CFF module.
1637
1638 * src/cff/cffcmap.c (cff_cmap_uni_pair_compare): Removed.
1639 (cff_sid_to_glyph_name): New function.
1640 (cff_cmap_unicode_init, cff_cmap_unicode_done,
1641 cff_cmap_unicode_char_index, cff_cmap_unicode_char next): Use pscmap
1642 service.
1643 (cff_cmap_unicode_class_rec): Updated.
1644 * src/cff/cffcmap.h (CFF_CMapUnicode, CFF_CMap_UniPair): Removed.
1645
1646
1647 * src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode'
1648 return value.
1649
1650
1651 * src/psaux/afmparse.c (afm_parser_read_vals): Use double casting
Werner Lemberge7be64e2006-01-21 17:27:32 +00001652 to avoid compiler warnings regarding type-punning.
Werner Lemberg47bf95d2006-01-17 16:55:32 +00001653
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +000016542006-01-16 Chia-I Wu <b90201047@ntu.edu.tw>
1655
1656 * src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
Werner Lembergce94c7a2006-01-16 22:35:33 +00001657 implement an AFM parser.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00001658
1659 * src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
Werner Lembergce94c7a2006-01-16 22:35:33 +00001660 conversion functions (e.g., PS real number => FT_Fixed) for the
1661 PS_Parser and AFM_Parser. Some of the functions are taken, with
1662 some modifications, from the file psobjs.c.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00001663
1664 * src/psaux/psobjs.c: Use functions from psconv.c.
1665
Werner Lembergce94c7a2006-01-16 22:35:33 +00001666 * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00001667 `AFM_Parser' to the `psaux' service.
1668
Werner Lembergce94c7a2006-01-16 22:35:33 +00001669 * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include
1670 those new files.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00001671
1672 * src/tools/test_afm.c: A test program for AFM parser.
1673
Werner Lembergce94c7a2006-01-16 22:35:33 +00001674 * include/freetype/internal/services/svkern.h: New file providing a
1675 `Kerning' service. It is currently only used to get the track
1676 kerning information.
1677
1678 * include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New
1679 macro.
Wu, Chia-I (吳佳一)108fdbb2006-01-16 15:35:56 +00001680
1681 * src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
1682 src/type1/t1afm.h: Update to use the AFM parser.
1683 Provide the `Kerning' service.
1684
1685 * include/freetype/freetype.h, src/base/ftobjs.c: New API
1686 `FT_Get_Track_Kerning'.
1687
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +000016882006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
1689
Wu, Chia-I (吳佳一)ea1e8d32006-01-15 15:01:45 +00001690 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c,
1691 src/bdf/bdfdrivr.c, src/cff/cffgload.c, src/cid/cidgload.c,
1692 src/pcf/pcfdrivr.c, src/type1/t1gload.c, src/winfonts/winfnt.c:
1693 s/ft_fake_vertical_metrics/ft_synthesize_vertical_metrics/.
1694
1695 * docs/CHANGES: Mention that vertical metrics are synthesized for
1696 fonts not having this info.
1697
16982006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
1699
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00001700 * include/freetype/internal/ftobjs.h (ft_fake_vertical_metrics),
Werner Lemberg1723dcc2006-01-15 07:30:32 +00001701 src/base/ftobjs.c (ft_fake_vertical_metrics): New function to fake
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00001702 vertical metrics.
1703
1704 * src/cff/cffgload.c, src/cid/cidgload.c, src/pcf/pcfdrivr.c,
Werner Lemberg1723dcc2006-01-15 07:30:32 +00001705 src/type1/t1gload.c, src/winfonts/winfnt.c: Fake vertical metrics,
1706 which are monotone.
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00001707
1708 * src/truetype/ttgload.c (compute_glyph_metrics): Some fixes and
Werner Lemberg1723dcc2006-01-15 07:30:32 +00001709 formattings in vertical metrics faking. There is still room for
1710 improvements (and so does the CFF module).
Wu, Chia-I (吳佳一)212aee02006-01-15 06:24:53 +00001711
17122006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
1713
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00001714 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdrivr.c
1715 (PCF_Glyph_Load), src/winfonts/winfnt.c (FNT_Load_Glyph): Don't set
Werner Lemberg1723dcc2006-01-15 07:30:32 +00001716 the linear advance fields as they are only used by the outline
1717 glyphs.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00001718
Werner Lemberg1723dcc2006-01-15 07:30:32 +00001719 * include/freetype/freetype.h: Documentation updates and
1720 clarifications.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00001721 The meaning of FT_LOAD_FORCE_AUTOHINT is changed so that no real
1722 change need be made to the code.
1723
1724 * src/base/ftobjs.c (FT_Load_Glyph): Resolve flag dependencies and
1725 decide whether to use the auto-hinter according to documentation.
1726 There should to be no real difference.
Werner Lemberg1723dcc2006-01-15 07:30:32 +00001727 Some checks (e.g., is text height positve?) after the glyph is
1728 loaded.
Wu, Chia-I (吳佳一)e5ff0592006-01-15 06:00:49 +00001729 (FT_Select_Size, FT_Request_Size): Scales are set to wrong values.
1730 Be careful that scales won't be negative.
1731
Wu, Chia-I (吳佳一)e33dc2e2006-01-14 05:09:30 +000017322006-01-14 Chia-I Wu <b90201047@ntu.edu.tw>
1733
1734 * docs/CHANGES: Mention the size selection change.
1735
1736 * src/bdf/bdfdrivr.c (BDF_Size_Request, BDF_Size_Select),
1737 src/pcf/pcfdrivr.c (PCF_Size_Request, PCF_Size_Select),
1738 src/winfonts/winfnt.c (FNT_Size_Request, FNT_Size_Select): Do size
Werner Lemberg3d8eeb82006-01-14 07:10:45 +00001739 matching for requests of type NOMINAL and REAL_DIM.
Wu, Chia-I (吳佳一)e33dc2e2006-01-14 05:09:30 +00001740
1741 * src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when
1742 `pixel_height' is used for nominal height.
1743
1744 * src/base/ftobjs.c (FT_Request_Size): Call `FT_Match_Size' if the
1745 face is bitmap only and driver doesn't provide `request_size'. This
1746 is added merely for completion as no driver satisfies the conditions.
1747
Wu, Chia-I (吳佳一)fa7d6ab2006-01-13 12:21:31 +000017482006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
1749
1750 Introduce new size selection interface.
1751
Werner Lembergf1c2b912006-01-13 14:53:28 +00001752 * include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec):
Wu, Chia-I (吳佳一)fa7d6ab2006-01-13 12:21:31 +00001753 Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and
1754 `select_size'.
1755
1756 * include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type,
1757 FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c
1758 (FT_Select_Size, FT_Request_Size): API additions to export the new
1759 size selection interface.
1760
1761 * src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
1762 `FT_Request_Size'.
1763
1764 * include/freetype/internal/ftobjs.h (FT_Match_Size),
1765 src/base/ftobjs.c (FT_Match_Size): New function to match a size
1766 request against `available_sizes'. Drivers supporting bitmap strikes
1767 can use this function to implement `request_size'.
1768
1769 * src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
1770 src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c,
1771 src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c,
1772 src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c:
1773 Update to new size selection interface.
1774
1775 * src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c,
1776 src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c,
1777 src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size
1778 selection interface.
1779 Make `strike_index' FT_ULong and always defined.
1780 Use `load_strike_metrics' provided by SFNT interface.
1781
17822006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
1783
1784 * include/freetype/internal/sfnt.h (SFNT_Interface): New method
1785 `load_strike_metrics' used to load the strike's metrics.
1786
1787 * src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
1788 src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'.
1789
1790 * src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.
1791
1792 * src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
1793 nominal size unless it is obviously incorrect.
1794
1795 * include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
1796 FNT driver.
1797
Werner Lemberg8ab09792006-01-12 08:12:27 +000017982006-01-12 Werner Lemberg <wl@gnu.org>
1799
1800 Prepare use of pscmap service within CFF module.
1801
1802 * include/freetype/internal/services/svpscmap.h: Include
1803 FT_INTERNAL_OBJECTS_H.
1804 (PS_Unicode_Index_Func): Removed. Unused.
1805 (PS_Macintosh_Name_Func): Renamed to...
1806 (PS_Macintosh_NameFunc): This.
1807 Update all callers.
1808 (PS_Adobe_Std_Strings_Func): Renamed to...
1809 (PS_Adobe_Std_StringsFunc): This.
1810 Update all callers.
1811 (PS_UnicodesRec): This is the former `PS_Unicodes' structure.
1812 Add `cmap' member.
1813 Update all callers.
1814 (PS_Unicodes): This is now a typedef'd pointer to PS_UnicodesRec.
1815 Update all callers.
1816 (PS_Glyph_NameFunc): New typedef.
1817 (PS_Unicodes_InitFunc): Change arguments to expect a function
1818 and generic data pointer which returns a glyph name from a given
1819 index.
1820
1821 * src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index,
1822 ps_unicodes_char_next, pscmaps_interface): Updated.
1823
1824 * include/freetype/internal/t1types.h (T1_FaceRec): Updated.
1825
1826 * src/psaux/t1cmap.h (T1_CmapStdRec): Updated.
1827 (T1_CmapUnicode, T1_CmapUnicodeRec): Removed.
1828
1829 * src/psaux/t1cmap.c (t1_get_glyph_name): New callback function.
1830 (t1_cmap_unicode_init, t1_cmap_unicode_done,
1831 t1_cmap_unicode_char_index, t1_cmap_unicode_char_next,
1832 t1_cmap_unicode_class_rec): Updated.
1833
1834 * src/type42/t42types.h (T42_FaceRec): Updated.
1835
18362006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)356a4d82006-01-12 03:33:16 +00001837
1838 * include/freetype/ftmac.h: Add declaration of new functions
1839 FT_New_Face_From_FSRef and FT_GetFile_From_Mac_ATS_Name that
1840 were introduced by the jumbo patch on 2006-01-11.
1841
Werner Lemberg8ab09792006-01-12 08:12:27 +000018422006-01-11 Werner Lemberg <wl@gnu.org>
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00001843
Werner Lembergadf828f2006-01-11 10:08:49 +00001844 Fix Savannah bug #15056 and use pscmap service in psaux module.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00001845
Werner Lembergadf828f2006-01-11 10:08:49 +00001846 * include/freetype/internal/services/svpscmap.h (PS_UniMap): Use
1847 FT_UInt32 for `glyph_index'.
1848 (PS_Unicodes_InitFunc): Use FT_String for `glyph_names'.
1849 (PS_Unicodes_CharIndexFunc): Use FT_UInt32 for `unicode'.
1850 (PS_Unicodes_CharNextFunc): Make second argument a pointer to
1851 FT_UInt32.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00001852
Werner Lembergadf828f2006-01-11 10:08:49 +00001853 * src/psnames/psmodule.c (VARIANT_BIT, BASE_GLYPH): New macros.
1854 (ps_unicode_value): Set VARIANT_BIT in return value if glyph is a
1855 variant glyph (this is, it has non-leading `.' in its name).
1856 (compare_uni_maps): Sort base glyphs before variant glyphs.
1857 (ps_unicodes_init): Use FT_String for `glyph_names' argument.
1858 Reallocate only if number of used entries is much smaller.
1859 Updated to handle variant glyphs.
1860 (ps_unicodes_char_index, ps_unicodes_char_next): Prefer base glyphs
1861 over variant glyphs.
1862 Simplify code.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00001863
Werner Lembergadf828f2006-01-11 10:08:49 +00001864 * src/psaux/t1cmap.c (t1_cmap_uni_pair_compare): Removed.
1865 (t1_cmap_unicode_init, t1_cmap_unicode_char_index,
1866 t1_cmap_unicode_char_next): Use pscmap service.
1867 (t1_cmap_unicode_done): Updated.
1868
1869 * src/psaux/t1cmap.h (T1_CMapUniPair): Removed.
1870 (T1_CMapUnicode): Use PS_Unicodes structure.
1871
18722006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1873
1874 Jumbo patch to fix `deprecated' warning of cross-build for Tiger on
1875 Intel, as reported by Sean McBride <sean@rogue-research.com> on
1876 2005-08-24.
1877
1878 * src/base/ftmac.c: Heavy change to build without deprecated Carbon
1879 functions on Tiger.
1880
1881 * builds/unix/configure.ac: Add options and autochecks for Carbon
1882 functions availabilities, for MacOS X.
1883
1884 * builds/mac/ascii2mpw.py: Add converter for character `\305'.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00001885 * builds/mac/FreeType.m68k_{far|cfm}.make.txt: Add conditional
Werner Lembergadf828f2006-01-11 10:08:49 +00001886 macros to avoid unavailable functions.
1887 ftmac.c must be compiled without `-strict ansi', because it disables
1888 cpp macro to use ToolBox system call.
1889
1890 * builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional
1891 macros to avoid unavailable functions.
Suzuki, Toshiya (鈴木俊哉)f8d16cc2006-01-11 09:28:38 +00001892
1893 * builds/mac/README: Detailed notes on function availabilities.
1894
1895 * docs/CHANGES: Notes about (possible) incompatibilities.
1896
Werner Lemberge8f92af2006-01-08 13:43:30 +000018972006-01-08 Werner Lemberg <wl@gnu.org>
1898
Werner Lemberg6cdab922006-01-08 22:34:01 +00001899 * docs/CHANGES: Updated.
1900
19012006-01-08 Huw D M Davies <h.davies1@physics.ox.ac.uk>
1902
1903 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): New
1904 declaration.
1905
1906 * src/base/ftobjs.c (FT_Module_Get_Flags): New function.
1907
19082006-01-07 Werner Lemberg <wl@gnu.org>
1909
Werner Lemberge8f92af2006-01-08 13:43:30 +00001910 * src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable
Werner Lemberg30bd2842006-01-08 19:38:42 +00001911 `bitmaps'. Reported by Yu Lei <yulei0@gmail.com>.
1912
1913 * src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/.
1914 Reported by Niels Boldt <nielsboldt@gmail.com>.
Werner Lemberge8f92af2006-01-08 13:43:30 +00001915
19162005-12-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)3dfcef62005-12-28 06:47:12 +00001917
Werner Lemberg05cda082006-01-08 13:37:15 +00001918 * src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for
1919 MPW compiler.
Suzuki, Toshiya (鈴木俊哉)3dfcef62005-12-28 06:47:12 +00001920
David Turnere6bb9532005-12-23 13:32:06 +000019212005-12-23 David Turner <david@freetype.org>
1922
Werner Lemberg083ba0b2005-12-23 15:10:54 +00001923 * Jamfile (RefDoc), docs/reference/README: Fix it so that `jam
1924 refdoc' works correctly to generate the API reference in
1925 `docs/reference'.
David Turnere6bb9532005-12-23 13:32:06 +00001926
Werner Lemberg083ba0b2005-12-23 15:10:54 +00001927 * src/tools/docmaker/tohtml.py (print_html_field,
1928 print_html_field_list): Update to output nicer fields lists in the
1929 API reference.
David Turnere6bb9532005-12-23 13:32:06 +00001930
1931 * src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now
Werner Lemberg083ba0b2005-12-23 15:10:54 +00001932 forces auto-hinting.
David Turnere6bb9532005-12-23 13:32:06 +00001933
Werner Lemberg083ba0b2005-12-23 15:10:54 +00001934 * freetype/freetype.h: Updating the documentation for
1935 FT_LOAD_TARGET_XXX and FT_Render_Mode values.
David Turnere6bb9532005-12-23 13:32:06 +00001936
Werner Lemberg6be99f92006-02-09 07:38:57 +000019372005-12-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)53be6e92005-12-23 12:22:46 +00001938
Werner Lemberg083ba0b2005-12-23 15:10:54 +00001939 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Count scalable faces
1940 in supported formats (sfnt, LWFN) only, and ignore bitmap faces in
1941 unsupported formats (fbit, NFNT). The number of available faces are
1942 passed via face->num_faces. If bitmap faces are embedded in sfnt
1943 resource, face->num_fixed_size is correctly set. In public API,
1944 FT_New_Face() and FT_New_Face_From_FSSpec() count the faces as
1945 FT_GetFile_From_Mac_Name(), which ignores NFNT resources.
Suzuki, Toshiya (鈴木俊哉)53be6e92005-12-23 12:22:46 +00001946
1947 * doc/CHANGES: Mention the changes.
1948
Wu, Chia-I (吳佳一)ce34d122005-12-17 13:12:49 +000019492005-12-17 Chia-I Wu <b90201047@ntu.edu.tw>
1950
1951 * src/truetype/ttinterp.c (Update_Max): Set current size of buffer
1952 correctly (so that memory debug system won't panic).
1953
Wu, Chia-I (吳佳一)dcb8b712005-12-16 14:27:14 +000019542005-12-16 Chia-I Wu <b90201047@ntu.edu.tw>
1955
1956 * include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics),
1957 src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed.
1958
1959 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round.
1960
1961 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
1962 (cid_slot_load_glyph), src/truetype/ttgload.c (compute_glyph_metrics),
1963 src/type1/t1gload.c (T1_Load_Glyph): Do not round glyph metrics.
1964
1965 * doc/CHANGES: Mention the changes.
1966
David Turner5b5f3822005-12-14 16:37:15 +000019672005-12-13 David Turner <david@freetype.org>
1968
Werner Lembergb79b5132005-12-20 12:01:58 +00001969 Change the implementation of the LIGHT hinting mode to completely
1970 disable horizontal hinting. This is an experimental effort to
1971 integrate David Chester's latest patch without affecting the other
1972 hinting modes as well.
David Turner5b5f3822005-12-14 16:37:15 +00001973
Werner Lembergb79b5132005-12-20 12:01:58 +00001974 Note that this doesn't force auto-hinting for all fonts, however.
David Turner5b5f3822005-12-14 16:37:15 +00001975
Werner Lembergb79b5132005-12-20 12:01:58 +00001976 * src/autofit/afhints.c (af_glyph_hints_reload): Don't set
1977 scaler_fiags here but...
1978 (af_glyph_hints_rescale): Here.
David Turner8def3c82005-12-14 16:38:31 +00001979
Werner Lembergb79b5132005-12-20 12:01:58 +00001980 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
1981 hinting for `light' hinting mode.
David Turnerdb0182f2005-12-14 21:16:33 +00001982
David Turnerdb0182f2005-12-14 21:16:33 +00001983
Werner Lembergb79b5132005-12-20 12:01:58 +00001984 * Jamfile: Small fix to ensure that ftexport.sym is placed into the
1985 same location as other generated objects (i.e., within the `objs'
1986 directory of the current directory).
David Turnerdb0182f2005-12-14 21:16:33 +00001987
Werner Lembergb79b5132005-12-20 12:01:58 +00001988
1989 Add support for an embedded `BDF ' table within SFNT-based bitmap
1990 font files. This is used to store atoms & properties from the
1991 original BDF fonts that were used to generate the font file.
1992
1993 The feature is controlled by TT_CONFIG_OPTION_BDF within
1994 `ftoption.h' and is used to implement FT_Get_BDF_Property for these
1995 font files.
1996
1997 At the moment, this is still experimental, the BDF table format
1998 isn't cast into stone yet.
1999
2000 * include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New
2001 macro.
2002
2003 * include/freetype/config/ftstdlib.h (ft_memchr): New macro.
2004
2005 * include/freetype/internal/tttypes.h (TT_BDFRec, TT_BDF)
2006 [TT_CONFIG_OPTION_BDF]: New structure.
2007 (TT_FaceRec) [TT_CONFIG_OPTION_BDF]: New member `bdf'.
2008
2009 * include/freetype/ttags.h (TTAG_BDF): New macro.
2010
2011 * src/sfnt/Jamfile (_sources): Add ttbdf.
2012
2013 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c.
2014
2015 * src/sfnt/sfdriver.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h and
2016 FT_SERVICE_BDF_H.
2017 (sfnt_get_charset_it) [TT_CONFIG_OPTION_BDF]: New function.
2018 (sfnt_service_bdf) [TT_CONFIG_OPTION_BDF]: New service.
2019 (sfnt_servives) [TT_CONFIG_OPTION_BDF]: Add sfnt_service_bdf.
2020
2021 * src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c.
2022
2023 * src/sfnt/sfobjs.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h.
2024 (sfnt_done_face) [TT_CONFIG_OPTION_BDF]: Call
2025 tt_face_free_bdf_props.
2026
2027 * src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files.
David Turner89a2a4b2005-12-14 20:38:15 +00002028
Werner Lemberg364db082005-12-07 20:34:11 +000020292005-12-07 Werner Lemberg <wl@gnu.org>
2030
2031 * src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to...
2032 * src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs.
2033
Wu, Chia-I (吳佳一)a3690cd2005-12-06 08:24:01 +000020342005-12-06 Chia-I Wu <b90201047@ntu.edu.tw>
2035
2036 * src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is
2037 initialized twice.
2038 size->strike_index is not initialized.
2039
Werner Lemberg2a0903a2005-12-03 08:13:43 +000020402005-12-02 Taek Kwan(TK) Lee <taeklee@gmail.com>
2041
Werner Lemberg3b8db662005-12-06 10:47:44 +00002042 * src/type42/t42objs.c (T42_Face_Init): Replace call to
Werner Lemberg2a0903a2005-12-03 08:13:43 +00002043 FT_New_Memory_Face with call to FT_Open_Face to pass `params'.
2044
Werner Lembergb797fdb2005-11-30 08:48:32 +000020452005-11-30 Werner Lemberg <wl@gnu.org>
2046
2047 * docs/CHANGES: Document ftdump's `-v' option.
Werner Lembergb5d88e82005-11-30 08:55:51 +00002048 Document latest charmap code changes.
Werner Lembergb797fdb2005-11-30 08:48:32 +00002049
Werner Lemberg44e47d52005-11-30 18:47:49 +00002050 * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h:
2051 s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/.
2052
Wu, Chia-I (吳佳一)a28bc4c2005-11-30 02:39:10 +000020532005-11-30 Chia-I Wu <b90201047@ntu.edu.tw>
2054
2055 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary,
2056 tt_cmap12_char_map_binary): Fix compiler warnings.
2057
Wu, Chia-I (吳佳一)569ec4e2005-11-29 11:27:51 +000020582005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
2059
Werner Lemberg44e47d52005-11-30 18:47:49 +00002060 Major update to distinguish between unsorted and overlapping
2061 segments for cmap format 4. For overlapping but sorted segments,
2062 which is previously considered unsorted, we still use binary search.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002063
David Turner5b5f3822005-12-14 16:37:15 +00002064 * src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002065 (TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros.
2066
2067 * src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined.
David Turner5b5f3822005-12-14 16:37:15 +00002068 (TT_CMap4Rec_): Remove `old_charcode' and `table_length'.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002069 (tt_cmap4_reset): Removed.
2070 (tt_cmap4_init): Updated accordingly.
2071 (tt_cmap4_next): Updated accordingly.
Werner Lemberg44e47d52005-11-30 18:47:49 +00002072 Take care of overlapping segments.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002073 (tt_cmap4_validate): Make sure the subtable is large enough.
2074 Do not check glyph_ids because some fonts set the length wrongly.
Werner Lemberg05cda082006-01-08 13:37:15 +00002075 Also, if all segments have offset 0, glyph_ids is always invalid.
Werner Lemberg44e47d52005-11-30 18:47:49 +00002076 It does not cause any problem so far only because the check misses
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002077 equality.
Werner Lemberg44e47d52005-11-30 18:47:49 +00002078 Distinguish between unsorted and overlapping segments.
2079 (tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions
2080 to do `charcode => glyph index' by linear/binary search.
Wu, Chia-I (吳佳一)a0911342005-11-29 11:32:53 +00002081 (tt_cmap4_char_index, tt_cmap4_char_next): Use
2082 tt_cmap4_char_map_linear and tt_cmap4_char_map_binary.
2083 (tt_face_build_cmaps): Treat the return value of validator as flags
2084 for cmap.
2085
20862005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
2087
Werner Lemberg44e47d52005-11-30 18:47:49 +00002088 * src/sfnt/ttcmap.c (TT_CMap12Rec_, tt_cmap12_init, tt_cmap12_next):
2089 New structures and functions for fast `next char'.
2090 (tt_cmap12_char_map_binary): New function to do `charcode => glyph
2091 index' by binary search.
Wu, Chia-I (吳佳一)569ec4e2005-11-29 11:27:51 +00002092 (tt_cmap12_char_index, tt_cmap12_char_next): Use
2093 tt_cmap12_char_map_binary.
2094 (tt_face_build_cmaps): Check table and offset correctly (equality is
2095 missing).
2096
Werner Lemberg4e03fe72006-04-29 06:20:09 +000020972005-11-15 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würknerdf1598e2005-11-25 08:04:09 +00002098
2099 * builds/amiga/smakefile: Adjusted the compiler options
2100 to the current sources, now really builds the gxvalid, gzip
2101 and psnames modules.
2102
2103 * builds/amiga/src/base/ftsystem.c: The assumed Seek() position
2104 in the file cache was off by one byte which could cause false
2105 errors in font files.
2106
Werner Lemberg6be99f92006-02-09 07:38:57 +000021072005-11-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Suzuki, Toshiya (鈴木俊哉)6b1c5972005-11-24 05:16:57 +00002108
2109 * builds/mac/FreeType.m68k_far.make.txt,
2110 builds/mac/FreeType.m68k_cfm.make.txt,
2111 builds/mac/FreeType.ppc_classic.make.txt,
2112 builds/mac/FreeType.ppc_carbon.make.txt:
2113 Updated for MPW to build all available modules.
2114
Werner Lemberg4e03fe72006-04-29 06:20:09 +000021152005-11-21 Håvard Wall <haavardw@ifi.uio.no>
Werner Lemberg67ba2112005-11-21 17:32:03 +00002116
2117 * src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Done): Fix small
2118 memory leak.
2119
Werner Lemberg840232a2005-11-21 12:36:42 +000021202005-11-21 Werner Lemberg <wl@gnu.org>
2121
2122 * src/sfnt/ttload.c (sfnt_init): Add tracing message.
2123
Wu, Chia-I (吳佳一)d81947e2005-11-21 03:04:03 +000021242005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
2125
Werner Lemberg840232a2005-11-21 12:36:42 +00002126 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Image_offset was
Werner Lemberg05cda082006-01-08 13:37:15 +00002127 added twice to image_start if image_format was 2 or 5.
Wu, Chia-I (吳佳一)275be9b2005-11-21 03:05:34 +00002128
21292005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
2130
Wu, Chia-I (吳佳一)d81947e2005-11-21 03:04:03 +00002131 * src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known
2132 before loading the table directory.
2133
2134 * src/sfnt/ttload.c (tt_face_load_sfnt_header,
2135 tt_face_load_directory): Delay sfnt_dir_check from
2136 tt_face_load_sfnt_header to tt_face_load_directory.
2137
Wu, Chia-I (吳佳一)6f1eca02005-11-20 08:24:24 +000021382005-11-20 Chia-I Wu <b90201047@ntu.edu.tw>
2139
2140 * src/sfnt/ttload.c (sfnt_dir_check): Clean up and return correct
2141 error code.
2142 (sfnt_init): New function to fill in face->ttc_header. A non-TTC font
2143 is synthesized into a TTC font with one offset table.
2144 (tt_face_load_sfnt_header): Use sfnt_init.
Werner Lemberg05cda082006-01-08 13:37:15 +00002145 Fix an invalid access if the font is TTC and face_index is -1.
Wu, Chia-I (吳佳一)6f1eca02005-11-20 08:24:24 +00002146
Werner Lemberg1a293d62005-11-18 08:23:06 +000021472005-11-18 Werner Lemberg <wl@gnu.org>
2148
2149 * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number
2150 of metrics instead of aborting. Patch suggested by Derek Noonburg.
2151
Werner Lemberg6c990452005-11-18 21:10:59 +00002152 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
2153 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Scale
2154 the glyph properly if no hinter is available.
2155
2156 * docs/CHANGES: Mention scaling bug.
2157
Suzuki, Toshiya (鈴木俊哉)8d81d412005-11-18 07:47:06 +000021582005-11-18 susuzki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2159
2160 * include/freetype/ftgxval.h, src/base/ftgxval.c
2161 (FT_TrueTypeGX_Free, FT_ClassicKern_Free): New functions to free
2162 buffers allocated by gxvalid module.
2163 * include/freetype/ftotval.h, src/base/ftotval.c
2164 (FT_OpenType_Free): New function to free buffer allocated by
2165 otvalid module.
2166
Wu, Chia-I (吳佳一)cb182382005-11-18 04:29:31 +000021672005-11-18 Chia-I Wu <b90201047@ntu.edu.tw>
2168
2169 * builds/unix/ftsystem.c (FT_Stream_Open, FT_New_Memory,
2170 FT_Done_Memory), builds/vms/ftsystem.c (FT_Stream_Open, FT_New_Memory,
2171 FT_Done_Memory), builds/win32/ftdebug.c (FT_Message, FT_Panic):
2172 s/FT_EXPORT/FT_BASE/.
2173
Werner Lemberg4e03fe72006-04-29 06:20:09 +000021742005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner4859ac42005-11-17 14:21:07 +00002175
Detlef Würkner0acfc1f2005-11-17 16:54:54 +00002176 * builds/amiga/src/base/ftdebug.c (FT_Trace_Get_Count,
2177 FT_Trace_Get_Name, FT_Message, FT_Panic),
2178 builds/amiga/src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory,
2179 FT_Stream_Open): s/FT_EXPORT/FT_BASE/.
2180
Werner Lemberg4e03fe72006-04-29 06:20:09 +000021812005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de>
Detlef Würkner0acfc1f2005-11-17 16:54:54 +00002182
Werner Lemberg1a293d62005-11-18 08:23:06 +00002183 * builds/amiga/makefile, builds/amiga/makefile.os4,
Detlef Würknerdf1598e2005-11-25 08:04:09 +00002184 builds/amiga/smakefile,
Detlef Würkner4859ac42005-11-17 14:21:07 +00002185 builds/amiga/include/freetype/config/ftmodule.h: Updated the Amiga
Werner Lemberg1a293d62005-11-18 08:23:06 +00002186 build files (added support for the gxvalid module).
Detlef Würkner4859ac42005-11-17 14:21:07 +00002187
Werner Lembergcfc0cf22005-11-17 08:12:00 +000021882005-11-17 Werner Lemberg <wl@gnu.org>
2189
2190 Add vertical metrics support to OpenType CFF outlines. Based on a
Werner Lemberg1a293d62005-11-18 08:23:06 +00002191 patch from Mike Moening <MikeM@RetekSolutions.com>.
Werner Lembergcfc0cf22005-11-17 08:12:00 +00002192
2193 * src/cff/cffgload.c (cff_face_get_vertical_metrics): New function.
2194 (cff_slot_load): Use cff_face_get_vertical_metrics.
2195
2196 * docs/CHANGES: Updated.
2197
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +000021982005-11-17 Chia-I Wu <b90201047@ntu.edu.tw>
2199
2200 * src/base/ftcalc.c (FT_MulTo64): Commented out.
2201
Werner Lembergcfc0cf22005-11-17 08:12:00 +00002202 * include/freetype/internal/ftcalc.h (FT_SqrtFixed),
2203 src/base/ftcalc.c (FT_SqrtFixed),
2204 include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
2205 FT_Trace_Get_Name, FT_Message, FT_Panic), src/base/ftdebug.c
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00002206 (FT_Trace_Get_Count, FT_Trace_Get_Name, FT_Message, FT_Panic),
Werner Lembergcfc0cf22005-11-17 08:12:00 +00002207 include/freetype/internal/ftobjs.h (FT_New_Memory, FT_Done_Memory),
2208 include/freetype/internal/ftstream.h (FT_Stream_Open),
2209 src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory, FT_Stream_Open):
2210 s/FT_EXPORT/FT_BASE/.
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00002211
Werner Lembergcfc0cf22005-11-17 08:12:00 +00002212 * builds/exports.mk: Manually add TT_New_Context to EXPORTS_LIST
2213 too.
Wu, Chia-I (吳佳一)35bfc0f2005-11-17 01:53:07 +00002214
David Turnerf7cc1812005-11-15 17:30:56 +000022152005-11-15 David Turner <david@freetype.org>
2216
Werner Lemberg674ba912005-11-16 18:09:27 +00002217 * src/base/fttrigon.c (ft_trig_prenorm): Fix a bug that created
David Turnerf7cc1812005-11-15 17:30:56 +00002218 invalid computations, resulting in very weird bugs in TrueType
Werner Lemberg674ba912005-11-16 18:09:27 +00002219 bytecode hinted fonts.
David Turnerf7cc1812005-11-15 17:30:56 +00002220
Werner Lemberg674ba912005-11-16 18:09:27 +00002221 * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Don't perform a
2222 structure copy each time.
David Turnerf7cc1812005-11-15 17:30:56 +00002223
Werner Lembergd829ff72005-11-12 17:07:11 +000022242005-11-11 Werner Lemberg <wl@gnu.org>
2225
2226 * src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c
2227 (FTC_Manager_Check): Remove FT_EXPORT_DEF tag.
2228
David Turnerf7cc1812005-11-15 17:30:56 +00002229 * src/base/ftcalc.c (FT_Add64): Remove FT_EXPORT_DEF tag.
Werner Lembergd829ff72005-11-12 17:07:11 +00002230 (FT_Div64by32, FT_Sqrt32): Commented out. Unused.
2231
2232 * include/freetype/internal/ftcalc.h (SQRT_32): Removed. Unused.
2233 (FT_Sqrt32): Commented out. Unused.
2234
2235 * include/freetype/cache/ftccache.h:
2236 s/ftc_node_destroy/FTC_Node_Destroy/.
2237
2238 * src/cache/ftccback.h (ftc_node_destroy): New declaration.
2239
2240 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF tag.
2241 (FTC_Node_Destroy): New exported wrapper function for
2242 ftc_node_destroy.
2243
2244 * src/cache/ftcmanag.c: Include ftccback.c.
2245
Werner Lemberg4309edc2005-11-11 15:49:14 +000022462005-11-10 Werner Lemberg <wl@gnu.org>
2247
2248 * src/autofit/afangles.c, src/autofit/aftypes.h (af_angle_diff):
2249 Comment out. Unused.
2250
Werner Lembergf2c53302005-11-11 16:20:59 +00002251 * builds/exports.mk ($(EXPORTS_LIST)): Add TT_RunIns.
2252
Werner Lemberg4309edc2005-11-11 15:49:14 +000022532005-11-10 Christian Biesinger <cbiesinger@web.de>
2254
2255 * builds/beos/beos.mk: Call beos-def.mk before anything else to
2256 define the separator.
2257
2258 * builds/unix/unix-cc.in (LINK_LIBRARY): Add `-no-undefined' flag.
2259
Werner Lembergea4c3dc2005-11-08 09:10:16 +000022602005-11-07 Werner Lemberg <wl@gnu.org>
2261
2262 * src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning
2263 table available'. From Sergey Tolstov <stolstov@esri.com>.
2264
Werner Lemberg4e03fe72006-04-29 06:20:09 +000022652005-11-03 Ville Syrjälä <syrjala@sci.fi>
Werner Lembergb2d02532005-11-04 06:58:49 +00002266
2267 * src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak.
2268
22692005-11-02 Werner Lemberg <wl@gnu.org>
2270
2271 Make compiling instructions in docs/CUSTOMIZE work again.
2272
2273 * builds/unix/unix-cc.in (CPPFLAGS): New variable.
2274 (CFLAGS): Don't include @CPPFLAGS@.
2275 * builds/freetype.mk (FT_CFLAGS): Add CPPFLAGS.
2276
David Turnerdab24542005-11-02 09:24:00 +000022772005-10-28 David Turner <david@freetype.org>
2278
Werner Lembergcee37a32005-11-12 07:34:40 +00002279 Update build system to support the generation of a list of exported
2280 symbols or Windows .DEF files by parsing the public headers with the
Werner Lembergb2d02532005-11-04 06:58:49 +00002281 `apinames' tool located in src/tools/apinames.c.
David Turnerdab24542005-11-02 09:24:00 +00002282
Werner Lembergb2d02532005-11-04 06:58:49 +00002283 Only tested on Unix at the moment. On Windows, the .DEF file is
2284 generated but isn't used yet to generate a DLL.
David Turnerdab24542005-11-02 09:24:00 +00002285
Werner Lembergcee37a32005-11-12 07:34:40 +00002286 * builds/exports.mk: New file.
David Turnerdab24542005-11-02 09:24:00 +00002287
Werner Lembergcee37a32005-11-12 07:34:40 +00002288 * builds/freetype.mk: Include exports.mk.
2289 (dll): New target.
2290 (clean_project_dos): Fix rule.
David Turnerdab24542005-11-02 09:24:00 +00002291
Werner Lembergcee37a32005-11-12 07:34:40 +00002292 * builds/compiler/visualc.mk (TE), builds/dos/dos-def.mk (E),
2293 builds/os2/os2-def.mk (E), builds/win32/win32-def.mk (E): New
2294 variables for controlling executable extensions.
David Turnerdab24542005-11-02 09:24:00 +00002295
Werner Lembergcee37a32005-11-12 07:34:40 +00002296 * builds/unix/unix-cc.in (EXPORTS_LIST, CCexe),
2297 builds/win32/w32-bcc.mk, builds/win32/w32-gcc.mk,
2298 builds/win32/w32-icc.mk, builds/win32/w32-icc.mk,
2299 builds/win32/w32-mingw32.mk, builds/win32/w32-vcc,
2300 builds/win32/w32-wat.mk (EXPORTS_LIST, EXPORT_OPTIONS,
2301 APINAMES_OPTIONS): New targets for controlling the `apinames' tool.
2302
2303 * Jamfile (GenExportSymbols): Updated.
2304
2305
2306 * src/pfr/pfrtypes.h, src/pfr/pfrload.c, src/pfr/pfrobjs.c
2307 [!FT_OPTIMIZE_MEMORY]: Fold memory optimization code into
2308 FT_OPTIMIZE_MEMORY chunks for better maintainability and simplicity.
2309
2310
2311 * src/base/fttrigon.c (ft_trig_prenorm), src/base/ftcalc.c
2312 (FT_MulFix): Performance optimizations.
2313
2314
2315 * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
2316 FT_GLYPHLOADER_CHECK_C, FT_GLYPHLOADER_CHECK_POINTS): New macros for
2317 checking points and contours. Update callers to use
2318 FT_GLYPHLOADER_CHECK_POINTS instead of FT_GlyphLoader_CheckPoints
2319 at profile-detected hot-spots.
2320
2321 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Set `adjust'
2322 to 0 to not call `AdjustPoints' every time.
2323
David Turnerdab24542005-11-02 09:24:00 +00002324
Werner Lembergb2d02532005-11-04 06:58:49 +00002325 * src/autofit/aftypes.h (AF_ANGLE_DIFF): New macro to inline
2326 FT_Angle_Diff.
David Turnerdab24542005-11-02 09:24:00 +00002327
Werner Lembergcee37a32005-11-12 07:34:40 +00002328 * src/autofit/afhints.c (af_direction_compute): Re-implement.
2329 (af_glyph_hints_compute_inflections, af_glyph_hints_reload): Use
Werner Lembergb2d02532005-11-04 06:58:49 +00002330 AF_ANGLE_DIFF to speed up the detection of inflexions.
David Turnerdab24542005-11-02 09:24:00 +00002331
Werner Lembergcee37a32005-11-12 07:34:40 +00002332
2333 * src/tools/apinames.c: Include <string.h>.
2334 (OutputFormat): New enumeration.
2335 (names_dump): Add two parameters to control output format and DLL
2336 name.
2337 (names_dump_windef): Removed. Code folded into `names_dump'.
2338 (read_header_file): Use isalnum, not isalpha. Otherwise function
2339 names with digits aren't read correctly.
2340 (usage): Updated.
2341 (main): New option `-o' to control output file name.
2342 New option `-d' to indicate DLL file name.
2343 Extend `-w' flag to handle Borland and Watcom compilers and linkers.
2344
Suzuki, Toshiya (鈴木俊哉)45115762005-10-28 15:39:58 +000023452005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2346
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00002347 * builds/mac/ftlib.prj, builds/mac/freetype.mak: Removed.
2348 ftlib.prj is unmaintained and incompatible with current tree.
2349 freetype.mak is unrecoverably broken.
2350
2351 * builds/mac/ftlib.prj.xml: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00002352 Generated by Metrowerks CodeWarrior 9.0.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00002353
2354 * builds/mac/FreeType.m68k_far.make.txt,
2355 builds/mac/FreeType.m68k_cfm.make.txt,
2356 builds/mac/FreeType.ppc_classic.make.txt,
2357 builds/mac/FreeType.ppc_carbon.make.txt: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00002358 Skeleton files of MPW makefiles.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00002359
2360 * builds/mac/ascii2mpw.py: Added.
Werner Lemberg05cda082006-01-08 13:37:15 +00002361 Python script to make MPW makefile from skeleton.
Suzuki, Toshiya (鈴木俊哉)69d45172005-10-28 16:03:06 +00002362
2363 * builds/mac/README: Updated.
2364 Almost rewritten to use new files.
2365
23662005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2367
Werner Lemberg05cda082006-01-08 13:37:15 +00002368 * src/base/ftmac.c: Fix invalid casts from NULL to integer typed
2369 variables. Advised by David Turner, Masatake YAMATO, Sean McBride,
Suzuki, Toshiya (鈴木俊哉)45115762005-10-28 15:39:58 +00002370 and George Williams.
2371
Werner Lemberg4b5661c2005-10-27 21:28:35 +000023722005-10-27 Werner Lemberg <wl@gnu.org>
2373
2374 * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed.
2375 Obsolete.
2376
Werner Lemberg43b057b2005-10-26 18:37:40 +000023772005-10-25 Werner Lemberg <wl@gnu.org>
2378
2379 * src/sfnt/sfdriver.c (sfnt_interface): Move out
2380 `tt_face_get_kerning' from a #ifdef clause. Reported by Tony J.
2381 Ibbs <tibs@sj.co.uk>.
2382
Werner Lemberg6c0e7342005-10-23 19:31:01 +000023832005-10-23 Werner Lemberg <wl@gnu.org>
2384
2385 * src/base/ftdbgmem.c (ft_mem_debug_realloc): Make it compile with
2386 C++.
2387
David Turner398d64c2005-10-21 10:01:25 +000023882005-10-21 David Turner <david@freetype.org>
2389
Werner Lemberg90968f72005-10-22 10:34:45 +00002390 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_debug_realloc):
2391 Another realloc memory counting bug fix.
David Turner398d64c2005-10-21 10:01:25 +00002392
Werner Lemberg90968f72005-10-22 10:34:45 +00002393 * src/tools/Jamfile: Add missing file.
David Turner398d64c2005-10-21 10:01:25 +00002394
Werner Lemberg90968f72005-10-22 10:34:45 +00002395 * src/lzw/Jamfile: Fix incorrect source file reference.
David Turner398d64c2005-10-21 10:01:25 +00002396
David Turnerc1b6d082005-10-20 15:33:34 +000023972005-10-20 David Turner <david@freetype.org>
2398
Werner Lemberg560d5fe2005-10-21 09:08:28 +00002399 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_table_remove,
2400 ft_mem_debug_alloc, ft_mem_debug_free, ft_mem_debug_realloc): Fixes
2401 to better account for memory reallocations.
David Turnerc1b6d082005-10-20 15:33:34 +00002402
Werner Lemberg560d5fe2005-10-21 09:08:28 +00002403 * src/lzw/ftlzw2.c, src/lzw/ftzopen.h, src/lzw/ftzopen.c,
David Turner398d64c2005-10-21 10:01:25 +00002404 src/lzw/rules.mk: First version of LZW loader re-implementation.
2405 Apparently, this saves about 330 KB of heap memory when loading
Werner Lemberg560d5fe2005-10-21 09:08:28 +00002406 timR24.pcf.Z.
David Turnerc1b6d082005-10-20 15:33:34 +00002407
Wu, Chia-I (吳佳一)7e307762005-10-20 02:13:46 +000024082005-10-20 Chia-I Wu <b90201047@ntu.edu.tw>
2409
2410 * include/freetype/ftbitmap.h (FT_Bitmap_Copy, FT_Bitmap_Embolden),
2411 src/base/ftbdf.c (FT_Get_BDF_Property), src/cache/ftcmru.c
Werner Lemberg560d5fe2005-10-21 09:08:28 +00002412 (FTC_MruList_Reset, FTC_MruList_Done, FTC_MruList_Lookup): Fix
2413 FT_EXPORT/FT_EXPORT_DEF tagging.
Wu, Chia-I (吳佳一)7e307762005-10-20 02:13:46 +00002414
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +000024152005-10-19 Chia-I Wu <b90201047@ntu.edu.tw>
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002416
Werner Lemberg560d5fe2005-10-21 09:08:28 +00002417 * src/truetype/ttgload.c (TT_Load_Glyph): Allow size->ttmetrics to
2418 be invalid when FT_LOAD_NO_SCALE is set.
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +00002419
24202005-10-17 David Turner <david@freetype.org>
2421
2422 * src/base/ftobjs.c (FT_Open_Face): Don't call FT_New_GlyphSlot and
2423 FT_New_Size if we are opening a face with face_index < 0 (which is
2424 only used for testing the format).
2425
2426 * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate):
2427 Remove compiler warning.
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002428
24292005-10-16 David Turner <david@freetype.org>
2430
Wu, Chia-I (吳佳一)2293bb12005-10-19 08:07:38 +00002431 * src/tools/apinames.c: Add new tool to extract public API function
2432 names from header files.
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002433
24342005-10-05 Werner Lemberg <wl@gnu.org>
2435
2436 Add FT_FACE_FLAG_HINTER to indicate that a specific font driver has
2437 a hinting engine of its own.
2438
2439 * include/freetype/freetype.h (FT_FACE_FLAG_HINTER): New macro.
2440
2441 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
2442 (cid_face_init), src/truetype/ttobjs.c (tt_face_init)
2443 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER], src/type1/t1objs.c
2444 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init)
2445 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Update face flags.
2446
2447 * docs/CHANGES: Document it.
2448
24492005-09-27 Werner Lemberg <wl@gnu.org>
2450
2451 * builds/unix/freetype2.m4: Add license exception so that the file
2452 can be used in any other autoconf script.
2453
24542005-09-26 David Turner <david@freetype.org>
2455
2456 * src/autofit/aflatin.c (af_latin_compute_stem_width): Fix bad
2457 computation of the `vertical' flag, causing ugly things in LCD mode
2458 and others.
2459
24602005-09-23 David Turner <david@freetype.org>
2461
2462 * src/autofit/aflatin.c (af_latin_hints_init): Fix a bug that
2463 prevented internal hint mode bitflags from being computed correctly.
2464
2465 * src/base/Jamfile: Adding src/base/ftgxval.c.
2466
2467 * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
2468 src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c, src/gxvalid/gxvkern.c,
2469 src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
2470 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
2471 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
2472 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmorx.c,
2473 src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
2474 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx5.c,
2475 src/gxvalid/gxvopbd.c, src/gxvalid/gxvprop.c,
2476 src/truetype/ttgload.c: Remove _many_ compiler warnings when
2477 compiling with Visual C++ at maximum level (/W4).
2478
2479 * src/autofit/afangles.c (af_angle_atan): Replaced CORDIC-based
2480 implementation with one using lookup tables. This simple thing
2481 speeds up glyph loading by 18%, according to ftbench!
2482
2483 * src/sfnt/sfdriver.c (sfnt_get_interface): Don't check for
2484 `get_sfnt' and `load_sfnt' module interfaces.
2485
24862005-09-22 Werner Lemberg <wl@gnu.org>
2487
2488 * docs/CHANGES: Mention SING Glyphlet support.
2489
24902005-09-22 David Turner <david@freetype.org>
2491
2492 * src/base/Jamfile: Disable compilation of ftgxval module
2493 temporarily.
2494
24952005-09-19 David Somers <dsomers@omz13.com>
2496
2497 * freetype2/src/sfnt/ttload.c (sfnt_dir_check): Modified to allow a
2498 font to have no `head' table if tables `SING' and `META' are
2499 present; this is to support `SING Glyphlet'.
2500
2501 `SING Glyphlet' is an extension to OpenType developed by Adobe
2502 primarily to facilitate adding supplemental glyphs to an OpenType
2503 font (with emphasis on, but not necessariy limited to, gaiji to a
2504 CJK font). A SING Glyphlet Font is an OpenType font that contains
2505 the outline(s), either in a `glyf' or `CFF' table, for a glyph;
2506 `cmap', `BASE', and `GSUB' tables are present with the same format
2507 and functionaliy as a regular OpenType font; there are no `name',
2508 `head', `OS/2', and `post' tables; there are two new tables, `SING'
2509 which contains details about the glyphlet, and `META' which contains
2510 metadata.
2511
2512 Further information on the SING Glyphlet format can be found at:
2513
2514 http://www.adobe.com/products/indesign/sing_gaiji.html
2515
2516 * freetype2/include/freetype/ttags.h (TTAG_SING, TTAG_META): New
2517 macros for the OpenType tables `SING' and `META'. These two tables
2518 are used in SING Glyphlet Format fonts.
2519
25202005-09-09 Werner Lemberg <wl@gnu.org>
2521
2522 * src/sfnt/sfobjs.c (sfnt_load_face): Reactivate code to set
2523 FT_FACE_FLAG_KERNING which has been commented out erroneously.
2524
2525 * docs/CHANGES: Document it.
2526
25272005-09-05 Werner Lemberg <wl@gnu.org>
2528
2529 Fixes for `make multi' and using C++ compiler.
2530
2531 * gxvalid/gxvcommn.c (gxv_set_length_by_ushort_offset,
2532 gxv_set_length_by_ulong_offset, gxv_array_getlimits_byte,
2533 gxv_array_getlimits_ushort): Declare with FT_LOCAL_DEF.
2534 (gxv_compare_ranges): Make it static.
2535 (gxv_LookupTable_fmt0_validate, gxv_LookupTable_fmt2_validate,
2536 gxv_LookupTable_fmt4_validate, gxv_LookupTable_fmt6_validate,
2537 gxv_LookupTable_fmt8_validate, gxv_LookupTable_validate): Improve
2538 trace messages.
2539 (gxv_StateArray_validate, gxv_XStateArray_validate): s/class/clazz/.
2540 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
2541 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Move to
2542 gxvcommn.h.
2543
2544 * gxvalid/gxvcommn.h: Add prototypes for
2545 gxv_StateTable_subtable_setup, gxv_XStateTable_subtable_setup,
2546 gxv_XStateTable_validate, gxv_array_getlimits_byte,
2547 gxv_array_getlimits_ushort, gxv_set_length_by_ushort_offset,
2548 gxv_set_length_by_ulong_offset, gxv_odtect_add_range,
2549 gxv_odtect_validate.
2550 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
2551 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Moved from
2552 gxvcommn.c.
2553
2554 * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
2555 gxv_bsln_parts_fmt1_validate): Improve trace messages.
2556
2557 * gxvalid/gxvfeat.c: Split off predefined registry stuff to...
2558 * gxvalid/gxvfeat.h: New file.
2559
2560 * gxvalid/gxvjust.c (gxv_just_wdc_entry_validate): Improve trace
2561 message.
2562
2563 * gxvalid/gxvkern.c (GXV_kern_Dialect): Add KERN_DIALECT_UNKNOWN.
2564 (gxv_kern_subtable_fmt1_valueTable_load,
2565 gxv_kern_subtable_fmt1_subtable_setup,
2566 gxv_kern_subtable_fmt1_entry_validate): Fix C++ compiler errors.
2567 (gxv_kern_coverage_validate): Use KERN_DIALECT_UNKWOWN.
2568 Improve trace message.
2569 (gxv_kern_validate_generic): Fix C++ compiler error.
2570 Improve trace message.
2571 (gxv_kern_validate_classic): Fix C++ compiler error.
2572
2573 * gxvalid/gxvmort0.c (gxv_mort_subtable_type0_validate): Declare
2574 with FT_LOCAL_DEF.
2575
2576 * gxvalid/gxvmort1.c
2577 (gxv_mort_subtable_type1_substitutionTable_load,
2578 gxv_mort_subtable_type1_subtable_setup): Fix C++ compiler errors.
2579 (gxv_mort_subtable_type1_substTable_validate): Improve trace
2580 message.
2581 (gxv_mort_subtable_type1_validate): Declare with FT_LOCAL_DEF.
2582
2583 * gxvalid/gxvmort2.c (gxv_mort_subtable_type2_opttable_load,
2584 gxv_mort_subtable_type2_subtable_setup,
2585 gxv_mort_subtable_type2_ligActionOffset_validate,
2586 gxv_mort_subtable_type2_ligatureTable_validate): Fix C++ compiler
2587 errors.
2588 (gxv_mort_subtable_type2_validate): Declare with FT_LOCAL_DEF.
2589
2590 * gxvalid/gxvmort4.c (gxv_mort_subtable_type4_validate): Declare
2591 with FT_LOCAL_DEF.
2592
2593 * gxvalid/gxvmort5.c (gxv_mort_subtable_type5_subtable_setup,
2594 gxv_mort_subtable_type5_InsertList_validate): Fix C++ compiler
2595 errors.
2596 (gxv_mort_subtable_type5_validate): Declare with FT_LOCAL_DEF.
2597
2598 * gxvalid/gxvmort.c: Include gxvfeat.h.
2599 (gxv_mort_featurearray_validate, gxv_mort_coverage_validate):
2600 Declare with FT_LOCAL_DEF.
2601 (gxv_mort_subtables_validate, gxv_mort_validate): Improve trace
2602 messages.
2603
2604 * gxvalid/gxvmort.h (gxv_mort_feature_validate): Remove.
2605
2606 * gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_validate): Declare
2607 with FT_LOCAL_DEF.
2608
2609 * gxvalid/gxvmorx1.c
2610 (gxv_morx_subtable_type1_substitutionTable_load,
2611 gxv_morx_subtable_type1_subtable_setup,
2612 gxv_morx_subtable_type1_entry_validate,
2613 gxv_morx_subtable_type1_substitutionTable_validate): Fix C++
2614 compiler errors.
2615 (gxv_morx_subtable_type1_validate): Declare with FT_LOCAL_DEF.
2616
2617 * gxvalid/gxvmorx2.c (gxv_morx_subtable_type2_opttable_load,
2618 gxv_morx_subtable_type2_subtable_setup,
2619 gxv_morx_subtable_type2_ligActionIndex_validate,
2620 gxv_morx_subtable_type2_ligatureTable_validate): Fix C++ compiler
2621 errors.
2622 (gxv_morx_subtable_type2_validate): Declare with FT_LOCAL_DEF.
2623 Fix typo.
2624
2625 * gxvalid/gxvmorx4.c (gxv_morx_subtable_type4_validate): Declare
2626 with FT_LOCAL_DEF.
2627
2628 * gxvalid/gxvmorx5.c (gxv_morx_subtable_type5_insertionGlyph_load,
2629 gxv_morx_subtable_type5_subtable_setup): Fix C++ compiler error.
2630 (gxv_morx_subtable_type5_validate): Declare with FT_LOCAL_DEF.
2631
2632 * gxvalid/gxvmorx.c (gxv_morx_subtables_validate,
2633 gxv_morx_validate): Improve trace message.
2634
2635 * gxvalid/gxvopbd.c (gxv_opbd_LookupFmt4_transit): Fix compiler
2636 warnings.
2637 (gxv_opbd_validate): Improve trace message.
2638
2639 * gxvalid/gxvprop.c: Decorate constants with `U' and `L' where
2640 appropriate.
2641 (gxv_prop_zero_advance_validate, gxv_prop_validate): Improve trace
2642 message.
2643
2644 * gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): Remove unused
2645 parameter. Update all callers.
2646 (gxv_trak_validate): Improve trace message.
2647
2648 * rules.mk (GXV_DRV_H): Add gxvfeat.h.
2649
26502005-09-01 Werner Lemberg <wl@gnu.org>
2651
2652 * src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'.
2653
2654 * src/gxvalid/gxmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE),
2655 src/gxvalid/gxmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix
2656 typo.
2657
2658 * src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
2659 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx4.c,
2660 src/gxvalid/gxvmorx5.c, src/gxvalid/gxvmort.c: Improve trace
2661 messages.
2662 Decorate constants with `U' and `L' where appropriate.
2663 Fix compiler warnings.
2664
26652005-08-31 Werner Lemberg <wl@gnu.org>
2666
2667 * src/truetype/ttgload.c (load_truetype_glyph): Fix typo.
2668
2669 * src/gxvalid/gxvbsln.c (gxv_bsln_validate): Fix trace message.
2670
2671 * src/gxvalid/gxvcommn.c (gxv_odtect_add_range): Use `const'.
2672
2673 * src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c,
2674 src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmod.c,
2675 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
2676 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
2677 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmort.c: Improve trace
2678 messages.
2679 Decorate constants with `U' and `L' where appropriate.
2680 Fix compiler warnings.
2681
26822005-08-30 Werner Lemberg <wl@gnu.org>
2683
2684 * src/gxvalid/README: Revised.
2685 * src/gxvalid/gxvbsln.c: Fix compiler warnings.
2686 * src/gxvalid/gxvcommn.c: Fix compiler warnings.
2687 (gxv_XEntryTable_validate, gxv_compare_ranges): Remove unused
2688 parameter. Update all callers.
2689 Improve trace messages.
2690 Some formatting.
2691
26922005-08-29 Werner Lemberg <wl@gnu.org>
2693
2694 * include/freetype/freetype.h, include/freetype/ftchapters.h: Add
2695 a preliminary section with some explanations about user allocation.
2696
2697 * src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
2698 Don't abort if there are no data types, functions, etc., in a
2699 section.
2700 Print synopsis only if we have a data type, function, etc.
2701
2702 * docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
2703 docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
2704 docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
2705
27062005-08-28 George Williams <gww@silcom.com>
2707
2708 * src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed.
2709 (load_truetype_glyph): Limit recursion depth by `maxComponentDepth'.
2710
27112005-08-25 J. Ali Harlow <ali@avrc.city.ac.uk>
2712
2713 * builds/unix/freetype2.in (CFlags): Add missing directory.
2714
27152005-08-24 Werner Lemberg <wl@gnu.org>
2716
2717 * docs/CHANGES: Mention gxvalid module.
2718
27192005-08-23 Werner Lemberg <wl@gnu.org>
2720
2721 * src/autofit/aflatin.c (af_latin_metrics_scale): Initialize
2722 render mode properly. Reported by chris@dokein.co.uk.
2723
Werner Lemberg6be99f92006-02-09 07:38:57 +000027242005-08-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002725
2726 Add gxvalid module to validate TrueType GX/AAT tables.
2727
2728 Modifications on existing files:
2729
2730 * Jamfile: Register gxvalid module.
2731 * src/base/Jamfile: Register ftgxval.c.
2732 * src/base/rule.mk: Register ftgxval.c.
2733 * docs/INSTALL.ANY: Register gxvalid/gxvalid.c.
2734
2735 * include/freetype/config/ftheader.h (FT_GX_VALIDATE_H): New macro
2736 to include gxvalid header file.
2737 * include/freetype/config/ftmodule.h: Register gxv_module_class.
2738
2739 * include/freetype/ftchapters.h: Add comment about gx_validation.
2740 * include/freetype/ftotval.h: Change keyword FT_VALIDATE_XXX
2741 to FT_VALIDATE_OTXXX to co-exist with gxvalid.
2742 * include/freetype/tttags.h: Add tags for TrueType GX/AAT tables.
2743
2744 * include/freetype/internal/ftserv.h (FT_SERVICE_GX_VALIDATE_H): New
2745 macro for gxvalid service.
2746 * include/freetype/internal/fttrace.h: Add trace facilities for
2747 gxvalid.
2748
2749 New files on existing directories:
2750
2751 * include/freetype/internal/services/svgxval.h: Registration of
2752 validation service for TrueType GX/AAT and classic kern table.
2753 * include/freetype/ftgxval.h: Public API definition to use gxvalid.
2754 * src/base/ftgxval.c: Public API of gxvalid.
2755
2756 New files under src/gxvalid/:
2757
2758 * src/gxvalid/Jamfile src/gxvalid/README src/gxvalid/module.mk
2759 src/gxvalid/rules.mk src/gxvalid/gxvalid.c src/gxvalid/gxvalid.h
2760 src/gxvalid/gxvbsln.c src/gxvalid/gxvcommn.c src/gxvalid/gxvcommn.h
2761 src/gxvalid/gxverror.h src/gxvalid/gxvfeat.c src/gxvalid/gxvfgen.c
2762 src/gxvalid/gxvjust.c src/gxvalid/gxvkern.c src/gxvalid/gxvlcar.c
2763 src/gxvalid/gxvmod.c src/gxvalid/gxvmod.h src/gxvalid/gxvmort.c
2764 src/gxvalid/gxvmort.h src/gxvalid/gxvmort0.c src/gxvalid/gxvmort1.c
2765 src/gxvalid/gxvmort2.c src/gxvalid/gxvmort4.c src/gxvalid/gxvmort5.c
2766 src/gxvalid/gxvmorx.c src/gxvalid/gxvmorx.h src/gxvalid/gxvmorx0.c
2767 src/gxvalid/gxvmorx1.c src/gxvalid/gxvmorx2.c src/gxvalid/gxvmorx4.c
2768 src/gxvalid/gxvmorx5.c src/gxvalid/gxvopbd.c src/gxvalid/gxvprop.c
2769 src/gxvalid/gxvtrak.c: New files, gxvalid body.
2770
27712005-08-21 Werner Lemberg <wl@gnu.org>
2772
2773 * src/truetype/ttgload.c (TT_Load_Glyph): Only translate outline
2774 to (0,0) if bit 1 of the `head' table isn't set. This improves
2775 rendering of buggy fonts.
2776
27772005-08-20 Chia I Wu <b90201047@ntu.edu.tw>
2778
2779 * src/truetype/ttdriver.c (Load_Glyph): Don't check the validity of
2780 ttmetrics here. TrueType fonts with only sbits always have
2781 ttmetrics.valid set to false.
2782
2783 * src/truetype/ttgload.c (TT_Load_Glyph): Check that ttmetrics is
2784 valid before loading outline glyph.
2785
2786 * src/cache/ftcimage.c (FTC_INode_New): Fix a memory leak.
2787
27882005-08-20 Werner Lemberg <wl@gnu.org>
2789
2790 * src/sfnt/ttload.c (tt_face_load_metrics_header): Ignore missing
2791 `hhea' table for SFNT Mac fonts. Change based on a patch by
2792 mpsuzuki@hiroshima-u.ac.jp.
2793
27942005-08-20 Masatake YAMATO <jet@gyve.org>
2795
2796 * src/otvalid/otvmod.c (otv_validate): Use ft_validator_run instead
2797 of ft_setjmp.
2798
27992005-08-19 Werner Lemberg <wl@gnu.org>
2800
2801 * src/truetype/ttgload.c (load_truetype_glyph): Fix compiler
2802 warnings.
2803
28042005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
2805
2806 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright
2807 messages.
2808
28092005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
2810
2811 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Remove original
2812 TT_Done_Context and rename TT_Destroy_Context to TT_Done_Context
2813 with slight changes.
2814 Update all callers.
2815 (TT_New_Context): Now takes TT_Driver argument directly.
2816 Update all callers.
2817
2818 * src/truetype/ttobjs.h (tt_slot_init): New function.
2819 * src/truetype/ttobjs.c (tt_driver_init): Initialize execution
2820 context here.
2821 (tt_slot_init): New function to create extra points for the internal
2822 glyph loader. We then use it directly, instead of face's glyph
2823 loader, when loading glyph.
2824
2825 * src/truetype/ttdriver.c (tt_driver_class): Use tt_slot_init for
2826 glyph slot initialization.
2827 (Load_Glyph): Load flag dependencies are handled here. Return error
2828 if size is NULL.
2829
2830 * src/truetype/ttgload.c: Heavy cleanup and refactoring.
2831 (org_to_cur): Removed.
2832 (TT_Load_Simple_Glyph): Call FT_GlyphLoader_CheckPoints.
2833 (TT_Hint_Glyph): New funcion to hint a zone, prepared by caller.
2834 (TT_Process_Simple_Glyph): s/load/loader/.
2835 Use loader->pp values instead of recalculation.
2836 Use TT_Hint_Glyph.
2837 No need to save/restore loader->stream before and after
2838 TT_Vary_Get_Glyph_Deltas now.
2839 (TT_LOADER_SET_PP): New macro to calculate and set the four phantom
2840 points.
2841 (load_truetype_glyph): Never set exec->glyphSize to 0. This closes
2842 Savannah bug #13107.
2843 Forget glyph frame before calling TT_Process_Simple_Glyph.
2844 Use TT_LOADER_SET_PP.
2845 Scale all four phantom points.
2846 Split off some functionality to ...
2847 (TT_Process_Composite_Component, TT_Process_Composite_Glyph): These
2848 new functions.
2849 (TT_Load_Glyph): Set various fields of `glyph' here, not in
2850 load_truetype_glyph and compute_glyph_metrics.
2851 Split off some functionality to ...
2852 (load_sbit_image, tt_loader_init): These new functions.
2853 (compute_glyph_metrics): Call FT_Outline_Get_CBox.
2854
28552005-08-08 Werner Lemberg <wl@gnu.org>
2856
2857 * docs/INSTALL.ANY: Updated.
2858
28592005-08-05 Werner Lemberg <wl@gnu.org>
2860
2861 * src/cff/cffgload.c (cff_builder_close_contour),
2862 src/psaux/psobjs.c (t1_builder_close_contour): Protect against
2863 zero `outline' pointer.
2864
2865 * src/base/ftgloadr.c (FT_GlyphLoader_Add): Protect against zero
2866 `loader' address.
2867
28682005-08-03 Werner Lemberg <wl@gnu.org>
2869
2870 * src/sfnt/sfdriver.c (sfnt_interface) [FT_OPTIMIZE_MEMORY]:
2871 Reactivate pointers to tt_find_sbit_image and tt_load_sbit_metrics
2872 to make X work again.
2873
28742005-08-02 Werner Lemberg <wl@gnu.org>
2875
2876 * src/otvalid/otvcommn.h: Remove dead code.
2877
28782005-07-31 Chia I Wu <b90201047@ntu.edu.tw>
2879
2880 * src/truetype/ttobjs.h (tt_size_run_fpgm, tt_size_run_prep): New
2881 functions.
2882
2883 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): New
2884 functions.
2885 (tt_size_init): Add 4, instead of 2, (phantom) points to twilight
2886 zone.
2887 Move code that runs fpgm to tt_size_run_fpgm.
2888 (Reset_Outline_Size): Move code that runs prep to tt_size_run_prep.
2889 (tt_glyphzone_new): Allocate right size of arrays.
2890 Set max_points and max_contours properly.
2891
28922005-07-26 Chia I Wu <b90201047@ntu.edu.tw>
2893
2894 * src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary
2895 computations and clean up.
2896
2897 * src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the
2898 internal copy of metrics.
2899
29002005-07-12 Werner Lemberg <wl@gnu.org>
2901
2902 * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix prototype.
2903 Reported by Xerxes.
2904
29052005-07-04 Werner Lemberg <wl@gnu.org>
2906
2907 * include/freetype/internal/ftmemory.h (FT_REALLOC_ARRAY): Fix typo.
2908 Reported by Brett Hutley.
2909
29102005-06-30 David Turner <david@freetype.org>
2911
2912 * src/sfnt/ftbitmap.c, src/truetype/ttgload.c, src/sfnt/ttcmap.c:
2913 Removing compiler warnings (Visual C++ /W4).
2914
2915
2916 Implement a work-around for broken C preprocessor in Visual C++ (it
2917 has been confirmed by the MS developers that it is indeed a bug
2918 which won't be fixed in the very near future).
2919
2920 * Jamfile (FT2_COMPONENTS): Include otvalid (again).
2921
2922 * src/otvalid/otvcommn.h (OTV_NAME, OTV_FUNC): New macros.
2923 (OTV_NEST1, OTV_NEST2, OTV_NEST3): Use OTV_NAME and OTV_FUNC to
2924 avoid argument expansion by argument prescan.
2925 Append `Func' to all affected macros and change them to take just a
2926 single argument. Example: `AttachList' is renamed to
2927 `AttachListFunc'.
2928
2929 * src/otvalid/otvgdef.c, src/otvalid/otvgpos.c,
2930 src/otvalid/otvgsub.c, src/otvjstf.c: Append `Func' to macros
2931 affected by the changes to OTV_NESTx and modify them to take just a
2932 single argument.
2933
29342005-06-20 Chia I Wu <b90201047@ntu.edu.tw>
2935
2936 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: New function
2937 ft_glyphslot_grid_fit_metrics.
2938
2939 * src/truetype/ttgload.c (compute_glyph_metrics): Use
2940 ft_glyphslot_grid_fit_metrics.
2941
2942 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
2943 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Use
2944 ft_glyphslot_grid_fit_metrics.
2945 FT_Outline_Get_CBox is called twice.
2946
2947 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Modify metrics to more
2948 reasonable values when emboldening outline glyphs. The theoretic
2949 ones are unrealistic.
2950
29512005-06-16 Chia I Wu <b90201047@ntu.edu.tw>
2952
2953 * src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
2954 halved.
2955
2956 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
2957 strength.
2958 Don't increase slot->advance.y.
2959
29602005-06-16 Werner Lemberg <wl@gnu.org>
2961
2962 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
2963 (FREETYPE_PATCH): Set to 0.
2964
2965 * builds/unix/configure.ac (version_info): Set to 9:9:3.
2966 Currently, we are still binary compatible.
2967
2968 * builds/win32/visualc/index.html,
2969 builds/win32/visualc/freetype.dsp,
2970 builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
2971
2972 * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
2973 s/2.1.9/2.1.10/.
2974
2975 * docs/CHANGES, docs/VERSION.DLL: Updated.
2976
2977 * ChangeLog: Split off older entries into...
2978 * ChangeLog.20, ChangeLog.21: These new files.
2979
29802005-06-15 Kirill Smelkov <kirr@mns.spb.ru>
2981
2982 The next release will be 2.2.0, so don't worry about source code
2983 backwards compatibility.
2984
2985 * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
2986 FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
2987 FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
2988 include/freetype/ftrender.h (FT_Glyph_TransformFunc,
2989 FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
2990 parameters with `const' where appropriate.
2991
29922005-06-15 Chia I Wu <b90201047@ntu.edu.tw>
2993
2994 * src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
2995 to make glyphs centered vertically.
2996
2997 * src/truetype/ttgload.c (compute_glyph_metrics): Compute
2998 vertBearingY to make glyphs centered vertically.
2999 Fix some bugs in vertical metrics:
3000
3001 . loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
3002 units.
3003 . As we use the glyph's cbox to calculate the top bearing now
3004 there iss no need to adjust `top'.
3005
30062005-06-15 Werner Lemberg <wl@gnu.org>
3007
3008 * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
3009 in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake.
3010
30112005-06-13 Werner Lemberg <wl@gnu.org>
3012
3013 * docs/release: Update.
3014
3015----------------------------------------------------------------------------
3016
Werner Lemberg435046b2006-01-11 10:57:42 +00003017Copyright 2005, 2006 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003018David Turner, Robert Wilhelm, and Werner Lemberg.
3019
3020This file is part of the FreeType project, and may only be used, modified,
3021and distributed under the terms of the FreeType project license,
3022LICENSE.TXT. By continuing to use, modify, or distribute this file you
3023indicate that you have read the license and understand and accept it
3024fully.
3025
3026
3027Local Variables:
3028version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00003029coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003030End: