forked from freetype/freetype
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog.23
7948 lines (5475 loc) · 266 KB
/
ChangeLog.23
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
2010-02-13 Werner Lemberg <wl@gnu.org>
* Version 2.3.12 released.
==========================
Tag sources with `VER-2-3-12'.
* docs/CHANGES: Updated.
* docs/VERSION.DLL: Update documentation and bump version number to
2.3.12.
* README, Jamfile (RefDoc),
builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj,
builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
builds/win32/visualce/freetype.vcproj,
builds/win32/visualce/index.html,
builds/wince/vc2005-ce/freetype.vcproj,
builds/wince/vc2005-ce/index.html,
builds/wince/vc2008-ce/freetype.vcproj,
builds/wince/vc2008-ce/index.html: s/2.3.11/2.3.12/, s/2311/2312/.
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 12.
* builds/unix/configure.raw (version_info): Set to 10:0:4.
2010-02-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Improve autotool version checking to work with beta releases.
* autogen.sh (check_tool_version): Improve the extraction of version
number from "tool --version" output. Some beta releases of
autotools have extra strings before version number.
2010-02-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Fix overallocating bug in FT_Outline_New_Internal().
* src/base/ftoutln.c (FT_Outline_New_Internal): The length of
FT_Outline->points[] should be numPoints, not 2 * numPoints.
Found by Paul Messmer, see
https://lists.gnu.org/archive/html/freetype-devel/2010-02/msg00003.html
2010-02-10 Ken Sharp <ken.sharp@artifex.com>
Really fix Savannah bug #28678 (part 2).
Since we consider `sbw' for the horizontal direction only, we still have
to synthesize vertical metrics if the user wants to use the vertical
writing direction.
* src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
(cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph):
Synthesize vertical metrics (only) if FT_LOAD_VERTICAL_LAYOUT is
set.
2010-02-10 Ken Sharp <ken.sharp@artifex.com>
Really fix Savannah bug #28678 (part 1).
After long discussion, we now consider the character width vector
(wx,wy) returned by the `sbw' Type 1 operator as being part of *one*
direction only. For example, if you are using the horizontal
writing direction, you get the horizontal and vertical components of
the advance width for this direction. Note that OpenType and CFF fonts
don't have such a vertical component; instead, the GPOS table can be
used to generate two-dimensional advance widths (but this isn't
handled by FreeType).
* include/freetype/ftincrem.h (FT_Incremental_MetricsRec): Add
`advance_v' field to hold the vertical component of the advance
value.
* src/truetype/ttgload.c (tt_get_metrics), src/cff/cffgload.c
(cff_slot_load), src/type1/t1gload.c
(T1_Parse_Glyph_And_Get_Char_String), src/cid/cidgload.c
(cid_load_glyph): Use it.
2010-02-08 Werner Lemberg <wl@gnu.org>
* devel/ftoption.h [FT_CONFIG_OPTION_PIC]: Define.
2010-02-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Prevent NULL pointer dereference passed to FT_Module_Requester.
* src/sfnt/sfdriver.c (sfnt_get_interface): Don't use `module'.
* src/psnames/psmodule.c (psnames_get_interface): Ditto.
* src/cff/cffdrivr.c (cff_get_interface): Check NULL `driver'.
* src/truetype/ttdriver.c (tt_get_interface): Ditto.
2010-01-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Fix memory leaks in previous patch.
* src/sfnt/sfobjs.c (sfnt_load_face): Don't overwrite the strings
allocated for face->root.family_name and style_name.
2010-01-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
New parameters for FT_Open_Face() to ignore preferred family names.
Preferred family names should be used for legacy systems that
can hold only a few faces (<= 4) for a family name. Suggested by
Andreas Heinrich.
https://lists.gnu.org/archive/html/freetype/2010-01/msg00001.html
* include/freetype/ftsnames.h (FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY,
FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Define.
* src/sfnt/sfobjs.c (sfnt_load_face): Check the arguments and
ignore preferred family and subfamily names if requested.
2010-01-27 Ken Sharp <ken.sharp@artifex.com>
Fix Savannah bug #28678.
* src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
(cid_load_glyph): Handle vertical metrics correctly.
* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Handle
vertical metrics correctly.
(T1_Load_Glyph): Don't synthesize vertical metrics.
2010-01-14 Werner Lemberg <wl@gnu.org>
Make FT_Set_Transform work if no renderer is available.
* src/base/ftobjs.c (FT_Load_Glyph): Apply `standard' transformation
if no renderer is compiled into the library.
2010-01-14 Werner Lemberg <wl@gnu.org>
Fix compilation warning.
* src/base/ftbase.h: s/LOCAL_DEF/LOCAL/.
* src/base/ftobjs.c: Include ftbase.h conditionally.
2010-01-11 Kwang Yul Seo <skyul@company100.net>
Provide inline assembly code for RVCT compiler.
This is Savannah patch #7059.
* include/freetype/config/ftconfig.h (FT_MULFIX_ASSEMBLER,
FT_MulFix_arm) [__CC_ARM || __ARM_CC]: Define.
2010-01-08 Ken Sharp <ken.sharp@artifex.com>
Fix Savannah bug #28521.
Issue #28226 involved a work-around for a font which used the
`setcurrentpoint' operator in an invalid way; this operator is only
supposed to be used with the result of OtherSubrs, and the font used
it directly. The supplied patch removed the block of code which
checked this usage entirely.
This turns out to be a Bad Thing. If `setcurrentpoint' is being
used correctly it should reset the flex flag in the decoder. If we
don't do this then the flag never gets reset and we omit any further
contours from the glyph (at least until we close the path or
similar).
* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
<op_setcurrentpoint>: Handle `flex_state' correctly.
2010-01-05 Werner Lemberg <wl@gnu.org>
Apply reports from clang static analyzer.
* src/lzw/ftlzw.c (ft_lzw_file_init), src/base/ftstroke.c
(FT_Stroker_ParseOutline), src/base/ftsynth.c
(FT_GlyphSlot_Embolden): Remove dead code.
* src/base/ftpatent.c (_tt_check_patents_in_table): Initialize
`offset_i' and `length_i'.
2010-01-05 Ralph Giles <giles@ghostscript.com>
Enable the incremental font interface by default.
Ghostscript requires the incremental font interface for handling
some Postscript documents. It is moving to using FreeType as its
primary renderer; supporting this in the default build makes it
Ghostscript to be linked against the system FreeType when one is
available.
* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL):
Uncomment.
2010-01-05 Werner Lemberg <wl@gnu.org>
Fix Savannah bug #28395.
* src/truetype/ttdriver.c (Load_Glyph), src/type1/t1gload.c
(T1_Load_Glyph): Don't check `num_glyphs' if incremental interface
is used.
2010-01-05 Ken Sharp <ken.sharp@artifex.com>
Make Type 1 `seac' operator work with incremental interface.
This fixes Savannah bug #28480.
* src/psaux/t1decode.c (t1operator_seac): Don't check `glyph_names'
if incremental interface is used.
2010-01-04 Ken Sharp <ken.sharp@artifex.com>
Make incremental interface work with TrueType fonts.
This fixes Savannah bug #28478.
* src/truetype/ttgload.c (load_truetype_glyph): Don't check
`glyf_offset' if incremental interface is used.
2009-12-31 Lars Abrahamsson <wonko@opera.com>
Make compilation with FT_CONFIG_OPTION_PIC work again.
* src/base/ftglyph.c (FT_Glyph_To_Bitmap) [FT_CONFIG_OPTION_PIC]:
Declare `library' for FT_BITMAP_GLYPH_CLASS_GET.
* src/base/ftinit.c (ft_destroy_default_module_classes,
ft_create_default_module_classes): Use proper casts (needed for C++
compilation).
* src/sfnt/ttcmap.c (tt_cmap13_class_rec): Use FT_DEFINE_TT_CMAP.
2009-12-22 Marc Kleine-Budde <mkl@pengutronix.de>
Make freetype-config aware of $SYSROOT.
This is Savannah patch #7040.
* builds/unix/freetype-config.in: Decorate with ${SYSROOT} where
appropriate.
2009-12-20 Werner Lemberg <wl@gnu.org>
Fix compiler warning.
Reported by Sean.
* src/base/ftdbgmem.c [!FT_DEBUG_MEMORY]: ANSI C doesn't like empty
source files; however, some compilers warn about an unused variable
declaration. This is now replaced with a typedef.
2009-12-18 Werner Lemberg <wl@gnu.org>
Fix Savannah bug #28320.
There exist corrupt, subsetted fonts (embedded in PDF files) which
contain a private dict that ends with an unterminated floating point
number (no operator following). We now ignore this error (as
acrobat does).
* src/cff/cffparse.c (cff_parser_run): Don't emit a syntax error for
unterminated floating point numbers.
2009-12-16 Werner Lemberg <wl@gnu.org>
Really fix compiler warnings.
Reported by Sean.
* src/truetype/ttgxvar.c (GX_PT_POINTS_ARE_WORDS,
GX_PT_POINT_RUN_COUNT_MASK): Convert enum values to macros.
2009-12-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Improve configure.raw to copy some options from CFLAGS to LDFLAGS.
The linker of Mac OS X 10.6 is sensitive to the architecture. If
the architectures are specified explicitly for the C compiler, the
linker requires the architecture specifications too.
* builds/unix/configure.raw: Replace `-isysroot' option parser by
more generic argument parser.
2009-12-15 Werner Lemberg <wl@gnu.org>
Fix compiler warnings.
Reported by Sean.
* src/truetype/ttgxvar.c (ft_var_readpackeddeltas): Fix counter data
type.
2009-12-14 Ken Sharp <ken.sharp@artifex.com>
Ignore invalid `setcurrentpoint' operations in Type 1 fonts.
This fixes Savannah bug #28226.
At least two wild PostScript files of unknown provenance contain
Type 1 fonts, apparently converted from TrueType fonts in earlier
PDF versions of the files, which use the `setcurrentpoint' operator
inappropriately.
FreeType currently throws an error in this case, but Ghostscript and
Adobe Distiller both accept the fonts and ignore the problem. This
commit #ifdefs out the check so PostScript interpreters using
FreeType can render these files.
The specification says `setcurrentpoint' should only be used to set
the point after a `Subr' call, but these fonts use it to set the
initial point to (0,0). Unnecessarily so, as they correctly use an
`hsbw' operation which implicitly sets the initial point.
* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
<op_setcurrentpoint>: Comment out code.
2009-12-14 Bram Tassyns <bramt@enfocus.be>
Fix parsing of /CIDFontVersion.
This fixes Savannah bug #28287.
* src/cid/cidtoken.h: `cid_version' in CID_FaceInfoRec (in
t1tables.h) is of type FT_Fixed.
2009-12-14 Werner Lemberg <wl@gnu.org>
Trace glyph index in CID module.
Suggested in Savannah patch #7023.
* src/cid/cidgload.c (cid_load_glyph): Add tracing message.
2009-12-03 Werner Lemberg <wl@gnu.org>
Fix compiler warnings.
* src/truetype/ttgload.c (tt_get_metrics): Put `Exit' label into the
proper preprocessor conditional.
* src/pfr/pfrobjs.c (pfr_slot_load): Pacify gcc.
2009-11-25 John Tytgat <John.Tytgat@esko.com>
Better handling of start of `eexec' section.
This fixes Savannah bug #28090.
* src/type1/t1parse.c (T1_Get_Private_Dict): Skip all whitespace
characters before start of `eexec' section.
2009-11-20 Werner Lemberg <wl@gnu.org>
Fix Savannah bug #27742.
* src/base/ftstroke.c (ft_stroker_outside): Avoid silent division by
zero, using a threshold for `theta'.
2009-11-20 Werner Lemberg <wl@gnu.org>
Fix Savannah bug #28036.
* src/type1/t1afm.c (t1_get_index): Fix comparison.
2009-11-16 Werner Lemberg <wl@gnu.org>
Fix compiler warnings.
Reported by Kevin Blenkinsopp <arqon@promode.org>.
* src/sfnt/ttload.c (check_table_dir): Use proper data type.
2009-11-15 Werner Lemberg <wl@gnu.org>
Really fix FreeDesktop bug #21197.
This also fixes Savannah bug #28021.
* src/autofit/aflatin.c (af_latin_metrics_check_digits),
src/autofit/aflatin2.c (af_latin2_metrics_check_digits): Fix loop.
2009-11-15 Werner Lemberg <wl@gnu.org>
Add tracing messages for advance values.
* src/base/ftobjs.c (FT_Load_Glyph), src/truetype/ttgload.c
(TT_Get_HMetrics, TT_Get_VMetrics): Do it.
2009-11-08 Werner Lemberg <wl@gnu.org>
Fix compiler warning.
Reported by Jeremy Manson <jeremy.manson@gmail.com>.
* src/truetype/ttgload.c (load_truetype_glyph): Initialize `error'.
2009-11-04 Werner Lemberg <wl@gnu.org>
Remove compiler warning.
Reported by Sean McBride <sean@rogue-research.com>.
* src/tools/apinames.c (read_header_file)<STATE_TYPE>: Use a cast to
`int', as specified in the printf(3) man page.
2009-11-04 Werner Lemberg <wl@gnu.org>
Fix Savannah bug #27921.
* src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
(cid_face_init), src/type1/t1afm.c (T1_Read_Metrics),
src/type1/t1objs.c (T1_Face_Init): Don't use unsigned constant
values for rounding if the argument can be negative.
2009-11-03 Bram Tassyns <bramt@enfocus.be>
Add basic support for Type1 charstrings in CFF.
This fixes Savannah bug #27922.
* src/cff/cffgload.c (CFF_Operator, cff_argument_counts): Handle
`seac', `sbw', and `setcurrentpoint' opcodes.
(cff_compute_bias): Add parameter to indicate the charstring type.
Update all callers.
(cff_operator_seac): Add parameter for side bearing.
(cff_decoder_parse_charstrings): Updated for more Type1 support.
2009-11-03 Werner Lemberg <wl@gnu.org>
Return correct `linearHoriAdvance' value for embedded TT bitmaps too.
Reported by Jeremy Manson <jeremy.manson@gmail.com>.
src/truetype/ttgload.c (load_truetype_glyph): Add parameter to
quickly load the glyph header only.
Update all callers.
(tt_loader_init): Add parameter to quickly load the `glyf' table
only.
Update all callers.
(TT_Load_Glyph): Compute linear advance values for embedded bitmap
glyphs too.
2009-11-03 Werner Lemberg <wl@gnu.org>
Improve code readability.
* src/ttgload.c (load_truetype_glyph): Move metrics calculation
to...
(tt_get_metrics): This new function.
2009-10-26 Bram Tassyns <bramt@enfocus.be>
Fix Savannah bug #27811.
* src/truetype/ttxgvar.c (ft_var_readpackeddeltas): Fix
signed/unsigned mismatch.
2009-10-19 Ning Dong <flintning@163.com>
Fix handling of `get' and `put' CFF instructions.
* src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_get,
cff_op_put>: Appendix B of Adobe Technote #5177 limits the number of
elements for the `get' and `put' operators to 32.
* src/cff/cffgload.h (CFF_MAX_TRANS_ELEMENTS): Define.
(CFF_Decoder): Use it for `buildchar' and remove `len_buildchar'.
2009-10-18 Werner Lemberg <wl@gnu.org>
Fix handling of `dup' CFF instruction.
Problem and solution reported by Ning Dong <flintning@163.com>.
* src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_dup>:
Increase `args' by 2, not 1.
2009-10-10 Werner Lemberg <wl@gnu.org>
* Version 2.3.11 released.
==========================
Tag sources with `VER-2-3-11'.
* docs/VERSION.DLL: Update documentation and bump version number to
2.3.11.
* README, Jamfile (RefDoc), builds/win32/visualc/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj,
builds/win32/visualce/index.html,
builds/win32/visualce/freetype.dsp,
builds/win32/visualce/freetype.vcproj: s/2.3.10/2.3.11/, s/2310/2311/.
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 11.
* builds/unix/configure.raw (version_info): Set to 9:22:3.
2009-10-10 Werner Lemberg <wl@gnu.org>
* docs/CHANGES, docs/release: Updated.
2009-10-10 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
* src/pcf/pcfread.c (pcf_get_properties): Fix a bug in the nprops
truncation. Reported by Martin von Gagern and Peter Volkov.
https://bugs.gentoo.org/288357 and https://bugs.gentoo.org/288256
2009-10-06 Werner Lemberg <wl@gnu.org>
* Version 2.3.10 released.
==========================
Tag sources with `VER-2-3-10'.
* builds/toplevel.mk (major, minor, patch): Fix regexp to allow more
than a single digit.
(dist): We now use git.
* docs/VERSION.DLL: Update documentation and bump version number to
2.3.10.
* README, Jamfile (RefDoc), builds/win32/visualc/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj,
builds/win32/visualce/index.html,
builds/win32/visualce/freetype.dsp,
builds/win32/visualce/freetype.vcproj: s/2.3.9/2.3.10/, s/239/2310/.
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.
* builds/unix/configure.raw (version_info): Set to 9:21:3.
2009-10-06 Werner Lemberg <wl@gnu.org>
Fix `make multi'.
* src/cache/ftccache.c, src/cache/ftcsbits.c (FT_COMPONENT): Define.
* src/sfnt/sfdriver.c: Include FT_INTERNAL_DEBUG_H.
2009-09-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
[cache] Fix Savannah bug #27441, clean up Redhat bugzilla #513582.
Tricky casts in FTC_{CACHE,GCACHE,MRULIST}_LOOKUP_CMP() are removed.
Now these functions should be called with FTC_Node or FTC_MruNode
variable, and the caller should cast them to appropriate pointers to
concrete data. These tricky casts can GCC-4.4 optimizer (-O2)
confused and the crashing binaries are generated.
* src/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Drop tricky cast.
Now the 4th argument `node' of this function should be typed as
FTC_MruNode.
* src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): For inline
implementation, new temporal variable FTC_MruNode `_mrunode' to take
the pointer from FTC_MRULIST_LOOKUP_CMP(). For non-inline
implementation, tricky cast is dropped.
* src/cache/ftcmanag.c (FTC_SIZE_NODE): New macro casting
to FTC_SizeNode.
(FTC_Manager_LookupSize): Replace FTC_SizeNode `node' by FTC_MruNode
`mrunode', and FTC_SIZE_NODE() is inserted.
(FTC_FACE_NODE): New macro casting to FTC_FaceNode.
(FTC_Manager_LookupFace) Replace FTC_FaceNode `node' by FTC_MruNode
`mrunode', and FTC_FACE_NODE() is inserted.
* src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Change the type of
`node' from FTC_INode to FTC_Node. Extra casting macro FTC_NODE()
is dropped.
(FTC_ImageCache_LookupScaler): Ditto.
(FTC_SBitCache_Lookup): Change the type of `node' from FTC_SNode to
FTC_Node. Extra casting macro FTC_NODE() is dropped. FTC_SNODE()
is inserted.
(FTC_SBitCache_LookupScaler): Ditto.
* src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the type of
`node' from FTC_CMapNode to FTC_Node. Extra casting macro
FTC_NODE() is dropped, FTC_CMAP_NODE() is inserted.
2009-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
[cache, psaux, type1] Fix for multi build.
In multi build, some cpp functions are left as unresolved symbols.
* src/cache/ftcbasic.c: Include FT_INTERNAL_DEBUG_H for FT_TRACE1().
* src/psaux/t1decode.c: Include FT_INTERNAL_CALC_H for
FIXED_TO_INT().
* src/type1/t1gload.c: Ditto.
* src/type1/t1objs.c: Ditto.
2009-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
[autofit] Fix for multi build.
* src/autofit/afmodule.h: Include FT_INTERNAL_OBJECTS_H to use
FT_DECLARE_MODULE() macro in multi build.
* src/autofit/aflatin.c: Include <ft2build.h> to handle
FT_ADVANCES_H correctly in multi build.
2009-09-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
[cache] Check the face filled by FTC_Manager_LookupFace().
* src/cache/ftcbasic.c (ftc_basic_family_get_count): Return
immediately if FTC_Manager_LookupFace() fills face by NULL. Such
case can occur when the code is optimized by GCC-4.2.x.
2009-09-23 Werner Lemberg <wl@gnu.org>
* docs/CHANGES: Updated.
2009-09-12 Werner Lemberg <wl@gnu.org>
[raster] Fix 5-levels grayscale output.
This was broken since version 2.3.0.
* src/raster/ftraster.c (count_table): Use pre-2.3.0 values (which
were then computed dynamically).
(Vertical_Gray_Sweep_Step): Updated.
(ft_black_render): Initialize `worker->gray_lines' (problem found by
valgrind).
(FT_RASTER_OPTION_ANTI_ALIASING, DEBUG_RASTER): Don't #undef, just
comment out.
2009-09-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Improve configure.raw for cross build.
* builds/unix/configure.raw: Remove temporal files created by the
suffix checking for CC_BUILD. Set XX_ANSIFLAGS and XX_CFLAGS when
cross compiler is GCC. AC_PROG_CC checks whether the cross compiler
is GCC, its result is stored in GCC.
2009-09-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
[BDF] Modify hash API to take size_t value instead of void *.
The hash API in BDF driver is designed to be generic, it takes
void * typed data. But BDF driver always gives an unsigned long
integer (the index to a property). To reduce non-essential
casts from unsigned long to void* and from void* to unsigned
long, the hash API is changed to take size_t integer.
The issue of incompatible cast between unsigned long and void*
on LLP64 platform is reported by NightStrike from MinGW-Win64
project. See
https://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
* src/bdf/bdf.h: The type of hashnode->data is changed from
void* to size_t.
* src/bdf/bdflib.c (hash_insert): Get size_t data, instead of
void* data.
(bdf_create_property): Get the name length of new property by
size_t variable, with a cut-off at FT_ULONG_MAX.
(_bdf_set_default_spacing): Get the name length of the face by
size_t variable, with a cut-off at 256.
(bdf_get_property): Get the property id by size_t variable to
reduce the casts between 32-bit prop ID & hashnode->data during
simple copying.
(_bdf_add_property): Ditto.
(_bdf_parse_start): Calculate the index to the property array
by size_t variable.
(bdf_get_font_property): Drop a cast to unsigned long.
2009-09-10 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
[Win64] Improve the computation of random seed from stack address.
On LLP64 platform, the conversion from pointer to FT_Fixed need
to drop higher 32-bit. Explicit casts are required. Reported by
NightStrike from MinGW-w64 project. See
https://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
* src/cff/cffgload.c: Convert the pointers to FT_Fixed explicitly.
* src/psaux/t1decode.c: Ditto.
2009-09-03 Werner Lemberg <wl@gnu.org>
[raster] Improvements for stand-alone mode.
* src/raster/rules.mk: Don't handle ftmisc.h. It is needed for
stand-alone mode only.
* src/raster/ftmisc.h (FT_MemoryRec, FT_Alloc_Func, FT_Free_Func,
FT_Realloc_Func): Copy declarations from ftsystem.h.
2009-09-02 Bram Tassyns <bramt@enfocus.be>
Improve vertical metrics calculation (Savannah bug #27364).
The calculation of `vertBearingX' is not defined in the OTF font
spec so FreeType does a `best effort' attempt. However, this value
is defined in the PDF and PostScript specs, and that algorithm is
better than the one FreeType currently uses:
FreeType: Use the middle of the bounding box as the X coordinate
of the vertical origin.
Adobe PDF spec: Use the middle of the horizontal advance vector as
the X coordinate of the vertical origin.
FreeType's algorithm goes wrong if you have a really small glyph
(like the full-width, circle-like dot at the end of the sentence, as
used in CJK scripts) with large bearings. With the FreeType
algorithm this dot gets centered on the baseline; with the PDF
algorithm it gets the correct location (in the top right). Note
that this is a serious issue, it's like printing the dot at the end
of a Roman sentence at the center of the textline instead of on the
baseline like it should. So i believe the PDF spec's algorithm
should be used in FreeType as well.
The `vertBearingY' value for such small glyphs is also very strange
if no `vmtx' information is present, since the height of the bbox is
not representable for the height of the glyph visually (the
whitespace up to the baseline is part of the glyph). The fix also
includes some code for a better estimate of `vertBearingY'.
* src/base/ftobjs.c (ft_synthesize_vertical_metrics): `vertBearingX'
is now calculated as described by the Adobe PDF Spec. Estimate for
`vertBearingY' now works better for small glyphs completely above or
below the baseline into account.
* src/cff/cffgload.c (cff_slot_load): `vertBearingX' is now
calculated as described by the Adobe PDF Spec. Vertical metrics
information was always ignored when FT_CONFIG_OPTION_OLD_INTERNALS
was not defined.
* src/truetype/ttgload.c (compute_glyph_metrics): `vertBearingX' is
now calculated as described by the Adobe PDF Spec.
2009-09-01 John Tytgat <John.Tytgat@esko.com>
Fix custom cmap for empty Type 1 font (Savannah bug #27294).
* include/freetype/internal/t1types.h (T1_EncodingRecRec_): Update
comment to reflect revised code_last meaning.
* src/type1/t1load.c (T1_Open_Face), src/type42/t42objs.c
(T42_Open_Face): Assign max_char as highest character code + 1 and
use this for T1_EncodingRecRec_::code_last.
* src/psaux/t1cmap.c (t1_cmap_custom_init): Follow revised
T1_EncodingRecRec_::code_last meaning.
2009-08-25 Werner Lemberg <wl@gnu.org>
Fix rendering of horizontally compressed CFFs.
Bug reported by Ivan Nincic <inincic@pdftron.com>.
* src/cff/cffgload.c (cff_slot_load): Thinko: Check `xx' element of
`font_matrix' also.
* docs/CHANGES: Updated.
2009-08-03 suyu0925@gmail.com
Don't call `ft_fseek' every time when executing `ft_fread'.
* src/base/ftstream.c (FT_Stream_Seek), src/base/ftsystem.c
(ft_ansi_stream_io): Implement it.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
sfnt: Cast a charcode to 32-bit in cmap format 14 parser.
* src/sfnt/ttcmap.c (tt_cmap14_char_var_index,
tt_cmap14_char_var_isdefault, tt_cmap14_char_variants,
tt_cmap14_variant_chars): Correct mismatches from
FT_CMap_CharVarIndexFunc prototype, FT_ULong arguments
are replaced by FT_UInt32 arguments.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
sfnt: Cast a charcode to 32-bit in cmap format 12 parser.
* src/sfnt/ttcmap.c (tt_cmap12_char_next):
Insert explicit cast from FT_UFast to FT_UInt32
for return value.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
psaux: Fix a few casts to FT_Int32 value.
* src/psaux/t1decode.c (t1_decoder_parse_charstrings):
Fix a few casts setting `value' from FT_Long to FT_Int32,
because `value' is typed as FT_Int32 since 2009-06-22.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
sfnt: Fix a data type mismatching with its source.
* src/sfnt/ttcmap.c (tt_cmap13_char_next): Fix the
type of `gindex' from FT_ULong to FT_UInt because
it is set by FT_UInt tt_cmap13_char_map_binary() or
TT_CMap13->cur_gindex.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
sfnt: Extend a few local variables to load 32-bit values.
* src/sfnt/ttkern.c (tt_face_load_kern): Extend `count'
and `kern' to load 32-bit values.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
pfr: Extend `num_aux' to take 32-bit value.
* src/pfr/pfrload.c (pfr_phy_font_load): Extend
`num_aux' to load 32-bit value.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
pcf: Truncate FT_ULong `nprops' to fit to int PCF_Face->nprops.
* src/pcf/pcfread.c (pcf_get_properties): Load `nprops'
as FT_ULong value from PCF file, but truncate it as
int to fit PCF_Face->nprops. The number of truncated
properties is shown in the trace message.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
gxvalid: Extend a few local variables to reduce the casts.
* src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate):
Extend `type' and `rest' to take FT_ULong values.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
gxvalid: Extend `settingTable' to take 32-bit offset.
* src/gxvalid/gxvfeat.c (gxv_feat_name_validate):
Extend `settingTable' to take 32-bit offset.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
autofit: Cast FT_Long glyph_count to compare with FT_UInt GID.
* src/autofit/afglobal.c (af_face_globals_is_digit,
af_face_globals_compute_script_coverage): Cast FT_Long
globals->glyph_count to FT_ULong, to compare with FT_UInt
gindex.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
smooth: Exclude 16-bit system in invalid pitch/height check.
* src/smooth/ftsmooth.c (ft_smooth_render_generic):
pitch and height are typed as FT_UInt but checked to fit
16-bit range, to avoid the overflows. On 16-bit system,
this checking inserts a conditional that never occurs.
2009-07-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
cff: Type large constants > 0x7FFF as long for 16-bit systems.
* src/cff/cffload.c (cff_charset_load): Type large
constants > 0x7FFF as long, because normal constants
are typed signed integer that is less than 0x8000 on
16-bit systems.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
base: Remove an unused variable.
* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove an
unused variable `library'. glyph->library is used.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
cache: Check higher bits in flags for non ILP32 systems.
4 public functions ought to take FT_ULong flags, but take
FT_UInt flags. To keep binary compatibility, we drop higher
bits on non ILP32 platforms,
ILP64 systems: No drop occurs.
LP64 systems: Higher bits are not used.
16-bit systems: Drop can occur.
See
https://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00065.html
These functions will be refined to take FT_ULong flags in
next bump with incompatible API change.
* src/cache/ftcbasic.c (FTC_ImageCache_Lookup):
Check `flags' in `type', the 2nd argument.
(FTC_SBitCache_Lookup): Ditto.
(FTC_ImageCache_LookupScaler): Check `load_flags',
the 3rd argument.
(FTC_SBitCache_LookupScaler): Ditto.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
sfnt: Ignore invalid GIDs in glyph name lookup.
* include/freetype/internal/fttrace.h:
New trace module for sfdriver.c is added.
* src/sfnt/sfdriver.c (sfnt_get_name_index):
Restrict glyph name lookup to FT_UInt GID.
Genuine TrueType can hold 16-bit glyphs.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
pcf: Fix a comparison between FT_Long and FT_ULong.
* src/pcf/pcfread.c (pcf_get_bitmaps): Return an error
if PCF_Face->nmetrics is negative.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
gxvalid: Guarantee `nFeatureFlags' size up to 32-bit.
* src/gxvalid/gxvmort.c (gxv_mort_featurearray_validate):
Extend the 3rd argument `nFeatureFlags' to FT_ULong.
* src/gxvalid/gxvmort.h: Ditto.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
sfnt: Insert explicit cast for LP64 system.
* src/sfnt/ttkern.c (tt_face_load_kern): Insert
cast from unsigned long to FT_UInt32.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
gxvalid: Guarantee `just' table size upto 32-bit.
* src/gxvalid/gxvjust.c (gxv_just_validate):
The type of `offset' is changed from FT_UInt to
FT_Offset, for 16-bit platforms.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
gxvalid: Guarantee `trak' table size upto 32-bit.
* src/gxvalid/gxvtrak.c (gxv_trak_validate):
The type of `offset' is changed from FT_UInt to
FT_Offset, for 16-bit platforms.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
type1: Fix a data type mismatching with its source.
* include/freetype/internal/t1types.h: The type of
T1_Face->buildchar is matched with T1_Decoder->top.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
pfr: Fix a data type mismatching with its source.
* src/pfr/pfrtypes.h: The type of PFR_KernItem->offset
is extended from FT_UInt32 to FT_Offset, because it is
calculated with the pointer difference, in
pfr_extra_item_load_kerning_pairs().
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
pfr: Fix a data type mismatching with its source.
* src/pfr/pfrtypes.h: The type of PFR_PhyFont->chars_offset
is extended from FT_UInt32 to FT_Offset, because it is
calculated with the pointer difference in pfr_phy_font_load().
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
pfr: Fix a data type mismatching with its source.
* src/pfr/pfrtypes.h: The type of PFR_PhyFont->bct_offset
is extended from FT_UInt32 to FT_Long, because it is
loaded by FT_STREAM_POS() in pfr_phy_font_load().
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
smooth: Improve the format in debug message.
* src/smooth/ftgrays.c (gray_dump_cells): Improve the
format specifications to dump variables.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
sfnt: Fix a data type mismatching with its source.
* src/sfnt/sfobjs.c (sfnt_load_face): The type of
local `flags' is matched with FT_Face->face_flags.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
psaux: Fix a data type mismatching with its source.
* include/freetype/internal/psaux.h: The type of
T1_DecoderRec.buildchar is matched with
T1_DecoderRec.top.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
truetype: Extend TrueType GX packed deltas to FT_Offset.
* src/truetype/ttgxvar.c (ft_var_readpackeddeltas):
The type of 2nd argument `delta_cnt' is changed from
FT_Int to FT_Offset, because its source can be cvt
table size calculated from stream position.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
truetype: Extend mmvar_len to hold size_t values.
* src/truetype/ttgxvar.h: The type of
GX_BlendRec.mmvar_len is changed from FT_Int to
FT_Offset, because TT_Get_MM_Var() calculates it
by sizeof() results.
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>