-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog.22
2837 lines (1987 loc) · 97.4 KB
/
ChangeLog.22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2006-05-12 Werner Lemberg <wl@gnu.org>
* Version 2.2.1 released.
=========================
Tag sources with `VER-2-2-1'.
2006-05-12 Werner Lemberg <wl@gnu.org>
* src/tools/docmaker/sources.py (re_source_keywords): Add word
boundary markers.
* src/tools/docmaker/content.py (re_field): Allow `.' in field names
(but not at the beginning or end).
* src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset.
(block_footer): Split into...
(block_footer_start, block_footer_middle, block_footer_end): This to
add navigation buttons.
(HtmlFormatter::block_exit): Updated.
* include/freetype/*: Many minor documentation improvements (adding
links, spelling errors, etc.).
2006-05-11 Werner Lemberg <wl@gnu.org>
* README: Minor updates.
* include/freetype/*: s/scale/scaling value/ where appropriate.
Many other minor documentation improvements.
* src/tools/docmaker/sources.py (re_italic, re_bold): Handle
trailing punctuation.
* src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Add
warning message for undefined cross references.
Update handling of re_italic and re_bold.
2006-05-11 Masatake YAMATO <jet@gyve.org>
* builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if
read system call returns -1.
Remove a redundant parenthesis.
2006-05-10 Werner Lemberg <wl@gnu.org>
* builds/unix/ftsystem.c (FT_Stream_Open): Avoid infinite loop if
given an empty, un-mmap()able file. Reported and suggested fix in
Savannah bug #16555.
* builds/freetype.mk (refdoc): Write-protect the `docmaker'
directory to suppress generation of .pyc files. According to the
Python docs there isn't a more elegant solution (currently).
* builds/toplevel.mk (dist): New target which builds .tar.gz,
.tar.bz2, and .zip files. Note that the version number is still
hard-coded.
(do-dist): Sub-target of `dist'.
(CONFIG_GUESS, CONFIG_SUB): New variables.
(.PHONY): Updated.
2006-05-09 Rajeev Pahuja <rpahuja@esri.com>
* builds/win32/visualc/freetype.sln,
builds/win32/visualc/freetype.vcproj: Upgraded to VS.NET 2005 from
VS.NET 2003
Added files ftbbox.c, fttype1.c, ftwinfnt.c, ftsynth.c.
* builds/win32/visualc/index.html: Updated.
2006-05-07 Werner Lemberg <wl@gnu.org>
Put version information into the configure script. Reported by Paul
Watson <pwatson@redlinepy.com>.
* builds/unix/configure.ac: Renamed to...
* builds/unix/configure.raw: This which now serves (with appropriate
modifications) as a template for configure.ac.
* version.sed: New script.
* autogen.sh: Generate configure.ac from configure.raw, using
FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h.
2006-05-06 Werner Lemberg <wl@gnu.org>
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
* builds/unix/configure.ac (version_info): Set to 9:10:3.
* builds/win32/visualc/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj, builds/freetype.mk (refdoc),
Jamfile (RefDoc), README: s/220/221/, s/2.2.0/2.2.1/.
Minor updates.
* docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS:
Updated.
* builds/unix/install-sh: Updated from `texinfo' CVS module at
savannah.gnu.org.
* devel/ftoption.h: Synchronize with
include/freetype/config/ftoption.h.
2006-05-04 Werner Lemberg <wl@gnu.org>
* src/lzw/ftlzw2.c: Renamed to...
* src/lzw/ftlzw.c: This.
* src/lzw/Jamfile, src/lzw/rules.mk: Updated.
* builds/mac/FreeType.m68k_cfm.make.txt,
builds/mac/FreeType.m68k_far.make.txt,
builds/mac/FreeType.ppc_carbon.make.txt,
builds/mac/FreeType.ppc_classic.make.txt: Updated.
2006-05-03 David Turner <david@freetype.org>
Allow compilation again with C++ compilers.
* include/freetype/internal/ftmemory.h (FT_ASSIGNP,
FT_ASSIGNP_INNER): New macros which do the actual assignment, and
which exist in two variants (for C and C++).
Update callers accordingly.
2006-05-03 Werner Lemberg <wl@gnu.org>
* include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed.
2006-05-02 Werner Lemberg <wl@gnu.org>
* include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++).
(FT_ALLOC): Remove redundant redefinition.
* builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use
`-Wstrict-prototypes'.
* src/base/ftstream.c (FT_Stream_EnterFrame): Add cast.
* include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]:
Remove `extern'.
2006-05-02 David Turner <david@freetype.org>
Update the memory management functions and macros to safely deal
with array size buffer overflows. This corresponds to attempts to
allocate arrays that are too large. For an example, consider the
following code:
count = read_uint32_from_file(); array = malloc( sizeof ( Item ) *
count ); for ( nn = 0; nn < count; nn++ )
array[nn] = read_item_from_file();
If `count' is larger than `FT_UINT_MAX/sizeof(Item)', the
multiplication overflows, and the array allocated os smaller than
the data read from the file. In this case, the heap will be
trashed, and this can be used as a denial-of-service attack, or make
the engine crash later.
The FT_ARRAY_NEW and FT_ARRAY_RENEW macros now ensure that the new
count is no larger than `FT_INT_MAX/item_size', otherwise a new
error code `FT_Err_Array_Too_Large' will be returned.
Note that the memory debugger now works again when FT_DEBUG_MEMORY
is defined. FT_STRICT_ALIASING has disappeared; the corresponding
code is now the default.
* include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]:
Don't use `extern'.
* include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error
code.
* include/freetype/internal/ftmemory.h (FT_DEBUG_INNER)
[FT_DEBUG_MEMORY]: New macro.
(ft_mem_realloc, ft_mem_qrealloc): Pass new object size count also.
(ft_mem_alloc_debug, ft_mem_qalloc_debug, ft_mem_realloc_debug,
ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
(FT_MEM_ALLOC, FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC,
FT_MEM_FREE): Redefine.
(FT_MEM_NEW_ARRAY, FT_MEM_RENEW_ARRAY, FT_MEM_QNEW_ARRAY,
FT_MEM_QRENEW_ARRAY): Redefine.
(FT_ALLOC_MULT, FT_REALLOC_MULT, FT_MEM_QALLOC_MULT,
FT_MEM_QREALLOC_MULT): New macros. Update callers where
appropriate.
(FT_MEM_SET_ERROR): Slightly redefine.
* src/base/ftdbgmem.c (_ft_debug_file, _ft_debug_lineno)
[FT_DEBUG_MEMORY]: New global variables, replacing...
(FT_MemTable_Rec) [FT_DEBUG_MEMORY]: Remove `filename' and
`line_no'. Update all callers.
(ft_mem_debug_alloc) [FT_DEBUG_MEMORY]: Avoid possible integer
overflow.
(ft_mem_alloc_debug, ft_mem_realloc_debug, ft_mem_qalloc_debug,
ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
* src/base/ftmac.c (read_lwfn): Catch integer overflow.
* src/base/ftrfork.c (raccess_guess_darwin_hfsplus): Ditto.
* src/base/ftutil.c: Remove special code for FT_STRICT_ALIASING.
(ft_mem_alloc, ft_mem_realloc, ft_mem_qrealloc): Rewrite.
* include/freetype/ftstream.h (FT_FRAME_ENTER, FT_FRAME_EXIT,
FT_FRAME_EXTRACT, FT_FRAME_RELEASE): Use FT_DEBUG_INNER to report the
place where the frames were entered, extracted, exited or released
in the memory debugger.
* src/base/ftstream.c (FT_Stream_ReleaseFrame) [FT_DEBUG_MEMORY]:
Call ft_mem_free.
(FT_Stream_EnterFrame) [FT_DEBUG_MEMORY]: Use ft_mem_qalloc.
(FT_Stream_ExitFrame) [FT_DEBUG_MEMORY]: Use ft_mem_free.
2006-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
* src/base/ftobjs.c (Mac_Read_POST_Resource): Correct pfb_pos
initialization, remove extra cast to copy to pfb_lenpos. This fixes
parsing of PFB fonts with MacOS resource fork (bug introduced
2003-09-11). Patch provided by Huib-Jan Imbens <ft@imbens.nl>.
2006-04-29 Werner Lemberg <wl@gnu.org>
Further C library abstraction. Based on a patch from
msn2@bidyut.com.
* include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE,
ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc,
ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for
C library functions. Update all users accordingly (and catch some
other places where the C library function was used instead of the
wrapper functions).
* src/base/ftsystem.c: Don't include stdio.h and stdlib.h.
* src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't
include malloc.h.
* builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c
and forthcoming versions.
2006-04-28 Werner Lemberg <wl@gnu.org>
* src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed,
obsolete.
2006-04-27 yi luo <luoyi.ly@gmail.com>
* builds/win32/visualc/freetype.vcproj: Updated.
2006-04-26 David Turner <david@freetype.org>
* Version 2.2 released.
=======================
Tag sources with `VER-2-2-0'.
2006-04-26 Werner Lemberg <wl@gnu.org>
* src/psaux/psobjs.c (shift_elements): Don't use FT_Long but
FT_PtrDiff for `delta'. Reported by Céline PILLET
<Celine.Pillet@Tagginfo.com>.
2006-04-21 David Turner <david@freetype.org>
* include/freetype/ftincrem.h: Documentation updates.
(FT_Incremental_Interface): New typedef.
* include/freetype/ftmodapi.h, include/freetype/ftglyph.h:
Documentation updates.
* include/freetype/freetype.h: Documentation update.
(FT_HAS_FAST_GLYPHS): Always set to 0.
* include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New):
Take an FT_Library argument instead of FT_Memory.
* src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2).
2006-04-13 David Turner <david@freetype.org>
* src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove
superfluous code in the auto-fitter's loader.
2006-04-05 Detlef Würkner <TetiSoft@apg.lahn.de>
* builds/amiga/makefile, builds/amiga/makefile.os4,
builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define.
2006-04-03 luoyi <luoyi.ly@gmail.com>
* builds/compiler/intelc.mk (TE): New variable.
(ANSIFLAGS): Updated.
2006-04-03 Werner Lemberg <wl@gnu.org>
* builds/exports.mk (clean_symbols_list, clean_apinames): Removed.
(CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE).
(.PHONY): Updated.
* configure.ac: Minor fixes to improve --help output.
* docs/PROBLEMS: New file.
2006-04-01 David Turner <david@freetype.org>
* docs/CHANGES: Updated.
* include/freetype/ftcache.h, include/freetype/config/ftheader.h:
Update documentation comments.
2006-04-01 Werner Lemberg <wl@gnu.org>
* builds/unix/install.mk (uninstall): Don't handle `cache'
directory which no longer exists.
2006-03-29 Detlef Würkner <TetiSoft@apg.lahn.de>
* src/psaux/psconv.c: Changed some variables which are expected to
hold negative values from `char' to `FT_Char' to allow building with
a compiler where `char' is unsigned by default.
2006-03-27 David Turner <david@freetype.org>
* src/sfnt/ttkern.c (tt_face_get_kerning): Fix a serious bug that
causes some programs to go into an infinite loop when dealing with
fonts that don't have a properly sorted kerning sub-table.
2006-03-26 Werner Lemberg <wl@gnu.org>
* src/bdf/bdflib.c (ERRMSG4): New macro.
(_bdf_parse_glyphs): Handle invalid BBX values.
* include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error
macro.
2006-03-23 Werner Lemberg <wl@gnu.org>
* docs/CHANGES: Updated.
* src/tools/docmaker/tohtml.py (html_header_2): Add horizontal
padding between table elements.
(html_header_1): The `DOCTYPE' comment must be in uppercase.
(make_html_para): Convert `...' quotations into real left and
right single quotes.
Use `para_header' and `para_footer'.
* src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'"
also.
2006-03-23 David Turner <david@freetype.org>
Add FT_Get_SubGlyph_Info API to retrieve subglyph data. Note that
we do not expose the FT_SubGlyphRec structure.
* include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved
to...
* include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here.
(FT_Get_SybGlyph_Info): New declaration.
* src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function.
* src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and
rsb_delta correctly in edge cases.
2006-03-22 Werner Lemberg <wl@gnu.org>
* src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup)
[!FTC_INLINE]: Compile conditionally.
* src/cache/ftccache.h: Updated.
* src/cache/ftcglyph.c (FTC_GNode_Init, FTC_GNode_UnselectFamily,
FTC_GNode_Done, FTC_GNode_Compare, FTC_Family_Init, FTC_GCache_New):
s/FT_EXPORT/FT_LOCAL/.
(FTC_GCache_Init, FTC_GCache_Done): Commented out.
(FTC_GCache_Lookup) [!FTC_INLINE]: Compile conditionally.
s/FT_EXPORT/FT_LOCAL/.
* src/cache/ftcglyph.h: Updated.
* src/cache/ftcimage.c (FTC_INode_Free, FTC_INode_New):
s/FT_EXPORT/FT_LOCAL/.
(FTC_INode_Weight): Commented out.
* src/cache/ftcimage.h: Updated.
* src/cache/ftmanag.c (FTC_Manager_Compress,
FTC_Manager_RegisterCache, FTC_Manager_FlushN):
s/FT_EXPORT/FT_LOCAL/.
* src/cache/ftmanag.h: Updated.
* src/cache/ftcsbits.c (FTC_SNode_Free, FTC_SNode_New,
FTC_SNode_Compare): s/FT_EXPORT/FT_LOCAL/.
(FTC_SNode_Weight): Commented out.
* src/cache/ftcsbits.h: Updated.
2006-03-22 Werner Lemberg <wl@gnu.org>
* src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy):
Remove, unused.
* src/cache/ftccmap.h: Remove, unused.
* src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h.
2006-03-21 Zhe Su <james.su@gmail.com>
* src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve
algorithm.
2006-03-21 Werner Lemberg <wl@gnu.org>
* src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member.
* src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'.
* src/cff/cffgload.c (cff_slot_load): Change type of third parameter
to `FT_UInt'.
Check range of `glyph_index'.
* src/cff/cffgload.h: Updated.
* src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset
correctly.
* builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc),
README: s/2.1.10/2.2/.
2006-03-21 David Turner <david@freetype.org>
* src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug
that crashes the auto-hinter (introduced by previous patch).
2006-03-20 Werner Lemberg <wl@gnu.org>
* builds/freetype.mk (CACHE_DIR, CACHE_H): Remove.
(FREETYPE_H): Updated.
* src/cache/rules.mk (CACHE_H_DIR): Remove.
(CACHE_DRV_H): Updated.
2006-03-20 David Turner <david@freetype.org>
* include/freetype/cache/ftccache.h,
include/freetype/cache/ftccmap.h, include/freetype/cache/ftcglyph.h
include/freetype/cache/ftcimage.h include/freetype/cache/ftcmanag.h
include/freetype/cache/ftcmru.h include/freetype/cache/ftcsbits.h:
Move to...
* src/cache/ftccache.h, src/cache/ftcglyph.h, src/cache/ftcimage.h,
src/cache/ftcsbits.h, src/cache/ftcmanag.h, src/cache/ftccmap.h,
src/cache/ftcmru.h: This new location.
Update declarations according to the changes in the corresponding
source files.
Note that these files are not used by FreeType clients; all public
APIs of the cache module have been already moved to
`include/freetype/ftcache.h', and all FT_CACHE_INTERNAL_XXXX_H
macros resolve to it.
Reason for the move is to allow modifications of the internals
without interferences with rogue clients. Note that there are no
known clients that access the cache internals at the moment.
* builds/unix/install.mk (install): Don't install headers from
$(CACHE_H).
Remove `freetype/cache' from the target directory.
* include/freetype/config/ftheader.h (FT_CACHE_MANAGER_H,
FT_CACHE_INTERNAL_MRU_H, FT_CACHE_INTERNAL_MANAGER_H,
FT_CACHE_INTERNAL_CACHE_H, FT_CACHE_INTERNAL_GLYPH_H,
FT_CACHE_INTERNAL_IMAGE_H, FT_CACHE_INTERNAL_SBITS_H): Point to
FT_CACHE_H.
* src/cache/ftcbasic.c, src/cache/ftccache.h, src/cache/ftccback.h,
src/cache/ftccmap.c, src/cache/ftcglyph.c, src/cache/ftcglyph.h,
src/cache/ftcimage.c, src/cache/ftcimage.h, src/cache/ftcmanag.c,
src/cache/ftcmanag.h, src/cache/ftcmru.h, src/cache/ftcsbits.c,
src/cache/ftcsbits.h: Don't use the FT_CACHE_INTERNAL_XXX_H macros
but include the headers directly (which are now in `src/cache').
* src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
macros but include the headers directly.
(FTC_Cache_Init, FTC_Cache_Done, FTC_Cache_NewNode,
FTC_Cache_Lookup, FTC_Cache_RemoveFaceID): Declare as FT_LOCAL_DEF.
* src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H
macros but include the headers directly.
(FTC_MruNode_Prepend, FTC_MruNode_Up, FTC_MruNode_Remove,
FTC_MruList_Init, FTC_MruList_Reset, FTC_MruList_Done,
FTC_MruList_New, FTC_MruList_Remove, FTC_MruList_RemoveSelection):
Declare as FT_LOCAL_DEF.
(FTC_MruListFind, FTC_MruList_Lookup) [!FTC_INLINE]: Compile
conditionally.
Declare as FT_LOCAL_DEF.
* builds/win32/visualc/freetype.dsp: Update project file, add
missing base source files (ftstroke.c, ftxf86.c, etc.).
* src/autofit/afcjk.c, src/autofit/aflatin.c, src/base/ftobjs.c,
src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrobjs.c,
src/sfnt/sfobjs.c, src/sfnt/ttmtx.c, src/type1/t1afm.c,
src/type1/t1objs.c: Remove compiler warnings when building with
Visual C++ 6 and /W4.
* src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
hinting for italic/oblique fonts.
* src/truetype/ttpload.c, src/truetype/ttpload.h
(tt_face_get_device_metrics): Change second argument to `FT_UInt'.
2006-03-06 David Turner <david@freetype.org>
* src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in
Mozilla/FireFox print preview in Ubuntu Hoary.
2006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
* src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not
return error when size == 0.
2006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
* src/base/ftobjs.c (FT_Done_Library): Remove modules in reverse
order so that type42 module is removed before truetype module. This
avoids double free in some occasions.
2006-02-28 David Turner <david@freetype.org>
* Release candidate VER-2-2-0-RC4.
----------------------------------
* docs/CHANGES: Documentation updates.
2006-02-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
* modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
build ftvalid in ft2demos. It works as dummy ABI if gxvalid is not
built.
2006-02-27 Werner Lemberg <wl@gnu.org>
* include/freetype/cache/ftccache.h
[FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of
ftc_node_done.
* src/cache/ftccache.c (ftc_node_destroy)
[!FT_CONFIG_OPTION_OLD_INTERNALS]: Mark as FT_LOCAL_DEF. This
should now fix all possible compilation options.
2006-02-27 David Turner <david@freetype.org>
* src/base/ftutil.c (ft_mem_alloc, ft_mem_qalloc, ft_mem_realloc,
ft_mem_qrealloc): Return an error if a negative size is passed in
parameters.
* src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since
it needs to be exported for rogue clients.
* src/pshinter/pshglob.c (psh_blues_set_zones_0): Prevent problems
with malformed fonts which have an odd number of blue values (these
are broken according to the specs).
* src/cff/cffload.c (cff_subfont_load), src/type1/t1load.c
(T1_Open_Face): Modify the loaders to force even-ness of
`num_blue_values'.
(cff_index_access_element): Ignore invalid entries in index files.
2006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
* src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width
or height is 0.
2006-02-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
* builds/mac/FreeType.m68k_cfm.make.txt,
builds/mac/FreeType.m68k_far.make.txt,
builds/mac/FreeType.ppc_carbon.make.txt,
builds/mac/FreeType.ppc_classic.make.txt: Update to new header
inclusion introduced on 2006-02-16.
2006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
* src/base/ftobjs.c (GRID_FIT_METRICS): New macro.
(ft_glyphslot_grid_fit_metrics, FT_Load_Glyph) [GRID_FIT_METRICS]:
Re-enable glyph metrics grid-fitting. It is now done in the base
layer.
(FT_Set_Char_Size, FT_Set_Pixel_Sizes): Make sure the width and
height are not too small or too large, just like we were doing in
2.1.10.
* src/autofit/afloader.c (af_loader_load_g): The vertical metrics
are not scaled.
2006-02-26 Werner Lemberg <wl@gnu.org>
* docs/release: Minor additions and clarifications.
* docs/CHANGES: Updated to reflect many fixes for backwards
compatibility. Still incomplete.
2006-02-26 David Turner <david@freetype.org>
* src/base/ftobjs.c (ft_recompute_scaled_metrics): Re-enable
conservative rounding of metrics to avoid breaking clients like
Pango (see http://bugzilla.gnome.org/show_bug.cgi?id=327852).
2006-02-25 Werner Lemberg <wl@gnu.org>
* devel/ftoption.h: Synchronize with
include/freetype/config/ftoption.h.
* src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again).
2006-02-25 David Turner <david@freetype.org>
Fix compiler warnings as well as C++ compilation problems.
Add missing prototypes.
* src/autofit/afcjk.c, src/base/ftobjs.c, src/base/ftutil.c,
src/bdf/bdfdrivr.c, src/cff/cffcmap.c, src/cff/cffobjs.c,
src/psaux/afmparse.c,, src/psaux/t1cmap.c, src/smooth/ftgrays.c
src/tools/apinames.c, src/truetype/ttdriver.c: Add various casts,
initialize variables, and decorate functions with FT_CALLBACK_DEF,
etc., to fix compiler warnings (and C++ compiling errors).
* src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with
gcc.
* builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but
FT_INTERNAL_STREAM_H.
* src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H.
* include/freetype/config/ftheader.h (FT_PFR_H): New macro.
* include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't
define for C++.
* include/freetype/internal/services/svotval.h: Don't include
FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H.
* include/freetype/internal/services/svpfr.h: Include FT_PFR_H.
* src/gzip/ftgzip.c: Include FT_GZIP_H.
* src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H.
* src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code.
2006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
* src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
ft_contour_enclosed, ft_outline_get_orientation): Commented out. We
have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized.
(FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'.
2006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
* include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update
documentation.
* include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap),
src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make
sure a glyph slot owns its bitmap. It is also marked experimental
and due to change.
(FT_GlyphSlot_Embolden): Undo the last change. It turns out that
rendering the outline confuses some applications.
2006-02-24 David Turner <david@freetype.org>
* Release candidate VER-2-2-0-RC3.
----------------------------------
* src/cache/ftcbasic.c: Correct compatibility hack bug.
2006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
* include/freetype/freetype.h (FT_Size_RequestRec): Change the type
of `width' and `height' to `FT_Long'.
(enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics):
New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales
directly.
2006-02-23 David Turner <david@freetype.org>
Two BDF patches from Debian libfreetype6 for 2.1.10.
* src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width
glyphs.
Fix a problem with large encodings.
Fix binary compatibility issues for gnustep-back (GNUstep backend
module) which still crashes under Sarge.
* src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec,
FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data
structures and enumerations.
(FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New
compatibility code.
* src/cache/ftcbasic.c: Fix a silly bug that prevented our `hack' to
support rogue clients compiled against 2.1.7 to work correctly.
This probably explains the GNUstep crashes with the second release
candidate.
2006-02-23 Chia-I Wu <b90201047@ntu.edu.tw>
* include/freetype/ftoutln.h (enum FT_Orientation): New value
`FT_ORIENTATION_NONE'.
* src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
ft_contour_enclosed, ft_outline_get_orientation): Another version of
`FT_Outline_Get_Orientation'. This version differs from the public
one in that each part (contour not enclosed in another contour) of the
outline is checked for orientation.
(FT_Outline_Embolden): Use `ft_outline_get_orientation'.
* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and
use bitmap's embolden routine when the outline one failed.
2006-02-22 Chia-I Wu <b90201047@ntu.edu.tw>
* modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI
compatibility.
* src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak.
* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned,
tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit
loading. (Only tested with bit aligned sbit with x_pos == 0.)
* src/truetype/ttpload.c (tt_face_load_hdmx,
tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
actually used.
2006-02-21 David Turner <david@freetype.org>
Add a new API named FT_Get_TrueType_Engine_Type to determine whether
we have a patented, unpatented, or unimplemented TrueType bytecode
interpreter.
The FT_Get_Module_Flags API was removed consequently.
* include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed.
Replaced with...
(FT_Get_TrueType_Engine_Type): This.
(FT_TrueTypeEngineType): New enumeration.
* include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
New macro.
* src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
(FT_Module_Get_Flags): Removed. Replaced with...
(FT_Get_TrueType_Engine_Type): This.
* src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
(tt_service_truetype_engine): New service structure.
(tt_services): Register it.
* include/freetype/internal/services/svtteng.h: New file.
* src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented
embedded bitmaps from being correctly listed and used.
* src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization
if FT_CONFIG_OPTION_OLD_INTERNALS is used. The is necessary because
libXfont is directly accessing the HMTX data, unfortunately.
Fix some compiler warnings.
(tt_face_get_metrics): Ditto.
* src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of
character advances.
2006-02-20 David Turner <david@freetype.org>
Support binary compatibility with the X.Org server's Xfont library.
Note that this change unfortunately prevents memory optimizations
for the embedded bitmap loader.
* include/freetype/internal/sfnt.h (SFNT_Interface): Move
`set_sbit_strike' and `load_sbit_metrics' fields to the location of
version 2.1.8.
* src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call
FT_Size_Request.
(sfnt_interface): Updated.
* src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load
ttsbit0.c.
(tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static.
* src/sfnt/ttsbit.h: Updated.
2006-02-17 David Turner <david@freetype.org>
* builds/unix/unix-cc.in (LINK_LIBRARY): Don't filter out exported
functions anymore. This ensures that all FT_BASE internal functions
are available for dynamic linking.
* include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE,
FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec,
FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New,
FTC_OldImage_Desc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx,
ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup,
FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup)
[FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the
cache sub-system. We try to recognize old legacy signatures with a
gross hack (hope it works).
2006-02-17 Werner Lemberg <wl@gnu.org>
* devel/ftoption.h: Synchronize with
include/freetype/config/ftoption.h.
2006-02-16 David Turner <david@freetype.org>
Massive changes to the internals to respect the internal object
layouts and exported functions of FreeType 2.1.7. Note that the
cache sub-system cannot be fully retrofitted, unfortunately.
* include/freetype/config/ftoption.h
(FT_CONFIG_OPTION_OLD_INTERNALS): New macro.
* include/freetype/ftcache.h, include/freetype/cache/ftccache.h,
include/freetype/cache/ftccmap.h,
include/freetype/internal/ftcalc.h,
include/freetype/internal/ftdriver.h,
include/freetype/internal/ftmemory.h,
include/freetype/internal/ftobjs.h,
include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
include/freetype/internal/t1types.h,
include/freetype/internal/tttypes.h, src/base/ftcalc.c,
src/base/ftdbgmem.c, src/base/ftobjs.c, src/base/ftutil.c,
src/bdf/bdfdrivr.c, src/cache/ftccache.c, src/cache/ftccback.h,
src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
Use FT_CONFIG_OPTION_OLD_INTERNALS to revive old functions and data
structures.
Move newly added structure elements to the end of the affected
structure and add stub fields (if FT_CONFIG_OPTION_OLD_INTERNALS is
defined) to assure binary compatibility with older FreeType
versions.
Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old
functions:
ft_stub_set_char_sizes
ft_stub_set_pixel_sizes
Rename the following internal functions to provide the old function
names as stubs:
FT_Alloc -> ft_mem_alloc
FT_QAlloc -> ft_mem_qalloc
FT_Realloc -> ft_mem_realloc
FT_QRealloc -> ft_mem_qrealloc
FT_Free -> ft_mem_free
FT_Alloc_Debug -> ft_mem_alloc_debug
FT_QAlloc_Debug -> ft_mem_qalloc_debug
FT_Realloc_Debug -> ft_mem_realloc_debug
FT_QRealloc_Debug -> ft_mem_qrealloc_debug
FT_Free_Debug -> ft_mem_free_debug
2006-02-15 Chia-I Wu <b90201047@ntu.edu.tw>
* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
unused `max_points' and `max_contours'.
* src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
(T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update.
* include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused
`max_components'.
* src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused
`loadSize' and `loadStack'.
* src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context),
src/sfnt/ttload.c (tt_face_load_maxp): Update.
* src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c
(sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix
compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not
defined.
* src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix
possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions.
(finally!)
For most OpenType tables, `tt_face_load_xxxx' simply loads the table
and `face->root' is set later in `sfnt_load_face'. Here, we try to
make this work for _all_ tables. Also improve tracing messages.
* src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c,
src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and
then exit. Error handling or setting face->root is done later in
`sfnt_load_face'.
* src/sfnt/sfobjs.c (sfnt_load_face): Work harder.
Mac bitmap-only fonts are not scalable.
Check that `face->header.Units_Per_EM' is not zero.
(LOAD_, LOADM_): Emit pretty trace messages.
* src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics
from `eblc'.
* src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c
(load_format_20, load_format_25, tt_face_get_ps_name): Use
face->max_profile.numGlyphs, instead of face->root.num_glyphs.
2006-02-14 Werner Lemberg <wl@gnu.org>
* include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in
documentation that negative strength values are possible.
Give an example call.
* include/freetype/freetype.h (FT_GlyphSlotRec): Improve
documentation of `outline' field.
* src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H.
* src/sfnt/sfdriver.c: Include ttmtx.h.
* src/autofit/afcjk.c: Include aftypes.h and aflatin.h.
2006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
* src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.
2006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
* src/sfnt/ttmtx.c (tt_face_load_hhea, tt_face_load_hmtx): Simply
return error if table is missing.
Check table length in non-FT_OPTIMIZE_MEMORY'ed `tt_face_load_hmtx'.
* src/sfnt/sfobjs.c (sfnt_load_face): Take care of missing metrics
tables. The last change makes Mac bitmap-only font not load and
this fixes it.
* src/truetype/ttgload.c (load_truetype_glyph): Fix compilation
error when FT_CONFIG_OPTION_INCREMENTAL is defined.
2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
Clean up the SFNT_Interface. In this final pass, `load_hmtx' is
split from `load_hhea'.
* include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'.
* src/sfnt/sfobjs.c (sfnt_load_face): Update.
2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
* src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of
code...
2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
Clean up the SFNT_Interface. In this pass, we want to treat the
font directory (offset table and table directory) as a normal table
like the others. This also means that TTCs are no longer recognized
there but in `init_face'.
* include/freetype/internal/sfnt.h (SFNT_Interface),
src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are
combined and renamed to `load_font_dir'.
* src/sfnt/ttload.h, src/sfnt/ttload.c:
s/sfnt_dir_check/check_table_dir/.
`sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'.
`tt_face_load_sfnt_header' and `tt_face_load_directory' are combined
and renamed to `tt_face_load_font_dir'.
* src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.
2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
Clean up the SFNT_Interface. Table loading functions are now named
after the tables' tags; `hdmx' is TrueType-specific and thus the
code is moved to the truetype module; `get_metrics' is moved here
from the truetype module so that the code can be shared with the cff
module.