modules/freetype2/ChangeLog.23

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

michael@0 1 2010-02-13 Werner Lemberg <wl@gnu.org>
michael@0 2
michael@0 3 * Version 2.3.12 released.
michael@0 4 ==========================
michael@0 5
michael@0 6
michael@0 7 Tag sources with `VER-2-3-12'.
michael@0 8
michael@0 9 * docs/CHANGES: Updated.
michael@0 10
michael@0 11 * docs/VERSION.DLL: Update documentation and bump version number to
michael@0 12 2.3.12.
michael@0 13
michael@0 14 * README, Jamfile (RefDoc),
michael@0 15 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
michael@0 16 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
michael@0 17 builds/win32/visualc/freetype.dsp,
michael@0 18 builds/win32/visualc/freetype.vcproj,
michael@0 19 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
michael@0 20 builds/win32/visualce/freetype.vcproj,
michael@0 21 builds/win32/visualce/index.html,
michael@0 22 builds/wince/vc2005-ce/freetype.vcproj,
michael@0 23 builds/wince/vc2005-ce/index.html,
michael@0 24 builds/wince/vc2008-ce/freetype.vcproj,
michael@0 25 builds/wince/vc2008-ce/index.html: s/2.3.11/2.3.12/, s/2311/2312/.
michael@0 26
michael@0 27 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 12.
michael@0 28
michael@0 29 * builds/unix/configure.raw (version_info): Set to 10:0:4.
michael@0 30
michael@0 31 2010-02-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 32
michael@0 33 Improve autotool version checking to work with beta releases.
michael@0 34
michael@0 35 * autogen.sh (check_tool_version): Improve the extraction of version
michael@0 36 number from "tool --version" output. Some beta releases of
michael@0 37 autotools have extra strings before version number.
michael@0 38
michael@0 39 2010-02-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 40
michael@0 41 Fix overallocating bug in FT_Outline_New_Internal().
michael@0 42
michael@0 43 * src/base/ftoutln.c (FT_Outline_New_Internal): The length of
michael@0 44 FT_Outline->points[] should be numPoints, not 2 * numPoints.
michael@0 45 Found by Paul Messmer, see
michael@0 46 http://lists.gnu.org/archive/html/freetype-devel/2010-02/msg00003.html
michael@0 47
michael@0 48 2010-02-10 Ken Sharp <ken.sharp@artifex.com>
michael@0 49
michael@0 50 Really fix Savannah bug #28678 (part 2).
michael@0 51
michael@0 52 Since we consider `sbw' for the horizontal direction only, we still have
michael@0 53 to synthesize vertical metrics if the user wants to use the vertical
michael@0 54 writing direction.
michael@0 55
michael@0 56 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
michael@0 57 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph):
michael@0 58 Synthesize vertical metrics (only) if FT_LOAD_VERTICAL_LAYOUT is
michael@0 59 set.
michael@0 60
michael@0 61 2010-02-10 Ken Sharp <ken.sharp@artifex.com>
michael@0 62
michael@0 63 Really fix Savannah bug #28678 (part 1).
michael@0 64
michael@0 65 After long discussion, we now consider the character width vector
michael@0 66 (wx,wy) returned by the `sbw' Type 1 operator as being part of *one*
michael@0 67 direction only. For example, if you are using the horizontal
michael@0 68 writing direction, you get the horizontal and vertical components of
michael@0 69 the advance width for this direction. Note that OpenType and CFF fonts
michael@0 70 don't have such a vertical component; instead, the GPOS table can be
michael@0 71 used to generate two-dimensional advance widths (but this isn't
michael@0 72 handled by FreeType).
michael@0 73
michael@0 74 * include/freetype/ftincrem.h (FT_Incremental_MetricsRec): Add
michael@0 75 `advance_v' field to hold the vertical component of the advance
michael@0 76 value.
michael@0 77
michael@0 78 * src/truetype/ttgload.c (tt_get_metrics), src/cff/cffgload.c
michael@0 79 (cff_slot_load), src/type1/t1gload.c
michael@0 80 (T1_Parse_Glyph_And_Get_Char_String), src/cid/cidgload.c
michael@0 81 (cid_load_glyph): Use it.
michael@0 82
michael@0 83 2010-02-08 Werner Lemberg <wl@gnu.org>
michael@0 84
michael@0 85 * devel/ftoption.h [FT_CONFIG_OPTION_PIC]: Define.
michael@0 86
michael@0 87 2010-02-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 88
michael@0 89 Prevent NULL pointer dereference passed to FT_Module_Requester.
michael@0 90
michael@0 91 * src/sfnt/sfdriver.c (sfnt_get_interface): Don't use `module'.
michael@0 92 * src/psnames/psmodule.c (psnames_get_interface): Ditto.
michael@0 93
michael@0 94 * src/cff/cffdrivr.c (cff_get_interface): Check NULL `driver'.
michael@0 95 * src/truetype/ttdriver.c (tt_get_interface): Ditto.
michael@0 96
michael@0 97 2010-01-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 98
michael@0 99 Fix memory leaks in previous patch.
michael@0 100
michael@0 101 * src/sfnt/sfobjs.c (sfnt_load_face): Don't overwrite the strings
michael@0 102 allocated for face->root.family_name and style_name.
michael@0 103
michael@0 104 2010-01-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 105
michael@0 106 New parameters for FT_Open_Face() to ignore preferred family names.
michael@0 107
michael@0 108 Preferred family names should be used for legacy systems that
michael@0 109 can hold only a few faces (<= 4) for a family name. Suggested by
michael@0 110 Andreas Heinrich.
michael@0 111 http://lists.gnu.org/archive/html/freetype/2010-01/msg00001.html
michael@0 112
michael@0 113 * include/freetype/ftsnames.h (FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY,
michael@0 114 FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Define.
michael@0 115
michael@0 116 * src/sfnt/sfobjs.c (sfnt_load_face): Check the arguments and
michael@0 117 ignore preferred family and subfamily names if requested.
michael@0 118
michael@0 119 2010-01-27 Ken Sharp <ken.sharp@artifex.com>
michael@0 120
michael@0 121 Fix Savannah bug #28678.
michael@0 122
michael@0 123 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
michael@0 124 (cid_load_glyph): Handle vertical metrics correctly.
michael@0 125
michael@0 126 * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Handle
michael@0 127 vertical metrics correctly.
michael@0 128 (T1_Load_Glyph): Don't synthesize vertical metrics.
michael@0 129
michael@0 130 2010-01-14 Werner Lemberg <wl@gnu.org>
michael@0 131
michael@0 132 Make FT_Set_Transform work if no renderer is available.
michael@0 133
michael@0 134 * src/base/ftobjs.c (FT_Load_Glyph): Apply `standard' transformation
michael@0 135 if no renderer is compiled into the library.
michael@0 136
michael@0 137 2010-01-14 Werner Lemberg <wl@gnu.org>
michael@0 138
michael@0 139 Fix compilation warning.
michael@0 140
michael@0 141 * src/base/ftbase.h: s/LOCAL_DEF/LOCAL/.
michael@0 142 * src/base/ftobjc.s: Include ftbase.h conditionally.
michael@0 143
michael@0 144 2010-01-11 Kwang Yul Seo <skyul@company100.net>
michael@0 145
michael@0 146 Provide inline assembly code for RVCT compiler.
michael@0 147 This is Savannah patch #7059.
michael@0 148
michael@0 149 * include/freetype/config/ftconfig.h (FT_MULFIX_ASSEMBLER,
michael@0 150 FT_MulFix_arm) [__CC_ARM || __ARM_CC]: Define.
michael@0 151
michael@0 152 2010-01-08 Ken Sharp <ken.sharp@artifex.com>
michael@0 153
michael@0 154 Fix Savannah bug #28521.
michael@0 155
michael@0 156 Issue #28226 involved a work-around for a font which used the
michael@0 157 `setcurrentpoint' operator in an invalid way; this operator is only
michael@0 158 supposed to be used with the result of OtherSubrs, and the font used
michael@0 159 it directly. The supplied patch removed the block of code which
michael@0 160 checked this usage entirely.
michael@0 161
michael@0 162 This turns out to be a Bad Thing. If `setcurrentpoint' is being
michael@0 163 used correctly it should reset the flex flag in the decoder. If we
michael@0 164 don't do this then the flag never gets reset and we omit any further
michael@0 165 contours from the glyph (at least until we close the path or
michael@0 166 similar).
michael@0 167
michael@0 168 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
michael@0 169 <op_setcurrentpoint>: Handle `flex_state' correctly.
michael@0 170
michael@0 171 2010-01-05 Werner Lemberg <wl@gnu.org>
michael@0 172
michael@0 173 Apply reports from clang static analyzer.
michael@0 174
michael@0 175 * src/lzw/ftlzw.c (ft_lzw_file_init), src/base/ftstroke.c
michael@0 176 (FT_Stroker_ParseOutline), src/base/ftsynth.c
michael@0 177 (FT_GlyphSlot_Embolden): Remove dead code.
michael@0 178
michael@0 179 * src/base/ftpatent.c (_tt_check_patents_in_table): Initialize
michael@0 180 `offset_i' and `length_i'.
michael@0 181
michael@0 182 2010-01-05 Ralph Giles <giles@ghostscript.com>
michael@0 183
michael@0 184 Enable the incremental font interface by default.
michael@0 185
michael@0 186 Ghostscript requires the incremental font interface for handling
michael@0 187 some Postscript documents. It is moving to using FreeType as its
michael@0 188 primary renderer; supporting this in the default build makes it
michael@0 189 Ghostscript to be linked against the system FreeType when one is
michael@0 190 available.
michael@0 191
michael@0 192 * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL):
michael@0 193 Uncomment.
michael@0 194
michael@0 195 2010-01-05 Werner Lemberg <wl@gnu.org>
michael@0 196
michael@0 197 Fix Savannah bug #28395.
michael@0 198
michael@0 199 * src/truetype/ttdriver.c (Load_Glyph), src/type1/t1gload.c
michael@0 200 (T1_Loada_Glyph): Don't check `num_glyphs' if incremental interface
michael@0 201 is used.
michael@0 202
michael@0 203 2010-01-05 Ken Sharp <ken.sharp@artifex.com>
michael@0 204
michael@0 205 Make Type 1 `seac' operator work with incremental interface.
michael@0 206 This fixes Savannah bug #28480.
michael@0 207
michael@0 208 * src/psaux/t1decode.c (t1operator_seac): Don't check `glyph_names'
michael@0 209 if incremental interface is used.
michael@0 210
michael@0 211 2010-01-04 Ken Sharp <ken.sharp@artifex.com>
michael@0 212
michael@0 213 Make incremental interface work with TrueType fonts.
michael@0 214 This fixes Savannah bug #28478.
michael@0 215
michael@0 216 * src/truetype/ttgload.c (load_truetype_glyph): Don't check
michael@0 217 `glyf_offset' if incremental interface is used.
michael@0 218
michael@0 219 2009-12-31 Lars Abrahamsson <wonko@opera.com>
michael@0 220
michael@0 221 Make compilation with FT_CONFIG_OPTION_PIC work again.
michael@0 222
michael@0 223 * src/base/ftglyph.c (FT_Glyph_To_Bitmap) [FT_CONFIG_OPTION_PIC]:
michael@0 224 Declare `library' for FT_BITMAP_GLYPH_CLASS_GET.
michael@0 225
michael@0 226 * src/base/ftinit.c (ft_destroy_default_module_classes,
michael@0 227 ft_create_default_module_classes): Use proper casts (needed for C++
michael@0 228 compilation).
michael@0 229
michael@0 230 * src/sfnt/ttcmap.c (tt_cmap13_class_rec): Use FT_DEFINE_TT_CMAP.
michael@0 231
michael@0 232 2009-12-22 Marc Kleine-Budde <mkl@pengutronix.de>
michael@0 233
michael@0 234 Make freetype-config aware of $SYSROOT.
michael@0 235 This is Savannah patch #7040.
michael@0 236
michael@0 237 * builds/unix/freetype-config.in: Decorate with ${SYSROOT} where
michael@0 238 appropriate.
michael@0 239
michael@0 240 2009-12-20 Werner Lemberg <wl@gnu.org>
michael@0 241
michael@0 242 Fix compiler warning.
michael@0 243 Reported by Sean.
michael@0 244
michael@0 245 * src/base/ftdbgmem.c [!FT_DEBUG_MEMORY]: ANSI C doesn't like empty
michael@0 246 source files; however, some compilers warn about an unused variable
michael@0 247 declaration. This is now replaced with a typedef.
michael@0 248
michael@0 249 2009-12-18 Werner Lemberg <wl@gnu.org>
michael@0 250
michael@0 251 Fix Savannah bug #28320.
michael@0 252
michael@0 253 There exist corrupt, subsetted fonts (embedded in PDF files) which
michael@0 254 contain a private dict that ends with an unterminated floating point
michael@0 255 number (no operator following). We now ignore this error (as
michael@0 256 acrobat does).
michael@0 257
michael@0 258 * src/cff/cffparse.c (cff_parser_run): Don't emit a syntax error for
michael@0 259 unterminated floating point numbers.
michael@0 260
michael@0 261 2009-12-16 Werner Lemberg <wl@gnu.org>
michael@0 262
michael@0 263 Really fix compiler warnings.
michael@0 264 Reported by Sean.
michael@0 265
michael@0 266 * src/truetype/ttgxvar.c (GX_PT_POINTS_ARE_WORDS,
michael@0 267 GX_PT_POINT_RUN_COUNT_MASK): Convert enum values to macros.
michael@0 268
michael@0 269 2009-12-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 270
michael@0 271 Improve configure.raw to copy some options from CFLAGS to LDFLAGS.
michael@0 272 The linker of Mac OS X 10.6 is sensitive to the architecture. If
michael@0 273 the architectures are specified explicitly for the C compiler, the
michael@0 274 linker requires the architecture specifications too.
michael@0 275
michael@0 276 * builds/unix/configure.raw: Replace `-isysroot' option parser by
michael@0 277 more generic argument parser.
michael@0 278
michael@0 279 2009-12-15 Werner Lemberg <wl@gnu.org>
michael@0 280
michael@0 281 Fix compiler warnings.
michael@0 282 Reported by Sean.
michael@0 283
michael@0 284 * src/truetype/ttgxvar.c (ft_var_readpackeddeltas): Fix counter data
michael@0 285 type.
michael@0 286
michael@0 287 2009-12-14 Ken Sharp <ken.sharp@artifex.com>
michael@0 288
michael@0 289 Ignore invalid `setcurrentpoint' operations in Type 1 fonts.
michael@0 290 This fixes Savannah bug #28226.
michael@0 291
michael@0 292 At least two wild PostScript files of unknown provenance contain
michael@0 293 Type 1 fonts, apparently converted from TrueType fonts in earlier
michael@0 294 PDF versions of the files, which use the `setcurrentpoint' operator
michael@0 295 inappropriately.
michael@0 296
michael@0 297 FreeType currently throws an error in this case, but Ghostscript and
michael@0 298 Adobe Distiller both accept the fonts and ignore the problem. This
michael@0 299 commit #ifdefs out the check so PostScript interpreters using
michael@0 300 FreeType can render these files.
michael@0 301
michael@0 302 The specification says `setcurrentpoint' should only be used to set
michael@0 303 the point after a `Subr' call, but these fonts use it to set the
michael@0 304 initial point to (0,0). Unnecessarily so, as they correctly use an
michael@0 305 `hsbw' operation which implicitly sets the initial point.
michael@0 306
michael@0 307 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
michael@0 308 <op_setcurrentpoint>: Comment out code.
michael@0 309
michael@0 310 2009-12-14 Bram Tassyns <bramt@enfocus.be>
michael@0 311
michael@0 312 Fix parsing of /CIDFontVersion.
michael@0 313 This fixes Savannah bug #28287.
michael@0 314
michael@0 315 * src/cid/cidtoken.h: `cid_version' in CID_FaceInfoRec (in
michael@0 316 t1tables.h) is of type FT_Fixed.
michael@0 317
michael@0 318 2009-12-14 Werner Lemberg <wl@gnu.org>
michael@0 319
michael@0 320 Trace glyph index in CID module.
michael@0 321 Suggested in Savannah patch #7023.
michael@0 322
michael@0 323 * src/cid/cidgload.c (cid_load_glyph): Add tracing message.
michael@0 324
michael@0 325 2009-12-03 Werner Lemberg <wl@gnu.org>
michael@0 326
michael@0 327 Fix compiler warnings.
michael@0 328
michael@0 329 * src/truetype/ttgload.c (tt_get_metrics): Put `Exit' label into the
michael@0 330 proper preprocessor conditional.
michael@0 331 * src/pfr/pfrobjs.c (pfr_slot_load): Pacify gcc.
michael@0 332
michael@0 333 2009-11-25 John Tytgat <John.Tytgat@esko.com>
michael@0 334
michael@0 335 Better handling of start of `eexec' section.
michael@0 336 This fixes Savannah bug #28090.
michael@0 337
michael@0 338 * src/type1/t1parse.c (T1_Get_Private_Dict): Skip all whitespace
michael@0 339 characters before start of `eexec' section.
michael@0 340
michael@0 341 2009-11-20 Werner Lemberg <wl@gnu.org>
michael@0 342
michael@0 343 Fix Savannah bug #27742.
michael@0 344
michael@0 345 * src/base/ftstroke.c (ft_stroker_outside): Avoid silent division by
michael@0 346 zero, using a threshold for `theta'.
michael@0 347
michael@0 348 2009-11-20 Werner Lemberg <wl@gnu.org>
michael@0 349
michael@0 350 Fix Savannah bug #28036.
michael@0 351
michael@0 352 * src/type1/t1afm.c (t1_get_index): Fix comparison.
michael@0 353
michael@0 354 2009-11-16 Werner Lemberg <wl@gnu.org>
michael@0 355
michael@0 356 Fix compiler warnings.
michael@0 357 Reported by Kevin Blenkinsopp <arqon@promode.org>.
michael@0 358
michael@0 359 * src/sfnt/ttload.c (check_table_dir): Use proper data type.
michael@0 360
michael@0 361 2009-11-15 Werner Lemberg <wl@gnu.org>
michael@0 362
michael@0 363 Really fix FreeDesktop bug #21197.
michael@0 364 This also fixes Savannah bug #28021.
michael@0 365
michael@0 366 * src/autofit/aflatin.c (af_latin_metrics_check_digits),
michael@0 367 src/autofit/aflatin2.c (af_latin2_metrics_check_digits): Fix loop.
michael@0 368
michael@0 369 2009-11-15 Werner Lemberg <wl@gnu.org>
michael@0 370
michael@0 371 Add tracing messages for advance values.
michael@0 372
michael@0 373 * src/base/ftobjs.c (FT_Load_Glyph), src/truetype/ttgload.c
michael@0 374 (TT_Get_HMetrics, TT_Get_VMetrics): Do it.
michael@0 375
michael@0 376 2009-11-08 Werner Lemberg <wl@gnu.org>
michael@0 377
michael@0 378 Fix compiler warning.
michael@0 379 Reported by Jeremy Manson <jeremy.manson@gmail.com>.
michael@0 380
michael@0 381 * src/truetype/ttgload.c (load_truetype_glyph): Initialize `error'.
michael@0 382
michael@0 383 2009-11-04 Werner Lemberg <wl@gnu.org>
michael@0 384
michael@0 385 Remove compiler warning.
michael@0 386 Reported by Sean McBride <sean@rogue-research.com>.
michael@0 387
michael@0 388 * src/tools/apinames.c (read_header_file)<STATE_TYPE>: Use a cast to
michael@0 389 `int', as specified in the printf(3) man page.
michael@0 390
michael@0 391 2009-11-04 Werner Lemberg <wl@gnu.org>
michael@0 392
michael@0 393 Fix Savannah bug #27921.
michael@0 394
michael@0 395 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
michael@0 396 (cid_face_init), src/type1/t1afm.c (T1_Read_Metrics),
michael@0 397 src/type1/t1objs.c (T1_Face_Init): Don't use unsigned constant
michael@0 398 values for rounding if the argument can be negative.
michael@0 399
michael@0 400 2009-11-03 Bram Tassyns <bramt@enfocus.be>
michael@0 401
michael@0 402 Add basic support for Type1 charstrings in CFF.
michael@0 403 This fixes Savannah bug #27922.
michael@0 404
michael@0 405 * src/cff/cffgload.c (CFF_Operator, cff_argument_counts): Handle
michael@0 406 `seac', `sbw', and `setcurrentpoint' opcodes.
michael@0 407 (cff_compute_bias): Add parameter to indicate the charstring type.
michael@0 408 Update all callers.
michael@0 409 (cff_operator_seac): Add parameter for side bearing.
michael@0 410 (cff_decoder_parse_charstrings): Updated for more Type1 support.
michael@0 411
michael@0 412 2009-11-03 Werner Lemberg <wl@gnu.org>
michael@0 413
michael@0 414 Return correct `linearHoriAdvance' value for embedded TT bitmaps too.
michael@0 415 Reported by Jeremy Manson <jeremy.manson@gmail.com>.
michael@0 416
michael@0 417 src/truetype/ttgload.c (load_truetype_glyph): Add parameter to
michael@0 418 quickly load the glyph header only.
michael@0 419 Update all callers.
michael@0 420 (tt_loader_init): Add parameter to quickly load the `glyf' table
michael@0 421 only.
michael@0 422 Update all callers.
michael@0 423 (TT_Load_Glyph): Compute linear advance values for embedded bitmap
michael@0 424 glyphs too.
michael@0 425
michael@0 426 2009-11-03 Werner Lemberg <wl@gnu.org>
michael@0 427
michael@0 428 Improve code readability.
michael@0 429
michael@0 430 * src/ttgload.c (load_truetype_glyph): Move metrics calculation
michael@0 431 to...
michael@0 432 (tt_get_metrics): This new function.
michael@0 433
michael@0 434 2009-10-26 Bram Tassyns <bramt@enfocus.be>
michael@0 435
michael@0 436 Fix Savannah bug #27811.
michael@0 437
michael@0 438 * src/truetype/ttxgvar.c (ft_var_readpackeddeltas): Fix
michael@0 439 signed/unsigned mismatch.
michael@0 440
michael@0 441 2009-10-19 Ning Dong <flintning@163.com>
michael@0 442
michael@0 443 Fix handling of `get' and `put' CFF instructions.
michael@0 444
michael@0 445 * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_get,
michael@0 446 cff_op_put>: Appendix B of Adobe Technote #5177 limits the number of
michael@0 447 elements for the `get' and `put' operators to 32.
michael@0 448 * src/cff/cffgload.h (CFF_MAX_TRANS_ELEMENTS): Define.
michael@0 449 (CFF_Decoder): Use it for `buildchar' and remove `len_buildchar'.
michael@0 450
michael@0 451 2009-10-18 Werner Lemberg <wl@gnu.org>
michael@0 452
michael@0 453 Fix handling of `dup' CFF instruction.
michael@0 454 Problem and solution reported by Ning Dong <flintning@163.com>.
michael@0 455
michael@0 456 * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_dup>:
michael@0 457 Increase `args' by 2, not 1.
michael@0 458
michael@0 459 2009-10-10 Werner Lemberg <wl@gnu.org>
michael@0 460
michael@0 461 * Version 2.3.11 released.
michael@0 462 ==========================
michael@0 463
michael@0 464
michael@0 465 Tag sources with `VER-2-3-11'.
michael@0 466
michael@0 467 * docs/VERSION.DLL: Update documentation and bump version number to
michael@0 468 2.3.11.
michael@0 469
michael@0 470 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
michael@0 471 builds/win32/visualc/freetype.dsp,
michael@0 472 builds/win32/visualc/freetype.vcproj,
michael@0 473 builds/win32/visualce/index.html,
michael@0 474 builds/win32/visualce/freetype.dsp,
michael@0 475 builds/win32/visualce/freetype.vcproj: s/2.3.10/2.3.11/, s/2310/2311/.
michael@0 476
michael@0 477 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 11.
michael@0 478
michael@0 479 * builds/unix/configure.raw (version_info): Set to 9:22:3.
michael@0 480
michael@0 481 2009-10-10 Werner Lemberg <wl@gnu.org>
michael@0 482
michael@0 483 * docs/CHANGES, docs/release: Updated.
michael@0 484
michael@0 485 2009-10-10 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 486
michael@0 487 * src/pcf/pcfread.c (pcf_get_properties): Fix a bug in the nprops
michael@0 488 truncation. Reported by Martin von Gagern and Peter Volkov.
michael@0 489 https://bugs.gentoo.org/288357 and https://bugs.gentoo.org/288256
michael@0 490
michael@0 491 2009-10-06 Werner Lemberg <wl@gnu.org>
michael@0 492
michael@0 493 * Version 2.3.10 released.
michael@0 494 ==========================
michael@0 495
michael@0 496
michael@0 497 Tag sources with `VER-2-3-10'.
michael@0 498
michael@0 499 * builds/toplevel.mk (major, minor, patch): Fix regexp to allow more
michael@0 500 than a single digit.
michael@0 501 (dist): We now use git.
michael@0 502
michael@0 503 * docs/VERSION.DLL: Update documentation and bump version number to
michael@0 504 2.3.10.
michael@0 505
michael@0 506 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
michael@0 507 builds/win32/visualc/freetype.dsp,
michael@0 508 builds/win32/visualc/freetype.vcproj,
michael@0 509 builds/win32/visualce/index.html,
michael@0 510 builds/win32/visualce/freetype.dsp,
michael@0 511 builds/win32/visualce/freetype.vcproj: s/2.3.9/2.3.10/, s/239/2310/.
michael@0 512
michael@0 513 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.
michael@0 514
michael@0 515 * builds/unix/configure.raw (version_info): Set to 9:21:3.
michael@0 516
michael@0 517 2009-10-06 Werner Lemberg <wl@gnu.org>
michael@0 518
michael@0 519 Fix `make multi'.
michael@0 520
michael@0 521 * src/cache/ftccache.c, src/cache/ftcsbits.c (FT_COMPONENT): Define.
michael@0 522
michael@0 523 * src/sfnt/sfdriver.c: Include FT_INTERNAL_DEBUG_H.
michael@0 524
michael@0 525 2009-09-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 526
michael@0 527 [cache] Fix Savannah bug #27441, clean up Redhat bugzilla #513582.
michael@0 528 Tricky casts in FTC_{CACHE,GCACHE,MRULIST}_LOOKUP_CMP() are removed.
michael@0 529 Now these functions should be called with FTC_Node or FTC_MruNode
michael@0 530 variable, and the caller should cast them to appropriate pointers to
michael@0 531 concrete data. These tricky casts can GCC-4.4 optimizer (-O2)
michael@0 532 confused and the crashing binaries are generated.
michael@0 533
michael@0 534 * src/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Drop tricky cast.
michael@0 535 Now the 4th argument `node' of this function should be typed as
michael@0 536 FTC_MruNode.
michael@0 537
michael@0 538 * src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): For inline
michael@0 539 implementation, new temporal variable FTC_MruNode `_mrunode' to take
michael@0 540 the pointer from FTC_MRULIST_LOOKUP_CMP(). For non-inline
michael@0 541 implementation, tricky cast is dropped.
michael@0 542
michael@0 543 * src/cache/ftcmanag.c (FTC_SIZE_NODE): New macro casting
michael@0 544 to FTC_SizeNode.
michael@0 545 (FTC_Manager_LookupSize): Replace FTC_SizeNode `node' by FTC_MruNode
michael@0 546 `mrunode', and FTC_SIZE_NODE() is inserted.
michael@0 547 (FTC_FACE_NODE): New macro casting to FTC_FaceNode.
michael@0 548 (FTC_Manager_LookupFace) Replace FTC_FaceNode `node' by FTC_MruNode
michael@0 549 `mrunode', and FTC_FACE_NODE() is inserted.
michael@0 550
michael@0 551 * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Change the type of
michael@0 552 `node' from FTC_INode to FTC_Node. Extra casting macro FTC_NODE()
michael@0 553 is dropped.
michael@0 554 (FTC_ImageCache_LookupScaler): Ditto.
michael@0 555 (FTC_SBitCache_Lookup): Change the type of `node' from FTC_SNode to
michael@0 556 FTC_Node. Extra casting macro FTC_NODE() is dropped. FTC_SNODE()
michael@0 557 is inserted.
michael@0 558 (FTC_SBitCache_LookupScaler): Ditto.
michael@0 559
michael@0 560 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the type of
michael@0 561 `node' from FTC_CMapNode to FTC_Node. Extra casting macro
michael@0 562 FTC_NODE() is dropped, FTC_CMAP_NODE() is inserted.
michael@0 563
michael@0 564 2009-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 565
michael@0 566 [cache, psaux, type1] Fix for multi build.
michael@0 567 In multi build, some cpp functions are left as unresolved symbols.
michael@0 568
michael@0 569 * src/cache/ftcbasic.c: Include FT_INTERNAL_DEBUG_H for FT_TRACE1().
michael@0 570
michael@0 571 * src/psaux/t1decode.c: Include FT_INTERNAL_CALC_H for
michael@0 572 FIXED_TO_INT().
michael@0 573 * src/type1/t1gload.c: Ditto.
michael@0 574 * src/type1/t1objs.c: Ditto.
michael@0 575
michael@0 576 2009-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 577
michael@0 578 [autofit] Fix for multi build.
michael@0 579
michael@0 580 * src/autofit/afmodule.h: Include FT_INTERNAL_OBJECTS_H to use
michael@0 581 FT_DECLARE_MODULE() macro in multi build.
michael@0 582
michael@0 583 * src/autofit/aflatin.c: Include <ft2build.h> to handle
michael@0 584 FT_ADVANCES_H correctly in multi build.
michael@0 585
michael@0 586 2009-09-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 587
michael@0 588 [cache] Check the face filled by FTC_Manager_LookupFace().
michael@0 589
michael@0 590 * src/cache/ftcbasic.c (ftc_basic_family_get_count): Return
michael@0 591 immediately if FTC_Manager_LookupFace() fills face by NULL. Such
michael@0 592 case can occur when the code is optimized by GCC-4.2.x.
michael@0 593
michael@0 594 2009-09-23 Werner Lemberg <wl@gnu.org>
michael@0 595
michael@0 596 * docs/CHANGES: Updated.
michael@0 597
michael@0 598 2009-09-12 Werner Lemberg <wl@gnu.org>
michael@0 599
michael@0 600 [raster] Fix 5-levels grayscale output.
michael@0 601 This was broken since version 2.3.0.
michael@0 602
michael@0 603 * src/raster/ftraster.c (count_table): Use pre-2.3.0 values (which
michael@0 604 were then computed dynamically).
michael@0 605 (Vertical_Gray_Sweep_Step): Updated.
michael@0 606
michael@0 607 (ft_black_render): Initialize `worker->gray_lines' (problem found by
michael@0 608 valgrind).
michael@0 609
michael@0 610 (FT_RASTER_OPTION_ANTI_ALIASING, DEBUG_RASTER): Dont' #undef, just
michael@0 611 comment out.
michael@0 612
michael@0 613 2009-09-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 614
michael@0 615 Improve configure.raw for cross build.
michael@0 616
michael@0 617 * builds/unix/configure.raw: Remove temporal files created by the
michael@0 618 suffix checking for CC_BUILD. Set XX_ANSIFLAGS and XX_CFLAGS when
michael@0 619 cross compiler is GCC. AC_PROG_CC checks whether the cross compiler
michael@0 620 is GCC, its result is stored in GCC.
michael@0 621
michael@0 622 2009-09-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 623
michael@0 624 [BDF] Modify hash API to take size_t value instead of void *.
michael@0 625
michael@0 626 The hash API in BDF driver is designed to be generic, it takes
michael@0 627 void * typed data. But BDF driver always gives an unsigned long
michael@0 628 integer (the index to a property). To reduce non-essential
michael@0 629 casts from unsigned long to void* and from void* to unsigned
michael@0 630 long, the hash API is changed to take size_t integer.
michael@0 631 The issue of incompatible cast between unsigned long and void*
michael@0 632 on LLP64 platform is reported by NightStrike from MinGW-Win64
michael@0 633 project. See
michael@0 634 http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
michael@0 635
michael@0 636 * src/bdf/bdf.h: The type of hashnode->data is changed from
michael@0 637 void* to size_t.
michael@0 638
michael@0 639 * src/bdf/bdflib.c (hash_insert): Get size_t data, instead of
michael@0 640 void* data.
michael@0 641 (bdf_create_property): Get the name length of new property by
michael@0 642 size_t variable, with a cut-off at FT_ULONG_MAX.
michael@0 643 (_bdf_set_default_spacing): Get the name length of the face by
michael@0 644 size_t variable, with a cut-off at 256.
michael@0 645 (bdf_get_property): Get the property id by size_t variable to
michael@0 646 reduce the casts between 32-bit prop ID & hashnode->data during
michael@0 647 simple copying.
michael@0 648 (_bdf_add_property): Ditto.
michael@0 649 (_bdf_parse_start): Calculate the index to the property array
michael@0 650 by size_t variable.
michael@0 651 (bdf_get_font_property): Drop a cast to unsigned long.
michael@0 652
michael@0 653 2009-09-10 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 654
michael@0 655 [Win64] Improve the computation of random seed from stack address.
michael@0 656
michael@0 657 On LLP64 platform, the conversion from pointer to FT_Fixed need
michael@0 658 to drop higher 32-bit. Explict casts are required. Reported by
michael@0 659 NightStrike from MinGW-w64 project. See
michael@0 660 http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
michael@0 661
michael@0 662 * src/cff/cffgload.c: Convert the pointers to FT_Fixed explicitly.
michael@0 663
michael@0 664 * src/psaux/t1decode.c: Ditto.
michael@0 665
michael@0 666
michael@0 667 2009-09-03 Werner Lemberg <wl@gnu.org>
michael@0 668
michael@0 669 [raster] Improvements for stand-alone mode.
michael@0 670
michael@0 671 * src/raster/rules.mk: Don't handle ftmisc.h. It is needed for
michael@0 672 stand-alone mode only.
michael@0 673
michael@0 674 * src/raster/ftmisc.h (FT_MemoryRec , FT_Alloc_Func, FT_Free_Func,
michael@0 675 FT_Realloc_Func): Copy declarations from ftsystem.h.
michael@0 676
michael@0 677 2009-09-02 Bram Tassyns <bramt@enfocus.be>
michael@0 678
michael@0 679 Improve vertical metrics calculation (Savannah bug #27364).
michael@0 680
michael@0 681 The calculation of `vertBearingX' is not defined in the OTF font
michael@0 682 spec so FreeType does a `best effort' attempt. However, this value
michael@0 683 is defined in the PDF and PostScript specs, and that algorithm is
michael@0 684 better than the one FreeType currently uses:
michael@0 685
michael@0 686 FreeType: Use the middle of the bounding box as the X coordinate
michael@0 687 of the vertical origin.
michael@0 688
michael@0 689 Adobe PDF spec: Use the middle of the horizontal advance vector as
michael@0 690 the X coordinate of the vertical origin.
michael@0 691
michael@0 692 FreeType's algorithm goes wrong if you have a really small glyph
michael@0 693 (like the full-width, circle-like dot at the end of the sentence, as
michael@0 694 used in CJK scripts) with large bearings. With the FreeType
michael@0 695 algorithm this dot gets centered on the baseline; with the PDF
michael@0 696 algorithm it gets the correct location (in the top right). Note
michael@0 697 that this is a serious issue, it's like printing the dot at the end
michael@0 698 of a Roman sentence at the center of the textline instead of on the
michael@0 699 baseline like it should. So i believe the PDF spec's algorithm
michael@0 700 should be used in FreeType as well.
michael@0 701
michael@0 702 The `vertBearingY' value for such small glyphs is also very strange
michael@0 703 if no `vmtx' information is present, since the height of the bbox is
michael@0 704 not representable for the height of the glyph visually (the
michael@0 705 whitespace up to the baseline is part of the glyph). The fix also
michael@0 706 includes some code for a better estimate of `vertBearingY'.
michael@0 707
michael@0 708 * src/base/ftobjs.c (ft_synthesize_vertical_metrics): `vertBearingX'
michael@0 709 is now calculated as described by the Adobe PDF Spec. Estimate for
michael@0 710 `vertBearingY' now works better for small glyphs completely above or
michael@0 711 below the baseline into account.
michael@0 712
michael@0 713 * src/cff/cffgload.c (cff_slot_load): `vertBearingX' is now
michael@0 714 calculated as described by the Adobe PDF Spec. Vertical metrics
michael@0 715 information was always ignored when FT_CONFIG_OPTION_OLD_INTERNALS
michael@0 716 was not defined.
michael@0 717
michael@0 718 * src/truetype/ttgload.c (compute_glyph_metrics): `vertBearingX' is
michael@0 719 now calculated as described by the Adobe PDF Spec.
michael@0 720
michael@0 721 2009-09-01 John Tytgat <John.Tytgat@esko.com>
michael@0 722
michael@0 723 Fix custom cmap for empty Type 1 font (Savannah bug #27294).
michael@0 724
michael@0 725 * include/freetype/internal/t1types.h (T1_EncodingRecRec_): Update
michael@0 726 comment to reflect revised code_last meaning.
michael@0 727 * src/type1/t1load.c (T1_Open_Face), src/type42/t42objs.c
michael@0 728 (T42_Open_Face): Assign max_char as highest character code + 1 and
michael@0 729 use this for T1_EncodingRecRec_::code_last.
michael@0 730 * src/psaux/t1cmap.c (t1_cmap_custom_init): Follow revised
michael@0 731 T1_EncodingRecRec_::code_last meaning.
michael@0 732
michael@0 733 2009-08-25 Werner Lemberg <wl@gnu.org>
michael@0 734
michael@0 735 Fix rendering of horizontally compressed CFFs.
michael@0 736 Bug reported by Ivan Nincic <inincic@pdftron.com>.
michael@0 737
michael@0 738 * src/cff/cffgload.c (cff_slot_load): Thinko: Check `xx' element of
michael@0 739 `font_matrix' also.
michael@0 740
michael@0 741 * docs/CHANGES: Updated.
michael@0 742
michael@0 743 2009-08-03 suyu0925@gmail.com
michael@0 744
michael@0 745 Don't call `ft_fseek' every time when executing `ft_fread'.
michael@0 746
michael@0 747 * src/base/ftstream.c (FT_Stream_Seek), src/base/ftsystem.c
michael@0 748 (ft_ansi_stream_io): Implement it.
michael@0 749
michael@0 750 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 751
michael@0 752 sfnt: Cast a charcode to 32-bit in cmap format 14 parser.
michael@0 753
michael@0 754 * src/sfnt/ttcmap.c (tt_cmap14_char_var_index,
michael@0 755 tt_cmap14_char_var_isdefault, tt_cmap14_char_variants,
michael@0 756 tt_cmap14_variant_chars): Correct mismatches from
michael@0 757 FT_CMap_CharVarIndexFunc prototype, FT_ULong arguments
michael@0 758 are replaced by FT_UInt32 arguments.
michael@0 759
michael@0 760 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 761
michael@0 762 sfnt: Cast a charcode to 32-bit in cmap format 12 parser.
michael@0 763
michael@0 764 * src/sfnt/ttcmap.c (tt_cmap12_char_next):
michael@0 765 Insert explicit cast from FT_UFast to FT_UInt32
michael@0 766 for return value.
michael@0 767
michael@0 768 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 769
michael@0 770 psaux: Fix a few casts to FT_Int32 value.
michael@0 771
michael@0 772 * src/psaux/t1decode.c (t1_decoder_parse_charstrings):
michael@0 773 Fix a few casts setting `value' from FT_Long to FT_Int32,
michael@0 774 because `value' is typed as FT_Int32 since 2009-06-22.
michael@0 775
michael@0 776 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 777
michael@0 778 sfnt: Fix a data type mismatching with its source.
michael@0 779
michael@0 780 * src/sfnt/ttcmap.c (tt_cmap13_char_next): Fix the
michael@0 781 type of `gindex' from FT_ULong to FT_UInt because
michael@0 782 it is set by FT_UInt tt_cmap13_char_map_binary() or
michael@0 783 TT_CMap13->cur_gindex.
michael@0 784
michael@0 785 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 786
michael@0 787 sfnt: Extend a few local variables to load 32-bit values.
michael@0 788
michael@0 789 * src/sfnt/ttkern.c (tt_face_load_kern): Extend `count'
michael@0 790 and `kern' to load 32-bit values.
michael@0 791
michael@0 792 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 793
michael@0 794 pfr: Extend `num_aux' to take 32-bit value.
michael@0 795
michael@0 796 * src/pfr/pfrload.c (pfr_phy_font_load): Extend
michael@0 797 `num_aux' to load 32-bit value.
michael@0 798
michael@0 799 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 800
michael@0 801 pcf: Truncate FT_ULong `nprops' to fit to int PCF_Face->nprops.
michael@0 802
michael@0 803 * src/pcf/pcfread.c (pcf_get_properties): Load `nprops'
michael@0 804 as FT_ULong value from PCF file, but truncate it as
michael@0 805 int to fit PCF_Face->nprops. The number of truncated
michael@0 806 properties is shown in the trace message.
michael@0 807
michael@0 808 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 809
michael@0 810 gxvalid: Extend a few local variables to reduce the casts.
michael@0 811
michael@0 812 * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate):
michael@0 813 Extend `type' and `rest' to take FT_ULong values.
michael@0 814
michael@0 815 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 816
michael@0 817 gxvalid: Extend `settingTable' to take 32-bit offset.
michael@0 818
michael@0 819 * src/gxvalid/gxvfeat.c (gxv_feat_name_validate):
michael@0 820 Extend `settingTable' to take 32-bit offset.
michael@0 821
michael@0 822 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 823
michael@0 824 autofit: Cast FT_Long glyph_count to compare with FT_UInt GID.
michael@0 825
michael@0 826 * src/autofit/afglobal.c (af_face_globals_is_digit,
michael@0 827 af_face_globals_compute_script_coverage): Cast FT_Long
michael@0 828 globals->glyph_count to FT_ULong, to compare with FT_UInt
michael@0 829 gindex.
michael@0 830
michael@0 831 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 832
michael@0 833 smooth: Exclude 16-bit system in invalid pitch/height check.
michael@0 834
michael@0 835 * src/smooth/ftsmooth.c (ft_smooth_render_generic):
michael@0 836 pitch and height are typed as FT_UInt but checked to fit
michael@0 837 16-bit range, to avoid the overflows. On 16-bit system,
michael@0 838 this checking inserts a conditional that never occurs.
michael@0 839
michael@0 840 2009-07-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 841
michael@0 842 cff: Type large constants > 0x7FFF as long for 16-bit systems.
michael@0 843
michael@0 844 * src/cff/cffload.c (cff_charset_load): Type large
michael@0 845 constants > 0x7FFF as long, because normal constants
michael@0 846 are typed signed integer that is less than 0x8000 on
michael@0 847 16-bit systems.
michael@0 848
michael@0 849 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 850
michael@0 851 base: Remove an unused variable.
michael@0 852
michael@0 853 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove an
michael@0 854 unused variable `library'. glyph->library is used.
michael@0 855
michael@0 856 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 857
michael@0 858 cache: Check higher bits in flags for non ILP32 systems.
michael@0 859
michael@0 860 4 public functions ought to take FT_ULong flags, but take
michael@0 861 FT_UInt flags. To keep binary compatibility, we drop higher
michael@0 862 bits on non ILP32 platforms,
michael@0 863 ILP64 systems: No drop occurs.
michael@0 864 LP64 systems: Higher bits are not used.
michael@0 865 16-bit systems: Drop can occur.
michael@0 866 See
michael@0 867 http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00065.html
michael@0 868 These functions will be refined to take FT_ULong flags in
michael@0 869 next bump with incompatible API change.
michael@0 870
michael@0 871 * src/cache/ftcbasic.c (FTC_ImageCache_Lookup):
michael@0 872 Check `flags' in `type', the 2nd argument.
michael@0 873 (FTC_SBitCache_Lookup): Ditto.
michael@0 874 (FTC_ImageCache_LookupScaler): Check `load_flags',
michael@0 875 the 3rd argument.
michael@0 876 (FTC_SBitCache_LookupScaler): Ditto.
michael@0 877
michael@0 878 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 879
michael@0 880 sfnt: Ignore invalid GIDs in glyph name lookup.
michael@0 881
michael@0 882 * include/freetype/internal/fttrace.h:
michael@0 883 New trace module for sfdriver.c is added.
michael@0 884
michael@0 885 * src/sfnt/sfdriver.c (sfnt_get_name_index):
michael@0 886 Restrict glyph name lookup to FT_UInt GID.
michael@0 887 Genuine TrueType can hold 16-bit glyphs.
michael@0 888
michael@0 889 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 890
michael@0 891 pcf: Fix a comparison between FT_Long and FT_ULong.
michael@0 892
michael@0 893 * src/pcf/pcfread.c (pcf_get_bitmaps): Return an error
michael@0 894 if PCF_Face->nemetrics is negative.
michael@0 895
michael@0 896 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 897
michael@0 898 gxvalid: Guarantee `nFeatureFlags' size up to 32-bit.
michael@0 899
michael@0 900 * src/gxvalid/gxvmort.c (gxv_mort_featurearray_validate):
michael@0 901 Extend the 3rd argument `nFeatureFlags' to FT_ULong.
michael@0 902 * src/gxvalid/gxvmort.h: Ditto.
michael@0 903
michael@0 904 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 905
michael@0 906 sfnt: Insert explicit cast for LP64 system.
michael@0 907
michael@0 908 * src/sfnt/ttkern.c (tt_face_load_kern): Insert
michael@0 909 cast from unsigned long to FT_UInt32.
michael@0 910
michael@0 911 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 912
michael@0 913 gxvalid: Guarantee `just' table size upto 32-bit.
michael@0 914
michael@0 915 * src/gxvalid/gxvjust.c (gxv_just_validate):
michael@0 916 The type of `offset' is changed from FT_UInt to
michael@0 917 FT_Offset, for 16-bit platforms.
michael@0 918
michael@0 919 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 920
michael@0 921 gxvalid: Guarantee `trak' table size upto 32-bit.
michael@0 922
michael@0 923 * src/gxvalid/gxvtrak.c (gxv_trak_validate):
michael@0 924 The type of `offset' is changed from FT_UInt to
michael@0 925 FT_Offset, for 16-bit platforms.
michael@0 926
michael@0 927 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 928
michael@0 929 type1: Fix a data type mismatching with its source.
michael@0 930
michael@0 931 * include/freetype/internal/t1types.h: The type of
michael@0 932 T1_Face->buildchar is matched with T1_Decorder->top.
michael@0 933
michael@0 934 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 935
michael@0 936 pfr: Fix a data type mismatching with its source.
michael@0 937
michael@0 938 * src/pfr/pfrtypes.h: The type of PFR_KernItem->offset
michael@0 939 is extended from FT_UInt32 to FT_Offset, because it is
michael@0 940 calculated with the pointer difference, in
michael@0 941 pfr_extra_item_load_kerning_pairs().
michael@0 942
michael@0 943 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 944
michael@0 945 pfr: Fix a data type mismatching with its source.
michael@0 946
michael@0 947 * src/pfr/pfrtypes.h: The type of PFR_PhysFont->chars_offset
michael@0 948 is extended from FT_UInt32 to FT_Offset, because it is
michael@0 949 calculated with the pointer difference in pfr_phy_font_load().
michael@0 950
michael@0 951 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 952
michael@0 953 pfr: Fix a data type mismatching with its source.
michael@0 954
michael@0 955 * src/pfr/pfrtypes.h: The type of PFR_PhyFont->bct_offset
michael@0 956 is extended from FT_UInt32 to FT_Long, because it is
michael@0 957 loaded by FT_STREAM_POS() in pfr_phy_font_load().
michael@0 958
michael@0 959 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 960
michael@0 961 smooth: Improve the format in debug message.
michael@0 962
michael@0 963 * src/smooth/ftgrays.c (gray_dump_cells): Improve the
michael@0 964 format specifications to dump variables.
michael@0 965
michael@0 966 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 967
michael@0 968 sfnt: Fix a data type mismatching with its source.
michael@0 969
michael@0 970 * src/sfnt/sfobjs.c (sfnt_load_face): The type of
michael@0 971 local `flags' is matched with FT_Face->face_flags.
michael@0 972
michael@0 973 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 974
michael@0 975 psaux: Fix a data type mismatching with its source.
michael@0 976
michael@0 977 * include/freetype/internal/psaux.h: The type of
michael@0 978 T1_DecorderRec.buildchar is matched with
michael@0 979 T1_DecorderRec.top.
michael@0 980
michael@0 981 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 982
michael@0 983 truetype: Extend TrueType GX packed deltas to FT_Offset.
michael@0 984
michael@0 985 * src/truetype/ttgxvar.c (ft_var_readpackeddeltas):
michael@0 986 The type of 2nd argument `delta_cnt' is changed from
michael@0 987 FT_Int to FT_Offset, because its source can be cvt
michael@0 988 table size calculated from stream position.
michael@0 989
michael@0 990 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 991
michael@0 992 truetype: Extend mmvar_len to hold size_t values.
michael@0 993
michael@0 994 * src/truetype/ttgxvar.h: The type of
michael@0 995 GX_BlendRec.mmvar_len is changed from FT_Int to
michael@0 996 FT_Offset, because TT_Get_MM_Var() calculates it
michael@0 997 by sizeof() results.
michael@0 998
michael@0 999 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1000
michael@0 1001 truetype: Check invalid function number in IDEF instruction.
michael@0 1002
michael@0 1003 * src/truetype/ttinterp.c (Ins_IDEF): Check
michael@0 1004 if the operand fits to 8-bit opcode limitation.
michael@0 1005
michael@0 1006 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1007
michael@0 1008 truetype: Check invalid function number in FDEF instruction.
michael@0 1009
michael@0 1010 * src/truetype/ttinterp.c (Ins_FDEF): Check
michael@0 1011 if the operand fits 16-bit function number.
michael@0 1012
michael@0 1013 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1014
michael@0 1015 truetype: Truncate the deltas of composite glyph at 16-bit values.
michael@0 1016
michael@0 1017 * src/truetype/ttgload.c (load_truetype_glyph):
michael@0 1018 Insert cast from FT_Long (deltas[i].{x,y}) to
michael@0 1019 FT_Int16 in the summation of deltas[] for composite
michael@0 1020 glyphs. Because deltas[i] is typed as FT_Pos,
michael@0 1021 its component x, y are typed as FT_Long, but
michael@0 1022 their sources are always FT_Int16 when they are
michael@0 1023 loaded by ft_var_readpackeddeltas(). However,
michael@0 1024 the limitation about the summed deltas is unclear.
michael@0 1025
michael@0 1026 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1027
michael@0 1028 truetype: Truncate the instructions upto 16-bit per a glyph.
michael@0 1029
michael@0 1030 * src/truetype/ttgload.c (TT_Hint_Glyph): Truncate
michael@0 1031 the instructions upto 16-bit length per a glyph.
michael@0 1032
michael@0 1033 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1034
michael@0 1035 truetype: Cast the numerical operands to 32-bit for LP64 systems.
michael@0 1036
michael@0 1037 * src/truetype/ttinterp.c (Ins_SPHIX, INS_MIAP,
michael@0 1038 Ins_MIRP): Insert cast from long (args[], the
michael@0 1039 operands passed to TrueType operator) to FT_Int32
michael@0 1040 (the argument of TT_MulFix14()).
michael@0 1041
michael@0 1042 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1043
michael@0 1044 truetype: Cast the project vector to 32-bit for LP64 system.
michael@0 1045
michael@0 1046 * src/truetype/ttinterp.c (Project, DualProject):
michael@0 1047 Insert casts from FT_Pos (the arguments `dx', `dy')
michael@0 1048 to FT_UInt32 (the argument to TT_DotFix14()).
michael@0 1049
michael@0 1050 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1051
michael@0 1052 truetype: Cast the scaling params to 32-bit for LP64 system.
michael@0 1053
michael@0 1054 * src/truetype/ttgload.c (TT_Process_Composite_Component):
michael@0 1055 Insert casts from long (return value of FT_MulFix()) to
michael@0 1056 FT_Int32 (the argument to FT_SqrtFixed()).
michael@0 1057
michael@0 1058 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1059
michael@0 1060 sfnt: Cast a character code to FT_UInt32 for LP64 system.
michael@0 1061
michael@0 1062 * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
michael@0 1063 tt_cmap14_variants, tt_cmap14_char_variants,
michael@0 1064 tt_cmap14_def_char_count, tt_cmap14_get_def_chars,
michael@0 1065 tt_cmap14_get_nondef_chars, tt_cmap14_variant_chars)
michael@0 1066 Insert casts when FT_UInt32 variable is loaded by
michael@0 1067 TT_NEXT_{UINT24|ULONG}. Because most of them are
michael@0 1068 compared with FT_UInt32 values in public API, replacing
michael@0 1069 FT_UFast is not recommended.
michael@0 1070
michael@0 1071 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1072
michael@0 1073 sfnt: Cast a character code to FT_UInt32 for LP64 system.
michael@0 1074
michael@0 1075 * src/sfnt/ttcmap.c (tt_cmap4_init, tt_cmap4_next):
michael@0 1076 Insert the casts from unsigned long constant to
michael@0 1077 FT_UInt32.
michael@0 1078
michael@0 1079 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1080
michael@0 1081 sfnt: Extend TT_BDF->strings_size to FT_ULong for huge BDF.
michael@0 1082
michael@0 1083 * include/freetype/internal/tttypes.h: The type
michael@0 1084 of TT_BDF->string_size is extended from FT_UInt32
michael@0 1085 to FT_ULong, because BDF specification does not
michael@0 1086 restrict the length of string.
michael@0 1087 * src/sfnt/ttbdf.c: The scratch variable `strings'
michael@0 1088 to load TT_BDF->string_size is matched with
michael@0 1089 TT_BDF->string_size.
michael@0 1090
michael@0 1091 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1092
michael@0 1093 psaux: Handle the string length by FT_Offset variables.
michael@0 1094
michael@0 1095 * src/psaux/afmparse.c (afm_parser_next_key,
michael@0 1096 afm_tokenize, afm_parse_track_kern,
michael@0 1097 afm_parse_kern_pairs, afm_parse_kern_data,
michael@0 1098 afm_parser_skip_section, afm_parser_parse):
michael@0 1099 The length of key is handled by FT_Offset,
michael@0 1100 instead of FT_UInt. Although the length of
michael@0 1101 PostScript strings or name object is 16-bit,
michael@0 1102 AFM_STREAM_KEY_LEN() calculates the length
michael@0 1103 from the pointer difference.
michael@0 1104
michael@0 1105 * src/psaux/afmparse.h (afm_parser_next_key):
michael@0 1106 Ditto.
michael@0 1107
michael@0 1108 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1109
michael@0 1110 pcf: Fix some data types mismatching with their sources.
michael@0 1111
michael@0 1112 * src/pcf/pcfread.c (pcf_get_bitmaps): The types
michael@0 1113 of `nbitmaps', `i', `sizebitmaps' are matched with
michael@0 1114 the type of area FT_Bitmap.pitch * FT_Bitmap.rows.
michael@0 1115
michael@0 1116 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1117
michael@0 1118 pcf: Handle the string length by size_t variables.
michael@0 1119
michael@0 1120 * src/pcf/pcfread.c (pcf_interpret_style): The types
michael@0 1121 of nn, len, lengths[4] are changed to size_t, because
michael@0 1122 they are loaded by (or compared with) ft_strlen().
michael@0 1123
michael@0 1124 * src/pcf/pcfutil.c (BitOrderInvert, TwoByteSwap,
michael@0 1125 FourByteSwap): The type of the 2nd argument `nbytes'
michael@0 1126 is changed to size_t, for similarity with ANSI C
michael@0 1127 string functions.
michael@0 1128
michael@0 1129 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): The type of
michael@0 1130 `bytes' is changed to FT_Offset, because it is passed
michael@0 1131 to FT_ALLOC(), via ft_glyphslot_alloc_bitmap(). At
michael@0 1132 least, using unsigned type is better.
michael@0 1133
michael@0 1134 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1135
michael@0 1136 pcf: Fix some data types mismatching with their sources.
michael@0 1137
michael@0 1138 * src/pcf/pcfread.c (pcf_seek_to_table_type,
michael@0 1139 pcf_has_table_type): The type of 3rd argument
michael@0 1140 `ntables' is matched with PCF_Toc->count.
michael@0 1141
michael@0 1142 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1143
michael@0 1144 otvalid: Truncate the glyph index to 16-bit.
michael@0 1145
michael@0 1146 * src/otvalid/otvalid.c (otv_validate): Checks
michael@0 1147 face->num_glyphs does not exceed 16-bit limit,
michael@0 1148 pass FT_UInt num_glyphs to backend functions
michael@0 1149 otv_{GPOS|GSUB|GDEF|JSTF|MATH}_validate().
michael@0 1150
michael@0 1151 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1152
michael@0 1153 cache: Insert explict casts for LP64 systems.
michael@0 1154
michael@0 1155 * src/cache/ftcbasic.c (FTC_ImageCache_Lookup,
michael@0 1156 FTC_SBitCache_Lookup): The type of FTC_ImageType->width
michael@0 1157 is FT_Int, so the cast to unsigned larger type FT_ULong
michael@0 1158 is introduced for the comparisons with 0x10000L for
michael@0 1159 LP64 platform.
michael@0 1160
michael@0 1161 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1162
michael@0 1163 cache: Fix some data types mismatching with their sources.
michael@0 1164
michael@0 1165 * src/cache/ftccache.h: The type of return value
michael@0 1166 by FTC_Node_WeightFunc function is changed to
michael@0 1167 FT_Offset. The type of FTC_CacheClass->cache_size
michael@0 1168 is changed to FT_Offset, too.
michael@0 1169
michael@0 1170 * src/cache/ftccback.h (ft_inode_weight,
michael@0 1171 ftc_snode_weight): Ditto.
michael@0 1172
michael@0 1173 * src/cache/ftccmap.c (ftc_cmap_node_weight): Ditto.
michael@0 1174
michael@0 1175 * src/cache/ftcimage.c (ftc_inode_weight,
michael@0 1176 FTC_INode_Weight): Ditto.
michael@0 1177
michael@0 1178 * src/cache/ftcsbits.c (ftc_snode_weight,
michael@0 1179 FTC_SNode_Weight): Ditto.
michael@0 1180
michael@0 1181 * src/cache/ftcmru.h: The type of
michael@0 1182 FTC_MruListClass->node_size is changed to FT_Offset,
michael@0 1183 because it is passed to FT_ALLOC() to specify the
michael@0 1184 size of buffer.
michael@0 1185
michael@0 1186 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1187
michael@0 1188 XXX_cmap_encoding_char_next() return FT_UInt32 values.
michael@0 1189
michael@0 1190 * include/freetype/internal/services/svpscmap.h:
michael@0 1191 The size of the charcode value returned by
michael@0 1192 the function typed PS_Unicodes_CharNextFunc is
michael@0 1193 matched with its input charcode value.
michael@0 1194
michael@0 1195 * src/cff/cffmap.c (cff_cmap_encoding_char_next,
michael@0 1196 cff_cmap_unicode_char_next): Ditto.
michael@0 1197
michael@0 1198 * src/pfr/pfrmap.c (pfr_cmap_encoding_char_next):
michael@0 1199 Ditto.
michael@0 1200
michael@0 1201 * src/psaux/t1cmap.c (t1_cmap_std_char_next,
michael@0 1202 t1_cmap_custom_char_next, t1_cmap_unicode_char_next):
michael@0 1203 Ditto.
michael@0 1204
michael@0 1205 * src/psnames/psmodule.c (ps_unicodes_char_next):
michael@0 1206 Ditto.
michael@0 1207
michael@0 1208 * src/winfonts/winfnt.c (fnt_cmap_char_next):
michael@0 1209 Ditto.
michael@0 1210
michael@0 1211 * src/sfnt/ttcmap.c (tt_cmap0_char_next,
michael@0 1212 tt_cmap2_char_next, tt_cmap4_char_next,
michael@0 1213 tt_cmap6_char_next, tt_cmap10_char_next,
michael@0 1214 tt_cmap12_char_next, tt_cmap13_char_next): Ditto.
michael@0 1215 (tt_cmap14_char_variants): Handle base unicode
michael@0 1216 codepoint by FT_UInt32 variable to avoid overflow
michael@0 1217 on 16-bit platforms.
michael@0 1218 (tt_cmap14_ensure): The type of `num_results' is
michael@0 1219 extend to FT_UInt32, to cover unsigned 32-bit
michael@0 1220 `numVarSelectorRecords' in cmap14 table header.
michael@0 1221
michael@0 1222 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1223
michael@0 1224 truetype: Extend TT_Face->num_locations for broken TTFs.
michael@0 1225
michael@0 1226 * include/freetype/internal/tttypes.h:
michael@0 1227 TT_Face->num_locations are extended from FT_UInt
michael@0 1228 to FT_ULong, to stand with broken huge loca table.
michael@0 1229 Some people insists there are broken TTF including
michael@0 1230 the glyphs over 16-bit limitation, in PRC market.
michael@0 1231 * src/truetype/ttpload.c (tt_face_load_loca):
michael@0 1232 Remove unrequired 16-bit truncation for FT_UInt
michael@0 1233 TT_Face->num_locations.
michael@0 1234
michael@0 1235 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1236
michael@0 1237 smooth: Fix some data types mismatching with their sources.
michael@0 1238
michael@0 1239 * src/smooth/ftgrays.c: The type of `TCoord' is
michael@0 1240 matched to `TPos', because they are mixed in
michael@0 1241 gray_set_cell(). The type of TCell->x is extended
michael@0 1242 to `TPos', because gray_find_cell() sets it by
michael@0 1243 TWorker.ex. The type of TCell->cover is extended
michael@0 1244 to `TCoord', because gray_render_scanline() adds
michael@0 1245 TCoord value to it. The type of TWork.cover is matched
michael@0 1246 with TCell->cover. The types of
michael@0 1247 TWork.{max_cells,num_cells} are changed to FT_PtrDist,
michael@0 1248 because they are calculated from the memory addresses.
michael@0 1249 The type of TWork.ycount is changed to TPos, because
michael@0 1250 it is calculated from TPos variables.
michael@0 1251 (gray_find_cell): The type of `x' is matched with
michael@0 1252 its initial value ras.ex.
michael@0 1253 (gray_render_scanline): The types of `mod', `lift'
michael@0 1254 and `rem' are changed to TCoord, because their values
michael@0 1255 are set with explicit casts to TCoord. When ras.area
michael@0 1256 is updated by the differential values including
michael@0 1257 `delta', they are explicitly cast to TArea, because
michael@0 1258 the type of `delta' is not TArea but TCoord.
michael@0 1259 (gray_render_line): The type of `mod' is extended
michael@0 1260 from int to TCoord, because (TCoord)dy is added to mod.
michael@0 1261 (gray_hline): The argument `acount' is extended to
michael@0 1262 TCoord, to match with the parameters in the callers.
michael@0 1263
michael@0 1264 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1265
michael@0 1266 cff: Fix some data types mismatching with their sources.
michael@0 1267
michael@0 1268 * src/cff/cffobjs.c (cff_face_init): The type of
michael@0 1269 `scaling' is matched with the scaling parameter
michael@0 1270 in FT_Matrix_Multiply_Scaled() and
michael@0 1271 FT_Vector_Transform_Scaled().
michael@0 1272
michael@0 1273 * src/cff/cffparse.c (cff_parse_real): The type of
michael@0 1274 `power_ten', `scaling', `exponent_add',
michael@0 1275 `integer_length', `fraction_length',
michael@0 1276 `new_fraction_length' and `shift' are matched with
michael@0 1277 the type of `exponent' to avoid unexpected truncation.
michael@0 1278 (cff_parse_fixed_scaled): The type of `scaling' is
michael@0 1279 matched with the `scaling' argument to
michael@0 1280 cff_parse_real().
michael@0 1281 (cff_parse_fixed_dynamic): Ditto.
michael@0 1282 (cff_parse_font_matrix): The type of `scaling' is
michael@0 1283 matched with the `scaling' argument to
michael@0 1284 cff_parse_dynamic().
michael@0 1285
michael@0 1286 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1287
michael@0 1288 autofit: Fix some data types mismatching with their sources.
michael@0 1289
michael@0 1290 * src/autofit/afglobal.c: Correct the type of
michael@0 1291 AF_FaceGlobalsRec.glyph_count to match with
michael@0 1292 FT_Face->num_glyphs.
michael@0 1293 (af_face_globals_compute_script_coverage):
michael@0 1294 Insert explicit cast to compare
michael@0 1295 FT_Long AF_FaceGlobalsRec.glyph_count versus
michael@0 1296 FT_UInt gindex. The type of `nn' is changed
michael@0 1297 to scan glyph index upto AF_FaceGlobalsRec.glyph_count.
michael@0 1298 (af_face_globals_get_metrics): The type of `script_max'
michael@0 1299 is changed to cover size_t value. Insert explicit cast
michael@0 1300 to compare FT_Long AF_FaceGlobalsRec.glyph_count versus
michael@0 1301 FT_UInt gindex.
michael@0 1302
michael@0 1303 * src/autofit/afhints.c (af_axis_hints_new_segment):
michael@0 1304 Insert explicit cast to calculate `big_max' from
michael@0 1305 integer and size_t values.
michael@0 1306 (af_axis_hints_new_edge): Ditto.
michael@0 1307
michael@0 1308 * src/autofit/aflatin.c (af_latin_metrics_init_blues):
michael@0 1309 The type of `best_y' is matched to FT_Vector.y.
michael@0 1310 (af_latin_compute_stem_width): The type of `delta' is
michael@0 1311 matched to `dist' and `org_dist'.
michael@0 1312
michael@0 1313 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1314
michael@0 1315 autofit: Count the size of the memory object by ptrdiff_t.
michael@0 1316
michael@0 1317 * src/autofit/afcjk.c (af_cjk_hint_edges): The
michael@0 1318 number of edges `n_edges' should be counted by
michael@0 1319 FT_PtrDist variable instead of FT_Int.
michael@0 1320
michael@0 1321 * src/autofit/aflatin.c (af_latin_hint_edges):
michael@0 1322 Ditto.
michael@0 1323
michael@0 1324 * src/autofit/aftypes.h: In AF_ScriptClassRec,
michael@0 1325 the size of metric `script_metrics_size' should
michael@0 1326 be counted by FT_Offset variable instead of FT_UInt.
michael@0 1327
michael@0 1328 * src/autofit/afhints.c
michael@0 1329 (af_glyph_hints_align_strong_points): The cursors
michael@0 1330 for the edges `min', `max', `mid' in the memory
michael@0 1331 buffer should be typed FT_PtrDist.
michael@0 1332
michael@0 1333 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1334
michael@0 1335 autofit: Fix for unused variable `first'.
michael@0 1336
michael@0 1337 * src/autofit/afhints.c (af_glyph_hints_reload): Insert
michael@0 1338 FT_UNUSED() to hide the unused variable warning.
michael@0 1339
michael@0 1340 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1341
michael@0 1342 Improve bitmap size or pixel variables for 16-bit systems.
michael@0 1343
michael@0 1344 * include/freetype/config/ftstdlib.h: Introduce
michael@0 1345 FT_INT_MIN, to use in signed integer overflow in
michael@0 1346 16-bit and 64-bit platforms.
michael@0 1347
michael@0 1348 * include/freetype/internal/fttrace.h: Add a tracer
michael@0 1349 to ftsynth.c.
michael@0 1350
michael@0 1351 * src/base/ftbitmap.c (FT_Bitmap_Embolden): Check
michael@0 1352 invalid strength causing integer overflow on 16-bit
michael@0 1353 platform.
michael@0 1354
michael@0 1355 * src/base/ftcalc.c (ft_corner_orientation): Change
michael@0 1356 the internal calculation from FT_Int to FT_Long, to
michael@0 1357 avoid an overflow on 16-bit platforms. The caller of
michael@0 1358 this function should use only the sign of result,
michael@0 1359 so the cast to FT_Int is acceptable.
michael@0 1360
michael@0 1361 * src/base/ftsynth.c: Introduce a tracer for synth module.
michael@0 1362 (FT_GlyphSlot_Embolden): Check invalid strength causing
michael@0 1363 integer overflow on 16-bit platform.
michael@0 1364
michael@0 1365 * src/bdf/bdfdrivr.c (BDF_Face_Init): The glyph index
michael@0 1366 in FT2 API is typed as FT_UInt, although BDF driver
michael@0 1367 can handle unsigned long glyph index internally. To
michael@0 1368 avoid integer overflow on 16-bit platform, too large
michael@0 1369 glyph index should be excluded.
michael@0 1370 (BDF_Glyph_Load): The glyph pitch in FT2 is typed as
michael@0 1371 FT_UInt, although BDF driver can handle unsigned long
michael@0 1372 glyph pitch internally. To avoid integer overflow on
michael@0 1373 16-bit platform, too large glyph pitch should not be
michael@0 1374 returned.
michael@0 1375
michael@0 1376 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): The glyph
michael@0 1377 pitch in FT2 is typed as FT_UInt, although PFR font
michael@0 1378 format can include huge bitmap glyph with 24-bit pitch
michael@0 1379 (however, a glyph spends 16.7 pixel, it's not realistic).
michael@0 1380 To avoid integer overflow on 16-bit platform, huge
michael@0 1381 bitmap glyph should be excluded.
michael@0 1382
michael@0 1383 * src/smooth/ftgrays.c (gray_hline): As FT_Span.x is
michael@0 1384 truncated to fit its type (16-bit short), FT_Span.y
michael@0 1385 should be truncated to fit its type (FT_Int).
michael@0 1386
michael@0 1387 * src/cff/cffdrivr.c (cff_get_ros): CFF specification
michael@0 1388 defines the supplement in ROS as a real number.
michael@0 1389 Truncate it to fit public FT2 API.
michael@0 1390
michael@0 1391 * src/cff/cffparse.c (cff_parse_cid_ros): Warn the
michael@0 1392 supplement if it is truncated or rounded in cff_get_ros().
michael@0 1393
michael@0 1394 * src/cff/cfftypes.h: Change the type of internal variable
michael@0 1395 `supplement' from FT_Long to FT_ULong to fit the signedness
michael@0 1396 to the type in public API.
michael@0 1397
michael@0 1398 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1399
michael@0 1400 psaux: Prevent invalid arguments to afm_parser_read_vals().
michael@0 1401
michael@0 1402 * src/psaux/afmparse.c (afm_parser_read_vals): Change
michael@0 1403 the type of `n' to prevent negative number how many
michael@0 1404 arguments should be parsed.
michael@0 1405
michael@0 1406 * src/psaux/afmparse.h (afm_parser_read_vals): Ditto.
michael@0 1407
michael@0 1408 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1409
michael@0 1410 base: Prevent some overflows on LP64 systems.
michael@0 1411
michael@0 1412 * src/base/ftadvance.c (FT_Get_Advances): Cast the
michael@0 1413 unsigned long constant FT_LOAD_ADVANCE_ONLY to FT_UInt32
michael@0 1414 for LP64 platforms.
michael@0 1415
michael@0 1416 * src/base/ftcalc.c (FT_Sqrt32): All internal variables
michael@0 1417 are changed to FT_UInt32 from FT_ULong.
michael@0 1418 (FT_MulDiv): Insert casts to FT_Int32 for LP64 platforms.
michael@0 1419 This function is designed for 32-bit integer, although
michael@0 1420 their arguments and return value are FT_Long.
michael@0 1421
michael@0 1422 * src/base/ftobjs.c (FT_Get_Char_Index): Check `charcode'
michael@0 1423 is within unsigned 32-bit integer for LP64 platforms.
michael@0 1424 (FT_Face_GetCharVariantIndex): Check `charcode' and
michael@0 1425 `variantSelector' are within 32-bit integer for LP64
michael@0 1426 platforms.
michael@0 1427 (FT_Face_GetCharsOfVariant): Check `variantSelector' is
michael@0 1428 within unsigned 32-bit integer for LP64 platforms.
michael@0 1429
michael@0 1430 * src/base/fttrigon.c (ft_trig_downscale): The FT_Fixed
michael@0 1431 variable `val' and unsigned long constant FT_TRIG_SCALE
michael@0 1432 are cast to FT_UInt32, when calculates FT_UInt32.
michael@0 1433 (FT_Vector_Rotate): The long constant 1L is cast to
michael@0 1434 FT_Int32 to calculate FT_Int32 `half'.
michael@0 1435
michael@0 1436 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1437
michael@0 1438 cff: Cast the long variables to 32-bit for LP64 systems.
michael@0 1439
michael@0 1440 * src/cff/cffdrivr.c (cff_get_advances): Insert
michael@0 1441 explicit cast to modify a 32-bit flag by unsigned
michael@0 1442 long constant.
michael@0 1443
michael@0 1444 * src/cff/cffobjs.c (cff_face_init): Ditto.
michael@0 1445
michael@0 1446 * src/cff/cffgload.c (cff_decoder_parse_charstrings):
michael@0 1447 Replace the casts to FT_Long by the casts to FT_Int32
michael@0 1448 for LP64 platforms.
michael@0 1449
michael@0 1450 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1451
michael@0 1452 pcf: Improve PCF_PropertyRec.value names on LP64 platforms.
michael@0 1453
michael@0 1454 * src/pcf/pcf.h: In PCF_PropertyRec.value, the member
michael@0 1455 `integer' is replaced by `l', `cardinal' is replaced
michael@0 1456 by `ul', to fix the difference between the name and
michael@0 1457 the types on LP64 platforms.
michael@0 1458
michael@0 1459 * src/pcf/pcfdrivr.c (pcf_get_bdf_property): Reflect
michael@0 1460 PCF_PropertyRec.value change, with appropriate casts
michael@0 1461 to FT_Int32/FT_UInt32. Their destinations
michael@0 1462 BDF_PropertyRec.{integer|cardinal} are public and
michael@0 1463 explicitly defined as FT_Int32/FT_UInt32.
michael@0 1464
michael@0 1465 * src/pcf/pcfread.c (pcf_get_properties, pcf_load_font):
michael@0 1466 Reflect PCF_PropertyRec.value change.
michael@0 1467
michael@0 1468 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1469
michael@0 1470 pcf: Fix some data types mismatching with their sources.
michael@0 1471
michael@0 1472 * src/pcf/pcfdrivr.c (pcf_cmap_char_index): The type of
michael@0 1473 `code' is matched to PCF_Encoding->enc.
michael@0 1474 (pcf_cmap_char_next): The type of `charcode' is matched
michael@0 1475 to PCF_Encoding->enc. When *acharcode is set by charcode,
michael@0 1476 an overflow is checked and cast to unsigned 32-bit
michael@0 1477 integer.
michael@0 1478
michael@0 1479 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1480
michael@0 1481 bdf: Improve bdf_property_t.value names for LP64 platforms.
michael@0 1482
michael@0 1483 * src/bdf/bdf.h: In bdf_property_t.value, the member
michael@0 1484 `int32' is replaced by `l', `card32' is replaced by
michael@0 1485 `ul', to fix the difference between the name and the
michael@0 1486 types on LP64 platforms.
michael@0 1487
michael@0 1488 * src/bdf/bdfdrivr.c (BDF_Face_Init): Reflect
michael@0 1489 bdf_property_t.value change.
michael@0 1490 (bdf_get_bdf_property): Reflect bdf_property_t.value
michael@0 1491 change, with appropriate casts to FT_Int32/FT_UInt32.
michael@0 1492 Their destinations BDF_PropertyRec.{integer|cardinal}
michael@0 1493 are public and explicitly defined as FT_Int32/FT_UInt32.
michael@0 1494
michael@0 1495 * src/bdf/bdflib.c (_bdf_add_property): Reflect
michael@0 1496 bdf_property_t.value change.
michael@0 1497
michael@0 1498 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1499
michael@0 1500 bdf: Fix some data types mismatching with their sources.
michael@0 1501
michael@0 1502 * src/bdf/bdrdrivr.c (bdf_cmap_char_index): The type
michael@0 1503 of `code' is matched with BDF_encoding_el->enc.
michael@0 1504 (bdf_cmap_char_next): The type of `charcode' is
michael@0 1505 matched with BDF_encoding_el->enc. When *acharcode
michael@0 1506 is set by charcode, an overflow is checked and
michael@0 1507 cast to unsigned 32-bit integer.
michael@0 1508
michael@0 1509 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1510
michael@0 1511 autofit: Improve Unicode range definitions.
michael@0 1512
michael@0 1513 * src/autofit/aftypes.h (AF_UNIRANGE_REC): New macro
michael@0 1514 to declare a range by two unsigned 32-bit integer,
michael@0 1515 to avoid 64-bit range definition on LP64 platforms.
michael@0 1516
michael@0 1517 * src/autofit/aflatin.c (af_latin_uniranges): Ditto.
michael@0 1518
michael@0 1519 * src/autofit/aflatin2.c (af_latin2_uniranges): Ditto.
michael@0 1520
michael@0 1521 * src/autofit/afindic.c (af_indic_uniranges): Ditto.
michael@0 1522
michael@0 1523 * src/autofit/afcjk.c (af_cjk_uniranges): Declare
michael@0 1524 the ranges by AF_UNIRANGE_REC.
michael@0 1525
michael@0 1526 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1527
michael@0 1528 smooth: Fix a data type mismatching with its source.
michael@0 1529
michael@0 1530 * src/smooth/ftgrays.c (gray_sweep): The type of
michael@0 1531 `area' is matched with the 3rd argument `area'
michael@0 1532 of gray_hline().
michael@0 1533
michael@0 1534 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1535
michael@0 1536 smooth: Fix a data type mismatching with its source.
michael@0 1537
michael@0 1538 * src/smooth/ftgrays.c (gray_render_line): The type
michael@0 1539 of `area' is matched with TWorker.area.
michael@0 1540
michael@0 1541 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1542
michael@0 1543 cache: Disable the legacy compatibility if 16-bit system.
michael@0 1544
michael@0 1545 * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Exclude
michael@0 1546 the legacy behaviour from 16-bit platform, because the
michael@0 1547 current hack cannot detect the caller uses this function
michael@0 1548 via legacy convension.
michael@0 1549 (FTC_SBitCache_Lookup): Ditto.
michael@0 1550
michael@0 1551 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1552
michael@0 1553 cache: Check 32-bit glyph index on 16-bit systems.
michael@0 1554
michael@0 1555 * src/cache/ftcbasic.c (ftc_basic_family_get_count):
michael@0 1556 Check overflow caused by the face including large
michael@0 1557 number of glyphs > 64k.
michael@0 1558
michael@0 1559 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1560
michael@0 1561 cache: Fix some data types mismatching with their sources.
michael@0 1562
michael@0 1563 * src/cache/ftccache.c (ftc_cache_resize): The types of
michael@0 1564 `p', `mask', `count' are matched with FTC_Cache->{p,mask}.
michael@0 1565 (FTC_Cache_Clear): The type of `old_index' is matched to
michael@0 1566 FTC_Cache->{p,mask}.
michael@0 1567
michael@0 1568 * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): The type
michael@0 1569 of `_idx' is matched with FTC_Cache->{p,mask}.
michael@0 1570
michael@0 1571 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1572
michael@0 1573 cache: Fix some data types mismatching with their sources.
michael@0 1574
michael@0 1575 * src/cache/ftcsbits.c (ftc_snode_load): The types
michael@0 1576 of `xadvance' and `yadvance' are matched with
michael@0 1577 FT_GlyphSlot->advance.{x|y}.
michael@0 1578
michael@0 1579 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1580
michael@0 1581 cache: Cast NULL to a required function type explicitly.
michael@0 1582
michael@0 1583 * src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID):
michael@0 1584 Insert explicit cast from NULL to function type.
michael@0 1585
michael@0 1586 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1587
michael@0 1588 fttypes.h: Cast FT_MAKE_TAG output to FT_Tag exlicitly.
michael@0 1589
michael@0 1590 * include/freetype/fttypes.h (FT_MAKE_TAG):
michael@0 1591 Cast the result to FT_Tag.
michael@0 1592
michael@0 1593 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1594
michael@0 1595 psnames: Handle Unicode codepoints by FT_UInt32 variables.
michael@0 1596
michael@0 1597 * src/psnames/psmodule.c (BASE_GLYPH): Cast the result
michael@0 1598 to unsigned 32-bit integer for LP64 platform.
michael@0 1599 (ps_unicode_value): Return the value by unsigned 32-bit
michael@0 1600 integer instead of unsigned long.
michael@0 1601
michael@0 1602 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1603
michael@0 1604 psaux: Use size_t variable to pass the buffer size.
michael@0 1605
michael@0 1606 * src/psaux/psaux.h (to_bytes): The type of `max_bytes'
michael@0 1607 (the argument to pass the buffer size) is changed to
michael@0 1608 size_t, to match with ANSI C string functions.
michael@0 1609
michael@0 1610 * src/psaux/psconv.h (PS_Conv_StringDecode,
michael@0 1611 PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto.
michael@0 1612
michael@0 1613 * src/psaux/psconv.c (PS_Conv_StringDecode,
michael@0 1614 PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto.
michael@0 1615
michael@0 1616 * src/psaux/psobjs.h (ps_parser_to_bytes): Ditto.
michael@0 1617
michael@0 1618 * src/psaux/psobjs.c (ps_parser_to_bytes): Ditto.
michael@0 1619
michael@0 1620 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1621
michael@0 1622 type1: Use size_t variable to pass the string length.
michael@0 1623
michael@0 1624 * psaux.h: The type of `len' (the argument to pass
michael@0 1625 the buffer size to the function in AFM_ParserRec)
michael@0 1626 is changed to size_t, to match with ANSI C string
michael@0 1627 functions.
michael@0 1628
michael@0 1629 * t1afm.c (t1_get_index): Ditto.
michael@0 1630
michael@0 1631 * test_afm.c (dummy_get_index): Ditto.
michael@0 1632
michael@0 1633 * afmparse.c (afm_parser_read_vals): To call
michael@0 1634 AFM_ParserRec.get_index, the length of token
michael@0 1635 `len' is cast to size_t.
michael@0 1636
michael@0 1637 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1638
michael@0 1639 cid: Fix some data types mismatching with their sources.
michael@0 1640
michael@0 1641 * src/cid/cidparse.c (cid_parser_new): The types of
michael@0 1642 `read_len' and `stream_len' are matched to
michael@0 1643 FT_Stream->size. Unrequired cast is removed.
michael@0 1644
michael@0 1645 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1646
michael@0 1647 cff: Fix for unused variable `rest'.
michael@0 1648
michael@0 1649 * src/cff/cffparse.c (cff_parse_real): Insert
michael@0 1650 FT_UNUSED() to hide the unused variable warning.
michael@0 1651
michael@0 1652 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1653
michael@0 1654 cff: Fix some data types mismatching with their sources.
michael@0 1655
michael@0 1656 * src/cff/cffgload.c (cff_slot_load): The types of
michael@0 1657 `top_upm' and `sub_upm' are matched with
michael@0 1658 CFF_FontRecDict->units_per_em.
michael@0 1659
michael@0 1660 * src/cff/cffobjs.c (cff_size_select): Ditto.
michael@0 1661 (cff_size_request): Ditto.
michael@0 1662
michael@0 1663 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1664
michael@0 1665 bdf: Fix some data types mismatching with their sources.
michael@0 1666
michael@0 1667 * bdflib.c (_bdf_list_ensure): The type of `num_items'
michael@0 1668 is matched with _bdf_list_t.used. Also the types of
michael@0 1669 `oldsize', `newsize', `bigsize' are matched too.
michael@0 1670 (_bdf_readstream): `cursor' is used as an offset to
michael@0 1671 the pointer, it should be typed as FT_Offset. Also
michael@0 1672 the types of `bytes', `start', `end', `avail' are matched.
michael@0 1673
michael@0 1674 * bdfdrivr.c: The type of BDF_CMap->num_encodings is
michael@0 1675 matched with FT_CMap->clazz->size.
michael@0 1676 (bdf_cmap_char_index): The types of `min', `max', `mid'
michael@0 1677 are matched with BDF_CMap->num_encodings. The type of
michael@0 1678 `result' is matched with encoding->glyph.
michael@0 1679 (bdf_cmap_char_next): Ditto, the type of `code' is
michael@0 1680 matched with BDF_encoding_el.enc.
michael@0 1681 (bdf_interpret_style): The type of `lengths' is changed
michael@0 1682 to size_t, to take the value by ft_strlen(). Also the
michael@0 1683 types of `len', `nn', `mm' are matched.
michael@0 1684
michael@0 1685 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1686
michael@0 1687 sfnt: Count the size of the memory object by ptrdiff_t.
michael@0 1688
michael@0 1689 * src/sfnt/ttbdf.c (tt_face_find_bdf_prop): The type of
michael@0 1690 `peroperty_len' is changed from FT_UInt to FT_Offset,
michael@0 1691 to match with size_t, which is appropriate type for the
michael@0 1692 object in the memory buffer.
michael@0 1693
michael@0 1694 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1695
michael@0 1696 lzw: Count the size of the memory object by ptrdiff_t.
michael@0 1697
michael@0 1698 * src/lzw/ftzopen.h: The types of FT_LzwState->{buf_total,
michael@0 1699 stack_size} are changed from FT_UInt to FT_Offset, to match
michael@0 1700 with size_t, which is appropriate type for the object in
michael@0 1701 the memory buffer.
michael@0 1702
michael@0 1703 * src/lzw/ftzopen.c (ft_lzwstate_stack_grow): The types of
michael@0 1704 `old_size' and `new_size' are changed from FT_UInt to
michael@0 1705 FT_Offset, to match with size_t, which is appropriate type
michael@0 1706 for the object in the memory buffer.
michael@0 1707
michael@0 1708 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1709
michael@0 1710 otvalid: Count the table size on memory by ptrdiff_t.
michael@0 1711
michael@0 1712 * src/otvalid/otvgpos.c (otv_ValueRecord_validate):
michael@0 1713 Change the type of table size from FT_UInt to
michael@0 1714 FT_PtrDist because it is calculated by the memory
michael@0 1715 addresses.
michael@0 1716
michael@0 1717 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1718
michael@0 1719 otvalid: Prevent an overflow by GPOS/GSUB 32b-bit offset.
michael@0 1720
michael@0 1721 * src/otvalid/otvgpos.c (otv_ExtensionPos_validate):
michael@0 1722 Extend ExtensionOffset from FT_UInt to FT_ULong, to
michael@0 1723 cover 32-bit offset on 16-bit platform.
michael@0 1724
michael@0 1725 * src/otvalid/otvgsub.c (otv_ExtensionSubst_validate):
michael@0 1726 Ditto.
michael@0 1727
michael@0 1728 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1729
michael@0 1730 ftobjs.c: Prevent an overflow in glyph index handling.
michael@0 1731
michael@0 1732 * src/base/ftobjs.c (FT_Face_GetCharsOfVariant):
michael@0 1733 Improve the cast in comparison to avoid the truncation.
michael@0 1734
michael@0 1735 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1736
michael@0 1737 Improve the variable types in raccess_make_file_name().
michael@0 1738
michael@0 1739 * src/base/ftrfork.c (raccess_make_file_name):
michael@0 1740 Change the type of cursor variable `tmp' to const char*,
michael@0 1741 to prevent the unexpected modification of original pathname.
michael@0 1742 (raccess_make_file_name): Change the type of new_length
michael@0 1743 to size_t.
michael@0 1744
michael@0 1745 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1746
michael@0 1747 ftpatent.c: Fix for unused variable `error'.
michael@0 1748
michael@0 1749 * src/base/ftpatent.c (_tt_check_patents_in_range):
michael@0 1750 Fix warning for unused variable `error'.
michael@0 1751
michael@0 1752 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1753
michael@0 1754 type1: Check invalid string longer than PostScript limit.
michael@0 1755
michael@0 1756 * src/type1/t1afm.c (t1_get_index): Check invalid string
michael@0 1757 which exceeds the limit of PostScript string/name objects.
michael@0 1758
michael@0 1759 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1760
michael@0 1761 gzip: Use FT2 zcalloc() & zfree() in ftgzip.c by default.
michael@0 1762
michael@0 1763 * src/gzip/ftgzip.c (zcalloc, zcfree): Disable all
michael@0 1764 zcalloc() & zfree() by zlib in zutil.c, those in
michael@0 1765 ftgzip.c by FT2 are enabled by default. To use
michael@0 1766 zlib zcalloc() & zfree(), define USE_ZLIB_ZCALLOC.
michael@0 1767 See discussion:
michael@0 1768 http://lists.gnu.org/archive/html/freetype-devel/2009-02/msg00000.html
michael@0 1769
michael@0 1770 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1771
michael@0 1772 gzip: Distinguish PureC from TurboC on MSDOS.
michael@0 1773
michael@0 1774 * src/gzip/zutil.c (zcalloc, zcfree): Enable only for
michael@0 1775 MSDOS platform.
michael@0 1776
michael@0 1777 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1778
michael@0 1779 gxvalid: Insert PureC pragma to allow unevaluated variables.
michael@0 1780
michael@0 1781 * builds/atari/ATARI.H: Insert PureC pragma not to
michael@0 1782 warn against set-but-unevaluated variable in gxvalid
michael@0 1783 module.
michael@0 1784
michael@0 1785 2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1786
michael@0 1787 gxvalid: Pass the union by the pointer instead of the value.
michael@0 1788
michael@0 1789 * src/gxvalid/gxvcommn.h:
michael@0 1790 - Declare new type `GXV_LookupValueCPtr'.
michael@0 1791 - Update the type of the 2nd argument to pass GXV_LookupValueDesc
michael@0 1792 data to the function prototyped as GXV_Lookup_Value_Validate_Func,
michael@0 1793 from GXV_LookupValueDesc to GXV_LookupValueCPtr.
michael@0 1794 - Likewise for the function prototyped as
michael@0 1795 GXV_Lookup_Fmt4_Transit_Func.
michael@0 1796
michael@0 1797 - Declare new type `GXV_StateTable_GlyphOffsetCPtr'.
michael@0 1798 - Update the type of the 3rd argument to pass
michael@0 1799 GXV_StateTable_GlyphOffsetDesc data to the function prototyped
michael@0 1800 as GXV_StateTable_Entry_Validate_Func, from
michael@0 1801 GXV_StateTable_GlyphOffsetDesc to GXV_StateTable_GlyphOffsetCPtr.
michael@0 1802
michael@0 1803 - Declare new type `GXV_XStateTable_GlyphOffsetCPtr'.
michael@0 1804 - Update the type of the 3rd argument to pass
michael@0 1805 GXV_XStateTable_GlyphOffsetDesc data to the function prototyped
michael@0 1806 as GXV_XStateTable_Entry_Validate_Func,
michael@0 1807 from GXV_XStateTable_GlyphOffsetDesc
michael@0 1808 to GXV_XStateTable_GlyphOffsetCPtr.
michael@0 1809
michael@0 1810 * src/gxvalid/gxvcommn.c (gxv_LookupTable_fmt0_validate,
michael@0 1811 gxv_XClassTable_lookupval_validate,
michael@0 1812 gxv_XClassTable_lookupfmt4_transit):
michael@0 1813 Update from GXV_LookupValueDesc to GXV_LookupValueCPtr.
michael@0 1814
michael@0 1815 * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
michael@0 1816 gxv_bsln_LookupFmt4_transit): Ditto.
michael@0 1817
michael@0 1818 * src/gxvalid/gxvjust.c
michael@0 1819 (gxv_just_pcTable_LookupValue_entry_validate,
michael@0 1820 gxv_just_classTable_entry_validate,
michael@0 1821 gxv_just_wdcTable_LookupValue_validate): Ditto.
michael@0 1822
michael@0 1823 * src/gxvalid/gxvkern.c
michael@0 1824 (gxv_kern_subtable_fmt1_entry_validate): Ditto.
michael@0 1825
michael@0 1826 * src/gxvalid/gxvlcar.c (gxv_lcar_LookupValue_validate,
michael@0 1827 gxv_lcar_LookupFmt4_transit): Ditto.
michael@0 1828
michael@0 1829 * src/gxvalid/gxvopbd.c (gxv_opbd_LookupValue_validate,
michael@0 1830 gxv_opbd_LookupFmt4_transit): Ditto.
michael@0 1831
michael@0 1832 * src/gxvalid/gxvprop.c (gxv_prop_LookupValue_validate,
michael@0 1833 gxv_prop_LookupFmt4_transit): Ditto.
michael@0 1834
michael@0 1835 * src/gxvalid/gxvmort4.c
michael@0 1836 (gxv_mort_subtable_type4_lookupval_validate): Ditto.
michael@0 1837
michael@0 1838 * src/gxvalid/gxvmort0.c
michael@0 1839 (gxv_mort_subtable_type0_entry_validate): Update
michael@0 1840 from GXV_StateTable_GlyphOffsetDesc
michael@0 1841 to GXV_StateTable_GlyphOffsetCPtr.
michael@0 1842
michael@0 1843 * src/gxvalid/gxvmort1.c
michael@0 1844 (gxv_mort_subtable_type1_entry_validate): Ditto.
michael@0 1845
michael@0 1846 * src/gxvalid/gxvmort2.c
michael@0 1847 (gxv_mort_subtable_type2_entry_validate): Ditto.
michael@0 1848
michael@0 1849 * src/gxvalid/gxvmort5.c
michael@0 1850 (gxv_mort_subtable_type5_entry_validate): Ditto.
michael@0 1851
michael@0 1852 * src/gxvalid/gxvmorx2.c
michael@0 1853 (gxv_morx_subtable_type2_entry_validate): Ditto.
michael@0 1854
michael@0 1855 * src/gxvalid/gxvmorx5.c
michael@0 1856 (gxv_morx_subtable_type5_entry_validate): Ditto.
michael@0 1857
michael@0 1858 * src/gxvalid/gxvmorx1.c
michael@0 1859 (gxv_morx_subtable_type1_entry_validate): Ditto.
michael@0 1860 (gxv_morx_subtable_type1_LookupValue_validate,
michael@0 1861 gxv_morx_subtable_type1_LookupFmt4_transit):
michael@0 1862 Update from GXV_LookupValueDesc to GXV_LookupValueCPtr.
michael@0 1863
michael@0 1864 * src/gxvalid/gxvmorx0.c
michael@0 1865 (gxv_morx_subtable_type0_entry_validate): Update
michael@0 1866 from GXV_XStateTable_GlyphOffsetDesc
michael@0 1867 to GXV_XStateTable_GlyphOffsetCPtr.
michael@0 1868
michael@0 1869 2009-07-29 Fabrice Bellet <fabrice@bellet.info>
michael@0 1870
michael@0 1871 Fix Redhat bugzilla #513582 and Savannah bug #26849.
michael@0 1872
michael@0 1873 * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP) <FTC_INLINE>: Fix
michael@0 1874 aliasing bug.
michael@0 1875
michael@0 1876 2009-07-19 Werner Lemberg <wl@gnu.org>
michael@0 1877
michael@0 1878 Document recent library changes.
michael@0 1879
michael@0 1880 * docs/CHANGES: Do it.
michael@0 1881
michael@0 1882 2009-07-17 Werner Lemberg <wl@gnu.org>
michael@0 1883
michael@0 1884 Fix Savannah bug #23786.
michael@0 1885
michael@0 1886 * src/truetype/ttobjs.c (tt_size_init_bytecode): Don't reset x_ppem
michael@0 1887 and y_ppem. Otherwise the `*_CVT_Stretched' functions in ttinterp.c
michael@0 1888 get never called.
michael@0 1889 An anonymous guy suggested this change on Savannah, and it seems to
michael@0 1890 be the right solution.
michael@0 1891
michael@0 1892 2009-07-15 Werner Lemberg <wl@gnu.org>
michael@0 1893
michael@0 1894 * docs/release: Updated.
michael@0 1895
michael@0 1896 2009-07-15 Werner Lemberg <wl@gnu.org>
michael@0 1897
michael@0 1898 README.CVS -> README.git
michael@0 1899
michael@0 1900 * README.CVS: Renamed to...
michael@0 1901 * README.git: This.
michael@0 1902 Updated.
michael@0 1903
michael@0 1904 2009-07-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1905
michael@0 1906 Borland C++ compiler patch proposed by Mirco Babin.
michael@0 1907 http://lists.gnu.org/archive/html/freetype/2009-07/msg00016.html.
michael@0 1908
michael@0 1909 * builds/exports.mk: Delete unused flags, CCexe_{CFLAGS,LDFLAGS}.
michael@0 1910 Fix APINAMES_C and APINAMES_EXE pathnames to reflect the platform
michael@0 1911 specific pathname syntax.
michael@0 1912 * builds/compiler/bcc.mk: Remove unused flag, CCexe_LDFLAGS.
michael@0 1913 Define TE = `-e' separately (bcc32 cannot specify the pathname of
michael@0 1914 binary executable by T = `-o').
michael@0 1915 Extend the large page size in linking freetype.lib.
michael@0 1916 Add extra CLEAN target to delete bcc specific temporary files.
michael@0 1917 * builds/compiler/bcc-dev.mk: Ditto.
michael@0 1918
michael@0 1919 2009-07-14 Werner Lemberg <wl@gnu.org>
michael@0 1920
michael@0 1921 Fix Savannah bug #27026.
michael@0 1922
michael@0 1923 * builds/win32/vc2005/freetype.sln: Use correct version number.
michael@0 1924
michael@0 1925 2009-07-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1926
michael@0 1927 Add a script to check the undefined and unused trace macros.
michael@0 1928
michael@0 1929 * src/tools/chktrcmp.py: A script to check trace_XXXX macros
michael@0 1930 that are used in C source but undefined in fttrace.h, or
michael@0 1931 defined in fttrace.h but unused in C sources. See
michael@0 1932 http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html.
michael@0 1933 * docs/DEBUG: Mention on chktrcmp.py.
michael@0 1934 * docs/release: Ditto.
michael@0 1935
michael@0 1936 2009-07-09 Werner Lemberg <wl@gnu.org>
michael@0 1937
michael@0 1938 [ftraster] Make it compile again with -D_STANDALONE_.
michael@0 1939
michael@0 1940 * src/raster/ftraster.c [_STANDALONE_]: Define
michael@0 1941 FT_CONFIG_STANDARD_LIBRARY_H.
michael@0 1942 Include `string.h'.
michael@0 1943 Don't include `rastpic.h'.
michael@0 1944 Define FT_DEFINE_RASTER_FUNCS.
michael@0 1945
michael@0 1946 2009-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1947
michael@0 1948 smooth: Check glyph size by width/height, instead of pitch/height.
michael@0 1949 Suggested by der Mouse <mouse@Rodents-Montreal.ORG>.
michael@0 1950
michael@0 1951 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Improve
michael@0 1952 the check for too large glyph. Replace the pair of `pitch' and
michael@0 1953 `height' by the pair of `width' and `height'. `pitch' cannot
michael@0 1954 be greater than `height'. The required is checking the product
michael@0 1955 `pitch' * `height' <= FT_ULONG_MAX, but we use cheap checks for
michael@0 1956 the realistic case only.
michael@0 1957
michael@0 1958 2009-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1959
michael@0 1960 Register 2 missing trace components, t1afm and ttbdf.
michael@0 1961
michael@0 1962 * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( t1afm )
michael@0 1963 and FT_TRACE_DEF( ttbdf ). See
michael@0 1964 http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html
michael@0 1965
michael@0 1966 2009-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1967
michael@0 1968 Register a trace component for ftgloadr.c.
michael@0 1969
michael@0 1970 * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( gloader ).
michael@0 1971 The macro `trace_gloader' was already used in the initial version
michael@0 1972 on 2002-02-24.
michael@0 1973
michael@0 1974 2009-07-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 1975
michael@0 1976 Prevent the overflows by a glyph with too many points or contours.
michael@0 1977 The bug is reported by Boris Letocha <b.letocha@gmc.net>. See
michael@0 1978 http://lists.gnu.org/archive/html/freetype-devel/2009-06/msg00031.html
michael@0 1979 http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00002.html
michael@0 1980
michael@0 1981 * include/freetype/ftimage.h (FT_OUTLINE_CONTOURS_MAX,
michael@0 1982 FT_OUTLINE_POINTS_MAX): New macros to declare the maximum
michael@0 1983 values of FT_Outline.{n_contours,n_points}.
michael@0 1984 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Check the
michael@0 1985 total numbers of points and contours cause no overflows in
michael@0 1986 FT_Outline.{n_contours,n_points}.
michael@0 1987
michael@0 1988 * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
michael@0 1989 FT_GLYPHLOADER_CHECK_C): Compare the numbers of points and
michael@0 1990 contours as unsigned long number, instead of signed int, to
michael@0 1991 prevent the overflows on 16-bit systems.
michael@0 1992
michael@0 1993 2009-07-05 Bram Tassyns <bramt@enfocus.be>
michael@0 1994
michael@0 1995 Improve compatibility to Acroread.
michael@0 1996 This fixes Savannah bug #26944.
michael@0 1997
michael@0 1998 * src/cff/cffload.c (cff_charset_compute_cids): For multiple GID to
michael@0 1999 single CID mappings, make the lowest value win.
michael@0 2000
michael@0 2001 2009-06-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 2002
michael@0 2003 ftpatent: Fix a bug by wrong usage of service->table_info().
michael@0 2004 http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00039.html
michael@0 2005
michael@0 2006 * include/freetype/internal/services/svsfnt.h: Extend
michael@0 2007 FT_SFNT_TableInfoFunc() to take new argument to obtain the offset
michael@0 2008 to the specified table.
michael@0 2009 * src/sfnt/sfdriver.c (sfnt_table_info): Extend to return the
michael@0 2010 table-offset to the caller function.
michael@0 2011 * src/base/ftpatent.c (_tt_check_patents_in_table): Use new
michael@0 2012 service->table_info().
michael@0 2013 * src/base/ftobjs.c (FT_Sfnt_Table_Info): Synchronize to new
michael@0 2014 service->table_info().
michael@0 2015
michael@0 2016 2009-06-28 Werner Lemberg <wl@gnu.org>
michael@0 2017
michael@0 2018 [psaux, cff] Protect against nested `seac' calls.
michael@0 2019
michael@0 2020 * include/freetype/internal/psaux.h (T1_Decoder), src/cff/cffgload.h
michael@0 2021 (CFF_Decoder): Add `seac' boolean variable.
michael@0 2022
michael@0 2023 * src/cff/cffgload.c (cff_operator_seac), src/psaux/t1decode.c
michael@0 2024 (t1operator_seac): Use it.
michael@0 2025
michael@0 2026 2009-06-28 Werner Lemberg <wl@gnu.org>
michael@0 2027
michael@0 2028 Thinko.
michael@0 2029
michael@0 2030 * src/psaux/t1decode.c (t1operator_seac)
michael@0 2031 [FT_CONFIG_OPTION_INCREMENTAL]: Test for existence of incremental
michael@0 2032 interface.
michael@0 2033
michael@0 2034 2009-06-28 Werner Lemberg <wl@gnu.org>
michael@0 2035
michael@0 2036 * devel/ftoption.h [FT_CONFIG_OPTION_INCREMENTAL]: Define.
michael@0 2037
michael@0 2038 2009-06-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 2039
michael@0 2040 Add tools to preprocess the source files for AtariST PureC.
michael@0 2041
michael@0 2042 * builds/atari/deflinejoiner.awk: New file to filter C source files
michael@0 2043 for broken C preprocessor of PureC compiler.
michael@0 2044
michael@0 2045 * builds/atari/gen-purec-patch.sh: New file to generate a patch set
michael@0 2046 for PureC, by using deflinejoiner.awk.
michael@0 2047
michael@0 2048 2009-06-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 2049
michael@0 2050 Keep existing modules.cfg in the building tree.
michael@0 2051
michael@0 2052 * configure: If `configure' is executed outside of the source tree,
michael@0 2053 an existing `modules.cfg' file in the build directory should be
michael@0 2054 kept, not overwritten by the version in the source tree.
michael@0 2055
michael@0 2056 2009-06-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 2057
michael@0 2058 Filter --srcdir= option before invoking builds/unix/configure.
michael@0 2059
michael@0 2060 * configure: If builds/unix/configure is invoked with --srcdir
michael@0 2061 option, the option should take `builds/unix' directory instead of
michael@0 2062 the top source directory. Thus the configure script in the top
michael@0 2063 directory should modify the --srcdir= option if
michael@0 2064 `builds/unix/configure' is invoked.
michael@0 2065
michael@0 2066 2009-06-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 2067
michael@0 2068 Improve configure.raw for cross-building on exe-suffixed systems.
michael@0 2069
michael@0 2070 * builds/unix/configure.raw: Fix a bug in sed script to extract
michael@0 2071 native suffix for binary executables, patch by Peter Breitenlohner.
michael@0 2072 http://lists.gnu.org/archive/html/freetype-devel/2009-04/msg00036.html
michael@0 2073
michael@0 2074 2009-06-26 Werner Lemberg <wl@gnu.org>
michael@0 2075
michael@0 2076 [truetype] Remove TT_SubGlyphRec.
michael@0 2077
michael@0 2078 * src/truetype/ttobjs.h (TT_SubGlyphRec): Removed, unused.
michael@0 2079
michael@0 2080 2009-06-26 Werner Lemberg <wl@gnu.org>
michael@0 2081
michael@0 2082 * */*: For warning messages, replace FT_ERROR with FT_TRACE0.
michael@0 2083
michael@0 2084 FT_ERROR is now used only if a function produces a non-zero `error'
michael@0 2085 value.
michael@0 2086
michael@0 2087 Formatting, improving and harmonizing debug strings.
michael@0 2088
michael@0 2089 2009-06-25 Werner Lemberg <wl@gnu.org>
michael@0 2090
michael@0 2091 Provide version information better.
michael@0 2092
michael@0 2093 * src/base/ftinit.c (FT_Init_FreeType): Don't set version here
michael@0 2094 but...
michael@0 2095 * src/base/ftobjs.c (FT_New_Library): Here.
michael@0 2096
michael@0 2097 2009-06-22 Werner Lemberg <wl@gnu.org>
michael@0 2098
michael@0 2099 Use 16.16 format while parsing Type 1 charstrings.
michael@0 2100 This fixes Savannah bug #26867.
michael@0 2101
michael@0 2102 Previously, only integers have been used which can lead to serious
michael@0 2103 rounding errors.
michael@0 2104
michael@0 2105 However, fractional values are only used internally; after the
michael@0 2106 charstrings (of either Type 1 or 2) have been processed, the
michael@0 2107 resulting coordinates get rounded to integers currently -- before
michael@0 2108 applying scaling. This should be fixed; at the same time a new load
michael@0 2109 flag should be introduced, to be used in combination with
michael@0 2110 FT_LOAD_NO_SCALE, which indicates that font units are returned in
michael@0 2111 16.16 format. Similarly, the incremental interface should be
michael@0 2112 extended to allow fractional values for metrics.
michael@0 2113
michael@0 2114 * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `shift'
michael@0 2115 field.
michael@0 2116 * include/freetype/internal/pshints.h (T1_Hints_SetStemFunc,
michael@0 2117 T1_Hints_SetStem3Func): Use FT_Fixed for coordinates.
michael@0 2118
michael@0 2119 * src/psaux/psobjs.c: Include FT_INTERNAL_CALC_H.
michael@0 2120 (t1_build_add_point): Always convert fixed to integer.
michael@0 2121 * src/psaux/t1decode.c (t1_decoder_parse_charstrings):
michael@0 2122 Use 16.16 format everywhere (except for large integers followed by a
michael@0 2123 `div').
michael@0 2124 [CAN_HANDLE_NON_INTEGRAL_T1_OPERANDS]: Remove #ifdef and activate
michael@0 2125 code uncoditionally.
michael@0 2126 Add support for random numbers and update remaining code
michael@0 2127 accordingly; this should work now.
michael@0 2128 (t1_operator_seac): Updated.
michael@0 2129 * src/psaux/pshrec.c: Include FT_INTERNAL_CALC_H.
michael@0 2130 (ps_hints_t1stem3, t1_hints_stem): Updated.
michael@0 2131
michael@0 2132 * src/cid/cidgload.c: Include FT_INTERNAL_CALC_H.
michael@0 2133 (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL],
michael@0 2134 (cid_face_compute_max_advance, cid_slot_load_glyph): Updated.
michael@0 2135
michael@0 2136 * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
michael@0 2137 [FT_CONFIG_OPTION_INCREMENTAL], (T1_Get_Advances, T1_Load_Glyph):
michael@0 2138 Updated.
michael@0 2139 * src/type1/t1load.c: Include FT_INTERNAL_CALC_H.
michael@0 2140 * src/type1/t1objs.c (T1_Face_Init): Updated.
michael@0 2141
michael@0 2142 2009-06-21 Werner Lemberg <wl@gnu.org>
michael@0 2143
michael@0 2144 * src/pshinter/pshrec.c: Use PSH_Err_Ok.
michael@0 2145
michael@0 2146 2009-06-21 Werner Lemberg <wl@gnu.org>
michael@0 2147
michael@0 2148 Code beautification.
michael@0 2149
michael@0 2150 * src/type1/t1load.c (FT_INT_TO_FIXED): Removed.
michael@0 2151 Replace everywhere with INT_TO_FIXED.
michael@0 2152 (FT_FIXED_TO_INT): Move to ...
michael@0 2153 * include/freetype/internal/ftcalc.h (FIXED_TO_INT): Here.
michael@0 2154 Update all users.
michael@0 2155
michael@0 2156 2009-06-20 Werner Lemberg <wl@gnu.org>
michael@0 2157
michael@0 2158 Remove unused variables.
michael@0 2159
michael@0 2160 * include/freetype/internal/psaux.h (T1_BuilderRec),
michael@0 2161 src/cff/cffgload.h (CFF_Builder): Remove `last'.
michael@0 2162 Update all users.
michael@0 2163
michael@0 2164 2009-06-20 Werner Lemberg <wl@gnu.org>
michael@0 2165
michael@0 2166 [psaux] Check large integers while parsing charstrings.
michael@0 2167
michael@0 2168 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Large
michael@0 2169 integers must be followed by a `div' operator.
michael@0 2170
michael@0 2171 2009-06-20 Werner Lemberg <wl@gnu.org>
michael@0 2172
michael@0 2173 [cff] Revert last change.
michael@0 2174
michael@0 2175 * src/cff/cffgload.c (cff_decoder_parse_charstrings): Do it.
michael@0 2176 Next time, don't confuse Type 2 charstring opcodes with TOP DICT
michael@0 2177 values...
michael@0 2178
michael@0 2179 2009-06-20 Werner Lemberg <wl@gnu.org>
michael@0 2180
michael@0 2181 * src/autofit/aflatin.c (af_latin_metrics_check_digits): Fix
michael@0 2182 compiler warning.
michael@0 2183
michael@0 2184 2009-06-20 Werner Lemberg <wl@gnu.org>
michael@0 2185
michael@0 2186 * builds/compiler/gcc.mk (CFLAGS): Use -O3, not -O6.
michael@0 2187
michael@0 2188 2009-06-19 Werner Lemberg <wl@gnu.org>
michael@0 2189
michael@0 2190 [cff] Fix handling of reserved byte 0xFF.
michael@0 2191
michael@0 2192 * src/cff/cffgload.c (cff_decoder_parse_charstrings): Abort if byte
michael@0 2193 0xFF is encountered.
michael@0 2194
michael@0 2195 2009-06-19 Werner Lemberg <wl@gnu.org>
michael@0 2196
michael@0 2197 Improve debug messages for Type1 charstrings.
michael@0 2198
michael@0 2199 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Emit newlines
michael@0 2200 after instructions.
michael@0 2201 Prettify output.
michael@0 2202
michael@0 2203 2009-06-19 Werner Lemberg <wl@gnu.org>
michael@0 2204
michael@0 2205 More ftgray fixes for FT_STATIC_RASTER.
michael@0 2206 Problems reported by suyu@cooee.cn.
michael@0 2207
michael@0 2208 * src/smooth/ftgrays.c (gray_move_to, gray_raster_render): Use
michael@0 2209 RAS_VAR.
michael@0 2210
michael@0 2211 2009-06-18 Werner Lemberg <wl@gnu.org>
michael@0 2212
michael@0 2213 * docs/CHANGES: Updated.
michael@0 2214
michael@0 2215 2009-06-18 Werner Lemberg <wl@gnu.org>
michael@0 2216
michael@0 2217 Fix B/W rasterization of subglyphs with different drop-out modes.
michael@0 2218
michael@0 2219 Normally, the SCANMODE instruction (if present) to set the drop-out
michael@0 2220 mode in a TrueType font is located in the `prep' table only and thus
michael@0 2221 valid for all glyphs. However, there are fonts like `pala.ttf'
michael@0 2222 which additionally contain this instruction in the hinting code of
michael@0 2223 some glyphs (but not all). As a result it can happen that a
michael@0 2224 composite glyph needs multiple drop-out modes for its subglyphs
michael@0 2225 since the rendering state gets reset for each subglyph.
michael@0 2226
michael@0 2227 FreeType collects the hinted outlines from all subglyphs, then it
michael@0 2228 sends the data to the rasterizer. It also sends the drop-out mode
michael@0 2229 -- after hinting has been applied -- and here is the error: It sends
michael@0 2230 the drop-out mode of the last subglyph only; drop-out modes of all
michael@0 2231 other subglyphs are lost.
michael@0 2232
michael@0 2233 This patch fixes the problem; it adds a second, alternative
michael@0 2234 mechanism to pass the drop-out mode: For each contour, the
michael@0 2235 rasterizer now checks the first `tags' array element. If bit 2 is
michael@0 2236 set, bits 5-7 contain the contour's drop-out mode, overriding the
michael@0 2237 global drop-out mode.
michael@0 2238
michael@0 2239 * include/freetype/ftimage.h (FT_CURVE_TAG_HAS_SCANMODE): New macro.
michael@0 2240
michael@0 2241 * src/truetype/ttgload.c (TT_Hint_Glyph): Store drop-out mode in
michael@0 2242 `tags[0]'.
michael@0 2243
michael@0 2244 * src/raster/ftraster.c (Flow_Up, Overshoot_Top, Overshoot_Bottom):
michael@0 2245 Use bits 3-5 instead of 0-2.
michael@0 2246 (New_Profile): Set the drop-out mode in the profile's `flags' field.
michael@0 2247 (Decompose_Curve): Check `tags[0]' and set `dropOutControl' if
michael@0 2248 necessary.
michael@0 2249 (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
michael@0 2250 Horizontal_Gray_Sweep_Drop, Draw_Sweep): Use the profile's drop-out
michael@0 2251 mode.
michael@0 2252
michael@0 2253 2009-06-16 Werner Lemberg <wl@gnu.org>
michael@0 2254
michael@0 2255 Improve scan conversion rules 4 and 6.
michael@0 2256
michael@0 2257 Two new constraints are introduced to better identify a `stub' -- a
michael@0 2258 concept which is only vaguely described in the OpenType
michael@0 2259 specification. The old code was too rigorous and suppressed more
michael@0 2260 pixel than it should.
michael@0 2261
michael@0 2262 . The intersection of the two profiles with the scanline is less
michael@0 2263 than a half pixel. Code related to this was already present in
michael@0 2264 the sources but has been commented out.
michael@0 2265
michael@0 2266 . The endpoint of the original contour forming a profile has a
michael@0 2267 distance (`overshoot') less than half a pixel to the scanline.
michael@0 2268
michael@0 2269 Note that the two additional conditions fix almost all differences
michael@0 2270 to the Windows rasterizer, but some problematic cases remain.
michael@0 2271
michael@0 2272 * src/raster/ftraster.c (Overshoot_Top, Overshoot_Bottom): New
michael@0 2273 macros for the `flags' field in the `TProfile' structure.
michael@0 2274 (IS_BOTTOM_OVERSHOOT, IS_TOP_OVERSHOOT): New macros.
michael@0 2275 (New_Profile, End_Profile): Pass overshoot flag as an argument and
michael@0 2276 set it accordingly.
michael@0 2277 Update callers.
michael@0 2278 (Vertical_Sweep_Drop, Horizontal_Sweep_Drop): Implement the two new
michael@0 2279 constraints.
michael@0 2280
michael@0 2281 2009-06-11 Werner Lemberg <wl@gnu.org>
michael@0 2282
michael@0 2283 Increase precision for B/W rasterizer.
michael@0 2284
michael@0 2285 * src/raster/ftraster.c (Set_High_Precision): Add two more bits to
michael@0 2286 the precision. This corrects rendering of some small glyphs, for
michael@0 2287 example, glyph `xi' in verdana.ttf at 13 ppem. Testing with ftbench
michael@0 2288 on my GNU/Linux box I don't see a performance degradation.
michael@0 2289
michael@0 2290 2009-06-08 Michael Zucchi <notzed@gmail.com>
michael@0 2291
michael@0 2292 Handle FT_STROKER_LINECAP_BUTT.
michael@0 2293 This fixes Savannah bug #26757.
michael@0 2294
michael@0 2295 * src/base/ftstroke.c (ft_stroker_cap): Implement it.
michael@0 2296
michael@0 2297 2009-06-07 Harald Fernengel <harry@kdevelop.org>
michael@0 2298
michael@0 2299 Fix some potential out-of-memory crashes.
michael@0 2300
michael@0 2301 * src/base/ftobjs.c (ft_glyphslot_done): Check `slot->internal'.
michael@0 2302 * src/base/ftstream.c (FT_Stream_ReleaseFrame): Check `stream'.
michael@0 2303 * src/truetype/ttinterp.c (TT_New_Context): Avoid double-free of
michael@0 2304 `exec' in case of failure.
michael@0 2305
michael@0 2306 2009-06-07 Werner Lemberg <wl@gnu.org>
michael@0 2307
michael@0 2308 Simplify math.
michael@0 2309 Suggested by Alexei Podtelezhnikov <apodtele@gmail.com>.
michael@0 2310
michael@0 2311 * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
michael@0 2312 Horizontal_Gray_Sweep_Drop): Do it.
michael@0 2313
michael@0 2314 2009-06-04 Werner Lemberg <wl@gnu.org>
michael@0 2315
michael@0 2316 Preparation for fixing scan conversion rules 4 and 6.
michael@0 2317
michael@0 2318 * src/raster/ftraster.c (TFlow): Replace enumeration with...
michael@0 2319 (Flow_Up): This macro.
michael@0 2320 (TProfile): Replace `flow' member with `flags' bit field.
michael@0 2321 Update all affected code.
michael@0 2322
michael@0 2323 2009-05-29 James Cloos <cloos@jhcloos.com>
michael@0 2324
michael@0 2325 Enable autohinting for glyphs rotated by multiples of 90°.
michael@0 2326
michael@0 2327 * src/base/ftobjs.c (FT_Load_Glyph): Alter check for permitted
michael@0 2328 matrices to allow rotations by multiples of 90°, not only unrotated,
michael@0 2329 possibly slanted matrices.
michael@0 2330
michael@0 2331 2009-05-28 Werner Lemberg <wl@gnu.org>
michael@0 2332
michael@0 2333 Remove compiler warning.
michael@0 2334 Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>.
michael@0 2335
michael@0 2336 * src/autofit/aflatin2.c (af_latin2_hint_edges): Move declaration of
michael@0 2337 `n_edges' into `#if' block.
michael@0 2338
michael@0 2339 2009-05-28 Werner Lemberg <wl@gnu.org>
michael@0 2340
michael@0 2341 Make compilation work with FT_CONFIG_OPTION_USE_ZLIB not defined.
michael@0 2342 Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>.
michael@0 2343
michael@0 2344 * src/pcf/pcfdrivr.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_ZLIB]:
michael@0 2345 Make it work.
michael@0 2346 Simplify #ifdef logic.
michael@0 2347
michael@0 2348 2009-05-22 Werner Lemberg <wl@gnu.org>
michael@0 2349
michael@0 2350 Improve b/w rasterizer.
michael@0 2351 Problem reported by Krzysztof Kotlenga <pocek@users.sf.net>.
michael@0 2352
michael@0 2353 * src/raster/raster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
michael@0 2354 Horizontal_Gray_Sweep_Drop): For smart drop-out mode, if
michael@0 2355 intersections are equally distant relative to next pixel center,
michael@0 2356 select the left pixel, not the right one.
michael@0 2357
michael@0 2358 2009-05-19 Werner Lemberg <wl@gnu.org>
michael@0 2359
michael@0 2360 Fix Savannah bug #26600.
michael@0 2361
michael@0 2362 * src/type42/t42parse.c (t42_load_keyword): Handle
michael@0 2363 T1_FIELD_LOCATION_FONT_EXTRA.
michael@0 2364
michael@0 2365 2009-04-30 Werner Lemberg <wl@gnu.org>
michael@0 2366
michael@0 2367 Document recent changes to ftview.
michael@0 2368
michael@0 2369 * docs/CHANGES: Do it.
michael@0 2370
michael@0 2371 2009-04-27 Werner Lemberg <wl@gnu.org>
michael@0 2372
michael@0 2373 autohinter: Don't change digit widths if all widths are the same.
michael@0 2374 This fixes FreeDesktop bug #21197.
michael@0 2375
michael@0 2376 * src/autofit/afglobal.c (AF_DIGIT): New macro.
michael@0 2377 (af_face_globals_compute_script_coverage): Mark ASCII digits in
michael@0 2378 `glyph_scripts' array.
michael@0 2379 (af_face_globals_get_metrics): Updated.
michael@0 2380 (af_face_globals_is_digit): New function.
michael@0 2381 * src/autofit/afglobal.h: Updated.
michael@0 2382 (AF_ScriptMetricsRec): Add `digits_have_same_width' flag.
michael@0 2383
michael@0 2384 * src/autofit/aflatin.c: Include FT_ADVANCES_H.
michael@0 2385 (af_latin_metrics_check_digits): New function.
michael@0 2386 (af_latin_metrics_init): Use it.
michael@0 2387 * src/autofit/aflatin.h: Updated.
michael@0 2388 * src/autofit/afcjk.c (af_cjk_metrics_init): Updated.
michael@0 2389
michael@0 2390 * src/autofit/aflatin2.c: Similar changes as with aflatin.c.
michael@0 2391
michael@0 2392 * src/autofit/afloader.c (af_loader_load_g): Test digit width.
michael@0 2393
michael@0 2394 * docs/CHANGES: Document it.
michael@0 2395
michael@0 2396 2009-04-26 Werner Lemberg <wl@gnu.org>
michael@0 2397
michael@0 2398 Make ftgrays compile with _STANDALONE_ and FT_STATIC_RASTER again.
michael@0 2399 Problems reported by suyu@cooee.cn.
michael@0 2400
michael@0 2401 * src/smooth/ftgrays.c (FT_DEFINE_OUTLINE_FUNCS,
michael@0 2402 FT_DEFINE_RASTER_FUNCS) [_STANDALONE_]: Define.
michael@0 2403 [!_STANDALONE_]: Include ftspic.h only here.
michael@0 2404 (ras): Define/declare after definition of `TWorker'.
michael@0 2405 Use `RAS_VAR_' where necessary.
michael@0 2406
michael@0 2407 2009-04-21 Karl Berry <karl@gnu.org>
michael@0 2408
michael@0 2409 Fix AC_CHECK_FT2.
michael@0 2410
michael@0 2411 * builds/unix/freetype2.m4: Only check PATH for freetype-config if
michael@0 2412 we did not already find it from a prefix option.
michael@0 2413
michael@0 2414 2009-04-05 Oran Agra <oran@monfort.co.il>
michael@0 2415
michael@0 2416 Add #error to modules and files that do not support PIC yet.
michael@0 2417
michael@0 2418 When FT_CONFIG_OPTION_PIC is defined the following files will
michael@0 2419 create #error:
michael@0 2420 * src/bdf/bdfdrivr.h
michael@0 2421 * src/cache/ftcmanag.c
michael@0 2422 * src/cid/cidriver.h
michael@0 2423 * src/gxvalid/gxvmod.h
michael@0 2424 * src/gzip/ftgzip.c
michael@0 2425 * src/lzw/ftlzw.c
michael@0 2426 * src/otvalid/otvmod.h
michael@0 2427 * src/pcf/pcfdrivr.h
michael@0 2428 * src/pfr/pfrdrivr.h
michael@0 2429 * src/psaux/psauxmod.h
michael@0 2430 * src/type1/t1driver.h
michael@0 2431 * src/type42/t42drivr.h
michael@0 2432 * src/winfonts/winfnt.h
michael@0 2433
michael@0 2434 2009-04-05 Oran Agra <oran@monfort.co.il>
michael@0 2435
michael@0 2436 Position Independent Code (PIC) support in autofit module.
michael@0 2437
michael@0 2438 * include/freetype/internal/autohint.h add macros to init
michael@0 2439 instances of FT_AutoHinter_ServiceRec.
michael@0 2440
michael@0 2441 * src/autofit/afmodule.h declare autofit_module_class
michael@0 2442 using macros from ftmodapi.h,
michael@0 2443 when FT_CONFIG_OPTION_PIC is defined create and destroy
michael@0 2444 functions will be declared.
michael@0 2445 * src/autofit/afmodule.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2446 af_autofitter_service and autofit_module_class structs
michael@0 2447 will have functions to init or create and destroy them
michael@0 2448 instead of being allocated in the global scope.
michael@0 2449 And macros will be used from afpic.h in order to access them.
michael@0 2450
michael@0 2451 * src/autofit/aftypes.h add macros to init and declare
michael@0 2452 instances of AF_ScriptClassRec.
michael@0 2453
michael@0 2454 * src/autofit/afcjk.h declare af_cjk_script_class
michael@0 2455 using macros from aftypes.h,
michael@0 2456 when FT_CONFIG_OPTION_PIC is defined init function will be declared.
michael@0 2457 * src/autofit/afcjk.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2458 af_cjk_script_class struct will have function to init it instead of
michael@0 2459 being allocated in the global scope.
michael@0 2460
michael@0 2461 * src/autofit/afdummy.h declare af_dummy_script_class
michael@0 2462 using macros from aftypes.h,
michael@0 2463 when FT_CONFIG_OPTION_PIC is defined init function will be declared.
michael@0 2464 * src/autofit/afdummy.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2465 af_dummy_script_class struct will have function to init it instead of
michael@0 2466 being allocated in the global scope.
michael@0 2467
michael@0 2468 * src/autofit/afindic.h declare af_indic_script_class
michael@0 2469 using macros from aftypes.h,
michael@0 2470 when FT_CONFIG_OPTION_PIC is defined init function will be declared.
michael@0 2471 * src/autofit/afindic.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2472 af_indic_script_class struct will have function to init it instead of
michael@0 2473 being allocated in the global scope.
michael@0 2474
michael@0 2475 * src/autofit/aflatin.h declare af_latin_script_class
michael@0 2476 using macros from aftypes.h,
michael@0 2477 when FT_CONFIG_OPTION_PIC is defined init function will be declared.
michael@0 2478 * src/autofit/aflatin.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2479 af_latin_script_class struct will have function to init it instead of
michael@0 2480 being allocated in the global scope.
michael@0 2481 Change af_latin_blue_chars to be PIC-compatible by being a two
michael@0 2482 dimentional array rather than array of pointers.
michael@0 2483
michael@0 2484
michael@0 2485 * src/autofit/aflatin2.h declare af_latin2_script_class
michael@0 2486 using macros from aftypes.h,
michael@0 2487 when FT_CONFIG_OPTION_PIC is defined init function will be declared.
michael@0 2488 * src/autofit/aflatin2.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2489 af_latin2_script_class struct will have function to init it instead of
michael@0 2490 being allocated in the global scope.
michael@0 2491 Change af_latin2_blue_chars to be PIC-compatible by being a two
michael@0 2492 dimentional array rather than array of pointers.
michael@0 2493
michael@0 2494 * src/autofit/afglobal.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2495 af_script_classes array initialization was moved to afpic.c and
michael@0 2496 is later refered using macros defeined in afpic.h.
michael@0 2497
michael@0 2498 New Files:
michael@0 2499 * src/autofit/afpic.h declare struct to hold PIC globals for autofit
michael@0 2500 module and macros to access them.
michael@0 2501 * src/autofit/afpic.c implement functions to allocate, destroy and
michael@0 2502 initialize PIC globals for autofit module.
michael@0 2503
michael@0 2504 * src/autofit/autofit.c add new file to build: afpic.c.
michael@0 2505 * src/autofit/jamfile add new files to FT2_MULTI build: afpic.c.
michael@0 2506
michael@0 2507 2009-04-05 Oran Agra <oran@monfort.co.il>
michael@0 2508
michael@0 2509 Position Independent Code (PIC) support in pshinter module.
michael@0 2510
michael@0 2511 * include/freetype/internal/pshints.h add macros to init
michael@0 2512 instances of PSHinter_Interface.
michael@0 2513
michael@0 2514 * src/pshinter/pshmod.h declare pshinter_module_class
michael@0 2515 using macros from ftmodapi.h,
michael@0 2516 when FT_CONFIG_OPTION_PIC is defined create and destroy
michael@0 2517 functions will be declared.
michael@0 2518 * src/pshinter/pshmod.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2519 pshinter_interface and pshinter_module_class structs
michael@0 2520 will have functions to init or create and destroy them
michael@0 2521 instead of being allocated in the global scope.
michael@0 2522 And macros will be used from pshpic.h in order to access them.
michael@0 2523
michael@0 2524 New Files:
michael@0 2525 * src/pshinter/pshpic.h declare struct to hold PIC globals for pshinter
michael@0 2526 module and macros to access them.
michael@0 2527 * src/pshinter/pshpic.c implement functions to allocate, destroy and
michael@0 2528 initialize PIC globals for pshinter module.
michael@0 2529
michael@0 2530 * src/pshinter/pshinter.c add new file to build: pshpic.c.
michael@0 2531 * src/pshinter/jamfile add new files to FT2_MULTI build: pshpic.c.
michael@0 2532
michael@0 2533 2009-04-05 Oran Agra <oran@monfort.co.il>
michael@0 2534
michael@0 2535 Position Independent Code (PIC) support in psnames module.
michael@0 2536
michael@0 2537 * include/freetype/internal/services/svpscmap.h add macros to init
michael@0 2538 instances of FT_Service_PsCMapsRec.
michael@0 2539
michael@0 2540 * src/psnames/psmodule.h declare psnames_module_class
michael@0 2541 using macros from ftmodapi.h,
michael@0 2542 when FT_CONFIG_OPTION_PIC is defined create and destroy
michael@0 2543 functions will be declared.
michael@0 2544 * src/psnames/psmodule.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2545 pscmaps_interface and pscmaps_services structs
michael@0 2546 and psnames_module_class array
michael@0 2547 will have functions to init or create and destroy them
michael@0 2548 instead of being allocated in the global scope.
michael@0 2549 And macros will be used from pspic.h in order to access them.
michael@0 2550
michael@0 2551 New Files:
michael@0 2552 * src/psnames/pspic.h declare struct to hold PIC globals for psnames
michael@0 2553 module and macros to access them.
michael@0 2554 * src/psnames/pspic.c implement functions to allocate, destroy and
michael@0 2555 initialize PIC globals for psnames module.
michael@0 2556
michael@0 2557 * src/psnames/psnames.c add new file to build: pspic.c.
michael@0 2558 * src/psnames/jamfile add new files to FT2_MULTI build: pspic.c.
michael@0 2559
michael@0 2560 2009-04-05 Oran Agra <oran@monfort.co.il>
michael@0 2561
michael@0 2562 Position Independent Code (PIC) support in raster renderer.
michael@0 2563
michael@0 2564 * src/raster/ftrend1.h declare ft_raster1_renderer_class
michael@0 2565 and ft_raster5_renderer_class
michael@0 2566 using macros from ftrender.h,
michael@0 2567 when FT_CONFIG_OPTION_PIC is defined create and destroy
michael@0 2568 functions will be declared.
michael@0 2569 * src/smooth/ftrend1.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2570 ft_raster1_renderer_class and ft_raster5_renderer_class structs
michael@0 2571 will have functions to init or create and destroy them
michael@0 2572 instead of being allocated in the global scope.
michael@0 2573 Macros will be used from rastpic.h in order to access
michael@0 2574 ft_standard_raster from the pic_container (allocated in ftraster.c).
michael@0 2575 In ft_raster1_render when PIC is enabled, the last letter of
michael@0 2576 module_name is used to verfy the renderer class rather than the
michael@0 2577 class pointer.
michael@0 2578
michael@0 2579 * src/raster/ftraster.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2580 ft_standard_raster struct will have function to init it
michael@0 2581 instead of being allocated in the global scope.
michael@0 2582
michael@0 2583 New Files:
michael@0 2584 * src/raster/rastpic.h declare struct to hold PIC globals for raster
michael@0 2585 renderer and macros to access them.
michael@0 2586 * src/raster/rastpic.c implement functions to allocate, destroy and
michael@0 2587 initialize PIC globals for raster renderer.
michael@0 2588
michael@0 2589 * src/raster/raster.c add new file to build: rastpic.c.
michael@0 2590 * src/raster/jamfile add new files to FT2_MULTI build: rastpic.c.
michael@0 2591
michael@0 2592 2009-04-05 Oran Agra <oran@monfort.co.il>
michael@0 2593
michael@0 2594 Position Independent Code (PIC) support in smooth renderer.
michael@0 2595
michael@0 2596 * src/smooth/ftsmooth.h declare ft_smooth_renderer_class,
michael@0 2597 ft_smooth_lcd_renderer_class and ft_smooth_lcd_v_renderer_class
michael@0 2598 using macros from ftrender.h,
michael@0 2599 when FT_CONFIG_OPTION_PIC is defined create and destroy
michael@0 2600 functions will be declared.
michael@0 2601 * src/smooth/ftsmooth.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2602 the following structs:
michael@0 2603 ft_smooth_renderer_class, ft_smooth_lcd_renderer_class
michael@0 2604 and ft_smooth_lcd_v_renderer_class
michael@0 2605 will have functions to init or create and destroy them
michael@0 2606 instead of being allocated in the global scope.
michael@0 2607 And macros will be used from ftspic.h in order to access
michael@0 2608 ft_grays_raster from the pic_container (allocated in ftgrays.c).
michael@0 2609
michael@0 2610 * src/smooth/ftgrays.h include FT_CONFIG_CONFIG_H
michael@0 2611 * src/smooth/ftgrays.c when FT_CONFIG_OPTION_PIC is NOT defined
michael@0 2612 func_interface was moved from gray_convert_glyph_inner function
michael@0 2613 to the global scope.
michael@0 2614 When FT_CONFIG_OPTION_PIC is defined
michael@0 2615 func_interface and ft_grays_raster structs
michael@0 2616 will have functions to init them
michael@0 2617 instead of being allocated in the global scope.
michael@0 2618 And func_interface will be allocated on the stack of
michael@0 2619 gray_convert_glyph_inner.
michael@0 2620
michael@0 2621 New Files:
michael@0 2622 * src/smooth/ftspic.h declare struct to hold PIC globals for smooth
michael@0 2623 renderer and macros to access them.
michael@0 2624 * src/smooth/ftspic.c implement functions to allocate, destroy and
michael@0 2625 initialize PIC globals for smooth renderer.
michael@0 2626
michael@0 2627 * src/smooth/smooth.c add new file to build: ftspic.c.
michael@0 2628 * src/smooth/jamfile add new files to FT2_MULTI build: ftspic.c.
michael@0 2629
michael@0 2630 2009-04-05 Oran Agra <oran@monfort.co.il>
michael@0 2631
michael@0 2632 Position Independent Code (PIC) support in cff driver.
michael@0 2633
michael@0 2634 * include/freetype/internal/services/svcid.h add macros to init
michael@0 2635 instances of FT_Service_CIDRec.
michael@0 2636 * include/freetype/internal/services/svpsinfo.h add macros to init
michael@0 2637 instances of FT_Service_PsInfoRec.
michael@0 2638
michael@0 2639 * src/cff/cffcmap.h declare cff_cmap_encoding_class_rec
michael@0 2640 and cff_cmap_unicode_class_rec using macros from
michael@0 2641 ftobjs.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
michael@0 2642 functions will be declared.
michael@0 2643 * src/cff/cffcmap.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2644 the following structs:
michael@0 2645 cff_cmap_encoding_class_rec and cff_cmap_unicode_class_rec
michael@0 2646 will have functions to init or create and destroy them
michael@0 2647 instead of being allocated in the global scope.
michael@0 2648
michael@0 2649 * src/cff/cffdrivr.h declare cff_driver_class using macros from
michael@0 2650 ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
michael@0 2651 functions will be declared.
michael@0 2652 * src/cff/cffdrivr.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2653 the following structs:
michael@0 2654 cff_service_glyph_dict, cff_service_ps_info, cff_service_ps_name
michael@0 2655 cff_service_get_cmap_info, cff_service_cid_info, cff_driver_class,
michael@0 2656 and cff_services array
michael@0 2657 will have functions to init or create and destroy them
michael@0 2658 instead of being allocated in the global scope.
michael@0 2659 And macros will be used from cffpic.h in order to access them
michael@0 2660 from the pic_container.
michael@0 2661 Use macros from cffpic.h in order to access the
michael@0 2662 structs allocated in cffcmap.c
michael@0 2663
michael@0 2664 * src/cff/cffobjs.c Use macros from cffpic.h in order to access the
michael@0 2665 structs allocated in cffcmap.c
michael@0 2666
michael@0 2667 * src/cff/parser.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2668 implement functions to create and destroy cff_field_handlers array
michael@0 2669 instead of being allocated in the global scope.
michael@0 2670 And macros will be used from cffpic.h in order to access it
michael@0 2671 from the pic_container.
michael@0 2672
michael@0 2673 New Files:
michael@0 2674 * src/cff/cffpic.h declare struct to hold PIC globals for cff
michael@0 2675 driver and macros to access them.
michael@0 2676 * src/cff/cffpic.c implement functions to allocate, destroy and
michael@0 2677 initialize PIC globals for cff driver.
michael@0 2678
michael@0 2679 * src/cff/cff.c add new file to build: cffpic.c.
michael@0 2680 * src/cff/jamfile add new files to FT2_MULTI build: cffpic.c.
michael@0 2681
michael@0 2682 2009-04-05 Oran Agra <oran@monfort.co.il>
michael@0 2683
michael@0 2684 Position Independent Code (PIC) support in sfnt driver.
michael@0 2685
michael@0 2686 * include/freetype/internal/services/svbdf.h add macros to init
michael@0 2687 instances of FT_Service_BDFRec.
michael@0 2688 * include/freetype/internal/services/svgldict.h add macros to init
michael@0 2689 instances of FT_Service_GlyphDictRec.
michael@0 2690 * include/freetype/internal/services/svpostnm.h add macros to init
michael@0 2691 instances of FT_Service_PsFontNameRec.
michael@0 2692 * include/freetype/internal/services/svsfnt.h add macros to init
michael@0 2693 instances of FT_Service_SFNT_TableRec.
michael@0 2694 * include/freetype/internal/services/svttcmap.h add macros to init
michael@0 2695 instances of FT_Service_TTCMapsRec.
michael@0 2696 * include/freetype/internal/sfnt.h add macros to init
michael@0 2697 instances of SFNT_Interface.
michael@0 2698
michael@0 2699 * src/sfnt/sfdriver.h declare sfnt_module_class using macros from
michael@0 2700 ftmodapi.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
michael@0 2701 functions will be declared.
michael@0 2702 * src/sfnt/sfdriver.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2703 the following structs:
michael@0 2704 sfnt_service_sfnt_table, sfnt_service_glyph_dict, sfnt_service_ps_name
michael@0 2705 tt_service_get_cmap_info, sfnt_service_bdf, sfnt_interface,
michael@0 2706 sfnt_module_class, and sfnt_services array
michael@0 2707 will have functions to init or create and destroy them
michael@0 2708 instead of being allocated in the global scope.
michael@0 2709 And macros will be used from sfntpic.h in order to access them
michael@0 2710 from the pic_container.
michael@0 2711
michael@0 2712 * src/sfnt/ttcmap.h add macros to init
michael@0 2713 instances of TT_CMap_ClassRec.
michael@0 2714 * src/sfnt/ttcmap.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2715 the following structs:
michael@0 2716 tt_cmap0_class_rec, tt_cmap2_class_rec, tt_cmap4_class_rec
michael@0 2717 tt_cmap6_class_rec, tt_cmap8_class_rec, tt_cmap10_class_rec,
michael@0 2718 tt_cmap12_class_rec, tt_cmap14_class_rec and tt_cmap_classes array
michael@0 2719 will have functions to init or create and destroy them
michael@0 2720 instead of being allocated in the global scope.
michael@0 2721 And macros will be used from sfntpic.h in order to access them
michael@0 2722 from the pic_container.
michael@0 2723 The content of tt_cmap_classes is now described in the
michael@0 2724 new file 'ttcmapc.h'.
michael@0 2725
michael@0 2726 New Files:
michael@0 2727 * src/sfnt/sfntpic.h declare struct to hold PIC globals for sfnt
michael@0 2728 driver and macros to access them.
michael@0 2729 * src/sfnt/sfntpic.c implement functions to allocate, destroy and
michael@0 2730 initialize PIC globals for sfnt driver.
michael@0 2731 * src/sfnt/ttcmapc.h describing the content of
michael@0 2732 tt_cmap_classes allocated in ttcmap.c
michael@0 2733
michael@0 2734 * src/sfnt/sfnt.c add new file to build: sfntpic.c.
michael@0 2735 * src/sfnt/jamfile add new files to FT2_MULTI build: sfntpic.c.
michael@0 2736
michael@0 2737 2009-04-05 Oran Agra <oran@monfort.co.il>
michael@0 2738
michael@0 2739 Position Independent Code (PIC) support in truetype driver.
michael@0 2740
michael@0 2741 * include/freetype/internal/services/svmm.h add macros to init
michael@0 2742 instances of FT_Service_MultiMastersRec.
michael@0 2743 * include/freetype/internal/services/svttglyf.h add macros to init
michael@0 2744 instances of FT_Service_TTGlyfRec.
michael@0 2745
michael@0 2746 * src/truetype/ttdriver.h declare tt_driver_class using macros from
michael@0 2747 ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
michael@0 2748 functions will be declared.
michael@0 2749 * src/truetype/ttdriver.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2750 the following structs:
michael@0 2751 tt_service_gx_multi_masters, tt_service_truetype_glyf, tt_driver_class
michael@0 2752 and tt_services array,
michael@0 2753 will have functions to init or create and destroy them
michael@0 2754 instead of being allocated in the global scope.
michael@0 2755 And macros will be used from ttpic.h in order to access them
michael@0 2756 from the pic_container.
michael@0 2757 * src/truetype/ttobjs.c change trick_names array to be
michael@0 2758 PIC-compatible by being a two dimentional array rather than array
michael@0 2759 of pointers.
michael@0 2760
michael@0 2761 New Files:
michael@0 2762 * src/truetype/ttpic.h declare struct to hold PIC globals for truetype
michael@0 2763 driver and macros to access them.
michael@0 2764 * src/truetype/ttpic.c implement functions to allocate, destroy and
michael@0 2765 initialize PIC globals for truetype driver.
michael@0 2766
michael@0 2767 * src/truetype/truetype.c add new file to build: ttpic.c.
michael@0 2768 * src/truetype/jamfile add new files to FT2_MULTI build: ttpic.c.
michael@0 2769
michael@0 2770 2009-04-05 Oran Agra <oran@monfort.co.il>
michael@0 2771
michael@0 2772 Position Independent Code (PIC) support and infrastructure in base.
michael@0 2773
michael@0 2774 * include/freetype/config/ftoption.h add FT_CONFIG_OPTION_PIC
michael@0 2775 * include/freetype/internal/ftobjs.h Add pic_container member to
michael@0 2776 FT_LibraryRec.
michael@0 2777 Add macros to declare and init instances of FT_CMap_ClassRec.
michael@0 2778 Add macros to init instances of FT_Outline_Funcs and FT_Raster_Funcs.
michael@0 2779 Add macros to declare, allocate and initialize modules
michael@0 2780 (FT_Module_Class).
michael@0 2781 Add macros to declare, allocate and initialize renderers
michael@0 2782 (FT_Renderer_Class).
michael@0 2783 Add macro to init instances of FT_Glyph_Class.
michael@0 2784 Add macros to declare, allocate and initialize drivers
michael@0 2785 (FT_Driver_ClassRec).
michael@0 2786 * include/freetype/internal/ftpic.h new file to declare the
michael@0 2787 FT_PIC_Container struct and the functions to allocate and detroy it.
michael@0 2788 * include/freetype/internal/ftserv.h add macros to allocate and
michael@0 2789 destory arrays of FT_ServiceDescRec.
michael@0 2790 * include/freetype/internal/internal.h define macro to include
michael@0 2791 ftpic.h.
michael@0 2792
michael@0 2793 New Files:
michael@0 2794 * src/base/ftpic.c implement functions to allocate and destory the
michael@0 2795 global pic_container.
michael@0 2796 * src/base/basepic.h declare struct to hold PIC globals for base and
michael@0 2797 macros to access them.
michael@0 2798 * src/base/basepic.c implement functions to allocate, destroy and
michael@0 2799 initialize PIC globals for base.
michael@0 2800
michael@0 2801 * src/base/ftinit.c when FT_CONFIG_OPTION_PIC is defined implement
michael@0 2802 functions that allocate and destroy ft_default_modules according to
michael@0 2803 FT_CONFIG_MODULES_H in the pic_container instead of the global scope
michael@0 2804 and use macro from basepic.h to access it.
michael@0 2805 * src/base/ftobjs.c add calls to the functions that allocate and
michael@0 2806 destroy the global pic_container when the library is created and
michael@0 2807 destroyed.
michael@0 2808
michael@0 2809 * src/base/jamfile add new files to FT2_MULTI build:
michael@0 2810 ftpic.c and basepic.c.
michael@0 2811 * src/base/ftbase.c add new files to build:
michael@0 2812 ftpic.c and basepic.c.
michael@0 2813
michael@0 2814 * src/base/ftglyph.c when FT_CONFIG_OPTION_PIC is defined
michael@0 2815 ft_bitmap_glyph_class and ft_outline_glyph_class will be allocated
michael@0 2816 in the pic_container instead of the global scope and use macros from
michael@0 2817 basepic.h to access them.
michael@0 2818 * src/base/ftbbox.c allocate bbox_interface stract on the stack
michael@0 2819 instead of the global scope when FT_CONFIG_OPTION_PIC is defined.
michael@0 2820 * src/base/ftstroke.c access ft_outline_glyph_class allocated in
michael@0 2821 ftglyph.c via macros from basepic.h
michael@0 2822
michael@0 2823 2009-04-05 Oran Agra <oran@monfort.co.il>
michael@0 2824
michael@0 2825 Preparing changes in cff parser later needed for PIC version.
michael@0 2826
michael@0 2827 * src/cff/cffload.c, src/cff/cffload.h, src/cff/cffobjs.c,
michael@0 2828 src/cff/cffparse.c, src/cff/cffparse.h: Add library pointer to
michael@0 2829 'CFF_ParserRec' set by `cff_parser_init'.
michael@0 2830 Route library pointer from 'cff_face_init' to 'cff_subfont_load'
michael@0 2831 for `cff_parser_init'.
michael@0 2832
michael@0 2833 * src/cff/cffparse.c (CFF_Field_Handler): Move it to...
michael@0 2834 * src/cff/cffparse.h: This file, to be used by other C files.
michael@0 2835
michael@0 2836 2009-04-05 Oran Agra <oran@monfort.co.il>
michael@0 2837
michael@0 2838 Minor change in ftstroke.c.
michael@0 2839
michael@0 2840 * src/base/ftstroke.c (FT_StrokerRec): Replace `memory' member with
michael@0 2841 `library' needed for PIC version.
michael@0 2842 Update all callers.
michael@0 2843
michael@0 2844 2009-04-04 Werner Lemberg <wl@gnu.org>
michael@0 2845
michael@0 2846 ftnames.c -> ftsnames.c
michael@0 2847
michael@0 2848 * src/base/ftnames.c: Rename to...
michael@0 2849 * src/base/ftsnames.c: This.
michael@0 2850 * src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
michael@0 2851
michael@0 2852 2009-04-04 Werner Lemberg <wl@gnu.org>
michael@0 2853
michael@0 2854 Add support for cmap type 13.
michael@0 2855
michael@0 2856 * devel/ftoption.h, include/freetype/config/ftoption.h
michael@0 2857 (TT_CONFIG_CMAP_FORMAT_13): New macro.
michael@0 2858
michael@0 2859 * src/sfnt/ttcmap.c (TT_CMap13Rec, tt_cmap13_init,
michael@0 2860 tt_cmap13_validate, tt_cmap13_char_index, tt_cmap13_char_next,
michael@0 2861 tt_cmap13_get_info, tt_cmap13_char_map_def_binary,
michael@0 2862 tt_cmap14_class_rec): New functions and structures for cmap 13
michael@0 2863 support.
michael@0 2864 (tt_cmap_classes): Register tt_cmap13_class_rec.
michael@0 2865
michael@0 2866 * docs/CHANGES: Mention cmap 13 support.
michael@0 2867
michael@0 2868 2009-04-01 Werner Lemberg <wl@gnu.org>
michael@0 2869
michael@0 2870 Ignore empty contours in CFF glyphs.
michael@0 2871
michael@0 2872 Problem reported by Albert Astals Cid <aacid@kde.org>.
michael@0 2873
michael@0 2874 * src/cff/cffgload.c (cff_builder_close_contour): Synchronize with
michael@0 2875 t1_builder_close_contour.
michael@0 2876
michael@0 2877 2009-03-21 Werner Lemberg <wl@gnu.org>
michael@0 2878
michael@0 2879 Another redundant header inclusion.
michael@0 2880
michael@0 2881 * src/truetype/ttgxvar.c: Fix Ghostscript Coverity issue #4041.
michael@0 2882
michael@0 2883 2009-03-21 Werner Lemberg <wl@gnu.org>
michael@0 2884
michael@0 2885 Remove redundant header inclusions.
michael@0 2886
michael@0 2887 This covers many Ghostscript Coverity issues.
michael@0 2888
michael@0 2889 * src/*: Do it.
michael@0 2890
michael@0 2891 2009-03-21 Werner Lemberg <wl@gnu.org>
michael@0 2892
michael@0 2893 Fix Ghostscript Coverity issue #3904.
michael@0 2894
michael@0 2895 * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against
michael@0 2896 invalid values of `runcnt'.
michael@0 2897
michael@0 2898 2009-03-20 Werner Lemberg <wl@gnu.org>
michael@0 2899
michael@0 2900 Fix `make multi' run.
michael@0 2901
michael@0 2902 * src/smooth/ftsmooth.h: Include FT_INTERNAL_DEBUG_H.
michael@0 2903
michael@0 2904 2009-03-20 Werner Lemberg <wl@gnu.org>
michael@0 2905
michael@0 2906 Fix Savannah bug #25923.
michael@0 2907
michael@0 2908 * src/cache/ftccmap.c (FTC_CMAP_HASH): Fix typo.
michael@0 2909
michael@0 2910 2009-03-20 Werner Lemberg <wl@gnu.org>
michael@0 2911
michael@0 2912 Protect against too large glyphs.
michael@0 2913
michael@0 2914 Problem reported by Tavis Ormandy <taviso@google.com>.
michael@0 2915
michael@0 2916 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Don't allow
michael@0 2917 `pitch' or `height' to be larger than 0xFFFF.
michael@0 2918
michael@0 2919 2009-03-20 Werner Lemberg <wl@gnu.org>
michael@0 2920 Tavis Ormandy <taviso@google.com>
michael@0 2921
michael@0 2922 Fix validation for various cmap table formats.
michael@0 2923
michael@0 2924 * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate,
michael@0 2925 tt_cmap12_validate): Check `length' correctly.
michael@0 2926 (tt_cmap_14_validate): Check `length' and `numMappings' correctly.
michael@0 2927
michael@0 2928 2009-03-20 Werner Lemberg <wl@gnu.org>
michael@0 2929
michael@0 2930 Protect against malformed compressed data.
michael@0 2931
michael@0 2932 * src/lzw/ftzopen.c (ft_lzwstate_io): Test whether `state->prefix' is
michael@0 2933 zero.
michael@0 2934
michael@0 2935 2009-03-20 Werner Lemberg <wl@gnu.org>
michael@0 2936
michael@0 2937 Protect against invalid SID values in CFFs.
michael@0 2938
michael@0 2939 Problem reported by Tavis Ormandy <taviso@google.com>.
michael@0 2940
michael@0 2941 * src/cff/cffload.c (cff_charset_load): Reject SID values larger
michael@0 2942 than 64999.
michael@0 2943
michael@0 2944 2009-03-19 Vincent Richomme <richom.v@free.fr>
michael@0 2945
michael@0 2946 Update WinCE Visual C project files.
michael@0 2947
michael@0 2948 * builds/wince/vc2005-ce/freetype.vcproj,
michael@0 2949 builds/wince/vc2008-ce/freetype.vcproj: Add missing base extension
michael@0 2950 files.
michael@0 2951
michael@0 2952 2009-03-19 Werner Lemberg <wl@gnu.org>
michael@0 2953
michael@0 2954 Remove unused Win32 code.
michael@0 2955
michael@0 2956 * builds/wince/ftdebug.c: Remove code guarded with `!_WIN32_WCE'.
michael@0 2957 Since Win32 is handled separately this is no longer needed.
michael@0 2958
michael@0 2959 2009-03-19 Vincent Richomme <richom.v@free.fr>
michael@0 2960
michael@0 2961 Make `gzip' module compile on WinCE.
michael@0 2962
michael@0 2963 * src/gzip/zconf.h [_WIN32_WCE]: Define NO_ERRNO_H.
michael@0 2964
michael@0 2965 2009-03-19 Werner Lemberg <wl@gnu.org>
michael@0 2966
michael@0 2967 Remove unused WinCE code.
michael@0 2968
michael@0 2969 * builds/win32/ftdebug.c: Remove code guarded with `_WIN32_WCE'.
michael@0 2970 Since WinCE is handled separately this is no longer needed.
michael@0 2971
michael@0 2972 2009-03-16 Werner Lemberg <wl@gnu.org>
michael@0 2973
michael@0 2974 docmaker: Don't ignore single-line code blocks.
michael@0 2975
michael@0 2976 * src/tools/docmaker/content.py (DocBlock::_init__): Fix change from
michael@0 2977 2009-01-31.
michael@0 2978
michael@0 2979 2009-03-15 Steve Langasek <steve.langasek@canonical.com>
michael@0 2980
michael@0 2981 Use __asm__ for declaring assembly instead of asm.
michael@0 2982
michael@0 2983 * builds/unix/ftconfig.in (FT_MulFix_arm): Use __asm__ instead of
michael@0 2984 asm on arm, fixing a build failure on armel with -pedantic.
michael@0 2985
michael@0 2986 2009-03-14 Werner Lemberg <wl@gnu.org>
michael@0 2987
michael@0 2988 Fix valgrind warning.
michael@0 2989
michael@0 2990 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned): Don't read
michael@0 2991 past the end of the frame.
michael@0 2992
michael@0 2993 2009-03-12 Werner Lemberg <wl@gnu.org>
michael@0 2994
michael@0 2995 * Version 2.3.9 released.
michael@0 2996 =========================
michael@0 2997
michael@0 2998
michael@0 2999 Tag sources with `VER-2-3-9'.
michael@0 3000
michael@0 3001 2009-03-12 Werner Lemberg <wl@gnu.org>
michael@0 3002
michael@0 3003 * builds/unix/freetype2.in: Move @FT2_EXTRA_LIBS@ to `Libs.private'.
michael@0 3004
michael@0 3005 2009-03-12 Werner Lemberg <wl@gnu.org>
michael@0 3006
michael@0 3007 Fix some FreeType Coverity issues as reported for Ghostscript.
michael@0 3008
michael@0 3009 * src/base/ftobjs.c (FT_New_Face, FT_New_Memory_Face): Initialize
michael@0 3010 `args.stream' (#3874, #3875).
michael@0 3011 (open_face_PS_from_sfnt_stream): Improve error management (#3786).
michael@0 3012 * src/base/ftmm.c (ft_face_get_mm_service): Fix check of `aservice'
michael@0 3013 (#3870).
michael@0 3014 * src/base/ftstroke.c (ft_stroke_border_get_counts): Remove dead
michael@0 3015 code (#3790).
michael@0 3016 * src/base/ftrfork.c (raccess_guess_apple_generic): Check error
michael@0 3017 value of `FT_Stream_Skip' (#3784).
michael@0 3018
michael@0 3019 * src/type1/t1gload.c (T1_Load_Glyph): Check `size' before accessing
michael@0 3020 it (#3872)
michael@0 3021
michael@0 3022 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Check `face' before accessing
michael@0 3023 it (#3871).
michael@0 3024 * src/pcf/pcfread.c (pcf_get_metrics): Handle return value of
michael@0 3025 `pcf_get_metric' (#3789, #3782).
michael@0 3026 (pcf_get_properties): Use FT_STREAM_SKIP (#3783).
michael@0 3027
michael@0 3028 * src/cache/ftcmanag.c (FTC_Manager_RegisterCache): Fix check of
michael@0 3029 `acache' (#3797)
michael@0 3030
michael@0 3031 * src/cff/cffdrivr.c (cff_ps_get_font_info): Fix check of `cff'
michael@0 3032 (#3796).
michael@0 3033 * src/cff/cffgload.c (cff_decoder_prepare): Check `size' (#3795).
michael@0 3034 * src/cff/cffload.c (cff_index_get_pointers): Add comment (#3794).
michael@0 3035
michael@0 3036 * src/bdf/bdflib.c (_bdf_add_property): Check `fp->value.atom'
michael@0 3037 (#3793).
michael@0 3038 (_bdf_parse_start): Add comment (#3792).
michael@0 3039
michael@0 3040 * src/raster/ftraster.c (Finalize_Profile_Table): Check
michael@0 3041 `ras.fProfile' (#3791).
michael@0 3042
michael@0 3043 * src/sfnt/ttsbit.c (Load_SBit_Image): Use FT_STREAM_SKIP (#3785).
michael@0 3044
michael@0 3045 * src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Properly ignore
michael@0 3046 seek error (#3781).
michael@0 3047
michael@0 3048 2009-03-11 Michael Toftdal <toftdal@gmail.com>
michael@0 3049
michael@0 3050 Extend CID service functions to handle CID-keyed CFFs as CID fonts.
michael@0 3051
michael@0 3052 * include/freetype/ftcid.h (FT_Get_CID_Is_Internally_CID_keyed,
michael@0 3053 FT_Get_CID_From_Glyph_Index): New functions.
michael@0 3054
michael@0 3055 * include/freetype/internal/services/svcid.h
michael@0 3056 (FT_CID_GetIsInternallyCIDKeyedFunc,
michael@0 3057 FT_CID_GetCIDFromGlyphIndexFunc): New function typedefs.
michael@0 3058 (CID Service): Use them.
michael@0 3059
michael@0 3060 * src/base/ftcid.c: Include FT_CID_H.
michael@0 3061 (FT_Get_CID_Is_Internally_CID_keyed, FT_Get_CID_From_Glyph_Index):
michael@0 3062 New functions.
michael@0 3063
michael@0 3064 * src/cff/cffdrivr.c (cff_get_is_cid, cff_get_cid_from_glyph_index):
michael@0 3065 New functions.
michael@0 3066 (cff_service_cid_info): Add them.
michael@0 3067 * src/cff/cffload.c (cff_font_load): Don't free `font->charset.sids'
michael@0 3068 -- it is needed for access as a CID-keyed font. It gets deleted
michael@0 3069 later on.
michael@0 3070
michael@0 3071 * src/cid/cidriver.c (cid_get_is_cid, cid_get_cid_from_glyph_index):
michael@0 3072 New functions.
michael@0 3073 (cid_service_cid_info): Add them.
michael@0 3074
michael@0 3075 * docs/CHANGES: Updated.
michael@0 3076
michael@0 3077 2009-03-11 Bram Tassyns <bramt@enfocus.be>
michael@0 3078
michael@0 3079 Fix Savannah bug #25597.
michael@0 3080
michael@0 3081 * src/cff/cffparse.c (cff_parse_real): Don't allow fraction_length
michael@0 3082 to become larger than 9.
michael@0 3083
michael@0 3084 2009-03-11 Werner Lemberg <wl@gnu.org>
michael@0 3085
michael@0 3086 Fix Savannah bug #25814.
michael@0 3087
michael@0 3088 * builds/unix/freetype2.in: As suggested in the bug report, move
michael@0 3089 @LIBZ@ to `Libs.private'.
michael@0 3090
michael@0 3091 2009-03-11 Werner Lemberg <wl@gnu.org>
michael@0 3092
michael@0 3093 Fix Savannah bug #25781.
michael@0 3094 We now simply check for a valid `offset', no longer handling `delta
michael@0 3095 = 1' specially.
michael@0 3096
michael@0 3097 * src/sfnt/ttcmap.c (tt_cmap4_validate): Don't check `delta' for
michael@0 3098 last segment.
michael@0 3099 (tt_cmap4_set_range, tt_cmap4_char_map_linear,
michael@0 3100 tt_cmap4_char_map_binary): Check offset.
michael@0 3101
michael@0 3102 2009-03-11 Werner Lemberg <wl@gnu.org>
michael@0 3103
michael@0 3104 * src/base/Jamfile: Fix handling of ftadvanc.c.
michael@0 3105 Reported by Oran Agra <oran@monfort.co.il>.
michael@0 3106
michael@0 3107 2009-03-10 Vincent Richomme <richom.v@free.fr>
michael@0 3108
michael@0 3109 Restructure Win32 and Wince compiler support.
michael@0 3110
michael@0 3111 * src/builds/win32: Remove files for WinCE.
michael@0 3112 Move VC 2005 support to a separate directory.
michael@0 3113 Add directory for VC 2008 support.
michael@0 3114
michael@0 3115 * src/builds/wince: New directory hierarchy for WinCE compilers
michael@0 3116 (VC 2005 and VC 2008).
michael@0 3117
michael@0 3118 2009-03-09 Werner Lemberg <wl@gnu.org>
michael@0 3119
michael@0 3120 More preparations for 2.3.9 release.
michael@0 3121
michael@0 3122 * docs/CHANGES: Updated.
michael@0 3123
michael@0 3124 * Jamfile, README: s/2.3.8/2.3.9/, s/238/239/.
michael@0 3125
michael@0 3126 2009-03-09 Werner Lemberg <wl@gnu.org>
michael@0 3127
michael@0 3128 * src/sfnt/rules.mk (SFNT_DRV_H): Add ttsbit0.c.
michael@0 3129
michael@0 3130 2009-03-09 Alexey Kryukov <anagnost@yandex.ru>
michael@0 3131
michael@0 3132 Fix handling of EBDT formats 8 and 9 (part 2).
michael@0 3133
michael@0 3134 This patch fixes the following problems in ttsbit0.c:
michael@0 3135
michael@0 3136 . Bitmaps for compound glyphs were never allocated.
michael@0 3137
michael@0 3138 . `SBitDecoder' refused to load metrics if some other metrics have
michael@0 3139 already been loaded. This condition certainly makes no sense for
michael@0 3140 recursive calls, so I've just disabled it. Another possibility
michael@0 3141 would be resetting `decoder->metrics_loaded' to false before
michael@0 3142 loading each composite component. However, we must restore the
michael@0 3143 original metrics after finishing the recursion; otherwise we can
michael@0 3144 get a misaligned glyph.
michael@0 3145
michael@0 3146 . `tt_sbit_decoder_load_bit_aligned' incorrectly handled `x_pos',
michael@0 3147 causing some glyph components to be shifted too far to the right
michael@0 3148 (especially noticeable for small sizes).
michael@0 3149
michael@0 3150 Note that support for grayscale bitmaps (not necessarily compound) is
michael@0 3151 completely broken in ttsbit0.c.
michael@0 3152
michael@0 3153 * src/sfnt/tt_sbit_decoder_load_metrics: Always load metrics.
michael@0 3154 (tt_sbit_decoder_load_bit_aligned): Handle `x_pos' correctly in case
michael@0 3155 of `h == height'.
michael@0 3156 (tt_sbit_decoder_load_compound): Reset metrics after loading
michael@0 3157 components.
michael@0 3158 Allocate bitmap.
michael@0 3159
michael@0 3160 2009-03-09 Werner Lemberg <wl@gnu.org>
michael@0 3161
michael@0 3162 * builds/unix/configure.raw (version_info): Set to 9:20:3.
michael@0 3163
michael@0 3164 2009-03-03 David Turner <david@freetype.org>
michael@0 3165
michael@0 3166 Protect SFNT kerning table parser against malformed tables.
michael@0 3167
michael@0 3168 This closes Savannah BUG #25750.
michael@0 3169
michael@0 3170 * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning): Fix a
michael@0 3171 bug where a malformed table would be successfully loaded but later
michael@0 3172 crash the engine during parsing.
michael@0 3173
michael@0 3174 2009-03-03 David Turner <david@freetype.org>
michael@0 3175
michael@0 3176 Update documentation and bump version number to 2.3.9.
michael@0 3177
michael@0 3178 * include/freetype/freetype.h: Bump patch version to 9.
michael@0 3179 * docs/CHANGES: Document the ABI break in 2.3.8.
michael@0 3180 * docs/VERSION.DLL: Update version numbers table for 2.3.9.
michael@0 3181
michael@0 3182 2009-03-03 David Turner <david@freetype.org>
michael@0 3183
michael@0 3184 Remove ABI-breaking field in public PS_InfoFontRec definition.
michael@0 3185
michael@0 3186 Instead, we define a new internal PS_FontExtraRec structure to
michael@0 3187 hold the additional field, then place it in various internal
michael@0 3188 positions of the corresponding FT_Face derived objects.
michael@0 3189
michael@0 3190 * include/freetype/t1tables.h (PS_FontInfoRec): Remove the
michael@0 3191 `fs_type' field from the public structure.
michael@0 3192 * include/freetype/internal/psaux.h (T1_FieldLocation): New
michael@0 3193 enumeration `T1_FIELD_LOCATION_FONT_EXTRA'.
michael@0 3194 * include/freetype/internal/t1types.h (PS_FontExtraRec): New
michael@0 3195 structure.
michael@0 3196 (T1_FontRec, CID_FaceRec): Add it.
michael@0 3197
michael@0 3198 * src/cid/cidload.c (cid_load_keyword): Handle
michael@0 3199 T1_FIELD_LOCATION_FONT_EXTRA.
michael@0 3200 * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c:
michael@0 3201 Adjust FT_STRUCTURE and T1CODE properly to handle `FSType'.
michael@0 3202 * src/type1/t1load.c (t1_load_keyword): Handle
michael@0 3203 T1_FIELD_LOCATION_FONT_EXTRA.
michael@0 3204
michael@0 3205 * include/freetype/internal/services/svpsinfo.h (PsInfo service):
michael@0 3206 Add `PS_GetFontExtraFunc' function typedef.
michael@0 3207
michael@0 3208 * src/base/ftfstype.c: Include FT_INTERNAL_SERVICE_H and
michael@0 3209 FT_SERVICE_POSTSCRIPT_INFO_H.
michael@0 3210 (FT_Get_FSType_Flags): Use POSTSCRIPT_INFO service.
michael@0 3211
michael@0 3212 * src/cff/cffdrivr.c (cff_service_ps_info): Updated.
michael@0 3213 * src/cid/cidriver.c (cid_ps_get_font_extra): New function.
michael@0 3214 (cid_service_ps_info): Updated.
michael@0 3215 * src/type1/t1driver.c (t1_ps_get_font_extra): New function.
michael@0 3216 (t1_service_ps_info): Updated.
michael@0 3217 * src/type42/t42drivr.c (t42_ps_get_font_extra): New function.
michael@0 3218 (t42_service_ps_info): Updated.
michael@0 3219
michael@0 3220 2009-03-02 Alexey Kryukov <anagnost@yandex.ru>
michael@0 3221
michael@0 3222 Fix handling of EBDT formats 8 and 9.
michael@0 3223
michael@0 3224 The main cycle in `blit_sbit' makes too many iterations: it actually
michael@0 3225 needs the count of lines in the source bitmap rather than in the
michael@0 3226 target image.
michael@0 3227
michael@0 3228 * src/sfnt/ttsbit.c (blit_sbit) [FT_CONFIG_OPTION_OLD_INTERNALS]:
michael@0 3229 Add parameter `source_height' and use it for main loop.
michael@0 3230 (Load_SBit_Single) [FT_CONFIG_OPTION_OLD_INTERNALS]: Updated.
michael@0 3231
michael@0 3232 2009-02-23 Werner Lemberg <wl@gnu.org>
michael@0 3233
michael@0 3234 Fix Savannah bug #25669.
michael@0 3235
michael@0 3236 * src/base/ftadvanc.h (FT_Get_Advances): Fix serious typo.
michael@0 3237
michael@0 3238 * src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics): Fix
michael@0 3239 scaling factor for non-scalable fonts.
michael@0 3240
michael@0 3241 * src/cff/cffdrivr.c (cff_get_advances): Use correct advance width
michael@0 3242 value to prevent incorrect scaling.
michael@0 3243
michael@0 3244 * docs/CHANGES: Document it.
michael@0 3245
michael@0 3246 2009-02-15 Matt Godbolt <matt@godbolt.org>
michael@0 3247
michael@0 3248 Fix Savannah bug #25588.
michael@0 3249
michael@0 3250 * builds/unix/ftconfig.in (FT_MulFix_arm): Use correct syntax for
michael@0 3251 `orr' instruction.
michael@0 3252
michael@0 3253 2009-02-11 Werner Lemberg <wl@gnu.org>
michael@0 3254
michael@0 3255 * src/truetype/ttobjs.c (tt_check_trickyness): Add `DFKaiShu'.
michael@0 3256 Reported by David Bevan <dbevan@emtex.com>.
michael@0 3257
michael@0 3258 2009-02-09 Werner Lemberg <wl@gnu.org>
michael@0 3259
michael@0 3260 Fix Savannah bug #25495.
michael@0 3261
michael@0 3262 * src/sfnt/sfobjs.c (sfnt_load_face): Test for bitmap strikes before
michael@0 3263 setting metrics and bbox values. This ensures that the check for a
michael@0 3264 font with neither a `glyf' table nor bitmap strikes can be performed
michael@0 3265 early enough to set metrics and bbox values too.
michael@0 3266
michael@0 3267 2009-02-04 Werner Lemberg <wl@gnu.org>
michael@0 3268
michael@0 3269 Fix Savannah bug #25480.
michael@0 3270
michael@0 3271 * builds/unix/freetype-config.in: For --ftversion, don't use $prefix
michael@0 3272 but $includedir.
michael@0 3273
michael@0 3274 2009-01-31 Werner Lemberg <wl@gnu.org>
michael@0 3275
michael@0 3276 Minor docmaker improvements.
michael@0 3277
michael@0 3278 * src/tools/docmaker/content.py (DocBlock::__init__): Ignore empty
michael@0 3279 code blocks.
michael@0 3280
michael@0 3281 2009-01-25 Werner Lemberg <wl@gnu.org>
michael@0 3282
michael@0 3283 Fix SCANCTRL handling in TTFs.
michael@0 3284 Problem reported by Alexey Kryukov <anagnost@yandex.ru>.
michael@0 3285
michael@0 3286 * src/truetype/ttinterp.c (Ins_SCANCTRL): Fix threshold handling.
michael@0 3287
michael@0 3288 2009-01-23 Werner Lemberg <wl@gnu.org>
michael@0 3289
michael@0 3290 Move FT_Get_FSType_Flags to a separate file.
michael@0 3291 Problem reported by Mickey Gabel <mickey@monfort.co.il>.
michael@0 3292
michael@0 3293 * src/base/ftobjs.c (FT_Get_FSType_Flags): Move to...
michael@0 3294 * src/base/ftfstype.c: This new file.
michael@0 3295
michael@0 3296 * modules.cfg (BASE_EXTENSION): Add ftfstype.c.
michael@0 3297
michael@0 3298 * docs/INSTALL.ANY: Updated.
michael@0 3299
michael@0 3300 * builds/mac/*.txt, builds/amiga/*makefile*,
michael@0 3301 builds/win32/{visualc,visualce}/freetype.*, builds/symbian/*:
michael@0 3302 Updated.
michael@0 3303
michael@0 3304 2009-01-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 3305
michael@0 3306 * builds/unix/ftsystem.c (FT_Stream_Open): Fix 2 error
michael@0 3307 messages ending without "\n".
michael@0 3308
michael@0 3309 2009-01-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 3310
michael@0 3311 Fix Savannah bug #25347.
michael@0 3312
michael@0 3313 * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Rewind
michael@0 3314 the stream to the original position passed to this function,
michael@0 3315 when ft_lookup_PS_in_sfnt_stream() failed.
michael@0 3316 (Mac_Read_sfnt_Resource): Rewind the stream to the head of
michael@0 3317 sfnt resource body, when open_face_PS_from_sfnt_stream()
michael@0 3318 failed.
michael@0 3319
michael@0 3320 2009-01-19 Michael Lotz <mmlr@mlotz.ch>
michael@0 3321
michael@0 3322 Fix Savannah bug #25355.
michael@0 3323
michael@0 3324 * include/freetype/config/ftconfig.h (FT_MulFix_i386): Make
michael@0 3325 assembler code work with gcc 2.95.3 (as used by the Haiku project).
michael@0 3326 Add `cc' register to the clobber list.
michael@0 3327
michael@0 3328 2009-01-18 Werner Lemberg <wl@gnu.org>
michael@0 3329
michael@0 3330 Protect FT_Get_Next_Char.
michael@0 3331
michael@0 3332 * src/sfnt/ttcmap.c (tt_cmap4_set_range): Apply fix similar to
michael@0 3333 change from 2008-07-22.
michael@0 3334
michael@0 3335 Patch from Ronen Ghoshal <rghoshal@emtex.com>.
michael@0 3336
michael@0 3337 2009-01-18 Werner Lemberg <wl@gnu.org>
michael@0 3338
michael@0 3339 Implement FT_Get_Name_Index for SFNT driver.
michael@0 3340
michael@0 3341 * src/sfnt/sfdriver.c (sfnt_get_name_index): New function.
michael@0 3342 (sfnt_service_glyph_dict): Use it.
michael@0 3343
michael@0 3344 Problem reported by Truc Truong <tructv@necsv.com>.
michael@0 3345
michael@0 3346 2009-01-18 Werner Lemberg <wl@gnu.org>
michael@0 3347
michael@0 3348 * include/freetype/ftstroke.h (FT_Outline_GetInsideBorder): Fix
michael@0 3349 documentation. Problem reported by Truc Truong <tructv@necsv.com>.
michael@0 3350
michael@0 3351 * docs/CHANGES: Updated.
michael@0 3352
michael@0 3353 2009-01-14 Werner Lemberg <wl@gnu.org>
michael@0 3354
michael@0 3355 * Version 2.3.8 released.
michael@0 3356 =========================
michael@0 3357
michael@0 3358
michael@0 3359 Tag sources with `VER-2-3-8'.
michael@0 3360
michael@0 3361 * docs/VERSION.DLL: Update documentation and bump version number to
michael@0 3362 2.3.8.
michael@0 3363
michael@0 3364 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
michael@0 3365 builds/win32/visualc/freetype.dsp,
michael@0 3366 builds/win32/visualc/freetype.vcproj,
michael@0 3367 builds/win32/visualce/index.html,
michael@0 3368 builds/win32/visualce/freetype.dsp,
michael@0 3369 builds/win32/visualce/freetype.vcproj: s/2.3.7/2.3.8/, s/237/238/.
michael@0 3370
michael@0 3371 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
michael@0 3372
michael@0 3373 * builds/unix/configure.raw (version_info): Set to 9:19:3.
michael@0 3374
michael@0 3375 * docs/release: Updated.
michael@0 3376
michael@0 3377 2009-01-14 Werner Lemberg <wl@gnu.org>
michael@0 3378
michael@0 3379 * builds/toplevel.mk (dist): Compress better.
michael@0 3380
michael@0 3381 2009-01-13 Werner Lemberg <wl@gnu.org>
michael@0 3382
michael@0 3383 * src/base/ftobjs.c (FT_Get_FSType_Flags): Cast for compilation
michael@0 3384 with C++.
michael@0 3385
michael@0 3386 2009-01-13 Werner Lemberg <wl@gnu.org>
michael@0 3387
michael@0 3388 Don't use stdlib.h and friends directly.
michael@0 3389 Reported by Mickey Gabel <mickey@monfort.co.il>.
michael@0 3390
michael@0 3391 * src/base/ftdbgmem.c: s/<stdlib.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
michael@0 3392
michael@0 3393 * src/gzip/ftgzip.c, src/lzw/ftlzw.c, src/raster/ftmisc.h:
michael@0 3394 s/<string.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
michael@0 3395
michael@0 3396 * src/autofit/aftypes.h, src/autofit/afhints.c,
michael@0 3397 src/pshinter/pshalgo.c: s/<stdio.h>/FT_CONFIG_STANDARD_LIBRARY_H/
michael@0 3398
michael@0 3399 * src/lzw/ftlzw.c, src/base/ftdbgmem.c: Don't include stdio.h.
michael@0 3400
michael@0 3401 2009-01-12 Werner Lemberg <wl@gnu.org>
michael@0 3402
michael@0 3403 Avoid compiler warnings.
michael@0 3404
michael@0 3405 * */*: s/do ; while ( 0 )/do { } while ( 0 )/.
michael@0 3406 Reported by Sean McBride <sean@rogue-research.com>.
michael@0 3407
michael@0 3408 2009-01-12 Werner Lemberg <wl@gnu.org>
michael@0 3409
michael@0 3410 Fix stdlib dependencies.
michael@0 3411
michael@0 3412 Problem reported by Mickey Gabel <mickey@monfort.co.il>.
michael@0 3413
michael@0 3414 * include/freetype/config/ftstdlib.h (ft_exit): Removed. Unused.
michael@0 3415
michael@0 3416 * src/autofit/afhints.c, src/base/ftlcdfil.c, src/smooth/ftsmooth.c:
michael@0 3417 s/memcpy/ft_memcpy/.
michael@0 3418 * src/psaux/t1decode.c: s/memset/ft_memset/, s/memcpy/ft_memcpy/.
michael@0 3419
michael@0 3420 2009-01-11 Werner Lemberg <wl@gnu.org>
michael@0 3421
michael@0 3422 * docs/formats.txt: Add link to PCF specification.
michael@0 3423
michael@0 3424 * include/freetype/ftbdf.h (FT_Get_BDF_Property): Improve
michael@0 3425 documentation.
michael@0 3426
michael@0 3427 2009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 3428
michael@0 3429 * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance,
michael@0 3430 FT_Get_Advances): Change the type of load_flags from FT_UInt32 to
michael@0 3431 FT_Int32, to match with the flags for FT_Load_Glyph().
michael@0 3432 * src/cff/cffdrivr.c (cff_get_advances): Ditto.
michael@0 3433 * src/truetype/ttdriver.c (tt_get_advances): Ditto.
michael@0 3434 * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances):
michael@0 3435 Ditto.
michael@0 3436 * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
michael@0 3437 Ditto.
michael@0 3438
michael@0 3439 2009-01-09 Daniel Zimmermann <netzimme@aol.com>
michael@0 3440
michael@0 3441 * src/gxvalid/gxvmort.c (gxv_mort_feature_validate): Fix wrong
michael@0 3442 length check. From Savannah patch #6682.
michael@0 3443
michael@0 3444 2009-01-09 Werner Lemberg <wl@gnu.org>
michael@0 3445
michael@0 3446 Fix problem with T1_FIELD_{NUM,FIXED}_TABLE2.
michael@0 3447
michael@0 3448 * src/psaux/psobjs.c (ps_parser_load_field_table): Don't handle
michael@0 3449 `count_offset' if it is zero (i.e., unused). Otherwise, the first
michael@0 3450 element of the structure which holds the data is erroneously
michael@0 3451 modified. Problem reported by Chi Nguyen <chint@necsv.com>.
michael@0 3452
michael@0 3453 2009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 3454
michael@0 3455 * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance,
michael@0 3456 FT_Get_Advances): Extend the type of load_flags from FT_UInt to
michael@0 3457 FT_UInt32, to pass 32-bit flags on 16bit platforms.
michael@0 3458 * src/cff/cffdrivr.c (cff_get_advances): Ditto.
michael@0 3459 * src/truetype/ttdriver.c (tt_get_advances): Ditto.
michael@0 3460 * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances):
michael@0 3461 Ditto.
michael@0 3462 * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
michael@0 3463 Ditto.
michael@0 3464
michael@0 3465 2009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 3466
michael@0 3467 * src/base/ftobjs.c (FT_Done_Library): Issue an error message when
michael@0 3468 FT_Done_Face() cannot free all faces. If the list of the opened
michael@0 3469 faces includes broken face which FT_Done_Face() cannot free,
michael@0 3470 FT_Done_Library() retries FT_Done_Face() and it can fall into
michael@0 3471 an endless loop. See the discussion:
michael@0 3472 http://lists.gnu.org/archive/html/freetype-devel/2008-09/msg00047.html
michael@0 3473 http://lists.gnu.org/archive/html/freetype-devel/2008-10/msg00000.html
michael@0 3474
michael@0 3475 2009-01-07 Werner Lemberg <wl@gnu.org>
michael@0 3476
michael@0 3477 * docs/CHANGES: Document new key `a' in ftdiff.
michael@0 3478
michael@0 3479 2009-01-06 Werner Lemberg <wl@gnu.org>
michael@0 3480
michael@0 3481 * autogen.sh: Don't use GNUisms while calling sed. Problem reported
michael@0 3482 by Sean McBride.
michael@0 3483
michael@0 3484 2009-01-06 Werner Lemberg <wl@gnu.org>
michael@0 3485
michael@0 3486 * src/base/ftbitmap.c (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_LCD
michael@0 3487 and FT_PIXEL_MODE_LCD_V. Problem reported by Chi Nguyen
michael@0 3488 <chint@necsv.com>.
michael@0 3489
michael@0 3490 2009-01-06 Diego Pettenò <flameeyes@gmail.com>
michael@0 3491
michael@0 3492 * builds/unix/configure.raw: Don't call AC_CANONICAL_BUILD and
michael@0 3493 AC_CANONICAL_TARGET and use $host_os only. A nice explanation for
michael@0 3494 this change can be found at
michael@0 3495 http://blog.flameeyes.eu/s/canonical-target.
michael@0 3496
michael@0 3497 From Savannah patch #6712.
michael@0 3498
michael@0 3499 2009-01-06 Sean McBride <sean@rogue-research.com>
michael@0 3500
michael@0 3501 * src/base/ftdbgmem.c (_debug_mem_dummy): Make it static.
michael@0 3502
michael@0 3503 * src/base/ftmac.c: Remove some #undefs.
michael@0 3504
michael@0 3505 2008-12-26 Werner Lemberg <wl@gnu.org>
michael@0 3506
michael@0 3507 Set `face_index' field in FT_Face for all font formats.
michael@0 3508
michael@0 3509 * cff/cffobjs.c (cff_face_init), winfonts/winfnt.c (FNT_Face_Init),
michael@0 3510 sfnt/sfobjs.c (sfnt_init_face): Do it.
michael@0 3511
michael@0 3512 * docs/CHANGES: Document it.
michael@0 3513
michael@0 3514 2008-12-22 Steve Grubb
michael@0 3515
michael@0 3516 * builds/unix/ftsystem.c (FT_Stream_Open): Reject zero-length files.
michael@0 3517 Patch from Savannah bug #25151.
michael@0 3518
michael@0 3519 2008-12-21 Werner Lemberg <wl@gnu.org>
michael@0 3520
michael@0 3521 * src/pfr/pfrdrivr.c, src/winfonts/winfnt.c, src/cache/ftcmanag.c,
michael@0 3522 src/smooth/ftgrays.c, src/base/ftobjc.s, src/sfobjs.c:
michael@0 3523 s/_Err_Bad_Argument/_Err_Invalid_Argument/. The former is for
michael@0 3524 errors in the bytecode interpreter only.
michael@0 3525
michael@0 3526 2008-12-21 Werner Lemberg <wl@gnu.org>
michael@0 3527
michael@0 3528 * src/base/ftpfr.c (FT_Get_PFR_Metrics): Protect against NULL
michael@0 3529 arguments.
michael@0 3530 Fix return value for non-PFR fonts. Both problems reported by Chi
michael@0 3531 Nguyen <chint@necsv.com>.
michael@0 3532
michael@0 3533 2008-12-21 anonymous
michael@0 3534
michael@0 3535 FT_USE_MODULE declares things as:
michael@0 3536
michael@0 3537 extern const FT_Module_Class
michael@0 3538
michael@0 3539 (or similar for C++). However, the actual types of the variables
michael@0 3540 being declared are often different, e.g., FT_Driver_ClassRec or
michael@0 3541 FT_Renderer_Class. (Some are, indeed, FT_Module_Class.)
michael@0 3542
michael@0 3543 This works with most C compilers (since those structs begin with an
michael@0 3544 FT_Module_Class struct), but technically it's undefined behavior.
michael@0 3545
michael@0 3546 To quote the ISO/IEC 9899:TC2 final committee draft, section 6.2.7
michael@0 3547 paragraph 2:
michael@0 3548
michael@0 3549 All declarations that refer to the same object or function shall
michael@0 3550 have compatible type; otherwise, the behavior is undefined.
michael@0 3551
michael@0 3552 (And they are not compatible types.)
michael@0 3553
michael@0 3554 Most C compilers don't reject (or even detect!) code which has this
michael@0 3555 issue, but the GCC LTO development branch compiler does. (It
michael@0 3556 outputs the types of the objects while generating .o files, along
michael@0 3557 with a bunch of other information, then compares them when doing the
michael@0 3558 final link-time code generation pass.)
michael@0 3559
michael@0 3560 Patch from Savannah bug #25133.
michael@0 3561
michael@0 3562 * src/base/ftinit.c (FT_USE_MODULE): Include variable type.
michael@0 3563
michael@0 3564 * builds/amiga/include/freetype/config/ftmodule.h,
michael@0 3565 include/freetype/config/ftmodule.h, */module.mk: Updated to declare
michael@0 3566 pass correct types to FT_USE_MODULE.
michael@0 3567
michael@0 3568 2008-12-21 Hongbo Ni <hongbo@njstar.com>
michael@0 3569
michael@0 3570 * src/autofit/aflatin.c (af_latin_hint_edges),
michael@0 3571 src/autofit/aflatin2.c (af_latin2_hint_edges), src/autofit/afcjk.c
michael@0 3572 (af_cjk_hint_edges): Protect against division by zero. This fixes
michael@0 3573 Savannah bug #25124.
michael@0 3574
michael@0 3575 2008-12-18 Werner Lemberg <wl@gnu.org>
michael@0 3576
michael@0 3577 * docs/CHANGES: Updated.
michael@0 3578
michael@0 3579 2008-12-18 Bevan, David <dbevan@emtex.com>
michael@0 3580
michael@0 3581 Provide API for accessing embedding and subsetting restriction
michael@0 3582 information.
michael@0 3583
michael@0 3584 * include/freetype.h (FT_FSTYPE_INSTALLABLE_EMBEDDING,
michael@0 3585 FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING,
michael@0 3586 FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING, FT_FSTYPE_EDITABLE_EMBEDDING,
michael@0 3587 FT_FSTYPE_NO_SUBSETTING, FT_FSTYPE_BITMAP_EMBEDDING_ONLY): New
michael@0 3588 macros.
michael@0 3589 (FT_Get_FSType_Flags): New function declaration.
michael@0 3590
michael@0 3591 * src/base/ftobjs.c (FT_Get_FSType_Flags): New function.
michael@0 3592
michael@0 3593 * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c
michael@0 3594 (t42_keywords): Handle `FSType'.
michael@0 3595
michael@0 3596 * include/freetype/t1tables.h (PS_FontInfoRec): Add `fs_type' field.
michael@0 3597
michael@0 3598 2008-12-17 Werner Lemberg <wl@gnu.org>
michael@0 3599
michael@0 3600 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Don't use internal
michael@0 3601 macros so that copying the source code into an application works
michael@0 3602 out of the box.
michael@0 3603
michael@0 3604 2008-12-17 Werner Lemberg <wl@gnu.org>
michael@0 3605
michael@0 3606 * include/freetype/ftsynth.h, src/base/ftsynth.c: Move
michael@0 3607 FT_GlyphSlot_Own_Bitmap to...
michael@0 3608 * include/freetype/ftbitmap.h, src/base/ftbitmap.c: These files.
michael@0 3609
michael@0 3610 * docs/CHANGES: Document it.
michael@0 3611
michael@0 3612 2008-12-10 Werner Lemberg <wl@gnu.org>
michael@0 3613
michael@0 3614 Generalize the concept of `tricky' fonts by introducing
michael@0 3615 FT_FACE_FLAG_TRICKY to indicate that the font format's hinting
michael@0 3616 engine is necessary for correct rendering.
michael@0 3617
michael@0 3618 At the same time, slightly modify the behaviour of tricky fonts:
michael@0 3619 FT_LOAD_NO_HINTING is now ignored. To really force raw loading
michael@0 3620 of tricky fonts (without hinting), both FT_LOAD_NO_HINTING and
michael@0 3621 FT_LOAD_NO_AUTOHINT must be used.
michael@0 3622
michael@0 3623 Finally, tricky TrueType fonts always use the bytecode interpreter
michael@0 3624 even if the patented code is used.
michael@0 3625
michael@0 3626 * include/freetype/freetype.h (FT_FACE_FLAG_TRICKY, FT_IS_TRICKY):
michael@0 3627 New macros.
michael@0 3628
michael@0 3629 * src/truetype/ttdriver.c (Load_Glyph): Handle new load flags
michael@0 3630 semantics as described above.
michael@0 3631
michael@0 3632 * src/truetype/ttobjs.c (tt_check_trickyness): New function, using
michael@0 3633 code of ...
michael@0 3634 (tt_face_init): This function, now simplified and updated to new
michael@0 3635 semantics.
michael@0 3636
michael@0 3637 * src/base/ftobjs.c (FT_Load_Glyph): Don't use autohinter for tricky
michael@0 3638 fonts.
michael@0 3639
michael@0 3640 * docs/CHANGES: Document it.
michael@0 3641
michael@0 3642 2008-12-09 Werner Lemberg <wl@gnu.org>
michael@0 3643
michael@0 3644 Really fix Savannah bug #25010: An SFNT font with neither outlines
michael@0 3645 nor bitmaps can be considered as containing space `glyphs' only.
michael@0 3646
michael@0 3647 * src/truetype/ttpload.c (tt_face_load_loca): Handle the case where
michael@0 3648 a `glyf' table is missing.
michael@0 3649
michael@0 3650 * src/truetype/ttgload.c (load_truetype_glyph): Abort if we have no
michael@0 3651 `glyf' table but a non-zero `loca' entry.
michael@0 3652 (tt_loader_init): Handle missing `glyf' table.
michael@0 3653
michael@0 3654 * src/base/ftobjs.c (FT_Load_Glyph): Undo change 2008-12-05.
michael@0 3655
michael@0 3656 * src/sfnt/sfobjs.c (sfnt_load_face): A font with neither outlines
michael@0 3657 nor bitmaps is scalable.
michael@0 3658
michael@0 3659 2008-12-05 Werner Lemberg <wl@nu.org>
michael@0 3660
michael@0 3661 * src/autofit/aflatin.c (af_latin_uniranges): Add more ranges. This
michael@0 3662 fixes Savannah bug #21190 which also provides a basic patch.
michael@0 3663
michael@0 3664 2008-12-05 Werner Lemberg <wl@nu.org>
michael@0 3665
michael@0 3666 * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): Use value
michael@0 3667 0x100 instead of 0x10000; the latter value is already occupied by
michael@0 3668 FT_LOAD_TARGET_LIGHT. Bug reported by James Cloos.
michael@0 3669
michael@0 3670
michael@0 3671 Handle SFNT with neither outlines nor bitmaps. This fixes Savannah
michael@0 3672 bug #25010.
michael@0 3673
michael@0 3674 * src/base/ftobjs.c (FT_Load_Glyph): Reject fonts with neither
michael@0 3675 outlines nor bitmaps.
michael@0 3676
michael@0 3677 * src/sfnt/sfobjs.c (sfnt_load_face): Don't return an error if there
michael@0 3678 is no table with glyphs.
michael@0 3679
michael@0 3680
michael@0 3681 * src/sfnt/ttload.c (tt_face_lookup_table): Improve debugging
michael@0 3682 message.
michael@0 3683
michael@0 3684 2008-12-01 Werner Lemberg <wl@gnu.org>
michael@0 3685
michael@0 3686 GDEF tables need `glyph_count' too for validation. Problem reported
michael@0 3687 by Chi Nguyen <chint@necsv.com>.
michael@0 3688
michael@0 3689 * src/otvalid/otvgdef.c (otv_GDEF_validate), src/otvalid/otvalid.h
michael@0 3690 (otv_GDEF_validate), src/otvalid/otvmod.c (otv_validate): Pass
michael@0 3691 `glyph_count'.
michael@0 3692
michael@0 3693 2008-11-29 Werner Lemberg <wl@gnu.org>
michael@0 3694
michael@0 3695 * src/autofit/afcjk.c, src/base/ftoutln.c, src/base/ftrfork.c,
michael@0 3696 src/bdf/bdfdrivr.c, src/gxvalid/gxvmorx.c, src/otvalid/otvmath.c,
michael@0 3697 src/pcf/pcfdrivr.c, src/psnames/pstables.h, src/smooth/ftgrays.c,
michael@0 3698 src/tools/glnames.py, src/truetype/ttinterp.c, src/type1/t1load.c,
michael@0 3699 src/type42/t42objs.c, src/winfonts/winfnt.c: Fix compiler warnings
michael@0 3700 (Atari PureC).
michael@0 3701
michael@0 3702 2008-11-29 James Cloos <cloos@jhcloos.com>
michael@0 3703
michael@0 3704 * src/type/t1load.c (mm_axis_unmap): Revert previous patch and fix
michael@0 3705 it correctly by using FT_INT_TO_FIXED (FreeType expects 16.16 values
michael@0 3706 in the /BlendDesignMap space).
michael@0 3707
michael@0 3708 2008-11-29 James Cloos <cloos@jhcloos.com>
michael@0 3709
michael@0 3710 * src/type1/t1load.c (mm_axis_unmap): `blend_points' is FT_Fixed*,
michael@0 3711 whereas `design_points' is FT_Long*. Therefore, return blend rather
michael@0 3712 than design points.
michael@0 3713
michael@0 3714 2008-11-27 Werner Lemberg <wl@gnu.org>
michael@0 3715
michael@0 3716 * src/cff/cffparse.c (cff_parse_real): Handle more than nine
michael@0 3717 significant digits correctly. This fixes Savannah bug #24953.
michael@0 3718
michael@0 3719 2008-11-25 Daniel Zimmermann <netzimme@aol.com>
michael@0 3720
michael@0 3721 * src/base/ftstream.c (FT_Stream_ReadFields): Don't access stream
michael@0 3722 before the NULL check. From Savannah patch #6681.
michael@0 3723
michael@0 3724 2008-11-24 Werner Lemberg <wl@gnu.org>
michael@0 3725
michael@0 3726 Fixes from the gnuwin32 port.
michael@0 3727
michael@0 3728 * src/base/ftlcdfil.c: s/EXPORT/EXPORT_DEF/.
michael@0 3729
michael@0 3730 * src/base/ftotval.c: Include FT_OPENTYPE_VALIDATE_H.
michael@0 3731
michael@0 3732 * src/psaux/psobjs.c (ps_table_add): Check `length'.
michael@0 3733
michael@0 3734 2008-11-15 Werner Lemberg <wl@gnu.org>
michael@0 3735
michael@0 3736 * src/truetype/ttinterp.c (tt_default_graphics_state): The default
michael@0 3737 value for `scan_type' is zero, as confirmed by Greg Hitchcock from
michael@0 3738 Microsoft. Problem reported by Michal Nowakowski
michael@0 3739 <miszka@limes.com.pl>.
michael@0 3740
michael@0 3741 2008-11-12 Tor Andersson <tor.andersson@gmail.com>
michael@0 3742
michael@0 3743 * src/cff/cffdrivr.c (cff_get_cmap_info): Initialize `format' field.
michael@0 3744 This fixes Savannah bug #24819.
michael@0 3745
michael@0 3746 2008-11-08 Werner Lemberg <wl@gnu.org>
michael@0 3747
michael@0 3748 * src/sfnt/sfobjs.c (sfnt_load_face): Remove #if 0/#endif guards
michael@0 3749 since OpenType version 1.5 has been released.
michael@0 3750
michael@0 3751 * include/ttnameid.h (TT_NAME_ID_WWS_FAMILY,
michael@0 3752 TT_NAME_ID_WWS_SUBFAMILY): New macros for OpenType 1.5.
michael@0 3753 (TT_URC_COPTIC, TT_URC_VAI, TT_URC_NKO, TT_URC_BALINESE,
michael@0 3754 TT_URC_PHAGSPA, TT_URC_NON_PLANE_0, TT_URC_PHOENICIAN,
michael@0 3755 TT_URC_TAI_LE, TT_URC_NEW_TAI_LUE, TT_URC_BUGINESE,
michael@0 3756 TT_URC_GLAGOLITIC, TT_URC_YIJING, TT_URC_SYLOTI_NAGRI,
michael@0 3757 TT_URC_LINEAR_B, TT_URC_ANCIENT_GREEK_NUMBERS, TT_URC_UGARITIC,
michael@0 3758 TT_URC_OLD_PERSIAN, TT_URC_SHAVIAN, TT_URC_OSMANYA,
michael@0 3759 TT_URC_CYPRIOT_SYLLABARY, TT_URC_KHAROSHTHI, TT_URC_TAI_XUAN_JING,
michael@0 3760 TT_URC_CUNEIFORM, TT_URC_COUNTING_ROD_NUMERALS, TT_URC_SUNDANESE,
michael@0 3761 TT_URC_LEPCHA, TT_URC_OL_CHIKI, TT_URC_SAURASHTRA, TT_URC_KAYAH_LI,
michael@0 3762 TT_URC_REJANG, TT_URC_CHAM, TT_URC_ANCIENT_SYMBOLS,
michael@0 3763 TT_URC_PHAISTOS_DISC, TT_URC_OLD_ANATOLIAN, TT_URC_GAME_TILES): New
michael@0 3764 macros for OpenType 1.5.
michael@0 3765
michael@0 3766 2008-11-08 Wenlin Institute <wenlin@wenlin.com>
michael@0 3767
michael@0 3768 * src/base/ftobjs.c (ft_glyphslot_free_bitmap): Protect against
michael@0 3769 slot->internal == NULL. Reported by Graham Asher.
michael@0 3770
michael@0 3771 2008-11-08 Werner Lemberg <wl@gnu.org>
michael@0 3772
michael@0 3773 * src/sfnt/sfobjs.c (tt_face_get_name): Modified to return an error
michael@0 3774 code so that memory allocation problems can be distinguished from
michael@0 3775 missing table entries. Reported by Graham Asher.
michael@0 3776 (GET_NAME): New macro.
michael@0 3777 (sfnt_load_face): Use it.
michael@0 3778
michael@0 3779 2008-11-05 Werner Lemberg <wl@gnu.org>
michael@0 3780
michael@0 3781 * devel/ftoption.h, include/freetype/config/ftoption.h
michael@0 3782 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Undefine
michael@0 3783 TT_CONFIG_OPTION_UNPATENTED_HINTING. This fixes the return value of
michael@0 3784 `FT_Get_TrueType_Engine_Type' (and makes it work as documented).
michael@0 3785 Reported in bug #441638 of bugzilla.novell.com.
michael@0 3786
michael@0 3787 * docs/CHANGES: Document it.
michael@0 3788
michael@0 3789 2008-11-03 Werner Lemberg <wl@gnu.org>
michael@0 3790
michael@0 3791 * src/type1/t1load.c (parse_subrs): Use an endless loop. There are
michael@0 3792 fonts (like HELVI.PFB version 003.001, used on OS/2) which define
michael@0 3793 some `subrs' elements more than once. Problem reported by Peter
michael@0 3794 Weilbacher <mozilla@weilbacher.org>.
michael@0 3795
michael@0 3796 2008-10-15 Graham Asher <graham.asher@btinternet.com>
michael@0 3797
michael@0 3798 * src/sfnt/ttpost.c (tt_post_default_names): Add `const'.
michael@0 3799
michael@0 3800 2008-10-15 David Turner <david@freetype.org>
michael@0 3801
michael@0 3802 * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Disambiguate for
michael@0 3803 meddlesome compilers' warning against `for ( ...; ...; ...) ;'.
michael@0 3804
michael@0 3805 2008-10-14 Werner Lemberg <wl@gnu.org>
michael@0 3806
michael@0 3807 * src/cff/cffobjs.c (cff_face_init): Remove compiler warning.
michael@0 3808 Suggested by Bram Tassyns in Savannah patch #6651.
michael@0 3809
michael@0 3810 2008-10-12 Graham Asher <graham.asher@btinternet.com>
michael@0 3811
michael@0 3812 * src/sfnt/sfobjs.c (sfnt_load_face): Fix computation of
michael@0 3813 `underline_position'.
michael@0 3814
michael@0 3815 2008-10-12 Werner Lemberg <wl@gnu.org>
michael@0 3816
michael@0 3817 * docs/CHANGES: Updated.
michael@0 3818
michael@0 3819 2008-10-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 3820
michael@0 3821 Fix Savannah bug #24468.
michael@0 3822
michael@0 3823 According to include/freetype/internal/ftobjs.h, the appropriate
michael@0 3824 type to interchange single character codepoint is FT_UInt32. It
michael@0 3825 should be distinguished from FT_UInt which can be 16bit integer.
michael@0 3826
michael@0 3827 * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Change the type
michael@0 3828 of the second argument `pcharcode' from FT_UInt* to FT_UInt32*.
michael@0 3829 (tt_cmap4_char_map_binary): Ditto.
michael@0 3830 (tt_cmap14_get_nondef_chars): Change the type of return value
michael@0 3831 from FT_UInt* to FT_UInt32*.
michael@0 3832
michael@0 3833 2008-10-08 John Tytgat <John.Tytgat@esko.com>
michael@0 3834
michael@0 3835 Fix Savannah bug #24485.
michael@0 3836
michael@0 3837 * src/type1/t1load.c (parse_charstrings): Assure that we always have
michael@0 3838 a .notdef glyph.
michael@0 3839
michael@0 3840 2008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 3841
michael@0 3842 * src/base/ftmac.c: Include FT_TRUETYPE_TAGS_H for multi build.
michael@0 3843 * builds/mac/ftmac.c: Ditto.
michael@0 3844
michael@0 3845 2008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 3846
michael@0 3847 * include/freetype/tttags.h (TTAG_TYP1, TTAG_typ1): Fix definitions.
michael@0 3848 * src/base/ftobjs.c: Include FT_TRUETYPE_TAGS_H.
michael@0 3849
michael@0 3850 2008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 3851
michael@0 3852 * src/sfnt/sfobjs.c (sfnt_open_font): Allow `typ1' version tag in
michael@0 3853 the beginning of sfnt container.
michael@0 3854 * src/sfnt/ttload.c (check_table_dir): Return
michael@0 3855 `SFNT_Err_Table_Missing' when sfnt table directory structure is
michael@0 3856 correct but essential tables for TrueType fonts (`head', `bhed' or
michael@0 3857 `SING') are missing. Other errors are returned by
michael@0 3858 SFNT_Err_Unknown_File_Format.
michael@0 3859
michael@0 3860 * src/base/ftobjs.c (FT_Open_Face): When TrueType driver returns
michael@0 3861 `FT_Err_Table_Missing', try `open_face_PS_from_sfnt_stream'. It is
michael@0 3862 enabled only when old mac font support is configured.
michael@0 3863
michael@0 3864 2008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 3865
michael@0 3866 * include/freetype/tttags.h (TTAG_CID, TTAG_FOND, TTAG_LWFN,
michael@0 3867 TTAG_POST, TTAG_sfnt, TTAG_TYP1, TTAG_typ1): New tags to simplify
michael@0 3868 the repeated calculations of these values in ftobjs.c and ftmac.c.
michael@0 3869 * src/base/ftobjs.c: Replace all FT_MAKE_TAG by new tags.
michael@0 3870 * src/base/ftmac.c: Ditto.
michael@0 3871 * builds/mac/ftmac.c: Ditto.
michael@0 3872
michael@0 3873 2008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 3874
michael@0 3875 * src/base/ftobjs.c (ft_lookup_PS_in_sfnt_stream): Remove wrong
michael@0 3876 initialization of *is_sfnt_cid.
michael@0 3877
michael@0 3878 2008-10-04 Werner Lemberg <wl@gnu.org>
michael@0 3879
michael@0 3880 * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Remove compiler
michael@0 3881 warnings.
michael@0 3882
michael@0 3883 2008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 3884
michael@0 3885 * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Replaced by...
michael@0 3886 (ft_lookup_PS_in_sfnt_stream): This.
michael@0 3887 (open_face_PS_from_sfnt_stream): New function. It checks whether
michael@0 3888 the stream is sfnt-wrapped Type1 PS font or sfnt-wrapped CID-keyed
michael@0 3889 font, then try to open a face for given face_index.
michael@0 3890 (Mac_Read_sfnt_Resource): Replace the combination of
michael@0 3891 `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' by
michael@0 3892 `open_face_PS_from_sfnt_stream'.
michael@0 3893 * src/base/ftmac.c (FT_New_Face_From_SFNT): Ditto.
michael@0 3894 * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
michael@0 3895 * src/base/ftbase.h: Remove `ft_lookup_PS_in_sfnt' and add
michael@0 3896 `open_face_PS_from_sfnt_stream'.
michael@0 3897
michael@0 3898 2008-10-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 3899
michael@0 3900 * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Set *is_sfnt_cid to
michael@0 3901 FALSE if neither `CID ' nor `TYP1' is found in the sfnt container.
michael@0 3902
michael@0 3903 2008-10-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 3904
michael@0 3905 * include/freetype/config/ftconfig.h: Define FT_MACINTOSH when SC or
michael@0 3906 MrC compiler of MPW is used. These compilers do not define the
michael@0 3907 macro __APPLE__ by themselves.
michael@0 3908 * builds/unix/ftconfig.in: Ditto.
michael@0 3909 * builds/vms/ftconfig.h: Ditto.
michael@0 3910 * src/base/ftbase.c: Use FT_MACINTOSH instead of __APPLE__, to
michael@0 3911 include ftmac.c if FreeType 2 is built by MPW.
michael@0 3912 * src/base/ftobjs.c: Use FT_MACINTOSH instead of __APPLE__, to
michael@0 3913 enable shared functions for ftmac.c if FreeType 2 is built by MPW.
michael@0 3914
michael@0 3915 * builds/mac/ftmac.c: Include ftbase.h.
michael@0 3916 (memory_stream_close): Removed.
michael@0 3917 (new_memory_stream): Ditto.
michael@0 3918 (open_face_from_buffer): Removed. Use the implementation in
michael@0 3919 ftobjs.c.
michael@0 3920 (ft_lookup_PS_in_sfnt): Ditto.
michael@0 3921
michael@0 3922 * builds/mac/FreeType.m68k_far.make.txt: Build ftmac.c as an
michael@0 3923 included part of ftbase.c, to share the functions in ftobjs.c. The
michael@0 3924 rule compiling ftmac.c separately is removed and the rule copying
michael@0 3925 ftbase.c from src/base/ftbase.c to builds/mac/ftbase.c is added.
michael@0 3926 * builds/mac/FreeType.m68k_cfm.make.txt: Ditto.
michael@0 3927 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
michael@0 3928 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
michael@0 3929
michael@0 3930 2008-10-02 Bram Tassyns <bramt@enfocus.be>
michael@0 3931
michael@0 3932 * src/cff/cffgload.c (cff_slot_load): Map CID 0 to GID 0. This
michael@0 3933 fixes Savannah bug #24430.
michael@0 3934
michael@0 3935 2008-10-02 Werner Lemberg <wl@gnu.org>
michael@0 3936
michael@0 3937 * builds/freetype.mk (BASE_H): Rename to...
michael@0 3938 (INTERNAL_H): This.
michael@0 3939 (FREETYPE_H): Updated.
michael@0 3940 * src/base/rules.mk: (BASE_OBJ_S, OBJ_DIR/%.$O): Add BASE_H.
michael@0 3941 * src/bdf/rules.mk (BDF_DRV_H): Add bdferror.h.
michael@0 3942 * src/cache/rules.mk (CACHE_DRV_H): Add ftccache.h and ftcsbits.h.
michael@0 3943 * src/pcf/rules.mk (PCF_DRV_H): Add pcfread.h.
michael@0 3944 * src/raster/rules.mk (RASTER_DRV_H): Add ftmisc.h.
michael@0 3945 * src/type42/rules.mk (T42_DRV_H): Add t42types.h.
michael@0 3946
michael@0 3947 2008-10-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 3948
michael@0 3949 * src/base/ftbase.h: New file to declare the private utility
michael@0 3950 functions shared by the sources of base modules. Currently,
michael@0 3951 `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' are declared to
michael@0 3952 share between ftobjs.c and ftmac.c.
michael@0 3953
michael@0 3954 * src/base/rule.mk: Add ftbase.h.
michael@0 3955
michael@0 3956 * src/base/ftobjs.c: Include ftbase.h.
michael@0 3957 (memory_stream_close): Build on any platform when old MacOS font
michael@0 3958 support is enabled.
michael@0 3959 (new_memory_stream): Ditto.
michael@0 3960 (open_face_from_buffer): Build on any platform when old MacOS font
michael@0 3961 support is enabled. The counting of the face in a font file is
michael@0 3962 slightly different between Carbon-dependent parser and Carbon-free
michael@0 3963 parser. They are merged with the platform-specific conditional.
michael@0 3964 (ft_lookup_PS_in_sfnt): Ditto.
michael@0 3965
michael@0 3966 * src/base/ftmac.c: Include ftbase.h.
michael@0 3967 (memory_stream_close): Removed.
michael@0 3968 (new_memory_stream): Ditto.
michael@0 3969 (open_face_from_buffer): Removed. Use the implementation in
michael@0 3970 ftobjs.c.
michael@0 3971 (ft_lookup_PS_in_sfnt): Ditto.
michael@0 3972
michael@0 3973 2008-10-02 Werner Lemberg <wl@gnu.org>
michael@0 3974
michael@0 3975 * src/sfnt/sfobjs.c (sfnt_load_face): `psnames_error' is only needed
michael@0 3976 if TT_CONFIG_OPTION_POSTSCRIPT_NAMES is defined.
michael@0 3977
michael@0 3978 2008-10-01 Werner Lemberg <wl@gnu.org>
michael@0 3979
michael@0 3980 * src/truetype/ttobjs.c (tt_face_done), src/cff/cffobjs.c
michael@0 3981 (cff_face_done), src/pfr/pfrobjs.c (pfr_face_done),
michael@0 3982 src/pcf/pcfdrivr.c (PCF_Face_Done), src/cid/cidobjs.c
michael@0 3983 (cid_face_done), src/bdf/bdfdrivr. (BDF_Face_Done),
michael@0 3984 src/sfnt/sfobjs.c (sfnt_face_done): Protect against face == 0.
michael@0 3985 Reported by Graham Asher.
michael@0 3986
michael@0 3987 2008-09-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 3988
michael@0 3989 * src/base/rules.mk: Add conditional source to BASE_SRC, for `make
michael@0 3990 multi' on Mac OS X. If the macro $(ftmac_c) is defined,
michael@0 3991 $(BASE_DIR)/$(ftmac_c) is added to BASE_SRC. In a normal build, the
michael@0 3992 lack of ftmac.c in BASE_SRC is not serious because ftbase.c includes
michael@0 3993 ftmac.c.
michael@0 3994 * builds/unix/unix-def.in: Add a macro definition of $(ftmac_c).
michael@0 3995 * builds/unix/configure.raw: Add procedure to set up appropriate
michael@0 3996 value of $(ftmac_c) with the consideration of the availability of
michael@0 3997 Carbon framework.
michael@0 3998
michael@0 3999 2008-09-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4000
michael@0 4001 * src/base/Jamfile: Add target for multi build by jam on Mac OS X.
michael@0 4002 * src/base/ftobjs.c (FT_New_Face): Fix the condition to include this
michael@0 4003 function for MPW building. It is synchronized the condition to
michael@0 4004 include ftmac.c source into ftbase.c.
michael@0 4005
michael@0 4006 2008-09-22 Werner Lemberg <wl@gnu.org>
michael@0 4007
michael@0 4008 * src/cff/cffgload.c (CFF_Operator, cff_argument_counts,
michael@0 4009 cff_decoder_parse_charstrings): Handle (invalid)
michael@0 4010 `callothersubr' and `pop' instructions.
michael@0 4011
michael@0 4012 2008-09-22 John Tytgat <John.Tytgat@esko.com>
michael@0 4013
michael@0 4014 Fix Savannah bug #24307.
michael@0 4015
michael@0 4016 * include/freetype/internal/t1types.h (CID_FaceRec),
michael@0 4017 src/type42/t42types.h (T42_FaceRec): Comment out `afm_data'.
michael@0 4018
michael@0 4019 2008-09-21 Werner Lemberg <wl@gnu.org>
michael@0 4020
michael@0 4021 * src/smooth/ftgrays.c (gray_raster_render): Don't dereference
michael@0 4022 `target_map' if FT_RASTER_FLAG_DIRECT is set. Problem reported by
michael@0 4023 Stephan T. Lavavej <stl@nuwen.net>.
michael@0 4024
michael@0 4025 2008-09-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4026
michael@0 4027 * src/otvalid/Jamfile: Add missing target `otvmath' for multi build
michael@0 4028 by jam.
michael@0 4029 * src/sfnt/Jamfile: Add missing target `ttmtx' for multi build by
michael@0 4030 jam.
michael@0 4031
michael@0 4032 2008-09-20 Werner Lemberg <wl@gnu.org>
michael@0 4033
michael@0 4034 * src/smooth/ftgrays.c (gray_find_cell): Fix threshold. The values
michael@0 4035 passed to this function are already `normalized'. Problem reported
michael@0 4036 by Stephan T. Lavavej <stl@nuwen.net>.
michael@0 4037
michael@0 4038 * docs/CHANGES: Document it.
michael@0 4039
michael@0 4040 2008-09-20 Werner Lemberg <wl@gnu.org>
michael@0 4041
michael@0 4042 * src/base/ftoutln.c: Include FT_INTERNAL_DEBUG_H.
michael@0 4043 (FT_Outline_Decompose): Decorate with tracing messages.
michael@0 4044
michael@0 4045 * src/smooth/ftgrays.c [DEBUG_GRAYS]: Replace with
michael@0 4046 FT_DEBUG_LEVEL_TRACE.
michael@0 4047 [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: Include stdio.h and
michael@0 4048 stdarg.h.
michael@0 4049
michael@0 4050 (FT_TRACE) [_STANDALONE_]: Remove.
michael@0 4051 (FT_Message) [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: New function.
michael@0 4052 (FT_TRACE5, FT_TRACE7) [_STANDALONE_]: New macros.
michael@0 4053 (FT_ERROR) [_STANDALONE_]: Updated.
michael@0 4054
michael@0 4055 (gray_hline) [FT_DEBUG_LEVEL_TRACE]: Fix condition.
michael@0 4056 Use FT_TRACE7.
michael@0 4057 (gray_dump_cells): Make it `static void'.
michael@0 4058 (gray_convert_glyph): Use FT_TRACE7.
michael@0 4059
michael@0 4060 (FT_Outline_Decompose) [_STANDALONE_]: Synchronize with version in
michael@0 4061 ftoutln.c.
michael@0 4062
michael@0 4063 * src/base/ftadvanc.c (FT_Get_Advance, FT_Get_Advances): Use
michael@0 4064 FT_ERROR_BASE.
michael@0 4065
michael@0 4066 * docs/formats.txt: Updated.
michael@0 4067
michael@0 4068 2008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4069
michael@0 4070 * src/base/ftmac.c: Import sfnt-wrapped Type1 and sfnt-wrapped
michael@0 4071 CID-keyed font support.
michael@0 4072 * builds/mac/ftmac.c: Ditto.
michael@0 4073
michael@0 4074 2008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4075
michael@0 4076 * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Fix double free bug in
michael@0 4077 sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font support code.
michael@0 4078 `open_face_from_buffer' frees the passed buffer if it cannot open a
michael@0 4079 face from the buffer, so the caller must not free it.
michael@0 4080
michael@0 4081 2008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4082
michael@0 4083 * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add initial support
michael@0 4084 for sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font.
michael@0 4085 (ft_lookup_PS_in_sfnt): New function to look up `TYP1' or `CID '
michael@0 4086 table in sfnt table directory. It is used before loading TrueType
michael@0 4087 font driver.
michael@0 4088
michael@0 4089 * docs/CHANGES: Add note about the current status of sfnt-wrapped
michael@0 4090 Type1 and sfnt-wrapped CID-keyed font support.
michael@0 4091
michael@0 4092 2008-09-18 Werner Lemberg <wl@gnu.org>
michael@0 4093
michael@0 4094 * src/base/ftsystem.c (FT_Done_Memory): Use ft_sfree directly for
michael@0 4095 orthogonality (ft_free and ft_sfree could belong to different memory
michael@0 4096 pools). This fixes Savannah bug #24297.
michael@0 4097
michael@0 4098 2008-09-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4099
michael@0 4100 * src/cff/cffobjs.c (cff_face_init): Use TTAG_OTTO defined
michael@0 4101 in ttags.h instead of numerical value 0x4F54544FL.
michael@0 4102
michael@0 4103 2008-09-16 Werner Lemberg <wl@gnu.org>
michael@0 4104
michael@0 4105 * src/cff/cffgload.h, src/cff/cffgload.c
michael@0 4106 (cff_decoder_set_width_only): Eliminate function call.
michael@0 4107
michael@0 4108 2008-09-15 George Williams <gww@silcom.com>
michael@0 4109
michael@0 4110 Fix Savannah bug #24179, reported by Bram Tassyns.
michael@0 4111
michael@0 4112 * src/type1/t1load.c (mm_axis_unmap, T1_Get_MM_Var): Fix computation
michael@0 4113 of default values.
michael@0 4114
michael@0 4115 2008-09-15 Werner Lemberg <wl@gnu.org>
michael@0 4116
michael@0 4117 * src/tools/glnames.py (main): Surround `ft_get_adobe_glyph_index'
michael@0 4118 and `ft_adobe_glyph_list' with FT_CONFIG_OPTION_ADOBE_GLYPH_LIST to
michael@0 4119 prevent unconditional definition. This fixes Savannah bug #24241.
michael@0 4120
michael@0 4121 * src/psnames/pstables.h: Regenerated.
michael@0 4122
michael@0 4123 2008-09-13 Werner Lemberg <wl@gnu.org>
michael@0 4124
michael@0 4125 * autogen.sh, builds/unix/configure.raw,
michael@0 4126 include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: Minor
michael@0 4127 beautifying.
michael@0 4128
michael@0 4129 * include/freetype/ftadvanc.h, include/freetype/ftgasp.h,
michael@0 4130 include/freetype/ftlcdfil.h: Protect against FreeType 1.
michael@0 4131 Some other minor fixes.
michael@0 4132
michael@0 4133 * devel/ftoption.h: Synchronize with
michael@0 4134 include/freetype/config/ftoption.h.
michael@0 4135
michael@0 4136 2008-09-11 Werner Lemberg <wl@gnu.org>
michael@0 4137
michael@0 4138 * src/base/ftbase.c: Include ftadvanc.c.
michael@0 4139
michael@0 4140 2008-09-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4141
michael@0 4142 * builds/unix/ftconfig.in: Duplicate the cpp computation of
michael@0 4143 FT_SIZEOF_{INT|LONG} from include/freetype/config/ftconfig.h.
michael@0 4144 (FT_USE_AUTOCONF_SIZEOF_TYPES): New macro. If defined, the cpp
michael@0 4145 computation is disabled and the statically configured sizes are
michael@0 4146 used. This fixes Savannah bug #21250.
michael@0 4147
michael@0 4148 * builds/unix/configure.raw: Add the checks to compare the cpp
michael@0 4149 computation results of the bit length of int and long versus the
michael@0 4150 sizes detected by running `configure'. If the results are
michael@0 4151 different, FT_USE_AUTOCONF_SIZEOF_TYPES is defined to prioritize the
michael@0 4152 results.
michael@0 4153 New option --{enable|disable}-biarch-config is added to define or
michael@0 4154 undefine FT_USE_AUTOCONF_SIZEOF_TYPES manually.
michael@0 4155
michael@0 4156 2008-09-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4157
michael@0 4158 * builds/unix/configure.raw: Clear FT2_EXTRA_LIBS when Carbon or
michael@0 4159 ApplicationService framework is missing. Although this value is not
michael@0 4160 used in building of FreeType2, it is written in `freetype2.pc' and
michael@0 4161 `freetype-config'.
michael@0 4162
michael@0 4163 2008-09-01 david turner <david@freetype.org>
michael@0 4164
michael@0 4165 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Accept a negative cmap
michael@0 4166 index to mean `use default cached FT_Face's charmap'. This fixes
michael@0 4167 Savannah bug #22625.
michael@0 4168 * include/freetype/ftcache.h: Document it.
michael@0 4169
michael@0 4170
michael@0 4171 Make FT_MulFix an inlined function. This is done to speed up
michael@0 4172 FreeType a little (on x86 3% when loading+hinting, 10% when
michael@0 4173 rendering, ARM savings are more important though). Disable this by
michael@0 4174 undefining FT_CONFIG_OPTION_INLINE_MULFIX.
michael@0 4175
michael@0 4176 Use of assembler code can now be controlled with
michael@0 4177 FT_CONFIG_OPTION_NO_ASSEMBLER.
michael@0 4178
michael@0 4179 * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in
michael@0 4180 [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_arm): New assembler
michael@0 4181 implementation.
michael@0 4182 [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_i386): Assembler
michael@0 4183 implementation taken from `ftcalc.c'.
michael@0 4184 [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MULFIX_ASSEMBLER): New macro
michael@0 4185 which is defined to the platform-specific assembler implementation
michael@0 4186 of FT_MulFix.
michael@0 4187 [FT_CONFIG_OPTION_INLINE_MULFIX && FT_MULFIX_ASSEMBLER]
michael@0 4188 (FT_MULFIX_INLINED): New macro.
michael@0 4189
michael@0 4190 * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_NO_ASSEMBLER,
michael@0 4191 FT_CONFIG_OPTION_INLINE_MULFIX): New macros.
michael@0 4192
michael@0 4193 * include/freetype/freetype.h: Updated to handle FT_MULFIX_INLINED.
michael@0 4194
michael@0 4195 * src/base/ftcalc.c: Updated to use FT_MULFIX_ASSEMBLER and
michael@0 4196 FT_MULFIX_INLINED.
michael@0 4197
michael@0 4198
michael@0 4199 Add a new header named FT_ADVANCES_H declaring some new APIs to
michael@0 4200 extract the advances of one or more glyphs without necessarily
michael@0 4201 loading their outlines. Also provide `fast loaders' for the
michael@0 4202 TrueType, Type1, and CFF font drivers (more to come later).
michael@0 4203
michael@0 4204 * src/base/ftadvanc.c, include/freetype/ftadvanc.h: New files.
michael@0 4205
michael@0 4206 * include/freetype/config/ftheader.h (FT_ADVANCES_H): New macro.
michael@0 4207 * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): New macro.
michael@0 4208
michael@0 4209 * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
michael@0 4210 `flags' and `advances' are now of type `FT_UInt' and `FT_Fixed',
michael@0 4211 respectively.
michael@0 4212
michael@0 4213 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC): Add
michael@0 4214 ftadvanc.c.
michael@0 4215
michael@0 4216 * src/cff/cffdrivr.c (cff_get_advances): New function.
michael@0 4217 (cff_driver_class): Register it.
michael@0 4218
michael@0 4219 * src/cff/cffgload.c (cff_decoder_set_width_only): New function.
michael@0 4220 (cff_decoder_parse_charstrings): Handle `width_only'.
michael@0 4221 (cff_slot_load): Handle FT_LOAD_ADVANCE_ONLY.
michael@0 4222
michael@0 4223 * src/cff/cffgload.h (cff_decoder): New element `width_only'.
michael@0 4224 (cff_decoder_set_width_only): New declaration.
michael@0 4225
michael@0 4226 * src/truetype/ttdriver.c (tt_get_advances): New function.
michael@0 4227 (tt_driver_class): Register it.
michael@0 4228
michael@0 4229 * src/truetype/ttgload.c (Get_HMetrics, Get_VMetrics): Renamed to...
michael@0 4230 (TT_Get_HMetrics, TT_Get_VMetrics): This.
michael@0 4231 Update callers.
michael@0 4232 * src/truetype/ttgload.h: Declare them.
michael@0 4233
michael@0 4234 * src/type1/t1gload.h, src/type1/t1gload.c (T1_Get_Advances): New
michael@0 4235 function.
michael@0 4236 * src/type1/t1driver.c (t1_driver_class): Register T1_Get_Advances.
michael@0 4237
michael@0 4238
michael@0 4239 Add checks for minimum version of the `autotools' stuff.
michael@0 4240
michael@0 4241 * autogen.sh: Implement it.
michael@0 4242 (get_major_version, get_minor_version, get_patch_version,
michael@0 4243 compare_to_minimum_version, check_tool_version): New auxiliary
michael@0 4244 functions.
michael@0 4245
michael@0 4246 * README.CVS: Document it.
michael@0 4247
michael@0 4248 2008-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4249
michael@0 4250 * src/sfnt/sfobjs.c (sfnt_open_font): Use TTAG_OTTO defined in
michael@0 4251 ttags.h instead of FT_MAKE_TAG( 'O', 'T', 'T', 'O' ).
michael@0 4252
michael@0 4253 2008-08-28 Werner Lemberg <wl@gnu.org>
michael@0 4254
michael@0 4255 * src/type1/t1load.c (parse_encoding): Protect against infinite
michael@0 4256 loop. This fixes Savannah bug #24150 (where a patch has been posted
michael@0 4257 too).
michael@0 4258
michael@0 4259 2008-08-23 Werner Lemberg <wl@gnu.org>
michael@0 4260
michael@0 4261 * src/type/t1afm.c (compare_kern_pairs), src/pxaux/afmparse.c
michael@0 4262 (afm_compare_kern_pairs): Fix comparison. This fixes Savannah bug
michael@0 4263 #24119.
michael@0 4264
michael@0 4265 2008-08-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4266
michael@0 4267 * src/base/ftobjs.c (FT_Stream_New): Initialize *astream always,
michael@0 4268 even if passed library or arguments are invalid. This fixes a bug
michael@0 4269 that an uninitialized stream is freed when an invalid library handle
michael@0 4270 is passed. Originally proposed by Mike Fabian, 2008/08/18 on
michael@0 4271 freetype-devel.
michael@0 4272 (FT_Open_Face): Ditto (stream).
michael@0 4273 (load_face_in_embedded_rfork): Ditto (stream2).
michael@0 4274
michael@0 4275 2008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4276
michael@0 4277 * src/base/ftmac.c: Add a fallback to guess the availability of the
michael@0 4278 `ResourceIndex' type. It is used when built without configure
michael@0 4279 (e.g., a build with Jam).
michael@0 4280 * builds/mac/ftmac.c: Ditto.
michael@0 4281 * builds/unix/configure.raw: Set HAVE_TYPE_RESOURCE_INDEX to 1 or 0
michael@0 4282 explicitly, even if `ResourceIndex' is unavailable.
michael@0 4283
michael@0 4284 2008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4285
michael@0 4286 * builds/unix/configure.raw: In checking of Mac OS X features,
michael@0 4287 all-in-one header file `Carbon.h' is replaced by the minimum
michael@0 4288 header file `CoreServices.h', similar to current src/base/ftmac.c.
michael@0 4289
michael@0 4290 2008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4291
michael@0 4292 * src/sfnt/ttcmap.c (tt_cmap2_validate): Skip the validation of
michael@0 4293 sub-header when its code_count is 0. Many Japanese Dynalab fonts
michael@0 4294 include such an empty sub-header (code_count == 0, first_code == 0
michael@0 4295 delta == 0, but offset != 0) as the second sub-header in SJIS cmap.
michael@0 4296
michael@0 4297 2008-08-04 Werner Lemberg <wl@gnu.org>
michael@0 4298
michael@0 4299 * src/type1/t1tokens.h: Handle `ForceBold' keyword. This fixes
michael@0 4300 Savannah bug #23995.
michael@0 4301
michael@0 4302 * src/cid/cidload.c (parse_expansion_factor): New callback function.
michael@0 4303 (cid_field_records): Use it for `ExpansionFactor'.
michael@0 4304 * src/cod/cidtoken.h: Handle `ForceBold' keyword.
michael@0 4305 Don't handle `ExpansionFactor'.
michael@0 4306
michael@0 4307 2008-08-04 Bram Tassyns <bramt@enfocus.be>
michael@0 4308
michael@0 4309 * src/cff/cffparse.c (cff_parse_fixed_scaled): Fix thinko which
michael@0 4310 resulted in incorrect scaling. This fixes Savannah bug #23973.
michael@0 4311
michael@0 4312 2008-08-04 Werner Lemberg <wl@gnu.org>
michael@0 4313
michael@0 4314 Be more tolerant w.r.t. invalid entries in SFNT table directory.
michael@0 4315
michael@0 4316 * src/sfnt/ttload.c (check_table_dir): Ignore invalid entries and
michael@0 4317 adjust table count.
michael@0 4318 Add more trace messages.
michael@0 4319 (tt_face_load_font_dir): Updated.
michael@0 4320
michael@0 4321 2008-07-30 Werner Lemberg <wl@gnu.org>
michael@0 4322
michael@0 4323 * src/cff/cffgload.c (cff_decoder_parse_charstrings): No longer
michael@0 4324 assume that the first argument on the stack is the bottom-most
michael@0 4325 element. Two reasons:
michael@0 4326
michael@0 4327 o According to people from Adobe it is missing in the Type 2
michael@0 4328 specification that pushing of additional, superfluous arguments
michael@0 4329 on the stack is prohibited.
michael@0 4330
michael@0 4331 o Acroread in general handles fonts differently, namely by popping
michael@0 4332 the number of arguments needed for a particular operand (as a PS
michael@0 4333 interpreter would do). In case of buggy fonts this causes a
michael@0 4334 different interpretation which of the elements on the stack are
michael@0 4335 superfluous and which not.
michael@0 4336
michael@0 4337 Since there are CFF subfonts (embedded in PDFs) which rely on
michael@0 4338 Acroread's behaviour, FreeType now does the same.
michael@0 4339
michael@0 4340 2008-07-27 Werner Lemberg <wl@gnu.org>
michael@0 4341
michael@0 4342 Add extra mappings for `Tcommaaccent' and `tcommaaccent'. This
michael@0 4343 fixes Savannah bug #23940.
michael@0 4344
michael@0 4345 * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): Rename to...
michael@0 4346 (EXTRA_GLYPH_LIST_SIZE): This.
michael@0 4347 Increase by 2.
michael@0 4348 (ft_wgl_extra_unicodes): Rename to...
michael@0 4349 (ft_extra_glyph_unicodes): This.
michael@0 4350 Add two code values.
michael@0 4351 (ft_wgl_extra_glyph_names): Rename to...
michael@0 4352 (ft_extra_glyph_names): This.
michael@0 4353 Add two glyphs.
michael@0 4354 (ft_wgl_extra_glyph_name_offsets): Rename to...
michael@0 4355 (ft_extra_glyph_name_offsets): This.
michael@0 4356 Add two offsets.
michael@0 4357
michael@0 4358 (ps_check_wgl_name, ps_check_wgl_unicode): Rename to...
michael@0 4359 (ps_check_extra_glyph_name, ps_check_extra_glyph_unicode): This.
michael@0 4360 Updated.
michael@0 4361 (ps_unicodes_init): Updated.
michael@0 4362
michael@0 4363 2008-07-26 Werner Lemberg <wl@gnu.org>
michael@0 4364
michael@0 4365 * src/cff/cffgload.c (cff_decoder_prepare,
michael@0 4366 cff_decoder_parse_charstrings): Improve debug output.
michael@0 4367
michael@0 4368 2008-07-22 Martin McBride <mmcbride@emtex.com>
michael@0 4369
michael@0 4370 * src/sfnt/ttcmap.c (tt_cmap4_validate, tt_cmap4_char_map_linear,
michael@0 4371 tt_cmap4_char_map_binary): Handle fonts which treat the last segment
michael@0 4372 specially. According to the specification, such fonts would be
michael@0 4373 invalid but acroread accepts them.
michael@0 4374
michael@0 4375 2008-07-16 Jon Foster <Jon.Foster@cabot.co.uk>
michael@0 4376
michael@0 4377 * src/pfr/pfrdrivr.c (pfr_get_advance): Fix off-by-one error.
michael@0 4378
michael@0 4379 * src/base/ftcalc.c (FT_MulFix): Fix portability issue.
michael@0 4380
michael@0 4381 * src/sfnt/ttpost.c (MAC_NAME) [!FT_CONFIG_OPTION_POSTSCRIPT_NAMES]:
michael@0 4382 Fix compiler warning.
michael@0 4383
michael@0 4384 2008-07-16 Werner Lemberg <wl@gnu.org>
michael@0 4385
michael@0 4386 Handle CID-keyed fonts wrapped in an SFNT (with cmaps) correctly.
michael@0 4387
michael@0 4388 * src/cff/cffload.c (cff_font_load): Pass `pure_cff'.
michael@0 4389 Invert sids table only if `pure_cff' is set.
michael@0 4390 * src/cff/cffload.h: Udpated.
michael@0 4391
michael@0 4392 * src/cff/cffobjs.c (cff_face_init): Updated.
michael@0 4393 Set FT_FACE_FLAG_CID_KEYED only if pure_cff is set.
michael@0 4394
michael@0 4395 * docs/CHANGES: Updated.
michael@0 4396
michael@0 4397 2008-07-09 Werner Lemberg <wl@gnu.org>
michael@0 4398
michael@0 4399 * src/truetype/ttpload.c (tt_face_load_loca): Handle buggy fonts
michael@0 4400 where num_locations < num_glyphs. Problem reported by Ding Li.
michael@0 4401
michael@0 4402 2008-07-05 Werner Lemberg <wl@gnu.org>
michael@0 4403
michael@0 4404 Since FreeType uses `$(value ...)', we now need GNU make 3.80 or
michael@0 4405 newer. This fixes Savannah bug #23648.
michael@0 4406
michael@0 4407 * configure: zsh doesn't like ${1+"$@"}.
michael@0 4408 Update needed GNU make version.
michael@0 4409 * builds/toplevel.mk: Check for `$(eval ...)'.
michael@0 4410 * docs/INSTALL.GNU, docs/INSTALL.CROSS, docs/INSTALL.UNIX: Document
michael@0 4411 it.
michael@0 4412
michael@0 4413 2008-07-04 Werner Lemberg <wl@gnu.org>
michael@0 4414
michael@0 4415 * src/raster/ftraster.c (Draw_Sweep): If span is smaller than one
michael@0 4416 pixel, only check for dropouts if neither start nor end point lies
michael@0 4417 on a pixel center. This fixes Savannah bug #23762.
michael@0 4418
michael@0 4419 2008-06-29 Werner Lemberg <wl@gnu.org>
michael@0 4420
michael@0 4421 * Version 2.3.7 released.
michael@0 4422 =========================
michael@0 4423
michael@0 4424
michael@0 4425 Tag sources with `VER-2-3-7'.
michael@0 4426
michael@0 4427 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
michael@0 4428 version number to 2.3.7.
michael@0 4429
michael@0 4430 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
michael@0 4431 builds/win32/visualc/freetype.dsp,
michael@0 4432 builds/win32/visualc/freetype.vcproj,
michael@0 4433 builds/win32/visualce/index.html,
michael@0 4434 builds/win32/visualce/freetype.dsp,
michael@0 4435 builds/win32/visualce/freetype.vcproj: s/2.3.6/2.3.7/, s/236/237/.
michael@0 4436
michael@0 4437 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
michael@0 4438
michael@0 4439 * builds/unix/configure.raw (version_info): Set to 9:18:3.
michael@0 4440
michael@0 4441 * docs/release: Updated.
michael@0 4442
michael@0 4443 2008-06-28 Werner Lemberg <wl@gnu.org>
michael@0 4444
michael@0 4445 * src/ftglyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to...
michael@0 4446 * src/ftcalc.c: Here. This fixes Savannah bug #23729.
michael@0 4447
michael@0 4448 2008-06-27 Werner Lemberg <wl@gnu.org>
michael@0 4449
michael@0 4450 * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
michael@0 4451 Horizontal_Gray_Sweep_Drop): Test for intersections which
michael@0 4452 degenerate to a single point can be ignored; this has been confirmed
michael@0 4453 by Greg Hitchcock from Microsoft. (This was commented out code.)
michael@0 4454
michael@0 4455 2008-06-26 Werner Lemberg <wl@gnu.org>
michael@0 4456
michael@0 4457 Improve navigation in API reference.
michael@0 4458
michael@0 4459 * src/tools/docmaker/tohtml.py (html_header_3): Renamed to...
michael@0 4460 (html_header_6): This.
michael@0 4461 (html_header_3, html_header_3i, html_header_4, html_header_5,
michael@0 4462 html_header_5t): New strings.
michael@0 4463 (toc_footer_start, toc_footer_end): New strings.
michael@0 4464 (HtmlFormatter::html_header): Updated.
michael@0 4465 (HtmlFormatter::html_index_header, HtmlFormatter::html_toc_header):
michael@0 4466 New strings.
michael@0 4467 (HtmlFormatter::index_enter): Use `html_index_header'.
michael@0 4468 (HtmlFormatter::index_exit): Print `html_footer'.
michael@0 4469 (HtmlFormatter::toc_enter): Use `html_toc_header'.
michael@0 4470 (HtmlFormatter::toc_exit): Print proper footer.
michael@0 4471
michael@0 4472 Convert ~ to non-breakable space.
michael@0 4473
michael@0 4474 * src/tools/docmaker/tohtml.py (make_html_para): Implement it.
michael@0 4475 Update header files accordingly.
michael@0 4476
michael@0 4477 2008-06-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4478
michael@0 4479 * builds/unix/configure.raw: Check type `ResourceIndex' explicitly
michael@0 4480 and define HAVE_TYPE_RESOURCE_INDEX if it is defined. Mac OS X 10.5
michael@0 4481 bundles 10.4u SDK with MAC_OS_X_VERSION_10_5 macro but without
michael@0 4482 ResourceIndex type definition. The macro does not inform the type
michael@0 4483 availability.
michael@0 4484 * src/base/ftmac.c: More parentheses are inserted to clarify the
michael@0 4485 conditionals to disable legacy APIs in `10.5 and later' cases. If
michael@0 4486 HAVE_TYPE_RESOURCE_INDEX is not defined, ResourceIndex is defined.
michael@0 4487
michael@0 4488 2008-06-24 Werner Lemberg <wl@gnu.org>
michael@0 4489
michael@0 4490 * src/truetype/ttinterp.c (Ins_SCANTYPE): Don't check rendering
michael@0 4491 mode.
michael@0 4492
michael@0 4493 * src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph,
michael@0 4494 Draw_Sweep): No-dropout mode is value 2, not value 0.
michael@0 4495 (Draw_Sweep): Really skip dropout handling for no-dropout mode.
michael@0 4496
michael@0 4497 2008-06-24 Werner Lemberg <wl@gnu.org>
michael@0 4498
michael@0 4499 * src/psaux/psobjs.c (t1_builder_close_contour): Don't add contour
michael@0 4500 if it consists of one point only. Based on a patch from Savannah
michael@0 4501 bug #23683 (from John Tytgat).
michael@0 4502
michael@0 4503 2008-06-22 Werner Lemberg <wl@gnu.org>
michael@0 4504
michael@0 4505 * src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff
michael@0 4506 with IS_HINTED.
michael@0 4507
michael@0 4508 * docs/CHANGES: Updated.
michael@0 4509
michael@0 4510 2008-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4511
michael@0 4512 * builds/unix/configure.raw: If CFLAGS has `-isysroot XXX' option
michael@0 4513 but LDFLAGS does not, import it to LDFLAGS. The option is used to
michael@0 4514 specify non-default SDK on Mac OS X (e.g., universal binary SDK for
michael@0 4515 Mac OS X 10.4 on PowerPC platform). Although Apple TechNote 2137
michael@0 4516 recommends to add the option only to CFLAGS, LDFLAGS should include
michael@0 4517 it because libfreetype.la is built with -no-undefined. This fixes a
michael@0 4518 bug reported by Ryan Schmidt in MacPorts,
michael@0 4519 http://trac.macports.org/ticket/15331.
michael@0 4520
michael@0 4521 2008-06-21 Werner Lemberg <wl@gnu.org>
michael@0 4522
michael@0 4523 Enable access to the various dropout rules of the B&W rasterizer.
michael@0 4524 Pass dropout rules from the TT bytecode interpreter to the
michael@0 4525 rasterizer.
michael@0 4526
michael@0 4527 * include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS,
michael@0 4528 FT_OUTLINE_EXCLUDE_STUBS): New flags for FT_Outline.
michael@0 4529
michael@0 4530 * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
michael@0 4531 Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the
michael@0 4532 OpenType specification.
michael@0 4533 Fix mode 4 computation.
michael@0 4534 (Render_Glyph, Render_Gray_Glyph): Handle new outline flags.
michael@0 4535
michael@0 4536 * src/truetype/ttgload.c (TT_Load_Glyph) Convert scan conversion
michael@0 4537 mode to FT_OUTLINE_XXX flags.
michael@0 4538
michael@0 4539 * src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check.
michael@0 4540
michael@0 4541 2008-06-19 Werner Lemberg <wl@gnu.org>
michael@0 4542
michael@0 4543 * src/cff/cffobjs.c (cff_face_init): Compute final
michael@0 4544 `dict->units_per_em' value before assigning it to
michael@0 4545 `cffface->units_per_EM'. Otherwise, CFFs without subfonts are
michael@0 4546 scaled incorrectly if the font matrix is non-standard. This fixes
michael@0 4547 Savannah bug #23630.
michael@0 4548
michael@0 4549 * docs/CHANGES: Updated.
michael@0 4550
michael@0 4551 2008-06-19 Werner Lemberg <wl@gnu.org>
michael@0 4552
michael@0 4553 * src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm fix
michael@0 4554 from 2008-06-19.
michael@0 4555
michael@0 4556 2008-06-18 Werner Lemberg <wl@gnu.org>
michael@0 4557
michael@0 4558 * src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21.
michael@0 4559 Reported by Peter Weilbacher <mozilla@weilbacher.org>.
michael@0 4560
michael@0 4561 * docs/CHANGES: Updated.
michael@0 4562
michael@0 4563 2008-06-15 George Williams <gww@silcom.com>
michael@0 4564
michael@0 4565 * src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set
michael@0 4566 `valid->extra2' to 1. This is undocumented in the OpenType 1.5
michael@0 4567 specification.
michael@0 4568
michael@0 4569 2008-06-15 Werner Lemberg <wl@gnu.org>
michael@0 4570
michael@0 4571 * src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly
michael@0 4572 from clobbering. Patch from Savannah bug report #23556.
michael@0 4573
michael@0 4574 * docs/CHANGES: Document it.
michael@0 4575
michael@0 4576 2008-06-10 Werner Lemberg <wl@gnu.org>
michael@0 4577
michael@0 4578 * autogen.sh: Add option `--install' to libtoolize.
michael@0 4579
michael@0 4580 2008-06-10 Werner Lemberg <wl@gnu.org>
michael@0 4581
michael@0 4582 * Version 2.3.6 released.
michael@0 4583 =========================
michael@0 4584
michael@0 4585
michael@0 4586 Tag sources with `VER-2-3-6'.
michael@0 4587
michael@0 4588 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
michael@0 4589 version number to 2.3.6.
michael@0 4590
michael@0 4591 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
michael@0 4592 builds/win32/visualc/freetype.dsp,
michael@0 4593 builds/win32/visualc/freetype.vcproj,
michael@0 4594 builds/win32/visualce/index.html,
michael@0 4595 builds/win32/visualce/freetype.dsp,
michael@0 4596 builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/.
michael@0 4597
michael@0 4598 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
michael@0 4599
michael@0 4600 * builds/unix/configure.raw (version_info): Set to 9:17:3.
michael@0 4601
michael@0 4602
michael@0 4603 * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x'
michael@0 4604 and `scale_y'.
michael@0 4605 * src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'.
michael@0 4606
michael@0 4607
michael@0 4608 * src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H.
michael@0 4609 * src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
michael@0 4610
michael@0 4611 2008-06-10 Werner Lemberg <wl@gnu.org>
michael@0 4612
michael@0 4613 * src/base/ftobjs.c (open_face): Check `clazz->init_face' and
michael@0 4614 `clazz->done_face'.
michael@0 4615
michael@0 4616 2008-06-09 VaDiM <s_sliva@rambler.ru>
michael@0 4617
michael@0 4618 Support debugging on WinCE. From Savannah patch #6536; this fixes
michael@0 4619 bug #23497.
michael@0 4620
michael@0 4621 * builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro
michael@0 4622 as a replacement for OutputDebugStringA (which WinCE doesn't have).
michael@0 4623 Update all callers.
michael@0 4624 (ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have
michael@0 4625 environment variables.
michael@0 4626
michael@0 4627 2008-06-09 Werner Lemberg <wl@gnu.org>
michael@0 4628
michael@0 4629 * README.CVS: Updated.
michael@0 4630
michael@0 4631 * builds/unix/configure.raw, builds/unix/freetype-config.in: Updated
michael@0 4632 for newer versions of autoconf and friends.
michael@0 4633
michael@0 4634 2008-06-08 Werner Lemberg <wl@gnu.org>
michael@0 4635
michael@0 4636 * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and
michael@0 4637 `private_len' unsigned.
michael@0 4638
michael@0 4639 * src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read
michael@0 4640 it as such.
michael@0 4641 (T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned.
michael@0 4642
michael@0 4643
michael@0 4644 * src/base/ftstream.c (FT_Stream_Skip): Reject negative values.
michael@0 4645
michael@0 4646
michael@0 4647 * src/type1/t1load.c (parse_blend_design_positions): Check `n_axis'
michael@0 4648 for sane value.
michael@0 4649 Fix typo.
michael@0 4650
michael@0 4651
michael@0 4652 * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly.
michael@0 4653
michael@0 4654
michael@0 4655 * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check
michael@0 4656 `last_point'.
michael@0 4657
michael@0 4658
michael@0 4659 * src/sfnt/ttload.c (tt_face_load_max_profile): Limit
michael@0 4660 `maxTwilightPoints'.
michael@0 4661
michael@0 4662 2008-06-06 Werner Lemberg <wl@gnu.org>
michael@0 4663
michael@0 4664 * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0'
michael@0 4665 correctly. This fixes glyphs `t' and `h' of Arial Narrow at 12ppem.
michael@0 4666
michael@0 4667 2008-06-03 Werner Lemberg <wl@gnu.org>
michael@0 4668
michael@0 4669 * include/freetype/ftcache.h (FTC_FaceID): Change type back to
michael@0 4670 FT_Pointer. Reported by Ian Britten <britten@caris.com>.
michael@0 4671
michael@0 4672 2008-06-02 Werner Lemberg <wl@gnu.org>
michael@0 4673
michael@0 4674 Emit header info for defined FreeType objects in reference.
michael@0 4675
michael@0 4676 * src/tools/docmaker/content.py (re_header_macro): New regexp.
michael@0 4677 (ContentProcessor::__init__): Initialize new dictionary `headers'.
michael@0 4678 (DocBlock::__init__): Collect macro header definitions.
michael@0 4679
michael@0 4680 * src/tools/docmaker/tohtml.py (header_location_header,
michael@0 4681 header_location_footer): New strings.
michael@0 4682 (HtmlFormatter::__init__): Pass `headers' dictionary.
michael@0 4683 (HtmlFormatter::print_html_field): Don't emit paragraph tags.
michael@0 4684 (HtmlFormatter::print_html_field_list): Emit empty paragraph.
michael@0 4685 (HtmlFormatter::block_enter): Emit header info.
michael@0 4686
michael@0 4687 2008-06-01 Werner Lemberg <wl@gnu.org>
michael@0 4688
michael@0 4689 * include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H,
michael@0 4690 FT_INCREMENTAL_H): Added.
michael@0 4691
michael@0 4692 2008-05-28 Werner Lemberg <wl@gnu.org>
michael@0 4693
michael@0 4694 * src/tools/docmaker/sources.py (SourceBlock::__init__): While
michael@0 4695 looking for markup tags, return immediately as soon a single one is
michael@0 4696 found.
michael@0 4697
michael@0 4698 2008-05-28 Werner Lemberg <wl@gnu.org>
michael@0 4699
michael@0 4700 * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses
michael@0 4701 original, unscaled input values. Confirmed by Greg Hitchcock from
michael@0 4702 Microsoft.
michael@0 4703
michael@0 4704 2008-05-27 Werner Lemberg <wl@gnu.org>
michael@0 4705
michael@0 4706 * src/tools/docmaker/tohtml.py (block_footer_start,
michael@0 4707 block_footer_middle): Beautify output.
michael@0 4708
michael@0 4709 2008-05-25 Werner Lemberg <wl@gnu.org>
michael@0 4710
michael@0 4711 * src/raster/ftraster.c (fc_black_render): Return 0 when we are
michael@0 4712 trying to render into a zero-width/height bitmap, not an error code.
michael@0 4713
michael@0 4714 * src/truetype/ttgload.c (load_truetype_glyph): Move initialization
michael@0 4715 of the graphics state for subglyphs to...
michael@0 4716 (TT_Hint_Glyph): This function.
michael@0 4717 Hinting instructions for a composite glyph apparently refer to the
michael@0 4718 just hinted subglyphs, not the unhinted, unscaled outline. This
michael@0 4719 seems to fix Savannah bugs #20973 and (at least partially) #23310.
michael@0 4720
michael@0 4721 2008-05-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4722
michael@0 4723 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid
michael@0 4724 `aface' is returned by FT_New_Face_From_FOND(). The patch was
michael@0 4725 proposed by an anonymous reporter of Savannah bug #23204.
michael@0 4726
michael@0 4727 2008-05-18 Werner Lemberg <wl@gnu.org>
michael@0 4728
michael@0 4729 * src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after
michael@0 4730 correction for pixel boundary. Without this patch, the effect can
michael@0 4731 be cumulative under certain circumstances, making glyphs taller and
michael@0 4732 taller after each call. This fixes Savannah bug #19976.
michael@0 4733
michael@0 4734 2008-05-18 Werner Lemberg <wl@gnu.org>
michael@0 4735
michael@0 4736 * src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr.
michael@0 4737 This fixes Savannah bug #23280.
michael@0 4738
michael@0 4739 * docs/CHANGES: Updated.
michael@0 4740
michael@0 4741 2008-05-18 David Turner <david@freetype.org>
michael@0 4742
michael@0 4743 * src/psnames/psmodule.c (ft_wgl_extra_unicodes,
michael@0 4744 ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets,
michael@0 4745 ps_check_wgl_name, ps_check_wgl_unicode): Use `static' to make
michael@0 4746 declarations non-global.
michael@0 4747
michael@0 4748 * src/type1/t1load.c: Add missing comment.
michael@0 4749
michael@0 4750 2008-05-17 Sam Hocevar <samh>
michael@0 4751
michael@0 4752 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour
michael@0 4753 glyphs correctly. Patch from Savannah bug #23277.
michael@0 4754
michael@0 4755 2008-05-16 Werner Lemberg <wl@gnu.org>
michael@0 4756
michael@0 4757 * docs/CHANGES: Updated.
michael@0 4758
michael@0 4759 2008-05-16 Sergey Tolstov <stolstov@esri.com>
michael@0 4760
michael@0 4761 Improve support for WGL4 encoded fonts.
michael@0 4762
michael@0 4763 * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): New macro.
michael@0 4764 (ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names,
michael@0 4765 ft_wgl_extra_glyph_name_offsets): New arrays.
michael@0 4766 (ps_check_wgl_name, ps_check_wgl_unicode): New functions.
michael@0 4767 (ps_unicodes_init): Use them to add additional Unicode mappings.
michael@0 4768
michael@0 4769 2008-05-15 Werner Lemberg <wl@gnu.org>
michael@0 4770
michael@0 4771 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
michael@0 4772 <op_closepath>: `closepath' without a path is a no-op, not an error
michael@0 4773 (cf. the PS reference manual).
michael@0 4774
michael@0 4775 Reported by Martin McBride.
michael@0 4776
michael@0 4777 2008-05-15 Werner Lemberg <wl@gnu.org>
michael@0 4778
michael@0 4779 * builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated.
michael@0 4780
michael@0 4781 2008-05-15 Werner Lemberg <wl@gnu.org>
michael@0 4782
michael@0 4783 * src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array
michael@0 4784 which contains a single but empty entry. This is technically
michael@0 4785 invalid (since it must end with `return'), but...
michael@0 4786
michael@0 4787 Reported by Martin McBride.
michael@0 4788
michael@0 4789 2008-05-14 Werner Lemberg <wl@gnu.org>
michael@0 4790
michael@0 4791 Finish fix of scaling bug of CID-keyed CFF subfonts.
michael@0 4792
michael@0 4793 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c
michael@0 4794 (FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New
michael@0 4795 functions.
michael@0 4796
michael@0 4797 * src/cff/cffobjs.h (CFF_Internal): New struct. It is used to
michael@0 4798 provide global hinting data for both the top-font and all subfonts
michael@0 4799 (with proper scaling).
michael@0 4800
michael@0 4801 * src/cff/cffobjs.c (cff_make_private_dict): New function, using
michael@0 4802 code from `cff_size_init'.
michael@0 4803 (cff_size_init, cff_size_done, cff_size_select, cff_size_request):
michael@0 4804 Use CFF_Internal and handle subfonts.
michael@0 4805 (cff_face_init): Handle top-dict and subfont matrices correctly;
michael@0 4806 apply some heuristic in case of unlikely matrix concatenation
michael@0 4807 results. This has been discussed with people from Adobe (thanks
michael@0 4808 goes mainly to David Lemon) who confirm that the CFF specs are fuzzy
michael@0 4809 and not correct.
michael@0 4810
michael@0 4811 * src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument.
michael@0 4812
michael@0 4813 * src/cff/cffgload.c (cff_builder_init): Updated.
michael@0 4814 (cff_decoder_prepare): Handle hints globals for subfonts.
michael@0 4815 Update all callers.
michael@0 4816 (cff_slot_load): Handling scaling of subfonts properly.
michael@0 4817
michael@0 4818 * src/cff/cffparse.c (cff_parse_fixed_dynamic): New function.
michael@0 4819 (cff_parse_font_matrix): Use it.
michael@0 4820
michael@0 4821 * src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em'
michael@0 4822 FT_ULong.
michael@0 4823
michael@0 4824 * docs/CHANGES: Document it.
michael@0 4825
michael@0 4826 2008-05-13 Werner Lemberg <wl@gnu.org>
michael@0 4827
michael@0 4828 * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
michael@0 4829 Handle case `face_index < 0'.
michael@0 4830 * docs/CHANGES: Document it.
michael@0 4831
michael@0 4832 2008-05-04 Werner Lemberg <wl@gnu.org>
michael@0 4833
michael@0 4834 First steps to fix the scaling bug of CID-keyed CFF subfonts,
michael@0 4835 reported by Ding Li on 2008/03/28 on freetype-devel.
michael@0 4836
michael@0 4837 * src/base/cff/cffparse.c (power_tens): New array.
michael@0 4838 (cff_parse_real): Rewritten to introduce a fourth parameter which
michael@0 4839 returns the `scaling' of the real number so that we have no
michael@0 4840 precision loss. This is not used yet.
michael@0 4841 Update all callers.
michael@0 4842 (cff_parse_fixed_thousand): Replace with...
michael@0 4843 (cff_parse_fixed_scaled): This function. Update all callers.
michael@0 4844
michael@0 4845 2008-05-03 Werner Lemberg <wl@gnu.org>
michael@0 4846
michael@0 4847 * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without
michael@0 4848 transformation since it recursively calls FT_Load_Glyph. This fixes
michael@0 4849 Savannah bug #23143.
michael@0 4850
michael@0 4851 2008-04-26 Werner Lemberg <wl@gnu.org>
michael@0 4852
michael@0 4853 * include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x'
michael@0 4854 and `scale_y' as obsolete since they aren't used.
michael@0 4855 * src/psaux/psobjs.c (t1_builder_init): Updated.
michael@0 4856
michael@0 4857 * src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as
michael@0 4858 obsolete since they aren't used.
michael@0 4859 * src/cff/cffgload.c (cff_builder_init): Updated.
michael@0 4860
michael@0 4861 2008-04-14 Werner Lemberg <wl@gnu.org>
michael@0 4862
michael@0 4863 * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to
michael@0 4864 `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'. From Savannah
michael@0 4865 bug #22909.
michael@0 4866
michael@0 4867 2008-04-13 Werner Lemberg <wl@gnu.org>
michael@0 4868
michael@0 4869 * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if
michael@0 4870 integer part is zero.
michael@0 4871
michael@0 4872 2008-04-01 Werner Lemberg <wl@gnu.org>
michael@0 4873
michael@0 4874 Fix compilation with g++ 4.1 (with both `single' and `multi'
michael@0 4875 targets).
michael@0 4876
michael@0 4877 * src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block
michael@0 4878 which is crossed by a `goto'.
michael@0 4879
michael@0 4880 * src/otvalid/otvalid.h (otv_MATH_validate): Add prototype.
michael@0 4881
michael@0 4882 2008-03-31 Werner Lemberg <wl@gnu.org>
michael@0 4883
michael@0 4884 Fix support for subsetted CID-keyed CFFs.
michael@0 4885
michael@0 4886 * include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED,
michael@0 4887 FT_IS_CID_KEYED): New macros.
michael@0 4888
michael@0 4889 * src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the
michael@0 4890 maximum CID value in CID-keyed CFFs.
michael@0 4891 Handle FT_FACE_FLAG_CID_KEYED flag.
michael@0 4892
michael@0 4893 * docs/CHANGES: Document it.
michael@0 4894
michael@0 4895
michael@0 4896 Fix CFF font matrix calculation and improve precision.
michael@0 4897
michael@0 4898 * src/cff/cffparse.c (cff_parse_real): Increase precision if integer
michael@0 4899 part is zero.
michael@0 4900 (cff_parse_font_matrix): Simplify computation of `units_per_em';
michael@0 4901 this prevents overflow also.
michael@0 4902
michael@0 4903
michael@0 4904 Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts.
michael@0 4905
michael@0 4906 * src/cid/cidriver.c: Include FT_SERVICE_CID_H.
michael@0 4907 (cid_get_ros): New function.
michael@0 4908 (cid_service_cid_info): New service structure.
michael@0 4909 (cid_services): Register it.
michael@0 4910
michael@0 4911 2008-03-23 Werner Lemberg <wl@gnu.org>
michael@0 4912
michael@0 4913 Adjustments for Visual C++ 8.0, as reported by Rainer Deyke.
michael@0 4914
michael@0 4915 * builds/compiler/visualc.mk (CFLAGS): Remove /W5.
michael@0 4916 (ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE.
michael@0 4917
michael@0 4918 2008-03-21 Laurence Darby <ldarby>
michael@0 4919
michael@0 4920 * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'. Patch from
michael@0 4921 Savannah bug #22675.
michael@0 4922
michael@0 4923 2008-03-13 Derek Clegg <dclegg@apple.com>
michael@0 4924
michael@0 4925 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop.
michael@0 4926 Patch from Savannah bug #22541.
michael@0 4927
michael@0 4928 2008-03-03 Masatoshi Kimura <VYV03354@nifty.ne.jp>
michael@0 4929
michael@0 4930 * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
michael@0 4931 tt_cmap14_find_variant): Return correct value.
michael@0 4932 (tt_cmap14_variant_chars): Fix check for `di'.
michael@0 4933
michael@0 4934 2008-02-29 Wermer Lemberg <wl@gnu.org>
michael@0 4935
michael@0 4936 * docs/CHANGES: Updated.
michael@0 4937
michael@0 4938 2008-02-29 Wolf
michael@0 4939
michael@0 4940 Add build support for symbian platform. From Savannah bug #22440.
michael@0 4941
michael@0 4942 * builds/symbian/*: New files.
michael@0 4943
michael@0 4944 2008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4945
michael@0 4946 * src/base/ftmac.c (parse_fond): Fix a bug of PostScript font name
michael@0 4947 synthesis. For any face of a specified FOND, always the name for
michael@0 4948 the first face was used. Except of a FOND that refers multiple
michael@0 4949 Type1 font files, wrong synthesized font names are not used at all,
michael@0 4950 so this is an invisible bug. A few limit checks are added too.
michael@0 4951
michael@0 4952 * builds/mac/ftmac.c: Ditto.
michael@0 4953
michael@0 4954 2008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4955
michael@0 4956 * builds/unix/configure.raw: Split compiler option to link Carbon
michael@0 4957 frameworks to one option for CoreServices framework and another
michael@0 4958 option for ApplicationServices framework. The split options can be
michael@0 4959 managed by GNU libtool to avoid unrequired duplication when FreeType
michael@0 4960 is linked with other applications. Suggested by Daniel Macks,
michael@0 4961 Savannah bug #22366.
michael@0 4962
michael@0 4963 2008-02-18 Victor Stinner <victor.stinner@haypocalc.com>
michael@0 4964
michael@0 4965 * src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix
michael@0 4966 from Savannah bug #22356.
michael@0 4967
michael@0 4968 2008-02-17 Jonathan Blow <jon@number-none.com>
michael@0 4969
michael@0 4970 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
michael@0 4971 Check for valid callback pointers.
michael@0 4972
michael@0 4973 2008-02-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4974
michael@0 4975 * src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource
michael@0 4976 handle by its value instead of ResError(), fix provided by Deron
michael@0 4977 Kazmaier. According to the Resource Manager Reference,
michael@0 4978 GetResource(), Get1Resource(), GetNamedResource(),
michael@0 4979 Get1NamedResource() and RGetResource() set noErr but return NULL
michael@0 4980 handle when they can not find the requested resource. These
michael@0 4981 functions never return undefined values, so it is sufficient to
michael@0 4982 check if the handle is not NULL.
michael@0 4983
michael@0 4984 * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
michael@0 4985
michael@0 4986 2008-02-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 4987
michael@0 4988 * src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" as other
michael@0 4989 inclusion styles. Now it always includes src/base/ftmac.c;
michael@0 4990 builds/mac/ftmac.c is never included in any configuration.
michael@0 4991
michael@0 4992 * builds/unix/configure.raw: Print warning if configure is executed
michael@0 4993 with options to specify Carbon functionalities explicitly.
michael@0 4994
michael@0 4995 * docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not
michael@0 4996 included automatically and manual replacement is required.
michael@0 4997
michael@0 4998 2008-02-11 Werner Lemberg <wl@gnu.org>
michael@0 4999
michael@0 5000 * builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk
michael@0 5001 (dos_setup), builds/freetype.mk (clean_project_dos,
michael@0 5002 distclean_project_dos): Don't use \ but $(SEP). Reported by Duncan
michael@0 5003 Murdoch.
michael@0 5004
michael@0 5005 2008-01-18 Sylvain Pasche <sylvain.pasche@gmail.com>
michael@0 5006
michael@0 5007 * src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to
michael@0 5008 mention intra-pixel algorithm.
michael@0 5009
michael@0 5010 * include/freetype/freetype.h (FT_Render_Mode): Mention that
michael@0 5011 FT_Library_SetLcdFilter can be used to reduce fringes.
michael@0 5012
michael@0 5013 2008-01-16 Werner Lemberg <wl@gnu.org>
michael@0 5014
michael@0 5015 * src/raster/ftraster.c (ft_black_render): Check `outline' before
michael@0 5016 using it. Reported by Allan Yang.
michael@0 5017
michael@0 5018 2008-01-12 Werner Lemberg <wl@gnu.org>
michael@0 5019
michael@0 5020 * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove.
michael@0 5021
michael@0 5022 2008-01-12 Allan Yang, Jian Hua - SH <Allan.Yang@fmc.fujitsu.com>
michael@0 5023
michael@0 5024 * src/raster/ftraster.c (ft_black_init)
michael@0 5025 [FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation.
michael@0 5026
michael@0 5027 2008-01-10 Werner Lemberg <wl@gnu.org>
michael@0 5028
michael@0 5029 * src/truetype/ttgload.c (load_truetype_glyph): Handle the case
michael@0 5030 where the number of contours in a simple glyph is zero (and which
michael@0 5031 does contain an entry in the `glyf' table). This fixes Savannah bug
michael@0 5032 #21990.
michael@0 5033
michael@0 5034 2008-01-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 5035
michael@0 5036 Formatting suggested by Sean McBride.
michael@0 5037
michael@0 5038 * builds/mac/ftmac.c: Formatting (tab expanded).
michael@0 5039 * src/autofit/afindic.c: Ditto.
michael@0 5040 * src/base/ftcid.c: Ditto.
michael@0 5041 * src/base/ftmac.c: Ditto.
michael@0 5042
michael@0 5043 2007-12-30 Werner Lemberg <wl@gnu.org>
michael@0 5044
michael@0 5045 * src/smooth/ftgrays.c (gray_raster_render): Check `outline'
michael@0 5046 correctly.
michael@0 5047
michael@0 5048 2007-12-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 5049
michael@0 5050 Improvement of POSIX resource-fork accessor to load unsorted
michael@0 5051 references in a resource. In HelveLTMM (resource-fork PostScript
michael@0 5052 Type1 font bundled with Mac OS X since 10.3.x), the appearance order
michael@0 5053 of PFB chunks is not sorted; sorting the chunks by reference IDs is
michael@0 5054 required.
michael@0 5055
michael@0 5056 * include/freetype/internal/ftrfork.h (FT_RFork_Ref): New structure
michael@0 5057 type to store a pair of reference ID and offset to the chunk.
michael@0 5058
michael@0 5059 * src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to
michael@0 5060 sort FT_RFork_Ref by their reference IDs.
michael@0 5061
michael@0 5062 (FT_Raccess_Get_DataOffsets): Returns an array of offsets that is
michael@0 5063 sorted by reference ID.
michael@0 5064
michael@0 5065 2007-12-14 Werner Lemberg <wl@gnu.org>
michael@0 5066
michael@0 5067 * src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten'
michael@0 5068 division too early; otherwise the most significant digit(s) of the
michael@0 5069 final result are lost as the value is truncated to an integer. This
michael@0 5070 fixes Savannah bug #21794 (where the patch has been posted too).
michael@0 5071
michael@0 5072 2007-12-06 Fix <4d876b82@gmail.com>
michael@0 5073
michael@0 5074 Pass options from one configure script to another as-is (not
michael@0 5075 expanded). This is needed for options like
michael@0 5076 --includedir='${prefix}/include'.
michael@0 5077
michael@0 5078 * builds/unix/detect.mk, configure: Prevent argument expansion in
michael@0 5079 call to the (real) `configure' script.
michael@0 5080
michael@0 5081 2007-12-06 Werner Lemberg <wl@gnu.org>
michael@0 5082
michael@0 5083 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
michael@0 5084 TT_USE_BYTECODE_INTERPRETER isn't defined.
michael@0 5085
michael@0 5086 2007-12-06 Werner Lemberg <wl@gnu.org>
michael@0 5087
michael@0 5088 There exist CFFs which contain opcodes for the Type 1 operators
michael@0 5089 `hsbw' and `closepath' which are both invalid in Type 2 charstrings.
michael@0 5090 However, it doesn't harm to support them.
michael@0 5091
michael@0 5092 * src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and
michael@0 5093 `cff_op_closepath.'
michael@0 5094 (cff_argument_counts): Ditto.
michael@0 5095
michael@0 5096 (cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath)
michael@0 5097 and 13 (hsbw) which are invalid in Type 2 charstrings.
michael@0 5098
michael@0 5099 2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 5100
michael@0 5101 * src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to
michael@0 5102 support new pathname syntax `..namedfork/rsrc' to access a resource
michael@0 5103 fork on Mac OS X. The legacy syntax `/rsrc' does not work on
michael@0 5104 case-sensitive HFS+.
michael@0 5105 (raccess_guess_darwin_hfsplus): Fix a bug in the calculation of
michael@0 5106 buffer size to store a pathname.
michael@0 5107 * include/freetype/internal/ftrfork.h: Increment the number of
michael@0 5108 resource fork guessing rule.
michael@0 5109
michael@0 5110 2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 5111
michael@0 5112 * builds/unix/configure.raw: Improve the compile tests to search
michael@0 5113 Carbon functions.
michael@0 5114 * builds/mac/ftmac.c: Import fixes for Carbon incompatibilities
michael@0 5115 proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16).
michael@0 5116
michael@0 5117 2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 5118
michael@0 5119 The documents and comments for Mac OS X are improved by Sean
michael@0 5120 McBride.
michael@0 5121
michael@0 5122 * src/base/ftmac.c: Fix a comment.
michael@0 5123 * include/freetype/ftmac.h: Ditto.
michael@0 5124 * docs/INSTALL.MAC: Improve English and add comment on lowest
michael@0 5125 system version specified by MACOSX_DEPLOYMENT_TARGET.
michael@0 5126
michael@0 5127 2007-12-04 Werner Lemberg <wl@gnu.org>
michael@0 5128
michael@0 5129 * src/cff/cffload.c (cff_subfont_load): Don't use logical OR to
michael@0 5130 concatenate error codes.
michael@0 5131 * src/sfnt/ttsbit.c (Load_SBit_Range): Ditto.
michael@0 5132
michael@0 5133 2007-12-04 Graham Asher <graham.asher@btinternet.com>
michael@0 5134
michael@0 5135 * src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to
michael@0 5136 concatenate error codes.
michael@0 5137
michael@0 5138 2007-12-04 Sean McBride <sean@rogue-research.com>
michael@0 5139
michael@0 5140 * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler
michael@0 5141 warning.
michael@0 5142
michael@0 5143 2007-11-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 5144
michael@0 5145 Fix MacOS legacy font support by Masatake Yamato on Mac OS X. It is
michael@0 5146 not working since 2.3.5. In FT_Open_New(), if FT_New_Stream()
michael@0 5147 cannot mmap() the specified file and cannot seek to head of the
michael@0 5148 specified file, it returns NULL stream and FT_Open_New() returns the
michael@0 5149 error immediately. On MacOS, most legacy MacOS fonts fall into such
michael@0 5150 a scenario because their data forks are zero-sized and cannot be
michael@0 5151 sought. To proceed to guessing of resource fork fonts, the
michael@0 5152 functions for legacy MacOS font must properly handle the NULL stream
michael@0 5153 returned by FT_New_Stream().
michael@0 5154
michael@0 5155 * src/base/ftobjs.c (IsMacBinary): Return error
michael@0 5156 FT_Err_Invalid_Stream_Operation immediately when NULL stream is
michael@0 5157 passed.
michael@0 5158 (FT_Open_Face): Even when FT_New_Stream() returns an error, proceed
michael@0 5159 to fallback. Originally, legacy MacOS font is tested in the cases
michael@0 5160 of FT_Err_Invalid_Stream_Operation (occurs when data fork is empty)
michael@0 5161 or FT_Err_Unknown_File_Format (occurs when AppleSingle header or
michael@0 5162 .dfont header is combined). Now the case of
michael@0 5163 FT_Err_Cannot_Open_Stream is included.
michael@0 5164
michael@0 5165 * src/base/ftrfork.c (FT_Raccess_Guess): When passed stream is NULL,
michael@0 5166 skip FT_Stream_Seek(), which seeks to the head of stream, and
michael@0 5167 proceed to unit testing of raccess_guess_XXX(). FT_Stream_Seek()
michael@0 5168 for a NULL stream causes a Bus error on Mac OS X.
michael@0 5169 (raccess_guess_apple_double): Return FT_Err_Cannot_Open_Stream
michael@0 5170 immediately if passed stream is NULL.
michael@0 5171 (raccess_guess_apple_single): Ditto.
michael@0 5172
michael@0 5173 2007-11-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 5174
michael@0 5175 Fix for Carbon incompatibilities since Mac OS X 10.5,
michael@0 5176 proposed by Sean McBride.
michael@0 5177
michael@0 5178 * doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET.
michael@0 5179
michael@0 5180 * include/freetype/ftmac.h: Deprecate FT_New_Face_From_FOND and
michael@0 5181 FT_GetFilePath_From_Mac_ATS_Name. Since Mac OS X 10.5, calling
michael@0 5182 Carbon functions from a forked process is classified as unsafe
michael@0 5183 by Apple. All Carbon-dependent functions should be deprecated.
michael@0 5184
michael@0 5185 * src/base/ftmac.c: Use essential header files
michael@0 5186 <CoreServices/CoreServices.h> and
michael@0 5187 <ApplicationServices/ApplicationServices.h> instead of
michael@0 5188 all-in-one header file <Carbon/Carbon.h>.
michael@0 5189
michael@0 5190 Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple
michael@0 5191 genuine macro PATH_MAX.
michael@0 5192
michael@0 5193 Add fallback macro for kATSOptionFlagsUnRestrictedScope which
michael@0 5194 is not found in Mac OS X 10.0.
michael@0 5195
michael@0 5196 Multi-character constants ('POST', 'sfnt' etc) are replaced by
michael@0 5197 64bit constants calculated by FT_MAKE_TAG() macro.
michael@0 5198
michael@0 5199 For the index in the segment of resource fork, new portable
michael@0 5200 type ResourceIndex is introduced for better compatibility.
michael@0 5201 This type is since Mac OS X 10.5, so it is defined as short
michael@0 5202 when built on older platforms.
michael@0 5203
michael@0 5204 (FT_ATSFontGetFileReference): If build target is only the systems
michael@0 5205 10.5 and newer, it calls Apple genuine ATSFontGetFileReference().
michael@0 5206
michael@0 5207 (FT_GetFile_From_Mac_ATS_Name): Return an error if system is 10.5
michael@0 5208 and newer or 64bit platform, because legacy type FSSpec type is
michael@0 5209 removed completely.
michael@0 5210
michael@0 5211 (FT_New_Face_From_FSSpec): Ditto.
michael@0 5212
michael@0 5213 2007-11-01 Werner Lemberg <wl@gnu.org>
michael@0 5214
michael@0 5215 * src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere. This
michael@0 5216 fixes Savannah bug #21485.
michael@0 5217
michael@0 5218 2007-10-29 Daniel Svoboda <dasvo@planeta@cz>
michael@0 5219
michael@0 5220 * src/winfonts/winfnt.c (FNT_Face_Init): Check first that the driver
michael@0 5221 can handle the font at all, then check `face_index'. Otherwise, the
michael@0 5222 driver might return the wrong error code. This fixes Savannah bug
michael@0 5223 #21468.
michael@0 5224
michael@0 5225 2007-10-21 Werner Lemberg <wl@gnu.org>
michael@0 5226
michael@0 5227 * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare
michael@0 5228 support for bit 8 of the `fsSelection' field in the `OS/2' table.
michael@0 5229 MS is already using this; hopefully, this becomes part of OpenType
michael@0 5230 1.5.
michael@0 5231 Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22
michael@0 5232 (WWS_SUBFAMILY).
michael@0 5233
michael@0 5234 2007-10-20 Werner Lemberg <wl@gnu.org>
michael@0 5235
michael@0 5236 * src/tools/docmaker/tohtml.py (html_header_2): Fix typo.
michael@0 5237 Add `td.left' element to CSS.
michael@0 5238 (toc_section_enter): Use it.
michael@0 5239
michael@0 5240 2007-10-18 David Turner <david@freetype.org>
michael@0 5241
michael@0 5242 * include/freetype/freetype.h, src/base/ftobjs.c: Rename API
michael@0 5243 functions related to cmap type 14 support to the
michael@0 5244 `FT_Object_ActionName' scheme:
michael@0 5245
michael@0 5246 FT_Get_Char_Variant_index -> FT_Face_GetCharVariantIndex
michael@0 5247 FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault
michael@0 5248 FT_Get_Variant_Selectors -> FT_Face_GetVariantSelectors
michael@0 5249 FT_Get_Variants_Of_Char -> FT_Face_GetVariantsOfChar
michael@0 5250 FT_Get_Chars_Of_Variant -> FT_Face_GetCharsOfVariant
michael@0 5251
michael@0 5252 Update documentation accordingly.
michael@0 5253
michael@0 5254 * src/sfnt/ttcmap.c: Stronger cmap 14 validation.
michael@0 5255 Make the code a little more consistent with FreeType coding
michael@0 5256 conventions and modify the cmap14 functions that returned a newly
michael@0 5257 allocated array to use a persistent vector from the TT_CMap14 object
michael@0 5258 instead.
michael@0 5259
michael@0 5260 (TT_CMap14Rec): Provide array and auxiliary data for result.
michael@0 5261 (tt_cmap14_done, tt_cmap14_ensure): New functions.
michael@0 5262
michael@0 5263 (tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_map_def_binary,
michael@0 5264 tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant,
michael@0 5265 tt_cmap14_char_var_index, tt_cmap14_variants,
michael@0 5266 tt_cmap14_char_variants, tt_cmap14_def_char_count,
michael@0 5267 tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
michael@0 5268 tt_cmap14_variant_chars, tt_cmap14_class_rec): Updated and improved.
michael@0 5269
michael@0 5270 2007-10-15 George Williams <gww@silcom.com>
michael@0 5271
michael@0 5272 Add support for cmap type 14.
michael@0 5273
michael@0 5274 * devel/ftoption.h, include/freetype/config/ftoption.h
michael@0 5275 (TT_CONFIG_CMAP_FORMAT_14): New macro.
michael@0 5276
michael@0 5277 * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIndexFunc,
michael@0 5278 FT_CMap_CharVarIsDefaultFunc, FT_CMap_VariantListFunc,
michael@0 5279 FT_CMap_CharVariantListFunc, FT_CMap_VariantCharListFunc): New
michael@0 5280 support function prototypes.
michael@0 5281 (FT_CMap_ClassRec): Add them.
michael@0 5282 Update all users.
michael@0 5283
michael@0 5284 * include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New
michael@0 5285 macro.
michael@0 5286
michael@0 5287 * include/freetype/freetype.h (FT_Get_Char_Variant_Index,
michael@0 5288 FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors,
michael@0 5289 FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API
michael@0 5290 functions.
michael@0 5291
michael@0 5292 * src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary
michael@0 5293 function.
michael@0 5294 (FT_Set_Charmap): Disallow cmaps of type 14.
michael@0 5295 (FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault,
michael@0 5296 FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char,
michael@0 5297 FT_Get_Chars_Of_Variant): New API functions.
michael@0 5298
michael@0 5299 * src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros.
michael@0 5300
michael@0 5301 (TT_CMap14Rec, tt_cmap14_init, tt_cmap14_validate,
michael@0 5302 tt_cmap14_char_index, tt_cmap14_char_next, tt_cmap14_get_info,
michael@0 5303 tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary,
michael@0 5304 tt_cmap14_find_variant, tt_cmap14_char_var_index,
michael@0 5305 tt_cmap14_char_var_isdefault, tt_cmap14_variants,
michael@0 5306 tt_cmap14_char_variants, tt_cmap14_def_char_count,
michael@0 5307 tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
michael@0 5308 tt_cmap14_variant_chars, tt_cmap14_class_rec): New functions and
michael@0 5309 structures for cmap 14 support.
michael@0 5310 (tt_cmap_classes): Register tt_cmap14_class_rec.
michael@0 5311 (tt_face_build_cmaps): One more error message.
michael@0 5312
michael@0 5313 * docs/CHANGES: Mention cmap 14 support.
michael@0 5314
michael@0 5315 2007-10-01 Werner Lemberg <wl@gnu.org>
michael@0 5316
michael@0 5317 * src/base/ftobjs.c (find_unicode_charmap): If search for a UCS-4
michael@0 5318 charmap fails, do the loop again while searching a UCS-2 charmap.
michael@0 5319 This favours MS charmaps over Apple ones.
michael@0 5320
michael@0 5321 2007-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 5322
michael@0 5323 * src/base/ftmac.c: Introduction of abstract `short' data types,
michael@0 5324 ResFileRefNum and ResID. These types were introduced for Copland,
michael@0 5325 then backported to MPW. The variables exchanged with FileManager
michael@0 5326 QuickDraw frameworks are redefined by these data types. Patch was
michael@0 5327 proposed by Sean McBride.
michael@0 5328 * builds/mac/ftmac.c: Ditto.
michael@0 5329
michael@0 5330 2007-08-18 Werner Lemberg <wl@gnu.org>
michael@0 5331
michael@0 5332 * src/otvalid/otvcmmn.c (otv_x_y_ux_sy): Skip context glyphs. Found
michael@0 5333 by Imran Yousaf. Fixes Savannah bug #20773.
michael@0 5334
michael@0 5335 (otv_Lookup_validate): Correct handling of LookupType. Found by
michael@0 5336 Imran Yousaf. Fixes Savannah bug #20782.
michael@0 5337
michael@0 5338 2007-08-17 George Williams <gww@silcom.com>
michael@0 5339
michael@0 5340 * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of
michael@0 5341 SingleSubstFormat1.
michael@0 5342
michael@0 5343 2007-08-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 5344
michael@0 5345 * builds/unix/configure.raw: Fix a bug which sets CC_BUILD by
michael@0 5346 ${build-gcc} (unchecked) instead of by ${build}-gcc (checked).
michael@0 5347 Found by Ryan Hill.
michael@0 5348
michael@0 5349 2007-08-11 George Williams <gww@silcom.com>
michael@0 5350
michael@0 5351 * src/otvalid/otvcommn.c, src/otvalid/otvcommn.h
michael@0 5352 (otv_Coverage_validate): Add fourth argument to pass an expected
michael@0 5353 count value. Update all users.
michael@0 5354 Check glyph IDs.
michael@0 5355 (otv_ClassDef_validate): Check `StartGlyph'.
michael@0 5356
michael@0 5357 * src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID
michael@0 5358 checks.
michael@0 5359
michael@0 5360 * src/otvalid/otvmath.c (otv_MathConstants_validate): There are only
michael@0 5361 56 constants.
michael@0 5362 (otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate):
michael@0 5363 Check glyph IDs.
michael@0 5364
michael@0 5365 2007-08-08 Werner Lemberg <wl@gnu.org>
michael@0 5366
michael@0 5367 * src/otvalid/otvbase.c, src/otvalid/otvcommn.c,
michael@0 5368 src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, src/otvalid/otvgsub.c,
michael@0 5369 src/otvalid/otvjstf.c: s/FT_INVALID_DATA/FT_INVALID_FORMAT/ where
michael@0 5370 appropriate. Reported by George.
michael@0 5371
michael@0 5372 * include/freetype/internal/fttrace.h: Define `trace_otvmath'.
michael@0 5373
michael@0 5374 * src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c.
michael@0 5375
michael@0 5376 * docs/CHANGES: Updated.
michael@0 5377
michael@0 5378 2007-08-08 George Williams <gww@silcom.com>
michael@0 5379
michael@0 5380 Add `MATH' validating support to otvalid module.
michael@0 5381
michael@0 5382 * include/freetype/tttags.h (TTAG_MATH): New macro.
michael@0 5383 * include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro.
michael@0 5384 (FT_VALIDATE_OT): Updated.
michael@0 5385
michael@0 5386 * src/otvalid/otmath.c: New file.
michael@0 5387
michael@0 5388 * src/otvalid/otvalid.c: Include otvmath.c.
michael@0 5389 * src/otvalid/otvmod.c (otv_validate): Handle `MATH' table.
michael@0 5390
michael@0 5391 2007-08-04 Werner Lemberg <wl@gnu.org>
michael@0 5392
michael@0 5393 * builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL.
michael@0 5394 Fixes Savannah bug #20686.
michael@0 5395
michael@0 5396 2007-08-03 Werner Lemberg <wl@gnu.org>
michael@0 5397
michael@0 5398 * src/psnames/psmodule.c: Fix usage of
michael@0 5399 FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro. Reported by Graham Asher.
michael@0 5400
michael@0 5401 2007-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 5402
michael@0 5403 * src/base/ftmac.c (open_face_from_buffer): The argument
michael@0 5404 `driver_name' is typed as `const char*' to match with the
michael@0 5405 callers in FT_New_Face_From_LWFN and FT_New_Face_From_SFNT.
michael@0 5406 This is same with open_face_from_buffer in src/base/ftobjs.c.
michael@0 5407 Found and fixed by Sean McBride.
michael@0 5408
michael@0 5409 2007-07-28 Werner Lemberg <wl@gnu.org>
michael@0 5410
michael@0 5411 * src/raster/ftraster.c (count_table): Make it conditional.
michael@0 5412 * src/base/ftobjs.c (FT_New_Library): Check FT_RENDER_POOL_SIZE with
michael@0 5413 a preprocessor statement.
michael@0 5414
michael@0 5415 2007-07-27 Werner Lemberg <wl@gnu.org>
michael@0 5416
michael@0 5417 * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before
michael@0 5418 first usage. From Savannah patch #6115.
michael@0 5419
michael@0 5420 2007-07-16 Werner Lemberg <wl@gnu.org>
michael@0 5421
michael@0 5422 * docs/CHANGES: Updated.
michael@0 5423
michael@0 5424 2007-07-16 Derek Clegg <dclegg@apple.com>
michael@0 5425
michael@0 5426 Add new service for getting the ROS from a CID font.
michael@0 5427
michael@0 5428 * include/freetype/config/ftheader.h (FT_CID_H): New macro.
michael@0 5429 * include/freetype/ftcid.h: New file.
michael@0 5430
michael@0 5431 * include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro.
michael@0 5432 * include/freetype/internal/services/svcid.h: New file.
michael@0 5433
michael@0 5434 * src/base/ftcid.c: New file.
michael@0 5435
michael@0 5436 * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H.
michael@0 5437 (cff_get_ros): New function.
michael@0 5438 (cff_service_cid_info): New service structure.
michael@0 5439 (cff_services): Register it.
michael@0 5440
michael@0 5441 * src/cff/cffload.c (cff_font_done): Free registry and ordering.
michael@0 5442
michael@0 5443 * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'.
michael@0 5444
michael@0 5445 * modules.cfg (BASE_EXTENSIONS): Add ftcid.c.
michael@0 5446
michael@0 5447 2007-07-11 Derek Clegg <dclegg@apple.com>
michael@0 5448
michael@0 5449 Add support for postscript name service to CFF driver.
michael@0 5450
michael@0 5451 * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H.
michael@0 5452 (cff_get_ps_name): New function.
michael@0 5453 (cff_service_ps_name): New service structure.
michael@0 5454 (cff_services): Register it.
michael@0 5455
michael@0 5456 2007-07-07 Werner Lemberg <wl@gnu.org>
michael@0 5457
michael@0 5458 * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
michael@0 5459 `target'. Reported by Sean McBride.
michael@0 5460
michael@0 5461 2007-07-06 Werner Lemberg <wl@gnu.org>
michael@0 5462
michael@0 5463 * src/pfr/pfrcmap.c: Include pfrerror.h.
michael@0 5464
michael@0 5465 * src/autofit/afindic.c: Add some external declarations to pacify
michael@0 5466 `make multi' compilation.
michael@0 5467
michael@0 5468 * src/cid/cidgload.c (cid_load_glyph): Pacify compiler.
michael@0 5469
michael@0 5470 * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c
michael@0 5471 (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP),
michael@0 5472 src/autofit/aflatin.c (af_latin_hints_compute_edges),
michael@0 5473 src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c
michael@0 5474 (tt_face_get_metrics), src/base/ftobjs.c (open_face)
michael@0 5475 [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler.
michael@0 5476
michael@0 5477 * docs/release: Mention test compilation targets.
michael@0 5478
michael@0 5479 2007-07-04 Werner Lemberg <wl@gnu.org>
michael@0 5480
michael@0 5481 * docs/PROBLEMS: Mention that some PS based fonts can't be
michael@0 5482 handled correctly by FreeType.
michael@0 5483
michael@0 5484 * src/truetype/ttgload.c (load_truetype_glyph): Always allow a
michael@0 5485 recursion depth of 1. This was the maximum value in TrueType 1.0,
michael@0 5486 and some older fonts don't set this field correctly.
michael@0 5487
michael@0 5488 * src/gxvalid/gxvmort1.c
michael@0 5489 (gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
michael@0 5490
michael@0 5491 2007-07-03 Werner Lemberg <wl@gnu.org>
michael@0 5492
michael@0 5493 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
michael@0 5494 `round' to pacify compiler.
michael@0 5495
michael@0 5496 2007-07-02 Werner Lemberg <wl@gnu.org>
michael@0 5497
michael@0 5498
michael@0 5499 * Version 2.3.5 released.
michael@0 5500 =========================
michael@0 5501
michael@0 5502
michael@0 5503 Tag sources with `VER-2-3-5'.
michael@0 5504
michael@0 5505 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
michael@0 5506 version number to 2.3.5.
michael@0 5507
michael@0 5508 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
michael@0 5509 builds/win32/visualc/freetype.dsp,
michael@0 5510 builds/win32/visualc/freetype.vcproj,
michael@0 5511 builds/win32/visualce/index.html,
michael@0 5512 builds/win32/visualce/freetype.dsp,
michael@0 5513 builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
michael@0 5514
michael@0 5515 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
michael@0 5516
michael@0 5517 * builds/unix/configure.raw (version_info): Set to 9:16:3.
michael@0 5518
michael@0 5519 2007-07-01 David Turner <david@freetype.org>
michael@0 5520
michael@0 5521 * include/freetype/freetype.h, src/base/ftpatent.c
michael@0 5522 (FT_Face_SetUnpatentedHinting): New function to dynamically change
michael@0 5523 the setting after a face is created.
michael@0 5524
michael@0 5525 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
michael@0 5526 that created distortions in the bytecode interpreter results.
michael@0 5527
michael@0 5528 2007-06-30 David Turner <david@freetype.org>
michael@0 5529
michael@0 5530 * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
michael@0 5531 initialization.
michael@0 5532
michael@0 5533 * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
michael@0 5534 infinite loop in the case of degenerate fonts.
michael@0 5535
michael@0 5536 2007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
michael@0 5537
michael@0 5538 Add autofit module for Indic scripts. This currently just reuses
michael@0 5539 the CJK-specific functions.
michael@0 5540
michael@0 5541 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
michael@0 5542 macro.
michael@0 5543 * devel/ftoption.h: Synchronize with
michael@0 5544 include/freetype/config/ftoption.h.
michael@0 5545
michael@0 5546 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
michael@0 5547
michael@0 5548 * src/autofit/afglobal.c, src/autofit/aftypes.h,
michael@0 5549 src/autofit/autofit.c: Updated.
michael@0 5550
michael@0 5551 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
michael@0 5552 (AUTOF_DRV_SRC): Updated.
michael@0 5553
michael@0 5554 2007-06-23 David Turner <david@freetype.org>
michael@0 5555
michael@0 5556 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
michael@0 5557 2007-06-16 that prevented the TrueType module from loading most
michael@0 5558 glyphs.
michael@0 5559
michael@0 5560 2007-06-20 Werner Lemberg <wl@gnu.org>
michael@0 5561
michael@0 5562 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
michael@0 5563 change.
michael@0 5564
michael@0 5565 2007-06-19 Werner Lemberg <wl@gnu.org>
michael@0 5566
michael@0 5567 * src/type1/t1load.c (parse_encoding): Handle one more error.
michael@0 5568
michael@0 5569 2007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
michael@0 5570
michael@0 5571 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
michael@0 5572 FNT_Err_Invalid_File_Format if file format was recognized but
michael@0 5573 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
michael@0 5574 Add verbose debug logs to make it easier to debug failing load
michael@0 5575 attempts.
michael@0 5576 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
michael@0 5577 so return an error if requested face index is > 0.
michael@0 5578 Do not do further attempt to load fonts if a previous attempt has
michael@0 5579 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
michael@0 5580 file format has been recognized but no fonts found in the file.
michael@0 5581
michael@0 5582 2007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 5583
michael@0 5584 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
michael@0 5585 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
michael@0 5586 the compiler warnings against unused arguments.
michael@0 5587 (FT_ATSFontGetFileReference): Ditto.
michael@0 5588 (FT_GetFile_From_Mac_ATS_Name): Ditto.
michael@0 5589 (FT_New_Face_From_FSSpec): Ditto.
michael@0 5590 (lookup_lwfn_by_fond): Fix wrong comment.
michael@0 5591 Replace `const StringPtr' by more appropriate type
michael@0 5592 `ConstStr255Param'.
michael@0 5593 FSRefMakePathPath always returns UTF8 POSIX pathname in
michael@0 5594 Mach-O, thus HFS pathname support is dropped.
michael@0 5595 (count_faces): Remove HLock and HUnlock which is not
michael@0 5596 required on Mac OS X anymore.
michael@0 5597 (FT_New_Face_From_SFNT): Ditto.
michael@0 5598 (FT_New_Face_From_FOND): Ditto.
michael@0 5599 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
michael@0 5600 except of HFS pathname support and HLock/HUnlock.
michael@0 5601 They are required on classic CFM environment.
michael@0 5602
michael@0 5603 2007-06-18 Werner Lemberg <wl@gnu.org>
michael@0 5604
michael@0 5605 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
michael@0 5606 assertion.
michael@0 5607 (ps_parser_to_bytes): Fix error message.
michael@0 5608
michael@0 5609 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
michael@0 5610 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
michael@0 5611 Don't allow mixed binary and hex strings.
michael@0 5612 Handle string_size == 0 and string_buf == 0.
michael@0 5613 (t42_parse_encoding): Handle one more error.
michael@0 5614
michael@0 5615 2007-06-18 Werner Lemberg <wl@gnu.org>
michael@0 5616
michael@0 5617 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
michael@0 5618 logic.
michael@0 5619 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
michael@0 5620 correctly.
michael@0 5621 (ps_parser_load_field_table): Use `fields->array_max' instead of
michael@0 5622 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
michael@0 5623
michael@0 5624 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
michael@0 5625 2007-06-06.
michael@0 5626
michael@0 5627 2007-06-17 Werner Lemberg <wl@gnu.org>
michael@0 5628
michael@0 5629 * src/tools/ftrandom.c (font_size): New global variable.
michael@0 5630 (TestFace): Use it.
michael@0 5631 (main): Handle new option `--size' to set `font_size'.
michael@0 5632 (Usage): Updated.
michael@0 5633
michael@0 5634 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
michael@0 5635 invalid font.
michael@0 5636 (FNT_Load_Glyph): Protect against invalid bitmap width.
michael@0 5637
michael@0 5638 2007-06-16 David Turner <david@freetype.org>
michael@0 5639
michael@0 5640 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
michael@0 5641 Prevent integer overflows when rendering very large outlines.
michael@0 5642
michael@0 5643 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
michael@0 5644 well-formedness of the contours array when loading a glyph.
michael@0 5645
michael@0 5646 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
michael@0 5647 and `zp2'.
michael@0 5648 (Ins_IP): Check argument ranges to reject bogus operations properly.
michael@0 5649 (IUP_WorkerRec): Add `max_points' member.
michael@0 5650 (_iup_worker_interpolate): Check argument ranges.
michael@0 5651 (Ins_IUP): Ignore empty outlines.
michael@0 5652
michael@0 5653 2007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
michael@0 5654
michael@0 5655 * src/winfonts/winfnt.h: Add necessary structures for PE resource
michael@0 5656 parsing.
michael@0 5657 (WinPE32_HeaderRec): New structure.
michael@0 5658 (WinPE32_SectionRec): New structure.
michael@0 5659 (WinPE_RsrcDirRec): New structure.
michael@0 5660 (WinPE_RsrcDirEntryRec): New structure.
michael@0 5661 (WinPE_RsrcDataEntryRec): New structure.
michael@0 5662 (FNT_FontRec): Remove unused `size_shift' field.
michael@0 5663
michael@0 5664 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
michael@0 5665 loading bitmap .fon files in PE format.
michael@0 5666
michael@0 5667 2007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
michael@0 5668
michael@0 5669 * builds/win32/ftdebug.c: Unify debug level handling with other
michael@0 5670 platforms.
michael@0 5671
michael@0 5672 2007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
michael@0 5673
michael@0 5674 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
michael@0 5675 console as well as to the debugger.
michael@0 5676
michael@0 5677 2007-06-14 Werner Lemberg <wl@gnu.org>
michael@0 5678
michael@0 5679 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
michael@0 5680 cover all ranges which could possibly be handled by the aflatin
michael@0 5681 module (since the default fallback for unknown ranges is now the
michael@0 5682 afcjk module). It might be necessary to fine-tune this further by
michael@0 5683 splitting off modules for Greek, Cyrillic, or other blocks.
michael@0 5684
michael@0 5685 2007-06-11 David Turner <david@freetype.org>
michael@0 5686
michael@0 5687 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
michael@0 5688 incorrect segment linking computation. This was the root cause of
michael@0 5689 Savannah bug #19565.
michael@0 5690
michael@0 5691
michael@0 5692 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
michael@0 5693 to improve the Latin auto-hinter. Note that the new code is
michael@0 5694 disabled by default since it is not stabilized yet.
michael@0 5695
michael@0 5696 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
michael@0 5697 (disabled currently).
michael@0 5698
michael@0 5699 * src/autofit/afhints.c: Remove dead code.
michael@0 5700 (af_axis_hints_new_edge): Add argument to handle segment directions.
michael@0 5701 (af_edge_flags_to_string): New function.
michael@0 5702 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
michael@0 5703 option flags.
michael@0 5704 (af_glyph_hints_reload): Add argument to handle inflections.
michael@0 5705 Simplify.
michael@0 5706 (af_direction_compute): Fine tuning.
michael@0 5707 (af_glyph_hints_align_edge_points): Fix logic.
michael@0 5708 (af_glyph_hints_align_strong_points): Do linear search for small
michael@0 5709 edge counts.
michael@0 5710 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
michael@0 5711 (af_iup_shift): Handle zero `delta'.
michael@0 5712
michael@0 5713 * src/autofit/afhints.h: Updated.
michael@0 5714 (AF_SORT_SEGMENTS): New macro (disabled).
michael@0 5715 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
michael@0 5716
michael@0 5717 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
michael@0 5718 argument to pass option flags for handling scripts.
michael@0 5719 * src/autofit/afglobal.h: Updated.
michael@0 5720
michael@0 5721 * src/autofit/afcjk.c: Updated.
michael@0 5722 * src/autofit/aflatin.c: Updated.
michael@0 5723 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
michael@0 5724
michael@0 5725 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
michael@0 5726 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
michael@0 5727 Don't set `edge->dir'
michael@0 5728 (af_latin_hint_edges): Add more logging.
michael@0 5729
michael@0 5730 * src/autofit/afloader.c: Updated.
michael@0 5731
michael@0 5732 2007-06-11 Werner Lemberg <wl@gnu.org>
michael@0 5733
michael@0 5734 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
michael@0 5735
michael@0 5736 2007-06-10 David Turner <david@freetype.org>
michael@0 5737
michael@0 5738 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
michael@0 5739 the TrueType glyph loader.
michael@0 5740
michael@0 5741 * include/freetype/config/ftoption.h: Clarify documentation
michael@0 5742 regarding unpatented hinting.
michael@0 5743
michael@0 5744
michael@0 5745 Add new `FT_Face_CheckTrueTypePatents' API.
michael@0 5746
michael@0 5747 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
michael@0 5748 declaration.
michael@0 5749
michael@0 5750 * include/freetype/internal/services/svttglyf.h,
michael@0 5751 src/base/ftpatent.c: New files.
michael@0 5752
michael@0 5753 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
michael@0 5754 New macro.
michael@0 5755
michael@0 5756 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
michael@0 5757 `ttpload.h'.
michael@0 5758 (tt_service_truetype_glyf): New service structure.
michael@0 5759 (tt_services): Register it.
michael@0 5760
michael@0 5761 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
michael@0 5762 `ftpatent.c'.
michael@0 5763
michael@0 5764 2007-06-08 Werner Lemberg <wl@gnu.org>
michael@0 5765
michael@0 5766 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
michael@0 5767 Fonts without a cmap must be handled correctly by FreeType (anything
michael@0 5768 else would be a bug).
michael@0 5769
michael@0 5770
michael@0 5771 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
michael@0 5772 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
michael@0 5773
michael@0 5774 2007-06-07 Werner Lemberg <wl@gnu.org>
michael@0 5775
michael@0 5776 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
michael@0 5777 tt_sbit_decoder_load_image): Protect against integer overflows.
michael@0 5778
michael@0 5779
michael@0 5780 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
michael@0 5781 for `x_control' and `y_control'.
michael@0 5782
michael@0 5783 2007-06-06 Werner Lemberg <wl@gnu.org>
michael@0 5784
michael@0 5785 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
michael@0 5786
michael@0 5787
michael@0 5788 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
michael@0 5789 FreeType error.
michael@0 5790
michael@0 5791
michael@0 5792 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
michael@0 5793 `font_count'.
michael@0 5794
michael@0 5795
michael@0 5796 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
michael@0 5797
michael@0 5798
michael@0 5799 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
michael@0 5800 `FT_Error'.
michael@0 5801 Check `fd_index'.
michael@0 5802 (cff_slot_load): Updated.
michael@0 5803 * src/cff/cffgload.h: Updated.
michael@0 5804
michael@0 5805 2007-06-05 Werner Lemberg <wl@gnu.org>
michael@0 5806
michael@0 5807 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
michael@0 5808 (pfr_glyph_load_simple): Convert assertion into normal FreeType
michael@0 5809 error.
michael@0 5810 Check `idx'.
michael@0 5811 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
michael@0 5812 Convert assertion into normal FreeType error.
michael@0 5813
michael@0 5814 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
michael@0 5815
michael@0 5816
michael@0 5817 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
michael@0 5818
michael@0 5819
michael@0 5820 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
michael@0 5821 in case of parsing error.
michael@0 5822 (ps_parser_load_field): Updated.
michael@0 5823
michael@0 5824 * src/type1/t1load.c (parse_font_matrix): Updated.
michael@0 5825
michael@0 5826 2007-06-04 Werner Lemberg <wl@gnu.org>
michael@0 5827
michael@0 5828 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
michael@0 5829
michael@0 5830 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
michael@0 5831
michael@0 5832 2007-06-03 Werner Lemberg <wl@gnu.org>
michael@0 5833
michael@0 5834 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
michael@0 5835 George Williams (with some modifications).
michael@0 5836
michael@0 5837 2007-06-03 Werner Lemberg <wl@gnu.org>
michael@0 5838
michael@0 5839 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
michael@0 5840 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
michael@0 5841 face == NULL. Suggested by Graham Asher.
michael@0 5842
michael@0 5843 2007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
michael@0 5844
michael@0 5845 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
michael@0 5846
michael@0 5847 2007-06-02 Werner Lemberg <wl@gnu.org>
michael@0 5848
michael@0 5849 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
michael@0 5850 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
michael@0 5851
michael@0 5852 * src/bdf/bdflib.c (bdf_load_font): Use them.
michael@0 5853
michael@0 5854 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
michael@0 5855
michael@0 5856 2007-06-01 Werner Lemberg <wl@gnu.org>
michael@0 5857
michael@0 5858 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
michael@0 5859 (FTC_CMapCache_Lookup): Remove unused code.
michael@0 5860
michael@0 5861 2007-06-01 Sean McBride <sean@rogue-research.com>
michael@0 5862
michael@0 5863 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
michael@0 5864 unused.
michael@0 5865
michael@0 5866 2007-06-01 Werner Lemberg <wl@gnu.org>
michael@0 5867
michael@0 5868 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
michael@0 5869 pass for `StartData' if an error has occurred.
michael@0 5870 Exit properly if no `StartData' has been seen at all.
michael@0 5871
michael@0 5872 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
michael@0 5873 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
michael@0 5874
michael@0 5875 2007-05-30 Werner Lemberg <wl@gnu.org>
michael@0 5876
michael@0 5877 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
michael@0 5878 against too small binary data strings.
michael@0 5879
michael@0 5880 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
michael@0 5881
michael@0 5882 2007-05-28 David Turner <david@freetype.org>
michael@0 5883
michael@0 5884 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
michael@0 5885 transformation. This significantly reduces the loading time of CFF
michael@0 5886 glyphs.
michael@0 5887
michael@0 5888 * docs/CHANGES: Updated.
michael@0 5889
michael@0 5890 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
michael@0 5891 hinting script to CJK, since it works well with more scripts than
michael@0 5892 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
michael@0 5893 this out!
michael@0 5894
michael@0 5895 2007-05-25 Werner Lemberg <wl@gnu.org>
michael@0 5896
michael@0 5897 * docs/CHANGES: Updated.
michael@0 5898
michael@0 5899 2007-05-24 Werner Lemberg <wl@gnu.org>
michael@0 5900
michael@0 5901 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
michael@0 5902 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
michael@0 5903
michael@0 5904 2007-05-24 Graham Asher <graham.asher@btinternet.com>
michael@0 5905
michael@0 5906 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
michael@0 5907 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
michael@0 5908
michael@0 5909 2007-05-22 David Turner <david@freetype.org>
michael@0 5910
michael@0 5911 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
michael@0 5912 avoid crashes in case the bytecode interpreter is not used.
michael@0 5913
michael@0 5914
michael@0 5915 Avoid heap blowup with very large .Z font files. This fixes
michael@0 5916 Savannah bug #19910.
michael@0 5917
michael@0 5918 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
michael@0 5919 `in_limit', `pad', `pad_bits', and `in_buff' members.
michael@0 5920 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
michael@0 5921 `buf_total' members.
michael@0 5922
michael@0 5923 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
michael@0 5924 only one argument.
michael@0 5925 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
michael@0 5926
michael@0 5927 2007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
michael@0 5928
michael@0 5929 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
michael@0 5930 (ps_dimension_set_mask_bits): Remove `const'.
michael@0 5931
michael@0 5932 2007-05-19 Werner Lemberg <wl@gnu.org>
michael@0 5933
michael@0 5934 * src/sfnt/ttmtx.c (tt_face_get_metrics)
michael@0 5935 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
michael@0 5936
michael@0 5937 2007-05-19 Derek Clegg <dclegg@apple.com>
michael@0 5938
michael@0 5939 Savannah patch #5929.
michael@0 5940
michael@0 5941 * include/freetype/tttables.h, src/base/ftobjcs.c
michael@0 5942 (FT_Get_CMap_Format): New function.
michael@0 5943
michael@0 5944 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
michael@0 5945 `format' member.
michael@0 5946 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
michael@0 5947 cmap_info->format.
michael@0 5948
michael@0 5949 2007-05-19 Werner Lemberg <wl@gnu.org>
michael@0 5950
michael@0 5951 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
michael@0 5952 before handling subglyphs so that it can be reinitialized each time.
michael@0 5953 This fixes Savannah bug #19859.
michael@0 5954
michael@0 5955 2007-05-16 Werner Lemberg <wl@gnu.org>
michael@0 5956
michael@0 5957 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
michael@0 5958 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
michael@0 5959 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
michael@0 5960 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
michael@0 5961 tt_face_get_metrics): Fix type-punning issues.
michael@0 5962
michael@0 5963 2007-05-15 David Turner <david@freetype.org>
michael@0 5964
michael@0 5965 * include/freetype/config/ftstdlib.h,
michael@0 5966 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
michael@0 5967 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
michael@0 5968 instead on relying on the locale-dependent functions provided by
michael@0 5969 <ctypes.h>.
michael@0 5970
michael@0 5971 2007-05-15 Graham Asher <graham.asher@btinternet.com>
michael@0 5972
michael@0 5973 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
michael@0 5974 variable.
michael@0 5975 * src/autofit/afloader.c (af_loader_load_g): Ditto.
michael@0 5976
michael@0 5977 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
michael@0 5978 (open_face_from_buffer): Initialize `stream'.
michael@0 5979 (FT_Request_Metrics): Remove unused variable.
michael@0 5980 Remove redundant `break' statements.
michael@0 5981 (FT_Get_Track_Kerning): Remove unused variable.
michael@0 5982
michael@0 5983 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
michael@0 5984 afm_parse_kern_data): Remove redundant
michael@0 5985 `break' statements.
michael@0 5986 (afm_parser_parse): Ditto.
michael@0 5987 Don't use uninitialized variables.
michael@0 5988
michael@0 5989 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
michael@0 5990 Use `|' operator instead of `^' to set it.
michael@0 5991 Update all users.
michael@0 5992
michael@0 5993 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
michael@0 5994 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
michael@0 5995
michael@0 5996 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
michael@0 5997 comparison.
michael@0 5998 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
michael@0 5999 (TT_Load_Glyph): Remove unused variable.
michael@0 6000
michael@0 6001 2007-05-13 Derek Clegg <dclegg@apple.com>
michael@0 6002
michael@0 6003 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
michael@0 6004 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
michael@0 6005
michael@0 6006 2007-05-11 David Turner <david@freetype.org>
michael@0 6007
michael@0 6008 * src/cache/ftbasic.c, include/freetype/ftcache.h
michael@0 6009 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
michael@0 6010 functions that allow us to look up glyphs using an FTC_Scaler object
michael@0 6011 to specify the size, making it possible to use fractional pixel
michael@0 6012 sizes.
michael@0 6013
michael@0 6014 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
michael@0 6015 `size->cvt_ready'. Reported by Boris Letocha.
michael@0 6016
michael@0 6017 2007-05-09 Graham Asher <graham.asher@btinternet.com>
michael@0 6018
michael@0 6019 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
michael@0 6020 (af_latin_metrics_scale_dim): Fix compiler warnings.
michael@0 6021
michael@0 6022 2007-05-06 Werner Lemberg <wl@gnu.org>
michael@0 6023
michael@0 6024 * builds/win32/visualce/freetype.sln: Removed, as requested by
michael@0 6025 Vincent.
michael@0 6026
michael@0 6027 2007-05-04 Vincent RICHOMME <richom.v@free.fr>
michael@0 6028
michael@0 6029 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
michael@0 6030 PC targets.
michael@0 6031
michael@0 6032 * docs/CHANGES: Document them.
michael@0 6033
michael@0 6034 2007-05-04 <harry@kdevelop.org>
michael@0 6035
michael@0 6036 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
michael@0 6037 mmap (which might happen on some RTOS). From Savannah patch #5909.
michael@0 6038
michael@0 6039 2007-05-03 Werner Lemberg <wl@gnu.org>
michael@0 6040
michael@0 6041 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
michael@0 6042 * include/freetype/freetype.h (FT_Set_Char_Size): Update
michael@0 6043 documentation.
michael@0 6044
michael@0 6045 2007-04-28 Victor Stinner <victor.stinner@inl.fr>
michael@0 6046
michael@0 6047 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
michael@0 6048 `cmap'.
michael@0 6049
michael@0 6050 2007-04-27 Werner Lemberg <wl@gnu.org>
michael@0 6051
michael@0 6052 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
michael@0 6053 number of points in contours. Problem reported by Victor Stinner
michael@0 6054 <victor.stinner@haypocalc.com>.
michael@0 6055 (TT_Process_Simple_Glyph): Synchronize variable types.
michael@0 6056
michael@0 6057 2007-04-26 Werner Lemberg <wl@gnu.org>
michael@0 6058
michael@0 6059 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
michael@0 6060 zero in case of error. This fixes Savannah bug #19689.
michael@0 6061
michael@0 6062 2007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
michael@0 6063
michael@0 6064 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
michael@0 6065 in the TrueType bytecode loader.
michael@0 6066
michael@0 6067 2007-04-10 Martin Horak <horakm@centrum.cz>
michael@0 6068
michael@0 6069 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
michael@0 6070 Ignore `hhea' table. This fixes Savannah bug #19261.
michael@0 6071
michael@0 6072 2007-04-09 Werner Lemberg <wl@gnu.org>
michael@0 6073
michael@0 6074
michael@0 6075 * Version 2.3.4 released.
michael@0 6076 =========================
michael@0 6077
michael@0 6078
michael@0 6079 Tag sources with `VER-2-3-4'.
michael@0 6080
michael@0 6081 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
michael@0 6082 version number to 2.3.4.
michael@0 6083
michael@0 6084 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
michael@0 6085 builds/win32/visualc/freetype.dsp,
michael@0 6086 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
michael@0 6087
michael@0 6088 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
michael@0 6089
michael@0 6090 * builds/unix/configure.raw (version_info): Set to 9:15:3.
michael@0 6091
michael@0 6092 2007-04-09 Martin Horak <horakm@centrum.cz>
michael@0 6093
michael@0 6094 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
michael@0 6095 memory stream to avoid a crash with the incremental memory
michael@0 6096 interface (Savannah bug #19260).
michael@0 6097
michael@0 6098 2007-04-06 David Turner <david@freetype.org>
michael@0 6099
michael@0 6100 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
michael@0 6101 (Savannah bug #19536).
michael@0 6102
michael@0 6103 2007-04-04 Werner Lemberg <wl@gnu.org>
michael@0 6104
michael@0 6105
michael@0 6106 * Version 2.3.3 released.
michael@0 6107 =========================
michael@0 6108
michael@0 6109
michael@0 6110 Tag sources with `VER-2-3-3'.
michael@0 6111
michael@0 6112 * docs/CHANGES: Mention CVE-2007-1351.
michael@0 6113
michael@0 6114 2007-04-03 David Turner <david@freetype.org>
michael@0 6115
michael@0 6116 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
michael@0 6117 if one of the resolution values is 0, treat it as if it were the
michael@0 6118 same as the other value.
michael@0 6119
michael@0 6120 2007-04-02 David Turner <david@freetype.org>
michael@0 6121
michael@0 6122 Add special code to detect `extra-light' fonts and do not snap their
michael@0 6123 stem widths too much to avoid bizarre hinting effects.
michael@0 6124
michael@0 6125 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
michael@0 6126 `extra_light' members.
michael@0 6127
michael@0 6128 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
michael@0 6129 them.
michael@0 6130 (af_latin_metrics_scale_dim): Set `extra_light'.
michael@0 6131 (af_latin_compute_stem_width): Use `extra_light'.
michael@0 6132
michael@0 6133 2007-03-28 David Turner <david@freetype.org>
michael@0 6134
michael@0 6135 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
michael@0 6136 padding.
michael@0 6137
michael@0 6138 2007-03-28 Werner Lemberg <wl@gnu.org>
michael@0 6139
michael@0 6140 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
michael@0 6141 gracefully.
michael@0 6142 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
michael@0 6143 issue an error for longer names. This fixes CVE-2007-1351.
michael@0 6144 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
michael@0 6145 number of code points in Unicode.
michael@0 6146
michael@0 6147 * builds/win32/visualc/index.html,
michael@0 6148 builds/win32/visualc/freetype.dsp,
michael@0 6149 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
michael@0 6150 s/232/233/.
michael@0 6151
michael@0 6152 * docs/CHANGES: Mention ftdiff.
michael@0 6153
michael@0 6154 2007-03-26 David Turner <david@freetype.org>
michael@0 6155
michael@0 6156 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
michael@0 6157 corresponding code.
michael@0 6158 (Ins_MD): Last regression fix.
michael@0 6159
michael@0 6160 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
michael@0 6161 computations in order to ignore single-point contours. These are
michael@0 6162 never rasterized and correspond in certain fonts to mark-attach
michael@0 6163 points that are very far from the glyph's real outline, ruining the
michael@0 6164 computation.
michael@0 6165
michael@0 6166 * src/autofit/afloader.c (af_loader_load_g): In the case of
michael@0 6167 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
michael@0 6168 Otherwise code that uses them will most certainly ruin the fixed
michael@0 6169 advance property.
michael@0 6170
michael@0 6171 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
michael@0 6172 documentation and bump version number to 2.3.3.
michael@0 6173
michael@0 6174 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
michael@0 6175
michael@0 6176 * builds/unix/configure.raw (version_info): Set to 9:14:3.
michael@0 6177
michael@0 6178 2007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 6179
michael@0 6180 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
michael@0 6181 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
michael@0 6182 * builds/vms/ftconfig.h: Ditto.
michael@0 6183 * include/freetype/config/ftconfig.h: Ditto.
michael@0 6184
michael@0 6185 2007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 6186
michael@0 6187 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
michael@0 6188 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
michael@0 6189 proposed by Sean McBride:
michael@0 6190 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
michael@0 6191
michael@0 6192 2007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 6193
michael@0 6194 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
michael@0 6195 setjmp, proposed by Sean McBride:
michael@0 6196 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
michael@0 6197
michael@0 6198 2007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 6199
michael@0 6200 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
michael@0 6201 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
michael@0 6202 bug or undocumented behaviour of autoconf.
michael@0 6203
michael@0 6204 2007-03-18 David Turner <david@freetype.org>
michael@0 6205
michael@0 6206 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
michael@0 6207 fix; testing still needed.
michael@0 6208
michael@0 6209 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
michael@0 6210
michael@0 6211 2007-03-17 David Turner <david@freetype.org>
michael@0 6212
michael@0 6213 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
michael@0 6214 (undocumented) twilight zone special case.
michael@0 6215
michael@0 6216 2007-03-09 Werner Lemberg <wl@gnu.org>
michael@0 6217
michael@0 6218
michael@0 6219 * Version 2.3.2 released.
michael@0 6220 =========================
michael@0 6221
michael@0 6222
michael@0 6223 Tag sources with `VER-2-3-2'.
michael@0 6224
michael@0 6225 * builds/win32/visualc/index.html,
michael@0 6226 builds/win32/visualc/freetype.dsp,
michael@0 6227 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
michael@0 6228 s/231/232/.
michael@0 6229
michael@0 6230 2007-03-08 David Turner <david@freetype.org>
michael@0 6231
michael@0 6232 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
michael@0 6233
michael@0 6234 * builds/unix/configure.raw (version_info): Set to 9:13:3.
michael@0 6235
michael@0 6236 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
michael@0 6237
michael@0 6238 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
michael@0 6239
michael@0 6240 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
michael@0 6241 function to work properly, over-writing user-provided buffers in
michael@0 6242 some cases. Reported by James Cloos <cloos@jhcloos.com>.
michael@0 6243
michael@0 6244
michael@0 6245 2007-03-05 Werner Lemberg <wl@gnu.org>
michael@0 6246
michael@0 6247 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
michael@0 6248 macro for `strstr'.
michael@0 6249
michael@0 6250 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
michael@0 6251 `trick_names', as suggested by Ivan Nincic.
michael@0 6252
michael@0 6253 2007-03-05 David Turner <david@freetype.org>
michael@0 6254
michael@0 6255 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
michael@0 6256 case FT_Init_FreeType fails for some reason. Problem reported by
michael@0 6257 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
michael@0 6258
michael@0 6259 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
michael@0 6260 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
michael@0 6261 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
michael@0 6262 <daniel-gl@gmx.net>.
michael@0 6263
michael@0 6264 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
michael@0 6265 signed values, not unsigned ones. Problem reported by Johannes
michael@0 6266 Walther <joh_walt@yahoo.de>.
michael@0 6267
michael@0 6268 2007-02-21 David Turner <david@freetype.org>
michael@0 6269
michael@0 6270 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
michael@0 6271 of small and ghost stems in the Postscript interpreter.
michael@0 6272
michael@0 6273 2007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 6274
michael@0 6275 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
michael@0 6276 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
michael@0 6277 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
michael@0 6278
michael@0 6279 2007-02-16 Werner Lemberg <wl@gnu.org>
michael@0 6280
michael@0 6281 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
michael@0 6282 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
michael@0 6283
michael@0 6284 2007-02-14 David Turner <david@freetype.org>
michael@0 6285
michael@0 6286 It seems that the following changes fix most of the known
michael@0 6287 interpreter problems with my fonts, but more testing is needed,
michael@0 6288 though.
michael@0 6289
michael@0 6290 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
michael@0 6291 (TT_MulFix14): Rewrite.
michael@0 6292 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
michael@0 6293 (Ins_MIRP): Ditto.
michael@0 6294
michael@0 6295 2007-02-12 Werner Lemberg <wl@gnu.org>
michael@0 6296
michael@0 6297 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
michael@0 6298 warnings.
michael@0 6299
michael@0 6300 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
michael@0 6301 (bdf_interpret_style): Ditto.
michael@0 6302
michael@0 6303 2007-02-12 David Turner <david@freetype.org>
michael@0 6304
michael@0 6305 Simplify projection and dual-projection code interface.
michael@0 6306
michael@0 6307 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
michael@0 6308 FT_Vector' as argument type.
michael@0 6309 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
michael@0 6310 Updated.
michael@0 6311 (CUR_fast_project, CUR_fast_dualproj): New macros.
michael@0 6312 (Project, Dual_Project, Project_x, Project_y): Updated.
michael@0 6313 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
michael@0 6314 macros.
michael@0 6315
michael@0 6316
michael@0 6317 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
michael@0 6318 adjustments for the non-light auto-hinted modes. Gets rid of
michael@0 6319 `inter-letter spacing is too wide' problems.
michael@0 6320
michael@0 6321 * src/autofit/aflatin.c (af_latin_hints_link_segments,
michael@0 6322 af_latin_hints_compute_edges): Slight optimization of the segment
michael@0 6323 linker and better handling of serif segments to get rid of broken
michael@0 6324 `9' in Arial at 9pt (96dpi).
michael@0 6325
michael@0 6326
michael@0 6327 Introduce new string functions and the corresponding macros to get
michael@0 6328 rid of various uses of strcpy and other `evil' functions, as well as
michael@0 6329 to simplify a few things.
michael@0 6330
michael@0 6331 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
michael@0 6332 ft_mem_strcpyn): New declarations.
michael@0 6333 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
michael@0 6334 macros.
michael@0 6335 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
michael@0 6336 functions.
michael@0 6337
michael@0 6338 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
michael@0 6339 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
michael@0 6340 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
michael@0 6341 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
michael@0 6342 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
michael@0 6343 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
michael@0 6344 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
michael@0 6345 t42_get_name_index): Use new functions and simplify code.
michael@0 6346
michael@0 6347 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
michael@0 6348
michael@0 6349 2007-02-11 Werner Lemberg <wl@gnu.org>
michael@0 6350
michael@0 6351 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
michael@0 6352 non-spacing glyphs.
michael@0 6353
michael@0 6354 2007-02-07 Tom Parker <palfrey@tevp.net>
michael@0 6355
michael@0 6356 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
michael@0 6357 pointer.
michael@0 6358
michael@0 6359 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 6360
michael@0 6361 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
michael@0 6362 Introduce __attribute((deprecated))__ to warn functions
michael@0 6363 which use non-ANSI data types in its interfaces.
michael@0 6364 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
michael@0 6365 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
michael@0 6366 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
michael@0 6367 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
michael@0 6368
michael@0 6369 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
michael@0 6370 to avoid warning in building FreeType.
michael@0 6371 * builds/mac/ftmac.c: Ditto.
michael@0 6372
michael@0 6373 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 6374
michael@0 6375 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
michael@0 6376 `--with-fsspec' etc. Replace #include "ftmac.c" with
michael@0 6377 #include <ftmac.c>.
michael@0 6378
michael@0 6379 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 6380
michael@0 6381 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
michael@0 6382 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
michael@0 6383 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
michael@0 6384 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
michael@0 6385 FT_GetFilePath_From_Mac_ATS_Name.
michael@0 6386 * builds/mac/ftmac.c: Ditto.
michael@0 6387
michael@0 6388 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 6389
michael@0 6390 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
michael@0 6391 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
michael@0 6392 for passing to FT_New_Face_From_FSSpec.
michael@0 6393
michael@0 6394 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 6395
michael@0 6396 * builds/unix/configure.raw: Check whether Mac OS X system headers
michael@0 6397 can be built under ANSI C mode.
michael@0 6398
michael@0 6399 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
michael@0 6400 compatible to ANSI C in case system headers are ANSI C incompatible.
michael@0 6401 * builds/mac/ftmac.c (OS_INLINE): Ditto.
michael@0 6402
michael@0 6403 2007-02-01 Werner Lemberg <wl@gnu.org>
michael@0 6404
michael@0 6405 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
michael@0 6406 Explain why applications shouldn't use it. Found by Alexei.
michael@0 6407
michael@0 6408 2007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
michael@0 6409
michael@0 6410 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
michael@0 6411 message.
michael@0 6412
michael@0 6413 * src/gxvalid/gxvmort1.c
michael@0 6414 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
michael@0 6415 message.
michael@0 6416
michael@0 6417 2007-01-31 Werner Lemberg <wl@gnu.org>
michael@0 6418
michael@0 6419
michael@0 6420 * Version 2.3.1 released.
michael@0 6421 =========================
michael@0 6422
michael@0 6423
michael@0 6424 Tag sources with `VER-2-3-1-FINAL'.
michael@0 6425
michael@0 6426 * builds/win32/visualc/freetype.dsp,
michael@0 6427 builds/win32/visualc/freetype.vcproj: s/230/231/.
michael@0 6428 * builds/win32/visualc/index.html: s/221/231/.
michael@0 6429
michael@0 6430 * vms_make.com: Add `ftgasp'.
michael@0 6431
michael@0 6432 2007-01-30 David Turner <david@freetype.org>
michael@0 6433
michael@0 6434 Tag sources with VER-2-3-1 to prepare release.
michael@0 6435
michael@0 6436 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
michael@0 6437
michael@0 6438 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
michael@0 6439 s/2.3.0/2.3.1/.
michael@0 6440
michael@0 6441 * builds/unix/configure.raw (version_info): Set to 9:12:3.
michael@0 6442
michael@0 6443
michael@0 6444 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
michael@0 6445 (af_loader_load_g): Disable the warper (i.e., the light hinting
michael@0 6446 improvements) to make a 2.3.1 bugfix release before introducing a
michael@0 6447 new feature. This should give us more time to tune and improve the
michael@0 6448 warper for the next release.
michael@0 6449
michael@0 6450 * docs/CHANGES: Update accordingly.
michael@0 6451
michael@0 6452 2007-01-25 David Turner <david@freetype.org>
michael@0 6453
michael@0 6454 For light auto-hinting, improve glyph advance widths and resurrect
michael@0 6455 normal/full hinting to its normal quality.
michael@0 6456
michael@0 6457 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
michael@0 6458 and `xmax_delta'.
michael@0 6459 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
michael@0 6460 and `xmax_delta'.
michael@0 6461
michael@0 6462 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
michael@0 6463 preprocessor conditional with if-clause, handling both light and
michael@0 6464 normal mode.
michael@0 6465
michael@0 6466 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
michael@0 6467 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
michael@0 6468
michael@0 6469 2007-01-25 Werner Lemberg <wl@gnu.org>
michael@0 6470
michael@0 6471 * docs/release: Updated -- Savannah uses a new uploading scheme.
michael@0 6472
michael@0 6473 2007-01-25 David Turner <david@freetype.org>
michael@0 6474
michael@0 6475 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
michael@0 6476
michael@0 6477 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
michael@0 6478 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
michael@0 6479 functions.
michael@0 6480
michael@0 6481 * docs/CHANGES: Document light auto-hinting improvement.
michael@0 6482
michael@0 6483 2007-01-25 Werner Lemberg <wl@gnu.org>
michael@0 6484
michael@0 6485 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
michael@0 6486 correctly in a sanity check. Since this function is only used to
michael@0 6487 load local and global functions, any charstring that called the last
michael@0 6488 local/global function would fail otherwise. This fixes Savannah bug
michael@0 6489 #18867.
michael@0 6490
michael@0 6491 * docs/CHANGES: Document it.
michael@0 6492
michael@0 6493 2007-01-23 David Turner <david@freetype.org>
michael@0 6494
michael@0 6495 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
michael@0 6496 prevented compilation when disabling both the unpatented and the
michael@0 6497 bytecode interpreter in the TrueType font driver.
michael@0 6498
michael@0 6499
michael@0 6500 Fix and enable the warper to improve `light' hinting mode. This is
michael@0 6501 not necessarily a final version, but it seems to work well.
michael@0 6502
michael@0 6503 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
michael@0 6504 Disable code.
michael@0 6505 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
michael@0 6506 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
michael@0 6507
michael@0 6508 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
michael@0 6509 (af_warper_compute_line_best): Fix array size of `scores'.
michael@0 6510 (af_warper_compute): Better handling of border cases.
michael@0 6511 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
michael@0 6512 and `X2'.
michael@0 6513
michael@0 6514 2007-01-21 Werner Lemberg <wl@gnu.org>
michael@0 6515
michael@0 6516 * ChangeLog: Split off older entries into...
michael@0 6517 * ChangeLog.22: This new file.
michael@0 6518
michael@0 6519 2007-01-21 Werner Lemberg <wl@gnu.org>
michael@0 6520
michael@0 6521 * docs/CHANGES: Document SHZ fix.
michael@0 6522
michael@0 6523 2007-01-21 George Williams <gww@silcom.com>
michael@0 6524
michael@0 6525 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
michael@0 6526 points.
michael@0 6527
michael@0 6528 2007-01-21 Werner Lemberg <wl@gnu.org>
michael@0 6529
michael@0 6530 * src/sfnt/ttmtx.c (tt_face_get_metrics)
michael@0 6531 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
michael@0 6532
michael@0 6533 2007-01-17 Werner Lemberg <wl@gnu.org>
michael@0 6534
michael@0 6535
michael@0 6536 * Version 2.3.0 released.
michael@0 6537 =========================
michael@0 6538
michael@0 6539
michael@0 6540 Tag sources with `VER-2-3-0-FINAL'.
michael@0 6541
michael@0 6542 2007-01-17 Werner Lemberg <wl@gnu.org>
michael@0 6543
michael@0 6544 * docs/release: Updated.
michael@0 6545
michael@0 6546 2007-01-16 David Turner <david@freetype.org>
michael@0 6547
michael@0 6548 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
michael@0 6549 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
michael@0 6550 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
michael@0 6551 warnings.
michael@0 6552
michael@0 6553 2007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
michael@0 6554
michael@0 6555 * builds/amiga/makefile, builds/amiga/makefile.os4,
michael@0 6556 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
michael@0 6557
michael@0 6558 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
michael@0 6559
michael@0 6560 2007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
michael@0 6561
michael@0 6562 Fix various compiler warnings.
michael@0 6563
michael@0 6564 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
michael@0 6565 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
michael@0 6566 s/index/strike_index/.
michael@0 6567 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
michael@0 6568
michael@0 6569 * src/gxvalid/gxvmorx5.c
michael@0 6570 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
michael@0 6571
michael@0 6572 * src/truetype/ttinterp.c (Compute_Point_Displacement),
michael@0 6573 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
michael@0 6574 uninitialized variables.
michael@0 6575
michael@0 6576 2007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 6577
michael@0 6578 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
michael@0 6579
michael@0 6580 2007-01-13 Werner Lemberg <wl@gnu.org>
michael@0 6581
michael@0 6582 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
michael@0 6583 versions up to 0x3FF without complaining.
michael@0 6584
michael@0 6585 2007-01-13 Derek Clegg <dclegg@apple.com>
michael@0 6586
michael@0 6587 Add FT_Get_PS_Font_Info interface to CFF driver.
michael@0 6588
michael@0 6589 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
michael@0 6590 (CFF_FontRec): Add `font_info' field.
michael@0 6591
michael@0 6592 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
michael@0 6593 (cff_font_done): Free font->font_info if necessary.
michael@0 6594
michael@0 6595 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
michael@0 6596 (cff_service_ps_info): Register cff_ps_get_font_info.
michael@0 6597
michael@0 6598 2007-01-13 Werner Lemberg <wl@gnu.org>
michael@0 6599
michael@0 6600 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
michael@0 6601 with C++ compiler.
michael@0 6602
michael@0 6603 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
michael@0 6604 af_glyph_hints_dump_edges): Ditto.
michael@0 6605
michael@0 6606 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
michael@0 6607 `modules.cfg').
michael@0 6608
michael@0 6609 * src/sfnt/ttsbit0.h: Remove.
michael@0 6610
michael@0 6611 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
michael@0 6612
michael@0 6613 2007-01-12 David Turner <david@freetype.org>
michael@0 6614
michael@0 6615 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
michael@0 6616 bug in the bitmap emboldener if the pitch of the source bitmap is
michael@0 6617 much larger than its width.
michael@0 6618
michael@0 6619 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
michael@0 6620 compilation warning.
michael@0 6621
michael@0 6622 2007-01-12 Werner Lemberg <wl@gnu.org>
michael@0 6623
michael@0 6624 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
michael@0 6625 `automake' CVS module from sources.redhat.com.
michael@0 6626
michael@0 6627 2007-01-11 Werner Lemberg <wl@gnu.org>
michael@0 6628
michael@0 6629 * src/type1/t1load.c (is_space): Removed.
michael@0 6630 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
michael@0 6631 (parse_charstrings): Use IS_PS_TOKEN.
michael@0 6632
michael@0 6633
michael@0 6634 * autogen.sh: Avoid bash specific syntax.
michael@0 6635
michael@0 6636 2007-01-11 David Turner <david@freetype.org>
michael@0 6637
michael@0 6638 * docs/CHANGES: Small update.
michael@0 6639
michael@0 6640 * builds/unix/configure.raw (version_info): Set to 9:11:3.
michael@0 6641
michael@0 6642 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
michael@0 6643 crash with some Mac OS X .dfont files. Submitted by Masatake
michael@0 6644 Yamato.
michael@0 6645
michael@0 6646 * autogen.sh: Small fix to get it working on Mac OS X properly:
michael@0 6647 The issue is that GNU libtool is called `glibtool' on this platform,
michael@0 6648 and we must call `glibtoolize', since `libtoolize' doesn't exist.
michael@0 6649
michael@0 6650 2007-01-10 David Turner <david@freetype.org>
michael@0 6651
michael@0 6652 * all-sources: Tag all sources with VER-2-3-0-RC1 and
michael@0 6653 VER-2-3-0.
michael@0 6654
michael@0 6655 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
michael@0 6656 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
michael@0 6657 version number to 2.3.0.
michael@0 6658
michael@0 6659 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
michael@0 6660 (FREETYPE_PATCH): Set to 0.
michael@0 6661
michael@0 6662 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
michael@0 6663 include/freetype/ftlcdfil.h: Update reference documentation with
michael@0 6664 GASP support and LCD filtering sections.
michael@0 6665
michael@0 6666 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
michael@0 6667 which created an endless loop with some malformed font files.
michael@0 6668
michael@0 6669 2007-01-10 Derek Clegg <dclegg@apple.com>
michael@0 6670
michael@0 6671 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed-point
michael@0 6672 values.
michael@0 6673
michael@0 6674 2007-01-08 David Turner <david@freetype.org>
michael@0 6675
michael@0 6676 * docs/CHANGES: Updated.
michael@0 6677
michael@0 6678 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
michael@0 6679 a new API `FT_Get_Gasp' to return entries of the `gasp' table
michael@0 6680 corresponding to a given character pixel size.
michael@0 6681
michael@0 6682 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
michael@0 6683 `gasp' table, in order to avoid potential problems with later
michael@0 6684 versions.
michael@0 6685
michael@0 6686 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
michael@0 6687 <freetype/ftgasp.h>.
michael@0 6688
michael@0 6689 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
michael@0 6690 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
michael@0 6691 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
michael@0 6692 default build.
michael@0 6693
michael@0 6694 2007-01-07 Werner Lemberg <wl@gnu.org>
michael@0 6695
michael@0 6696 * src/cid/cidparse.c (cid_parser_new): Improve error message for
michael@0 6697 Type 11 fonts.
michael@0 6698 Scan for `/sfnts' token.
michael@0 6699
michael@0 6700 2007-01-07 Werner Lemberg <wl@gnu.org>
michael@0 6701
michael@0 6702 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
michael@0 6703
michael@0 6704 2007-01-06 Werner Lemberg <wl@gnu.org>
michael@0 6705
michael@0 6706 * src/cff/cffload.c (cff_index_init): Remove unused variable.
michael@0 6707 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
michael@0 6708
michael@0 6709 2007-01-04 David Turner <david@freetype.org>
michael@0 6710
michael@0 6711 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
michael@0 6712 correctly. This fixes Savannah bug #17876.
michael@0 6713
michael@0 6714
michael@0 6715 Do not allocate interpreter-specific tables in memory if we are not
michael@0 6716 going to load glyphs with the bytecode interpreter anyway.
michael@0 6717
michael@0 6718 * src/truetype/ttgload.c (tt_loader_init): Load execution context
michael@0 6719 only if glyph is hinted.
michael@0 6720 Updated.
michael@0 6721 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
michael@0 6722 and `cvs_ready'.
michael@0 6723 Add `tt_size_ready_bytecode' declaration.
michael@0 6724 * src/truetype/ttobjs.c (tt_size_done_bytecode,
michael@0 6725 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
michael@0 6726 (tt_size_init): Move most code into `tt_size_init_bytecode'.
michael@0 6727 (tt_size_done): Move most code into `tt_size_done_bytecode'.
michael@0 6728 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
michael@0 6729
michael@0 6730
michael@0 6731 Don't extract the metrics table from the SFNT font file. Instead,
michael@0 6732 reparse it on each glyph load. The runtime difference is not
michael@0 6733 noticeable, and it can save a lot of heap memory when memory-mapped
michael@0 6734 files are not used.
michael@0 6735
michael@0 6736 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
michael@0 6737 `horz_metrics_offset' and `vert_metrics_ofset'.
michael@0 6738 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
michael@0 6739 Updated.
michael@0 6740
michael@0 6741
michael@0 6742 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
michael@0 6743
michael@0 6744
michael@0 6745 Do not load the CFF index offsets into memory, since this wastes a
michael@0 6746 *lot* of heap memory with large Asian CFF fonts. There is no
michael@0 6747 significant performance loss.
michael@0 6748
michael@0 6749 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
michael@0 6750 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
michael@0 6751 `data_size'.
michael@0 6752 (CFF_CharsetRec): Add field `num_glyphs'.
michael@0 6753
michael@0 6754 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
michael@0 6755 cff_charset_cid_to_gindex): New functions.
michael@0 6756 (cff_new_index): Renamed to...
michael@0 6757 (cff_index_init): This. Update all callers.
michael@0 6758 Updated -- some code has been moved to `cff_index_load_offsets'.
michael@0 6759 (cff_done_index): Renamed to...
michael@0 6760 (cff_index_done): This. Update all callers.
michael@0 6761 (cff_index_get_pointers, cff_index_access_element): Updated to use
michael@0 6762 stream offsets.
michael@0 6763 (cff_charset_compute_cids): Set `num_glyphs' field.
michael@0 6764 (cff_encoding_load): Updated.
michael@0 6765
michael@0 6766 * src/cff/cffgload.c (cff_slot_load): Updated.
michael@0 6767
michael@0 6768 2007-01-04 David Turner <david@freetype.org>
michael@0 6769
michael@0 6770 * docs/INSTALL.UNIX: Simplify some parts, add reference to
michael@0 6771 autogen.sh and pointer to README.CVS.
michael@0 6772
michael@0 6773 * README.CVS: Add common problem description and solution
michael@0 6774 when running autogen.sh.
michael@0 6775
michael@0 6776 * docs/INSTALL: Add reference to MacOS X.
michael@0 6777
michael@0 6778 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
michael@0 6779
michael@0 6780 * docs/TODO: Remove obsolete items.
michael@0 6781
michael@0 6782 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
michael@0 6783 (TWorker): This.
michael@0 6784 Remove `count_table' and `memory'.
michael@0 6785 Make `grays' a pointer.
michael@0 6786 (TRaster): New structure.
michael@0 6787 (count_table): New static array.
michael@0 6788 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
michael@0 6789 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
michael@0 6790 ft_black_set_mode, ft_black_render): Updated.
michael@0 6791 (ft_black_init): Don't initialize `count_table'.
michael@0 6792 (ft_black_reset): Use the render pool. This saves about 6KB of
michael@0 6793 heap space for each FT_Library instance.
michael@0 6794
michael@0 6795 * src/smooth/ftgrays.c (TRaster): Replaced with...
michael@0 6796 (TWorker): This.
michael@0 6797 Remove `memory'.
michael@0 6798 (TRaster): New structure.
michael@0 6799
michael@0 6800 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
michael@0 6801 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
michael@0 6802 gray_render_span, gray_raster_render): Updated.
michael@0 6803 (gray_raster_reset): Use the render pool. This saves about 6KB of
michael@0 6804 heap space for each FT_Library instance.
michael@0 6805
michael@0 6806 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
michael@0 6807 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
michael@0 6808 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
michael@0 6809 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
michael@0 6810 the optimization is no longer experimental.
michael@0 6811
michael@0 6812 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
michael@0 6813 Remove a typo that results in no hinting and a memory leak with some
michael@0 6814 large Asian CFF fonts.
michael@0 6815
michael@0 6816 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
michael@0 6817 which happens when FT_Done_Library is called with still opened
michael@0 6818 CFF_Faces in it. We need to close all faces before destroying the
michael@0 6819 modules, or else some bad things (memory leaks) may happen.
michael@0 6820
michael@0 6821 2007-01-02 Werner Lemberg <wl@gnu.org>
michael@0 6822
michael@0 6823 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
michael@0 6824 Remove compiler warning.
michael@0 6825
michael@0 6826 2007-01-02 David Turner <david@freetype.org>
michael@0 6827
michael@0 6828 * src/sfnt/sfobjs.c: Add documentation comment.
michael@0 6829
michael@0 6830 2006-12-31 Masatake YAMATO <jet@gyve.org>
michael@0 6831
michael@0 6832 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
michael@0 6833 function.
michael@0 6834 Check uniqueness of the gid pairs.
michael@0 6835 (gxv_kern_subtable_fmt0_validate): Move some code to
michael@0 6836 `gxv_kern_subtable_fmt0_pairs_validate'.
michael@0 6837
michael@0 6838 2006-12-22 David Turner <david@freetype.org>
michael@0 6839
michael@0 6840 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
michael@0 6841 warnings.
michael@0 6842
michael@0 6843 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
michael@0 6844 to avoid deprecation warnings with Visual C++ 8.
michael@0 6845
michael@0 6846 2006-12-16 Anders Kaseorg <anders@kaseorg.com>
michael@0 6847
michael@0 6848 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
michael@0 6849 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
michael@0 6850
michael@0 6851 2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 6852
michael@0 6853 * include/freetype/internal/services/svotval.h: Add `volatile' to
michael@0 6854 sync with the modification by Jens Claudius on 2006-08-22; cf.
michael@0 6855 http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5
michael@0 6856
michael@0 6857 2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 6858
michael@0 6859 * src/base/ftmac.c: Specialized for Mac OS X only.
michael@0 6860 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
michael@0 6861 * builds/unix/configure.raw: Ditto. When explicit switches for
michael@0 6862 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
michael@0 6863 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
michael@0 6864
michael@0 6865 2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 6866
michael@0 6867 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
michael@0 6868 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
michael@0 6869 instead of src/base/ftmac.c
michael@0 6870 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
michael@0 6871 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
michael@0 6872 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
michael@0 6873 that cannot be built at present.
michael@0 6874
michael@0 6875 2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 6876
michael@0 6877 * src/base/ftobjs.c: Improvement of resource fork handler for
michael@0 6878 POSIX, cf.
michael@0 6879 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
michael@0 6880 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
michael@0 6881 format or .dfont, to simulate the face index number counted by ftmac.c.
michael@0 6882 (IsMacResource): Return the number of scalable faces correctly.
michael@0 6883
michael@0 6884 2006-12-10 Werner Lemberg <wl@gnu.org>
michael@0 6885
michael@0 6886 * builds/toplevel.mk (version): Protect against `distclean' target.
michael@0 6887
michael@0 6888 2006-12-09 Werner Lemberg <wl@gnu.org>
michael@0 6889
michael@0 6890 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
michael@0 6891 or `type'.
michael@0 6892
michael@0 6893 * builds/freetype.mk (version): Extracted from freetype.h, using
michael@0 6894 GNU make's built-in string functions.
michael@0 6895 (refdoc): Use $(version) instead of static version number.
michael@0 6896
michael@0 6897 2006-12-08 Werner Lemberg <wl@gnu.org>
michael@0 6898
michael@0 6899 * builds/toplevel.mk (dist): Extract version number from freetype.h.
michael@0 6900
michael@0 6901 2006-12-08 Vladimir Volovich <vvv@vsu.ru>
michael@0 6902
michael@0 6903 * src/tools/apinames.c (State): Remove final comma in structure --
michael@0 6904 xlc v5 under AIX 4.3 doesn't like this.
michael@0 6905
michael@0 6906 2006-12-07 David Turner <david@freetype.org>
michael@0 6907
michael@0 6908 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
michael@0 6909 to the spacing of auto-fitted glyphs. This only impacts rare
michael@0 6910 cases (e.g., Arial Bold at rather small character sizes).
michael@0 6911
michael@0 6912 2006-12-03 Werner Lemberg <wl@gnu.org>
michael@0 6913
michael@0 6914 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
michael@0 6915
michael@0 6916 2006-12-01 Werner Lemberg <wl@gnu.org>
michael@0 6917
michael@0 6918 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
michael@0 6919 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
michael@0 6920 (tt_name_entry_ascii_from_ucs4): Removed.
michael@0 6921
michael@0 6922
michael@0 6923 * include/freetype/ftxf86.h: Fix and extend comment so that it
michael@0 6924 appears in the documentation.
michael@0 6925
michael@0 6926 * include/freetype/ftchapters.h: Add `font_format' section.
michael@0 6927
michael@0 6928
michael@0 6929 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
michael@0 6930 to TOC in index page.
michael@0 6931
michael@0 6932 2006-11-28 David Turner <david@freetype.org>
michael@0 6933
michael@0 6934 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
michael@0 6935 trying to render into a zero-width/height bitmap, not an error code.
michael@0 6936
michael@0 6937 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
michael@0 6938
michael@0 6939 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
michael@0 6940 ones instead.
michael@0 6941
michael@0 6942 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
michael@0 6943 variable.
michael@0 6944
michael@0 6945 2006-11-26 Pierre Hanser <hanser@club-internet.fr>
michael@0 6946
michael@0 6947 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
michael@0 6948
michael@0 6949 2006-11-25 David Turner <david@freetype.org>
michael@0 6950
michael@0 6951 * src/autofit/afhints.c (af_glyph_hints_dump_points,
michael@0 6952 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
michael@0 6953 Add stubs to link the `ftgrid' test program when debugging is
michael@0 6954 disabled in the auto-hinter.
michael@0 6955
michael@0 6956 2006-11-23 David Turner <david@freetype.org>
michael@0 6957
michael@0 6958 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
michael@0 6959 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
michael@0 6960
michael@0 6961 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
michael@0 6962 Emit more sensible information.
michael@0 6963
michael@0 6964 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
michael@0 6965
michael@0 6966 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
michael@0 6967 rounding of blue values.
michael@0 6968 (af_latin_hints_compute_segments): Hint segment heights.
michael@0 6969 (af_latin_hints_link_segments): Reduce `len_score' value.
michael@0 6970 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
michael@0 6971 value and use `height' member for comparisons.
michael@0 6972 (af_latin_hint_edges): Extend logging message.
michael@0 6973 Improve handling of remaining edges.
michael@0 6974
michael@0 6975 2006-11-22 Werner Lemberg <wl@gnu.org>
michael@0 6976
michael@0 6977 Fix Savannah bug #15553.
michael@0 6978
michael@0 6979 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
michael@0 6980 program after a change from mono to grayscaling (and vice versa).
michael@0 6981 Use correct constant for comparison to get `exec->grayscale'.
michael@0 6982
michael@0 6983 2006-11-18 Werner Lemberg <wl@gnu.org>
michael@0 6984
michael@0 6985 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
michael@0 6986 test for a valid glyph index must be deferred to the font drivers.
michael@0 6987 This patch fixes Savannah bug #18301.
michael@0 6988
michael@0 6989 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
michael@0 6990 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
michael@0 6991 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
michael@0 6992 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
michael@0 6993 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
michael@0 6994 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
michael@0 6995 (FNT_Load_Glyph): Check validity of `glyph_index'.
michael@0 6996
michael@0 6997 2006-11-13 David Turner <david@freetype.org>
michael@0 6998
michael@0 6999 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
michael@0 7000 `enhancements' are still too buggy for general use.
michael@0 7001
michael@0 7002 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
michael@0 7003 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
michael@0 7004 when building the library to change the default LCD filter to be
michael@0 7005 used. This is only useful for experimentation.
michael@0 7006
michael@0 7007 * include/freetype/ftlcdfil.h: Update documentation.
michael@0 7008
michael@0 7009 2006-11-10 David Turner <david@freetype.org>
michael@0 7010
michael@0 7011 * src/smooth/ftsmooth.c: API change for the LCD
michael@0 7012 filter. The FT_LcdFilter value is an enumeration describing which
michael@0 7013 filter to apply, with new values FT_LCD_FILTER_LIGHT and
michael@0 7014 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
michael@0 7015 algorithm which produces strong color fringes for everything
michael@0 7016 except very-well hinted text).
michael@0 7017
michael@0 7018 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
michael@0 7019 second parameter to an enum type.
michael@0 7020
michael@0 7021 * src/base/ftlcdfil.c (USE_LEGACY): Define.
michael@0 7022 (_ft_lcd_filter): Rename to...
michael@0 7023 (_ft_lcd_filter_fir): This.
michael@0 7024 Update parameters.
michael@0 7025 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
michael@0 7026 (FT_Library_Set_LcdFilter): Update parameters.
michael@0 7027 Handle new filter modes.
michael@0 7028
michael@0 7029 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
michael@0 7030 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
michael@0 7031 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
michael@0 7032 callback and update other fields.
michael@0 7033
michael@0 7034 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
michael@0 7035 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
michael@0 7036 Other minor improvements.
michael@0 7037
michael@0 7038 * src/autofit/aflatin.c: Various tiny improvements that drastically
michael@0 7039 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
michael@0 7040 (af_latin_hints_compute_edges): Fix typo.
michael@0 7041 (af_latin_compute_stem_width): Take better care of diagonal stems.
michael@0 7042
michael@0 7043 2006-11-09 David Turner <david@freetype.org>
michael@0 7044
michael@0 7045 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
michael@0 7046 typo which created a variable-used-before-initialized bug.
michael@0 7047
michael@0 7048 2006-11-07 Zhe Su <james.su@gmail.com>
michael@0 7049
michael@0 7050 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
michael@0 7051 also.
michael@0 7052
michael@0 7053 2006-11-03 Werner Lemberg <wl@gnu.org>
michael@0 7054
michael@0 7055 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
michael@0 7056
michael@0 7057 2006-11-02 David Turner <david@freetype.org>
michael@0 7058
michael@0 7059 Add a few tweaks to better handle serif fonts.
michael@0 7060 Add more debugging messages.
michael@0 7061
michael@0 7062 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
michael@0 7063 segments that are less than 1.5 pixels high. This gets rid of
michael@0 7064 *many* corner cases with serifs.
michael@0 7065 (af_latin_align_linked_edge): Add logging message.
michael@0 7066 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
michael@0 7067 Add logging messages.
michael@0 7068 Handle AF_EDGE_FLAG flag specially.
michael@0 7069
michael@0 7070 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
michael@0 7071 _af_debug_disable_blue_hints, and _af_debug_hints variables.
michael@0 7072
michael@0 7073 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
michael@0 7074 Update external declarations.
michael@0 7075 (af_corner_orientation, af_corner_is_flat): Replaced by...
michael@0 7076
michael@0 7077 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
michael@0 7078 ft_corner_is_flat): These declarations.
michael@0 7079
michael@0 7080 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
michael@0 7081 Comment out. Replaced by...
michael@0 7082
michael@0 7083 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
michael@0 7084 These functions. Update all callers.
michael@0 7085 (FT_Add64) [!FT_LONG64]: Simplify.
michael@0 7086
michael@0 7087 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
michael@0 7088 (af_direction_compute): Add a missing FT_ABS call. This bug caused
michael@0 7089 production of garbage by missing lots of segments.
michael@0 7090
michael@0 7091 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
michael@0 7092
michael@0 7093 * src/autofit/afloader.c (af_loader_init, af_loader_done)
michael@0 7094 [AF_DEBUG]: Set _af_debug_hints.
michael@0 7095
michael@0 7096
michael@0 7097 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
michael@0 7098 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
michael@0 7099 and ft_corner_orientation.
michael@0 7100
michael@0 7101
michael@0 7102 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
michael@0 7103
michael@0 7104 2006-10-24 Werner Lemberg <wl@gnu.org>
michael@0 7105
michael@0 7106 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
michael@0 7107
michael@0 7108 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
michael@0 7109 as argument.
michael@0 7110
michael@0 7111 2006-10-23 Zhe Su <zsu@novell.com>
michael@0 7112
michael@0 7113 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
michael@0 7114 better deal with broken Asian fonts with strange glyphs, having
michael@0 7115 self-intersections and other peculiarities. The used algorithm is
michael@0 7116 based on the nonzero winding rule.
michael@0 7117
michael@0 7118 2006-10-23 David Turner <david@freetype.org>
michael@0 7119
michael@0 7120 Speed up the CFF font loader. With some large CFF fonts,
michael@0 7121 FT_Open_Face is now more than three times faster.
michael@0 7122
michael@0 7123 * src/cff/cffload.c (cff_get_offset): Removed.
michael@0 7124 (cff_new_index): Inline functionality of `cff_get_offset'.
michael@0 7125 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
michael@0 7126 (cff_charset_done): Call `cff_charset_free_cids'.
michael@0 7127 (cff_charset_load): Call `cff_charset_compute_cids'.
michael@0 7128 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
michael@0 7129
michael@0 7130 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
michael@0 7131 with FT_NEXT_XXX.
michael@0 7132
michael@0 7133
michael@0 7134 Speed up the Postscript hinter, with more than 100% speed increase
michael@0 7135 on my machine.
michael@0 7136
michael@0 7137 * src/pshinter/pshalgo.c (psh_corner_is_flat,
michael@0 7138 psh_corner_orientation): New functions.
michael@0 7139 (psh_glyph_compute_inflections): Merge loops for efficiency.
michael@0 7140 Use `psh_corner_orientation'.
michael@0 7141 (psh_glyph_init): Use `psh_corner_is_flat'.
michael@0 7142 (psh_hint_table_find_strong_point): Renamed to...
michael@0 7143 (psh_hint_table_find_strong_points): This.
michael@0 7144 Rewrite, adding argument to handle all points at once.
michael@0 7145 Update all callers.
michael@0 7146 (PSH_MAX_STRONG_INTERNAL): New macro.
michael@0 7147 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
michael@0 7148
michael@0 7149 2006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 7150
michael@0 7151 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
michael@0 7152 `error' with FT_Err_Ok.
michael@0 7153
michael@0 7154 2006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 7155
michael@0 7156 * docs/INSTALL.CROSS: New document file for cross-building.
michael@0 7157
michael@0 7158 * builds/unix/configure.raw: Preliminary cross-building support.
michael@0 7159 Find native C compiler and pass it by CC_BUILD, and
michael@0 7160 find suffix for native executable and pass it by EXEEXT_BUILD.
michael@0 7161 Also suffix for target executable is passed by EXEEXT.
michael@0 7162
michael@0 7163 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
michael@0 7164 build `apinames' which runs on building system. They are set by
michael@0 7165 CC_BUILD and EXEEXT_BUILD.
michael@0 7166
michael@0 7167 * builds/exports.mk (APINAMES_EXE): Change the extension for
michael@0 7168 apinames from the suffix for target (E) to that for building host
michael@0 7169 (E_BUILD).
michael@0 7170
michael@0 7171 2006-10-12 Werner Lemberg <wl@gnu.org>
michael@0 7172
michael@0 7173 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
michael@0 7174 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
michael@0 7175 which reference those files.
michael@0 7176
michael@0 7177 2006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 7178
michael@0 7179 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
michael@0 7180 embedded in freetype2.pc and freetype-config. Use it to record
michael@0 7181 Carbon dependency of MacOSX.
michael@0 7182
michael@0 7183 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
michael@0 7184
michael@0 7185 * builds/unix/freetype-config.in: Ditto.
michael@0 7186
michael@0 7187 2006-10-11 Werner Lemberg <wl@gnu.org>
michael@0 7188
michael@0 7189 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
michael@0 7190 development.
michael@0 7191
michael@0 7192 2006-10-03 Jens Claudius <jens.claudius@yahoo.com>
michael@0 7193
michael@0 7194 * include/freetype/config/ftstdlib.h: Cast away volatileness from
michael@0 7195 argument to ft_setjmp.
michael@0 7196
michael@0 7197 * include/freetype/internal/ftvalid.h: Add comment that
michael@0 7198 ft_validator_run must not be used.
michael@0 7199
michael@0 7200 2006-10-01 Werner Lemberg <wl@gnu.org>
michael@0 7201
michael@0 7202 * src/base/ftbase.c: Undo change from 2006-09-30.
michael@0 7203
michael@0 7204 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
michael@0 7205
michael@0 7206 2006-09-30 David Turner <david@freetype.org>
michael@0 7207
michael@0 7208 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
michael@0 7209 s/unpatented_hinting/ignore_unpatented_hinter/.
michael@0 7210 Update all callers.
michael@0 7211
michael@0 7212 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
michael@0 7213 auto-hinting shall be used or not.
michael@0 7214
michael@0 7215 * src/truetype/ttobjs.c (tt_face_init): Ditto.
michael@0 7216
michael@0 7217 2006-09-30 Werner Lemberg <wl@gnu.org>
michael@0 7218
michael@0 7219 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
michael@0 7220 in use).
michael@0 7221
michael@0 7222 * src/base/ftbase.c: Include `ftlcdfil.c'.
michael@0 7223
michael@0 7224 2006-09-29 Werner Lemberg <wl@gnu.org>
michael@0 7225
michael@0 7226 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
michael@0 7227 overlapping segments. Bug reported by Stefan Koch.
michael@0 7228
michael@0 7229 2006-09-28 David Turner <david@freetype.org>
michael@0 7230
michael@0 7231 Fix a bug in the automatic unpatented hinting support which prevents
michael@0 7232 normal bytecode hinting to work properly.
michael@0 7233
michael@0 7234 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
michael@0 7235 s/force_autohint/unpatented_hinting/. Update all callers.
michael@0 7236
michael@0 7237 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
michael@0 7238
michael@0 7239 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
michael@0 7240
michael@0 7241 2006-09-27 David Turner <david@freetype.org>
michael@0 7242
michael@0 7243 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
michael@0 7244
michael@0 7245
michael@0 7246 Add a new API to support color filtering of subpixel glyph bitmaps.
michael@0 7247 In a default build, the function `FT_Library_SetLcdFilter' returns
michael@0 7248 `FT_Err_Unimplemented_Feature'; you need to #define
michael@0 7249 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
michael@0 7250 real implementation.
michael@0 7251
michael@0 7252 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
michael@0 7253
michael@0 7254 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
michael@0 7255 typedef.
michael@0 7256 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
michael@0 7257 `lcd_filter_weights' and `lcd_filter'.
michael@0 7258
michael@0 7259 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
michael@0 7260 `hmul' and `vmul'.
michael@0 7261
michael@0 7262 Handle subpixel rendering.
michael@0 7263 Simplify function.
michael@0 7264 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
michael@0 7265 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
michael@0 7266
michael@0 7267 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
michael@0 7268 pointing to <freetype/ftlcdfil.h>.
michael@0 7269
michael@0 7270 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
michael@0 7271 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
michael@0 7272
michael@0 7273 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
michael@0 7274
michael@0 7275 2006-09-26 David Bustin
michael@0 7276
michael@0 7277 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
michael@0 7278 correctly. Reported as Savannah bug #17843.
michael@0 7279
michael@0 7280 2006-09-26 David Turner <david@freetype.org>
michael@0 7281
michael@0 7282 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
michael@0 7283 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
michael@0 7284 horizontal and vertical hinting for the purpose of debugging the
michael@0 7285 auto-fitter.
michael@0 7286
michael@0 7287 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
michael@0 7288 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
michael@0 7289
michael@0 7290 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
michael@0 7291
michael@0 7292 * include/freetype/config/ftoption.h, devel/ftoption.h
michael@0 7293 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
michael@0 7294 we want to compile LCD-optimized rendering code (à la ClearType) or
michael@0 7295 not. The macro *must* be disabled in default builds of the library
michael@0 7296 for patent reasons.
michael@0 7297
michael@0 7298 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
michael@0 7299 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
michael@0 7300 isn't defined at compile time. This only changes the content of the
michael@0 7301 rendered glyph to match the one of normal gray-level rendering,
michael@0 7302 hence clients should not need to be modified.
michael@0 7303
michael@0 7304 * docs/CHANGES: Updated.
michael@0 7305
michael@0 7306 2006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
michael@0 7307
michael@0 7308 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
michael@0 7309 LWFN fails and both are available.
michael@0 7310
michael@0 7311 2006-09-11 David Turner <david@freetype.org>
michael@0 7312
michael@0 7313 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
michael@0 7314 report their English names through an Apple Roman
michael@0 7315 (platform,encoding) pair, with language_id != English.
michael@0 7316
michael@0 7317 If the font uses another name entry with language_id == English, it
michael@0 7318 will be selected correctly, though.
michael@0 7319
michael@0 7320 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
michael@0 7321 selection for `mingli.ttf'.
michael@0 7322
michael@0 7323 2006-09-05 Werner Lemberg <wl@gnu.org>
michael@0 7324
michael@0 7325 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
michael@0 7326 values which have the upper two bytes set to 0xFF instead of 0x00
michael@0 7327 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
michael@0 7328 `HAN NOM B.ttf').
michael@0 7329
michael@0 7330 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
michael@0 7331
michael@0 7332 2006-09-05 David Turner <david@freetype.org>
michael@0 7333
michael@0 7334 Minor source cleanups and optimizations.
michael@0 7335
michael@0 7336 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
michael@0 7337 (TRaster): Remove `count_ex' and `count_ey'.
michael@0 7338 (gray_find_cell): Remove 2nd and 3rd argument.
michael@0 7339 (gray_alloc_cell): Merged with `gray_find_cell'.
michael@0 7340 (gray_record_cell): Simplify.
michael@0 7341 (gray_set_cell): Rewrite.
michael@0 7342 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
michael@0 7343 (gray_render_span): Don't use FT_MEM_SET for small values.
michael@0 7344 (gray_dump_cells) [DEBUG_GRAYS]: New function.
michael@0 7345 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
michael@0 7346 bitmap scanline.
michael@0 7347 (gray_convert_glyph): Fix speed-up.
michael@0 7348
michael@0 7349 2006-09-04 David Turner <david@freetype.org>
michael@0 7350
michael@0 7351 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
michael@0 7352 64bit processors.
michael@0 7353
michael@0 7354 2006-09-03 Werner Lemberg <wl@gnu.org>
michael@0 7355
michael@0 7356 * devel/ftoption.h: Synchronize with
michael@0 7357 include/freetype/config/ftoption.h.
michael@0 7358
michael@0 7359 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
michael@0 7360 variable declaration.
michael@0 7361 (gray_convert_glyph): Fix compiler warnings.
michael@0 7362
michael@0 7363 2006-09-01 David Turner <david@freetype.org>
michael@0 7364
michael@0 7365 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
michael@0 7366 to recognize a few fonts that require the automatic unpatented
michael@0 7367 loader.
michael@0 7368
michael@0 7369 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
michael@0 7370 rasterizer. The speed improvement is between 15% and 25%, depending
michael@0 7371 on the font data.
michael@0 7372
michael@0 7373 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
michael@0 7374 (TCell): Redefine.
michael@0 7375 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
michael@0 7376 (gray_init_cells): Updated.
michael@0 7377 (gray_find_cell, gray_alloc_cell): New functions.
michael@0 7378 (gray_record_cell): Rewritten to use `gray_find_cell' and
michael@0 7379 `gray_alloc_cell'.
michael@0 7380 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
michael@0 7381 QSORT_THRESHOLD):
michael@0 7382 Removed.
michael@0 7383 (gray_shell_sort, gray_quick_sort, gray_check_sort,
michael@0 7384 gray_dump_cells): Removed.
michael@0 7385 (gray_sweep): Rewritten.
michael@0 7386 (gray_convert_glyph): Rewrite code which used one of the sorting
michael@0 7387 functions.
michael@0 7388 (gray_raster_render): Updated.
michael@0 7389
michael@0 7390 2006-08-29 Dr. Werner Fink <werner@suse.de>
michael@0 7391
michael@0 7392 * configure: Make it possible to handle configure options which
michael@0 7393 have strings containing spaces.
michael@0 7394
michael@0 7395 2006-08-27 David Turner <david@freetype.org>
michael@0 7396
michael@0 7397 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
michael@0 7398 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
michael@0 7399 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
michael@0 7400
michael@0 7401 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
michael@0 7402 src/truetype/truetype.c, src/truetype/ttdriver.c,
michael@0 7403 src/truetype/ttgload.c, src/truetype/ttgload.h,
michael@0 7404 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
michael@0 7405 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
michael@0 7406 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
michael@0 7407
michael@0 7408 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
michael@0 7409 member `force_autohint'.
michael@0 7410
michael@0 7411 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
michael@0 7412
michael@0 7413 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
michael@0 7414 against a list of font names which need the bytecode interpreter.
michael@0 7415
michael@0 7416 2006-08-27 Jens Claudius <jens.claudius@yahoo.com>
michael@0 7417
michael@0 7418 Fix miscellaneous compiler warnings.
michael@0 7419
michael@0 7420 * include/freetype/internal/ftobjs.h: Close comment with `*/' to
michael@0 7421 avoid `/* in comment' compiler warning.
michael@0 7422
michael@0 7423 * src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
michael@0 7424 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
michael@0 7425 64-bit platforms void* is larger than FT_UInt32.
michael@0 7426
michael@0 7427 * src/base/ftobjs.c (t_validator_error): Cast away
michael@0 7428 volatileness of argument to ft_longjmp. Spotted by Werner
michael@0 7429 `Putzfrau' Lemberg.
michael@0 7430
michael@0 7431 * src/bdf/bdflib.c (bdf_load_font): Initialize local
michael@0 7432 variable `lineno'.
michael@0 7433
michael@0 7434 * src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable
michael@0 7435 `error' as volatile.
michael@0 7436
michael@0 7437 2006-08-27 Werner Lemberg <wl@gnu.org>
michael@0 7438
michael@0 7439 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
michael@0 7440 Reported by Jens.
michael@0 7441
michael@0 7442 2006-08-22 Jens Claudius <jens.claudius@yahoo.com>
michael@0 7443
michael@0 7444 Fix for previous commit, which caused many compiler warnings/errors
michael@0 7445 about addresses of volatile objects passed as function arguments as
michael@0 7446 non-volatile pointers.
michael@0 7447
michael@0 7448 * include/freetype/internal/ftvalid.h: Make FT_Validator typedef a
michael@0 7449 pointer to a volatile object.
michael@0 7450
michael@0 7451 * src/gxvalid/gxvmod.c (gxv_load_table): Make function argument
michael@0 7452 `table' a pointer to a volatile object.
michael@0 7453
michael@0 7454 * src/otvalid/otvmod.c (otv_load_table): Make function argument
michael@0 7455 `table' a pointer to a volatile object.
michael@0 7456
michael@0 7457 2006-08-18 Jens Claudius <jens.claudius@yahoo.com>
michael@0 7458
michael@0 7459 * src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local variable `_sfnt'
michael@0 7460 as volatile since it must keep its value across a call to ft_setjmp.
michael@0 7461 (gxv_validate): Same for local variables `memory' and `valid'.
michael@0 7462 (classic_kern_validate): Same for local variables `memory',
michael@0 7463 `ckern', and `valid'.
michael@0 7464
michael@0 7465 * src/otvalid/otvmod.c (otv_validate): Same for function parameter
michael@0 7466 `face' and local variables `base', `gdef', `gpos', `gsub', `jstf',
michael@0 7467 and 'valid'.
michael@0 7468
michael@0 7469 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable
michael@0 7470 `cmap'.
michael@0 7471
michael@0 7472 2006-08-16 David Turner <david@freetype.org>
michael@0 7473
michael@0 7474 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
michael@0 7475 warnings.
michael@0 7476
michael@0 7477 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
michael@0 7478 buggy by design. Always return -1.
michael@0 7479
michael@0 7480
michael@0 7481 Improvements to native TrueType hinting. This is a first try,
michael@0 7482 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
michael@0 7483
michael@0 7484 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
michael@0 7485 `extra_points2'.
michael@0 7486
michael@0 7487 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
michael@0 7488 `orus'.
michael@0 7489
michael@0 7490 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
michael@0 7491 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
michael@0 7492 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
michael@0 7493 handle `extra_points2'.
michael@0 7494
michael@0 7495 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
michael@0 7496 Remove compiler warning.
michael@0 7497 (cur_to_arg): Remove macro.
michael@0 7498 (TT_Hint_Glyph): Updated.
michael@0 7499 (TT_Process_Simple_Glyph): Handle `orus'.
michael@0 7500
michael@0 7501 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
michael@0 7502 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
michael@0 7503 (LOC_Ins_IUP): Renamed to...
michael@0 7504 (IUP_WorkerRec): This.
michael@0 7505 Add `orus' member.
michael@0 7506 (Shift): Renamed to...
michael@0 7507 (_iup_worker_shift): This.
michael@0 7508 Updated.
michael@0 7509 (Interp): Renamed to...
michael@0 7510 (_iup_worker_interpolate): This.
michael@0 7511 Updated to handle `orus'.
michael@0 7512 (Ins_IUP): Updated.
michael@0 7513
michael@0 7514 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
michael@0 7515 Handle `orus'.
michael@0 7516
michael@0 7517 2006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 7518
michael@0 7519 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
michael@0 7520 build ftvalid in ft2demos. This has been inadvertedly changed
michael@0 7521 2006-08-13.
michael@0 7522
michael@0 7523 2006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 7524
michael@0 7525 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
michael@0 7526 Jens:
michael@0 7527 http://lists.gnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
michael@0 7528
michael@0 7529 * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'.
michael@0 7530 It reverts the change introduced on 2005-08-20.
michael@0 7531
michael@0 7532 * src/gxvalid/gxvmod.c: Ditto.
michael@0 7533
michael@0 7534 2006-08-13 Jens Claudius <jens.claudius@yahoo.com>
michael@0 7535
michael@0 7536 * finclude/freetype/internal/psaux.h: (T1_TokenType): Add
michael@0 7537 T1_TOKEN_TYPE_KEY.
michael@0 7538 (T1_FieldRec): Add `dict'.
michael@0 7539 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
michael@0 7540 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
michael@0 7541 keyword is expected as an additional argument.
michael@0 7542
michael@0 7543 * src/cid/cidload.c: (cid_field_records): Adjust invocations of
michael@0 7544 T1_FIELD_XXX.
michael@0 7545
michael@0 7546 * src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
michael@0 7547
michael@0 7548 * src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
michael@0 7549 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
michael@0 7550 not T1_TOKEN_TYPE_ANY.
michael@0 7551 (ps_parser_load_field): Make sure a token that should be a string or
michael@0 7552 name is really a string or name.
michael@0 7553 Avoid memory leak if a keyword has been already encountered and its
michael@0 7554 value is overwritten.
michael@0 7555 * src/type1/t1load.c: (t1_keywords): Adjust invocations of
michael@0 7556 T1_FIELD_XXX.
michael@0 7557 (parse_dict): Ignore keywords that occur in the wrong dictionary
michael@0 7558 (e.g., in `Private' instead of `FontDict').
michael@0 7559
michael@0 7560 * src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX.
michael@0 7561
michael@0 7562 * src/type42/t42parse.c: (t42_keywords): Adjust invocations of
michael@0 7563 T1_FIELD_XXX.
michael@0 7564
michael@0 7565 2006-07-18 Jens Claudius <jens.claudius@yahoo.com>
michael@0 7566
michael@0 7567 Move creation of field `buildchar' of T1_DecoderRec out of
michael@0 7568 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
michael@0 7569 of it.
michael@0 7570
michael@0 7571 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
michael@0 7572 and `T1_Compute_Max_Advance'.
michael@0 7573
michael@0 7574 * include/freetype/internal/psaux.h (T1_DecoderRec): Remove field
michael@0 7575 `face', add `len_buildchar'.
michael@0 7576
michael@0 7577 * include/freetype/internal/t1types.h (T1_FaceRec): Add field
michael@0 7578 `buildchar'.
michael@0 7579
michael@0 7580 * src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher
michael@0 7581 for T1_Decoder.
michael@0 7582 (cid_slot_load_glyph): Do not ignore failure when initializing the
michael@0 7583 T1_Decoder.
michael@0 7584
michael@0 7585 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated.
michael@0 7586 (t1_decoder_init): Remove initialization of fields `buildchar' and
michael@0 7587 `len_buildchar'.
michael@0 7588 (t1_decoder_done): Remove deallocation of field `buildchar'.
michael@0 7589
michael@0 7590 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
michael@0 7591 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
michael@0 7592 T1_Decoder.
michael@0 7593 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
michael@0 7594 `len_buildchar'; make sure to call finisher for T1_Decoder even in
michael@0 7595 case of error.
michael@0 7596
michael@0 7597 * src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar'
michael@0 7598 of T1_FaceRec.
michael@0 7599
michael@0 7600 * src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of
michael@0 7601 T1_FaceRec.
michael@0 7602
michael@0 7603 2006-07-14 Jens Claudius <jens.claudius@yahoo.com>
michael@0 7604
michael@0 7605 * include/freetype/internal/psaux.h: New macros IS_PS_NEWLINE,
michael@0 7606 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
michael@0 7607 and IS_PS_BASE85 (from src/psaux/psconv.h).
michael@0 7608 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
michael@0 7609 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
michael@0 7610 (T1_DecoderRec): New fields `buildchar' and `face'.
michael@0 7611 (IS_PS_TOKEN): New macro.
michael@0 7612
michael@0 7613 * include/freetype/internal/t1types.h (T1_FaceRec): New fields
michael@0 7614 `ndv_idx', `cdv_idx', and `len_buildchar'.
michael@0 7615
michael@0 7616 * include/freetype/t1tables.h (PS_BlendRec): New fields
michael@0 7617 `default_design_vector' and `num_default_design_vector'.
michael@0 7618
michael@0 7619 * src/psaux/psconv.h: Move macros IS_PS_NEWLINE, IS_PS_SPACE,
michael@0 7620 IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, and
michael@0 7621 IS_PS_BASE85 to include/freetype/internal/psaux.h.
michael@0 7622
michael@0 7623 * src/psaux/psobjs.c (ps_parser_to_token_array): Allow `token'
michael@0 7624 argument to be NULL if we want only to count the number of tokens.
michael@0 7625 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
michael@0 7626 want to skip the array.
michael@0 7627 (ps_tofixedarray): Allow `values' argument to be NULL if we just
michael@0 7628 want to skip the array.
michael@0 7629
michael@0 7630 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add support
michael@0 7631 for (partially commented out) othersubrs 19-25, 27, and 28.
michael@0 7632 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
michael@0 7633 (t1_decoder_done): Release new field `buildchar'.
michael@0 7634
michael@0 7635 * src/type1/t1load.c (parse_buildchar, parse_private): New
michael@0 7636 functions.
michael@0 7637 (t1_keywords): Register them.
michael@0 7638 (t1_allocate_blend): Updated.
michael@0 7639 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
michael@0 7640 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
michael@0 7641 (parse_dict): Remove `keyword_flags' argument.
michael@0 7642 Use new macro IS_PS_TOKEN.
michael@0 7643 Changed function so that later PostScript definitions override
michael@0 7644 earlier ones.
michael@0 7645 (t1_init_loader): Initialize new field `keywords_encountered'.
michael@0 7646 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
michael@0 7647 `len_buildchar'.
michael@0 7648 Remove `keywords_flags'.
michael@0 7649
michael@0 7650 * src/type1/t1load.h (T1_LoaderRect): New field
michael@0 7651 `keywords_encountered'.
michael@0 7652 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
michael@0 7653
michael@0 7654 * src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New
michael@0 7655 entries for parsing /NDV, /CDV, and /DesignVector.
michael@0 7656
michael@0 7657 2006-07-07 Werner Lemberg <wl@gnu.org>
michael@0 7658
michael@0 7659 Add many checks to protect against malformed PCF files.
michael@0 7660
michael@0 7661 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
michael@0 7662 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
michael@0 7663
michael@0 7664 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
michael@0 7665 data and check that tables don't overlap (using a simple
michael@0 7666 bubblesort).
michael@0 7667 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
michael@0 7668 New macros which give the size of data structures in the data
michael@0 7669 stream.
michael@0 7670 (pcf_get_properties): Use rough estimates to get array size limits.
michael@0 7671 Assign `face->nprops' and `face->properties' earlier so that a call
michael@0 7672 to PCF_Face_Done can do the clean-up in case of error.
michael@0 7673 Protect against invalid string offsets.
michael@0 7674 (pcf_get_metrics): Clean up code.
michael@0 7675 Adjust tracing message levels.
michael@0 7676 Use rough estimate to get array size limit.
michael@0 7677 (pcf_get_bitmaps): Clean up code.
michael@0 7678 Adjust tracing message levels.
michael@0 7679 Use rough estimates to get offset limits.
michael@0 7680 (pcf_get_encodings): Adjust tracing message level.
michael@0 7681 (pcf_get_accel): Clean up code.
michael@0 7682
michael@0 7683 2006-06-26 Werner Lemberg <wl@gnu.org>
michael@0 7684
michael@0 7685 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
michael@0 7686 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
michael@0 7687
michael@0 7688 2006-06-26 Jens Claudius <jens.claudius@yahoo.com>
michael@0 7689
michael@0 7690 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
michael@0 7691 (t1_decoder_parse_charstrings): Operator with
michael@0 7692 opcode 15 pops its two arguments.
michael@0 7693 Handle the case where the pops of an othersubr may be part of a
michael@0 7694 subroutine.
michael@0 7695 Handle unknown othersubrs gracefully: count their operands and let
michael@0 7696 the following pop operators push the operands as the results onto
michael@0 7697 the Type1 stack.
michael@0 7698 Improve handling of setcurrentpoint opcode.
michael@0 7699
michael@0 7700 2006-06-25 Jens Claudius <jens.claudius@yahoo.com>
michael@0 7701
michael@0 7702 The Type 1 parser now skips over top-level procedures as required
michael@0 7703 for a `Simplified Parser'. This makes the parser more robust as it
michael@0 7704 doesn't poke around in PostScript code. Additionally, it makes the
michael@0 7705 FontDirectory hackery in src/type1/t1load.c unnecessary.
michael@0 7706
michael@0 7707 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
michael@0 7708 (skip_literal_string): Add FT_Error as return value.
michael@0 7709 Handle escapes better.
michael@0 7710 (skip_string): Add FT_Error as return value.
michael@0 7711 Don't set `parser->error' but return error code directly.
michael@0 7712 (skip_procedure): New function.
michael@0 7713 (ps_parser_skip_PS_token): Handle procedures.
michael@0 7714 Update code.
michael@0 7715 (ps_parser_to_token): Update code.
michael@0 7716 (ps_parser_load_field_table): Handle bbox entries also.
michael@0 7717
michael@0 7718 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
michael@0 7719 Add commented-out code for synthetic fonts.
michael@0 7720
michael@0 7721 2006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
michael@0 7722
michael@0 7723 Fix two hinting bugs as reported in
michael@0 7724 http://lists.gnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
michael@0 7725
michael@0 7726 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
michael@0 7727 `first_point' member.
michael@0 7728
michael@0 7729 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
michael@0 7730 `first_point'.
michael@0 7731 (TT_Process_Composite_Glyph): Always untouch points.
michael@0 7732
michael@0 7733 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
michael@0 7734 `first_point' and `last_point' in case of composite glyphs.
michael@0 7735 (Ins_IUP): Fix computation of `end_point'.
michael@0 7736
michael@0 7737 2006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 7738
michael@0 7739 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
michael@0 7740 Mac. The original patch was written by David Sachitano and Lawrence
michael@0 7741 Coopet, and modified by Sean McBride for MPW compatibility. Only
michael@0 7742 required data are converted; unused data are left in big endian.
michael@0 7743
michael@0 7744 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
michael@0 7745 Mac OS X platforms.
michael@0 7746 (OS_INLINE): Undefine before definition.
michael@0 7747 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
michael@0 7748 FontAssociation table in FOND resource.
michael@0 7749 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
michael@0 7750 and fontSize at each entry of FontAssociation table in FOND
michael@0 7751 resource.
michael@0 7752 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
michael@0 7753 ffStylOff of FamilyRecord header of FOND resource, the header,
michael@0 7754 fontSize, fontID at each entry of FontAssociation table, and
michael@0 7755 StyleMapping table.
michael@0 7756 (count_faces): Call `HUnlock' after all FOND utilization.
michael@0 7757
michael@0 7758 2006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 7759
michael@0 7760 Public API of TrueTypeGX, OpenType, and classic kern table validator
michael@0 7761 should return `FT_Err_Unimplemented_Feature' if validation service
michael@0 7762 is unavailable (disabled in `modules.cfg'). It is originally
michael@0 7763 suggested by David Turner, cf.
michael@0 7764 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
michael@0 7765
michael@0 7766 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
michael@0 7767 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
michael@0 7768 unavailable.
michael@0 7769 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
michael@0 7770 classic kern table validation service is unavailable.
michael@0 7771
michael@0 7772 * src/base/ftotval.c (FT_OpenType_Validate): Return
michael@0 7773 FT_Err_Unimplemented_Feature if OpenType validation service is
michael@0 7774 unavailable.
michael@0 7775
michael@0 7776 2006-06-08 Werner Lemberg <wl@gnu.org>
michael@0 7777
michael@0 7778 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
michael@0 7779 errors.
michael@0 7780
michael@0 7781 2006-06-07 David Turner <david@freetype.org>
michael@0 7782
michael@0 7783 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
michael@0 7784 (T1_Read_Metrics): Fix memory leak which happened when the metrics
michael@0 7785 file doesn't have kerning pairs. This fixes Savannah bug #16768.
michael@0 7786
michael@0 7787 2006-06-06 David Turner <david@freetype.org>
michael@0 7788
michael@0 7789 Fix memory leak described in Savannah bug #16759.
michael@0 7790
michael@0 7791 We change `ps_unicodes_init' so that it also takes a
michael@0 7792 `free_glyph_name' callback to release the glyph names returned by
michael@0 7793 `get_glyph_name'
michael@0 7794
michael@0 7795 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
michael@0 7796 Renamed to ...
michael@0 7797 (PS_GetGlyphNameFunc): This.
michael@0 7798 (PS_FreeGlyphNameFunc): New typedef.
michael@0 7799 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
michael@0 7800
michael@0 7801 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
michael@0 7802 argument.
michael@0 7803 (cff_sid_free_glyph_name): New function.
michael@0 7804 (cff_cmap_unicode_init): Updated.
michael@0 7805
michael@0 7806 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
michael@0 7807
michael@0 7808 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
michael@0 7809 PS_FreeGlyphNameFunc and use it.
michael@0 7810
michael@0 7811
michael@0 7812 2006-06-04 David Turner <david@freetype.org>
michael@0 7813
michael@0 7814 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
michael@0 7815 `item_size == 0' as well -- though this sounds weird, it can
michael@0 7816 theoretically happen. This fixes Savannah bug #16669.
michael@0 7817
michael@0 7818 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
michael@0 7819 of `face->num_glyphs' which missed the last glyph, due to
michael@0 7820 the offset-by-1 computation, since the PFR format doesn't
michael@0 7821 guarantee that glyph index 0 corresponds to the `missing
michael@0 7822 glyph. This fixes Savannah bug #16668.
michael@0 7823
michael@0 7824 2006-05-25 Werner Lemberg <wl@gnu.org>
michael@0 7825
michael@0 7826 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
michael@0 7827 `-no-undefined'. Reported by Christian Biesinger.
michael@0 7828
michael@0 7829 2006-05-19 Brian Weed <bw@imaginengine.com>
michael@0 7830
michael@0 7831 * builds/win32/visualc/freetype.dsp: Release libraries no longer
michael@0 7832 have debug information, and debug libraries use `C7 compatible'
michael@0 7833 debug info.
michael@0 7834
michael@0 7835 2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 7836
michael@0 7837 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
michael@0 7838 resource fork handler. This fixes Savannah bug #16631.
michael@0 7839
michael@0 7840 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
michael@0 7841 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
michael@0 7842
michael@0 7843 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
michael@0 7844 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
michael@0 7845
michael@0 7846 2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 7847
michael@0 7848 * build/unix/configure.raw: Add a fallback to disable Carbon
michael@0 7849 dependency, if configured with no options on Mac OS X.
michael@0 7850
michael@0 7851 2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
michael@0 7852
michael@0 7853 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
michael@0 7854 its content cannot be parsed as supported font. This fixes
michael@0 7855 the second part of Savannah bug #16590.
michael@0 7856
michael@0 7857 2006-05-18 Werner Lemberg <wl@gnu.org>
michael@0 7858
michael@0 7859 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
michael@0 7860 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
michael@0 7861
michael@0 7862 2006-05-17 David Turner <david@freetype.org>
michael@0 7863
michael@0 7864 This is a major patch used to drastically improve the performance of
michael@0 7865 loading glyphs. This both speeds up loading the glyph vectors
michael@0 7866 themselves and the auto-fitter module.
michael@0 7867
michael@0 7868 We now use inline assembler code with GCC to implement `FT_MulFix',
michael@0 7869 which is probably the most important function related to the
michael@0 7870 engine's performance.
michael@0 7871
michael@0 7872 The resulting speed-up is about 25%.
michael@0 7873
michael@0 7874
michael@0 7875 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
michael@0 7876 `cursor' and `limit'.
michael@0 7877
michael@0 7878 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
michael@0 7879 New functions.
michael@0 7880 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
michael@0 7881 [TEST]: Remove.
michael@0 7882
michael@0 7883 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
michael@0 7884 code.
michael@0 7885
michael@0 7886 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
michael@0 7887 `FT_ZERO'
michael@0 7888 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
michael@0 7889 (af_glyph_hints_reload: Rewrite recognition of weak points.
michael@0 7890
michael@0 7891 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
michael@0 7892 constant values out of the loops.
michael@0 7893
michael@0 7894 * src/autofit/aftypes.h: Updated.
michael@0 7895
michael@0 7896 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
michael@0 7897
michael@0 7898 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
michael@0 7899 product to get orientation.
michael@0 7900
michael@0 7901 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
michael@0 7902 (FT_Stream_OpenGzip): Use it to handle small files directly in
michael@0 7903 memory.
michael@0 7904
michael@0 7905 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
michael@0 7906 Improve performance.
michael@0 7907
michael@0 7908 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
michael@0 7909 `limit'.
michael@0 7910
michael@0 7911 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
michael@0 7912 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
michael@0 7913 exceedingly large values of number of contours. Speed up by
michael@0 7914 reducing the number of loops.
michael@0 7915
michael@0 7916 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
michael@0 7917
michael@0 7918
michael@0 7919 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
michael@0 7920 used to detect rogue clients from 4 to 16. This is to prevent some
michael@0 7921 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
michael@0 7922 comes from the Japanese Adobe Reader Asian Font pack.
michael@0 7923
michael@0 7924 2007-05-17 Werner Lemberg <wl@gnu.org>
michael@0 7925
michael@0 7926 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
michael@0 7927 fixes the first part of Savannah bug #16590.
michael@0 7928
michael@0 7929 2006-05-16 Werner Lemberg <wl@gnu.org>
michael@0 7930
michael@0 7931 * docs/PROBLEMS: Updated icl issues.
michael@0 7932
michael@0 7933 ----------------------------------------------------------------------------
michael@0 7934
michael@0 7935 Copyright 2006, 2007, 2008, 2009, 2010 by
michael@0 7936 David Turner, Robert Wilhelm, and Werner Lemberg.
michael@0 7937
michael@0 7938 This file is part of the FreeType project, and may only be used, modified,
michael@0 7939 and distributed under the terms of the FreeType project license,
michael@0 7940 LICENSE.TXT. By continuing to use, modify, or distribute this file you
michael@0 7941 indicate that you have read the license and understand and accept it
michael@0 7942 fully.
michael@0 7943
michael@0 7944
michael@0 7945 Local Variables:
michael@0 7946 version-control: never
michael@0 7947 coding: utf-8
michael@0 7948 End:

mercurial