Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
michael@0 | 1 | 2013-05-08 Werner Lemberg <wl@gnu.org> |
michael@0 | 2 | |
michael@0 | 3 | * Version 2.4.12 released. |
michael@0 | 4 | ========================== |
michael@0 | 5 | |
michael@0 | 6 | |
michael@0 | 7 | Tag sources with `VER-2-4-12'. |
michael@0 | 8 | |
michael@0 | 9 | * docs/VERSION.DLL: Update documentation and bump version number to |
michael@0 | 10 | 2.4.12. |
michael@0 | 11 | |
michael@0 | 12 | * README, Jamfile (RefDoc), |
michael@0 | 13 | builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, |
michael@0 | 14 | builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, |
michael@0 | 15 | builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, |
michael@0 | 16 | builds/win32/visualc/freetype.dsp, |
michael@0 | 17 | builds/win32/visualc/freetype.vcproj, |
michael@0 | 18 | builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, |
michael@0 | 19 | builds/win32/visualce/freetype.vcproj, |
michael@0 | 20 | builds/win32/visualce/index.html, |
michael@0 | 21 | builds/wince/vc2005-ce/freetype.vcproj, |
michael@0 | 22 | builds/wince/vc2005-ce/index.html, |
michael@0 | 23 | builds/wince/vc2008-ce/freetype.vcproj, |
michael@0 | 24 | builds/wince/vc2008-ce/index.html: s/2.4.11/2.4.12/, s/2411/2412/. |
michael@0 | 25 | |
michael@0 | 26 | * include/freetype/freetype.h (FREETYPE_PATCH): Set to 12. |
michael@0 | 27 | |
michael@0 | 28 | * builds/unix/configure.raw (version_info): Set to 16:1:10. |
michael@0 | 29 | |
michael@0 | 30 | 2013-05-08 Werner Lemberg <wl@gnu.org> |
michael@0 | 31 | |
michael@0 | 32 | * docs/CHANGES: Updated. |
michael@0 | 33 | |
michael@0 | 34 | 2013-05-08 Werner Lemberg <wl@gnu.org> |
michael@0 | 35 | |
michael@0 | 36 | * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Typo. |
michael@0 | 37 | |
michael@0 | 38 | 2013-05-05 Werner Lemberg <wl@gnu.org> |
michael@0 | 39 | |
michael@0 | 40 | Synchronize `ftconfig.h'. |
michael@0 | 41 | |
michael@0 | 42 | * builds/unix/ftconfig.in: Updated. |
michael@0 | 43 | |
michael@0 | 44 | 2013-05-05 Werner Lemberg <wl@gnu.org> |
michael@0 | 45 | |
michael@0 | 46 | Fix compilation with C++. |
michael@0 | 47 | |
michael@0 | 48 | * src/base/md5.c (body): Use proper cast. |
michael@0 | 49 | |
michael@0 | 50 | 2013-05-05 Werner Lemberg <wl@gnu.org> |
michael@0 | 51 | |
michael@0 | 52 | Fix 64bit compilation issues. |
michael@0 | 53 | |
michael@0 | 54 | * include/freetype/config/ftconfig.h [FT_LONG64]: Typedef |
michael@0 | 55 | `FT_Int64' here. |
michael@0 | 56 | |
michael@0 | 57 | * src/base/ftcalc.c: Remove typedef of `FT_Int64'. |
michael@0 | 58 | (FT_DivFix): Fix cast. |
michael@0 | 59 | * src/base/fttrigon.c: Remove typedef of `FT_Int64'. |
michael@0 | 60 | |
michael@0 | 61 | 2013-05-05 Werner Lemberg <wl@gnu.org> |
michael@0 | 62 | |
michael@0 | 63 | [raster] Fix clang issues. |
michael@0 | 64 | |
michael@0 | 65 | Fix suggested by <octoploid@yandex.com>. |
michael@0 | 66 | |
michael@0 | 67 | * src/raster/ftraster.c (ULong): New typedef. |
michael@0 | 68 | (SCALED): Add proper cast. |
michael@0 | 69 | |
michael@0 | 70 | 2013-05-04 Werner Lemberg <wl@gnu.org> |
michael@0 | 71 | |
michael@0 | 72 | Fix clang fixes. |
michael@0 | 73 | |
michael@0 | 74 | * src/base/fttrigon.c (ft_trig_prenorm, FT_Vector_Rotate): Use |
michael@0 | 75 | correct types. |
michael@0 | 76 | |
michael@0 | 77 | * src/cff/cf2intrp.c (cf2_interpT2CharString) <default>: Force |
michael@0 | 78 | unsigned for computations. |
michael@0 | 79 | * src/cff/cffgload.c (cff_decoder_parse_charstrings): Ditto. |
michael@0 | 80 | * src/cff/cffparse.c (cff_parse_integer): Ditto. |
michael@0 | 81 | |
michael@0 | 82 | * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Ditto. |
michael@0 | 83 | |
michael@0 | 84 | 2013-05-04 Werner Lemberg <wl@gnu.org> |
michael@0 | 85 | |
michael@0 | 86 | [cff] Make Adobe CFF engine work correctly on 64bit hosts. |
michael@0 | 87 | |
michael@0 | 88 | Reported by numerous people on the `freetype-devel' list. Without |
michael@0 | 89 | this fix, glyphs aren't properly aligned on a common baseline. |
michael@0 | 90 | |
michael@0 | 91 | On 64bit systems, `FT_Pos' expands to `long int', having a width of |
michael@0 | 92 | 64bit. `CF2_Fixed' expands to `int' which is normally 32bit wide on |
michael@0 | 93 | 64bit hosts also. Wrong casts filled up the blues arrays with |
michael@0 | 94 | incorrect values. Note that all blues values are accessed with the |
michael@0 | 95 | `cf2_blueToFixed' macro which handles the 64bit to 32bit conversion. |
michael@0 | 96 | |
michael@0 | 97 | * src/cff/cf2ft.h (cf2_getBlueValues, cf2_getOtherBlues, |
michael@0 | 98 | cf2_getFamilyBlues, cf2_getFamilyOtherBlues): Use `FT_Pos' for |
michael@0 | 99 | `data', not `CF2_Fixed'. |
michael@0 | 100 | * src/cff/cf2ft.c (cf2_getBlueValues, cf2_getOtherBlues, |
michael@0 | 101 | cf2_getFamilyBlues, cf2_getFamilyOtherBlues): Updated. |
michael@0 | 102 | * src/cff/cf2blues.c (cf2_blues_init): Updated. |
michael@0 | 103 | |
michael@0 | 104 | 2013-05-04 Werner Lemberg <wl@gnu.org> |
michael@0 | 105 | |
michael@0 | 106 | More fixes for clang's `sanitize' feature. |
michael@0 | 107 | |
michael@0 | 108 | * src/base/ftcalc.c (FT_DivFix): Use unsigned values for |
michael@0 | 109 | computations which use the left shift operator and convert to signed |
michael@0 | 110 | as the last step. |
michael@0 | 111 | * src/base/fttrigon.c (ft_trig_prenorm, FT_Vector_Rotate, |
michael@0 | 112 | FT_Vector_Length, FT_Vector_Polarize): Ditto. |
michael@0 | 113 | |
michael@0 | 114 | * src/cff/cffgload.c (cff_decoder_parse_charstrings): Simplify. |
michael@0 | 115 | * src/cff/cffload.c (cff_subfont_load): Fix constant. |
michael@0 | 116 | * src/cff/cffparse.c (cff_parse_integer, cff_parse_real, do_fixed, |
michael@0 | 117 | cff_parse_fixed_dynamic): Use unsigned values for computations which |
michael@0 | 118 | use the left shift operator and convert to signed as the last step. |
michael@0 | 119 | |
michael@0 | 120 | * src/cid/cidload.c (cid_get_offset): Ditto. |
michael@0 | 121 | |
michael@0 | 122 | * src/psaux/psconv.c (PS_Conv_ToFixed): Ditto. |
michael@0 | 123 | * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Ditto. |
michael@0 | 124 | |
michael@0 | 125 | * src/truetype/ttinterp.c (TT_MulFix14, TT_DotFix14): Ditto. |
michael@0 | 126 | |
michael@0 | 127 | 2013-05-04 Werner Lemberg <wl@gnu.org> |
michael@0 | 128 | |
michael@0 | 129 | Fix errors reported by clang's `sanitize' feature. |
michael@0 | 130 | |
michael@0 | 131 | * include/freetype/internal/ftstream.h: Simplify and fix integer |
michael@0 | 132 | extraction macros. |
michael@0 | 133 | (FT_INT8_, FT_BYTE_I16, FT_BYTE_I32, FT_INT8_I16, FT_INT8_I32, |
michael@0 | 134 | FT_INT8_I32, FT_INT8_U32): Removed. |
michael@0 | 135 | (FT_PEEK_SHORT, FT_PEEK_LONG, FT_PEEK_OFF3, FT_PEEK_SHORT_LE, |
michael@0 | 136 | FT_PEEK_LONG_LE, FT_PEEK_OFF3_LE): Use unsigned values for |
michael@0 | 137 | computations and convert to signed as the last step. |
michael@0 | 138 | |
michael@0 | 139 | * src/cff/cf2fixed.h (cf2_intToFixed, cf2_fixedToInt, |
michael@0 | 140 | cf2_fracToFixed): Avoid shifts of negative values. |
michael@0 | 141 | (cf2_intToFrac, cf2_fixedToFrac, cf2_fixedTo26Dot6): Removed, |
michael@0 | 142 | unused. |
michael@0 | 143 | |
michael@0 | 144 | * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdEXTENDEDNMBR, |
michael@0 | 145 | default>: Use unsigned values for computations and convert to signed |
michael@0 | 146 | as the last step. |
michael@0 | 147 | Use proper types in tracing messages. |
michael@0 | 148 | |
michael@0 | 149 | * src/cff/cffgload.c (cff_decoder_parse_charstrings): Use unsigned |
michael@0 | 150 | values for computation of operands and convert to signed as the last |
michael@0 | 151 | step. |
michael@0 | 152 | Use proper type in tracing message. |
michael@0 | 153 | |
michael@0 | 154 | 2013-05-03 Werner Lemberg <wl@gnu.org> |
michael@0 | 155 | |
michael@0 | 156 | * src/cff/cf2blues.c: Remove dead code. |
michael@0 | 157 | |
michael@0 | 158 | 2013-05-02 Chris Liddell <chris.liddell@artifex.com> |
michael@0 | 159 | |
michael@0 | 160 | * src/cff/cffgload.c: Include FT_CFF_DRIVER_H. |
michael@0 | 161 | |
michael@0 | 162 | 2013-04-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 163 | |
michael@0 | 164 | * docs/CHANGES: Updated. |
michael@0 | 165 | * README: Improved. |
michael@0 | 166 | |
michael@0 | 167 | 2013-04-13 Werner Lemberg <wl@gnu.org> |
michael@0 | 168 | |
michael@0 | 169 | [cff] Add a new Type 2 interpreter and hinter. |
michael@0 | 170 | |
michael@0 | 171 | This work, written by Dave Arnold <darnold@adobe.com> and fully |
michael@0 | 172 | integrated into FreeType by me, is a donation by Adobe in |
michael@0 | 173 | collaboration with Google. It is vastly superior to the old CFF |
michael@0 | 174 | engine, and it will replace it soon. Right now, it is still off by |
michael@0 | 175 | default, and you have to explicitly select it using the new |
michael@0 | 176 | `hinting-engine' property of the cff driver. |
michael@0 | 177 | |
michael@0 | 178 | For convenience, (most of) the new files are committed separately. |
michael@0 | 179 | |
michael@0 | 180 | * include/freetype/config/ftheader.h (FT_CFF_DRIVER_H): New macro. |
michael@0 | 181 | * include/freetype/ftcffdrv.h: New file to access CFF driver |
michael@0 | 182 | properties. |
michael@0 | 183 | * include/freetype/fterrdef.h (FT_Err_Glyph_Too_Big): New error |
michael@0 | 184 | code. |
michael@0 | 185 | * include/freetype/internal/fttrace.h: Add `cf2blues', `cf2hints', |
michael@0 | 186 | and `cf2interp'. |
michael@0 | 187 | |
michael@0 | 188 | * src/cff/cffgload.h (CFF_SubFont): New member `current_subfont'. |
michael@0 | 189 | * src/cff/cffobjs.h (CFF_DriverRec): New members `hinting_engine' |
michael@0 | 190 | and `no_stem_darkening'. |
michael@0 | 191 | * src/cff/cfftypes.h (CFF_FontRec): New member `cf2_instance'. |
michael@0 | 192 | |
michael@0 | 193 | * src/cff/cff.c: Include new files. |
michael@0 | 194 | * src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle |
michael@0 | 195 | `hinting-engine' and `no-stem-darkening' properties (only the Adobe |
michael@0 | 196 | engine listens to them). |
michael@0 | 197 | * src/cff/cffgload.c: Include `cf2ft.h'. |
michael@0 | 198 | (cff_decoder_prepare): Initialize `current_subfont'. |
michael@0 | 199 | (cff_build_add_point): Handle Adobe engine which uses 16.16 |
michael@0 | 200 | coordinates. |
michael@0 | 201 | (cff_slot_load): Handle FT_LOAD_NO_SCALE and FT_LOAD_NO_HINTING |
michael@0 | 202 | separately. |
michael@0 | 203 | Choose rendering engine based on `hinting_engine' property. |
michael@0 | 204 | * src/cff/cffload.c (cff_font_done): Call finalizer of the Adobe |
michael@0 | 205 | engine. |
michael@0 | 206 | * src/cff/cffobjs.c: Include FT_CFF_DRIVER_H. |
michael@0 | 207 | (cff_driver_init): Set default property values. |
michael@0 | 208 | |
michael@0 | 209 | * src/cff/rules.mk (CFF_DRV_SRC, CFF_DRV_H): Add new files. |
michael@0 | 210 | |
michael@0 | 211 | * src/cff/cf2*.*: New files, containing the Adobe engine. |
michael@0 | 212 | |
michael@0 | 213 | 2013-04-12 Werner Lemberg <wl@gnu.org> |
michael@0 | 214 | |
michael@0 | 215 | [cff] Minor code administration issues. |
michael@0 | 216 | |
michael@0 | 217 | * src/cff/cffgload.c (check_points): Rename to... |
michael@0 | 218 | (cff_check_points): ...this and make it FT_LOCAL. |
michael@0 | 219 | (cff_builder_add_point, cff_builder_add_point1, |
michael@0 | 220 | cff_builder_start_point, cff_builder_close_contour, |
michael@0 | 221 | cff_lookup_glyph_by_stdcharcode, cff_get_glyph_data, |
michael@0 | 222 | cff_free_glyph_data): Make them FT_LOCAL. |
michael@0 | 223 | |
michael@0 | 224 | * src/cff/cffgload.h: Updated. |
michael@0 | 225 | |
michael@0 | 226 | 2013-04-12 Werner Lemberg <wl@gnu.org> |
michael@0 | 227 | |
michael@0 | 228 | Add output bitmap checksums. |
michael@0 | 229 | |
michael@0 | 230 | Use `FT2_DEBUG=bitmap:3' for tracing. |
michael@0 | 231 | |
michael@0 | 232 | * src/base/md5.c, src/base/md5.h: New files, taken from |
michael@0 | 233 | |
michael@0 | 234 | http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5 |
michael@0 | 235 | |
michael@0 | 236 | * include/freetype/internal/fttrace.h: Add `bitmap'. |
michael@0 | 237 | |
michael@0 | 238 | * src/base/ftobjs.c [FT_DEBUG_LEVEL_TRACE]: Include `md5.c' |
michael@0 | 239 | |
michael@0 | 240 | (FT_Render_Glyph_Internal) [FT_DEBUG_LEVEL_TRACE]: For tracing, |
michael@0 | 241 | convert resulting bitmap to a uniform format and compute a checksum. |
michael@0 | 242 | Use `bitmap' category for the tracing message. |
michael@0 | 243 | |
michael@0 | 244 | * src/base/rules.mk (BASE_H): Updated. |
michael@0 | 245 | |
michael@0 | 246 | * docs/LICENSE.TXT: Updated. |
michael@0 | 247 | |
michael@0 | 248 | 2013-04-12 Werner Lemberg <wl@gnu.org> |
michael@0 | 249 | |
michael@0 | 250 | [cff] Add framework for CFF properties. |
michael@0 | 251 | |
michael@0 | 252 | * include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC7): |
michael@0 | 253 | New macro. |
michael@0 | 254 | |
michael@0 | 255 | * src/cff/cffdrivr.c: Include FT_SERVICE_PROPERTIES_H. |
michael@0 | 256 | (cff_property_set, cff_property_get): New functions, still empty. |
michael@0 | 257 | Define `cff_service_properties' service. |
michael@0 | 258 | Update `cff_services'. |
michael@0 | 259 | |
michael@0 | 260 | * src/cff/cffpic.h: Include FT_SERVICE_PROPERTIES_H. |
michael@0 | 261 | (CFF_SERVICE_PROPERTIES_GET): New macro. |
michael@0 | 262 | (CffModulePIC): Add `cff_service_properties'. |
michael@0 | 263 | |
michael@0 | 264 | 2013-04-03 Werner Lemberg <wl@gnu.org> |
michael@0 | 265 | |
michael@0 | 266 | [bdf] Fix Savannah bug #38589. |
michael@0 | 267 | |
michael@0 | 268 | * src/bdf/bdflib.c (_bdf_readstream): Thinko. |
michael@0 | 269 | |
michael@0 | 270 | 2013-03-31 Werner Lemberg <wl@gnu.org> |
michael@0 | 271 | |
michael@0 | 272 | * configure: Use egrep, not grep. |
michael@0 | 273 | |
michael@0 | 274 | Problem reported Mojca Miklavec <mojca.miklavec.lists@gmail.com>. |
michael@0 | 275 | |
michael@0 | 276 | 2013-03-29 Werner Lemberg <wl@gnu.org> |
michael@0 | 277 | |
michael@0 | 278 | * include/freetype/ftlcdfil.h: Add description of color filtering. |
michael@0 | 279 | |
michael@0 | 280 | Based on a contribution from Antti S. Lankila <alankila@bel.fi> |
michael@0 | 281 | (Savannah bug #38607). |
michael@0 | 282 | |
michael@0 | 283 | 2013-03-23 Werner Lemberg <wl@gnu.org> |
michael@0 | 284 | |
michael@0 | 285 | [autofit] Minor. |
michael@0 | 286 | |
michael@0 | 287 | * src/autofit/afmodule.c (af_property_set): Typo. |
michael@0 | 288 | (af_autofitter_init, af_autofitter_done): Use cast. |
michael@0 | 289 | |
michael@0 | 290 | 2013-03-21 Werner Lemberg <wl@gnu.org> |
michael@0 | 291 | |
michael@0 | 292 | * configure: Automatically test for `gmake' also. |
michael@0 | 293 | |
michael@0 | 294 | Suggested by Mojca Miklavec <mojca.miklavec.lists@gmail.com>. |
michael@0 | 295 | |
michael@0 | 296 | 2013-03-21 Peter Breitenlohner <peb@mppmu.mpg.de> |
michael@0 | 297 | |
michael@0 | 298 | Respect CONFIG_SHELL from the environment. |
michael@0 | 299 | |
michael@0 | 300 | Some large packages using FreeType have to use a broken (deficient) |
michael@0 | 301 | /bin/sh. The configure scripts (as generated by Autoconf) are |
michael@0 | 302 | clever enough to find a better shell and put that one into the |
michael@0 | 303 | environment variable CONFIG_SHELL. If that environment variable is |
michael@0 | 304 | already set the script skips the test and assumes to be already |
michael@0 | 305 | running under a good shell. |
michael@0 | 306 | |
michael@0 | 307 | * builds/unix/detect.mk: Honour CONFIG_SHELL. |
michael@0 | 308 | * builds/unix/unix-def.in (SHELL): Define. |
michael@0 | 309 | |
michael@0 | 310 | 2013-03-21 Werner Lemberg <wl@gnu.org> |
michael@0 | 311 | |
michael@0 | 312 | Fix Savannah patch #7971. |
michael@0 | 313 | |
michael@0 | 314 | * configure: Handle MAKE environment variable also. |
michael@0 | 315 | |
michael@0 | 316 | 2013-03-17 Werner Lemberg <wl@gnu.org> |
michael@0 | 317 | |
michael@0 | 318 | Fix Savannah bug #38538. |
michael@0 | 319 | |
michael@0 | 320 | * builds/amiga/src/base/ftdebug.c, builds/win32/ftdebug.c, |
michael@0 | 321 | builds/wince/ftdebug.c (FT_Throw): Add function. |
michael@0 | 322 | |
michael@0 | 323 | 2013-03-17 Werner Lemberg <wl@gnu.org> |
michael@0 | 324 | |
michael@0 | 325 | [raster] Remove dead code. |
michael@0 | 326 | |
michael@0 | 327 | * src/raster/rastpic.c (ft_raster1_renderer_class_pic_init) |
michael@0 | 328 | src/smooth/ftspic.c (ft_smooth_renderer_class_pic_init): Do it. |
michael@0 | 329 | |
michael@0 | 330 | 2013-03-17 Werner Lemberg <wl@gnu.org> |
michael@0 | 331 | |
michael@0 | 332 | * src/pshinter/pshpic.h (GET_PIC): Use correct container. |
michael@0 | 333 | |
michael@0 | 334 | 2013-03-15 Werner Lemberg <wl@gnu.org> |
michael@0 | 335 | |
michael@0 | 336 | * include/freetype/ftmoderr.h: Fix commit from 2013-03-11. |
michael@0 | 337 | |
michael@0 | 338 | The previous version was not backwards compatible. Reported by |
michael@0 | 339 | Behdad. |
michael@0 | 340 | |
michael@0 | 341 | 2013-03-14 Werner Lemberg <wl@gnu.org> |
michael@0 | 342 | |
michael@0 | 343 | */*: Use FT_ERR_EQ, FT_ERR_NEQ, and FT_ERR where appropriate. |
michael@0 | 344 | |
michael@0 | 345 | FT_Err_XXX and friends are no longer directly used in the source |
michael@0 | 346 | code. |
michael@0 | 347 | |
michael@0 | 348 | 2013-03-14 Werner Lemberg <wl@gnu.org> |
michael@0 | 349 | |
michael@0 | 350 | New error management macros. |
michael@0 | 351 | |
michael@0 | 352 | * include/freetype/fterrors.h (FT_ERR_XCAT, FT_ERR_CAT): Move to... |
michael@0 | 353 | * include/freetype/fttypes.h: ... this file. |
michael@0 | 354 | (FT_ERR, FT_ERR_EQ, FT_ERR_NEQ, FT_MODERR_EQ, FT_MODERR_NEQ): New |
michael@0 | 355 | macros. |
michael@0 | 356 | |
michael@0 | 357 | * include/freetype/freetype.h: Updated. |
michael@0 | 358 | |
michael@0 | 359 | 2013-03-14 Werner Lemberg <wl@gnu.org> |
michael@0 | 360 | |
michael@0 | 361 | */*: Use FT_Err_Ok only. |
michael@0 | 362 | |
michael@0 | 363 | This is a purely mechanical conversion. |
michael@0 | 364 | |
michael@0 | 365 | 2013-03-14 Werner Lemberg <wl@gnu.org> |
michael@0 | 366 | |
michael@0 | 367 | */*: Use `FT_THROW'. |
michael@0 | 368 | |
michael@0 | 369 | This is essentially a mechanical conversion, adding inclusion of |
michael@0 | 370 | `FT_INTERNAL_DEBUG_H' where necessary, and providing the macros for |
michael@0 | 371 | stand-alone compiling modes of the rasterizer modules. |
michael@0 | 372 | |
michael@0 | 373 | To convert the remaining occurrences of FT_Err_XXX and friends it is |
michael@0 | 374 | necessary to rewrite the code. Note, however, that it doesn't harm |
michael@0 | 375 | if some cases are not handled since FT_THROW is a no-op. |
michael@0 | 376 | |
michael@0 | 377 | 2013-03-13 Werner Lemberg <wl@gnu.org> |
michael@0 | 378 | |
michael@0 | 379 | Introduce `FT_THROW' macro. |
michael@0 | 380 | |
michael@0 | 381 | The idea is to replace code like |
michael@0 | 382 | |
michael@0 | 383 | return FT_Err_Foo_Bar; |
michael@0 | 384 | |
michael@0 | 385 | or |
michael@0 | 386 | |
michael@0 | 387 | return CFF_Err_Foo_Bar; |
michael@0 | 388 | |
michael@0 | 389 | with |
michael@0 | 390 | |
michael@0 | 391 | return FT_THROW( Foo_Bar ); |
michael@0 | 392 | |
michael@0 | 393 | The FT_THROW macro has two functions: |
michael@0 | 394 | |
michael@0 | 395 | . It hides the module specific prefix. |
michael@0 | 396 | |
michael@0 | 397 | . In debug mode, it calls the empty function `FT_Throw' which can |
michael@0 | 398 | be thus used to set a breakpoint. |
michael@0 | 399 | |
michael@0 | 400 | * include/freetype/internal/ftdebug.h (FT_THROW): New macro. |
michael@0 | 401 | (FT_Throw): New prototype. |
michael@0 | 402 | * src/base/ftdebug.c (FT_Throw): New function. |
michael@0 | 403 | |
michael@0 | 404 | 2013-03-12 Werner Lemberg <wl@gnu.org> |
michael@0 | 405 | |
michael@0 | 406 | Remove `FT_KEEP_ERR_PREFIX'. |
michael@0 | 407 | |
michael@0 | 408 | The idea is to always have FT_ERR_PREFIX available internally. |
michael@0 | 409 | |
michael@0 | 410 | * include/freetype/fterrors.h: Use FT2_BUILD_LIBRARY to guard |
michael@0 | 411 | undefinition of FT_ERR_PREFIX |
michael@0 | 412 | |
michael@0 | 413 | * src/gxvalid/gxverror.h, src/otvalid/otverror.h, |
michael@0 | 414 | src/sfnt/sferrors.h: Updated. |
michael@0 | 415 | |
michael@0 | 416 | 2013-03-11 Werner Lemberg <wl@gnu.org> |
michael@0 | 417 | |
michael@0 | 418 | [gxvalid] Fix module error. |
michael@0 | 419 | |
michael@0 | 420 | * src/gxvalid/gxverror.h (FT_ERR_BASE): Define as |
michael@0 | 421 | FT_Mod_Err_GXvalid. |
michael@0 | 422 | * include/freetype/ftmoderr.h: Add module error for `GXvalid'. |
michael@0 | 423 | |
michael@0 | 424 | 2013-03-11 Werner Lemberg <wl@gnu.org> |
michael@0 | 425 | |
michael@0 | 426 | Always use module related error codes. |
michael@0 | 427 | |
michael@0 | 428 | * src/cff/cffobjs.c (cff_face_init), src/type1/t1objs.c |
michael@0 | 429 | (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Use |
michael@0 | 430 | `FT_ERROR_BASE'. |
michael@0 | 431 | |
michael@0 | 432 | * src/type1/t1load.c (parse_encoding): Use |
michael@0 | 433 | T1_Err_Unknown_File_Format. |
michael@0 | 434 | |
michael@0 | 435 | 2013-03-08 Werner Lemberg <wl@gnu.org> |
michael@0 | 436 | |
michael@0 | 437 | [cff] Set `linear{Hori,Vert}Advance' for embedded bitmaps also. |
michael@0 | 438 | |
michael@0 | 439 | Problem reported by Khaled Hosny <khaledhosny@eglug.org>. |
michael@0 | 440 | |
michael@0 | 441 | * src/cff/cffgload.c (cff_slot_load): Implement it. |
michael@0 | 442 | |
michael@0 | 443 | 2013-02-23 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 444 | |
michael@0 | 445 | [base] Fix commit ab02d9e8. |
michael@0 | 446 | |
michael@0 | 447 | * src/base/ftbbox.c (BBox_Cubic_Check): Change scaling to msb of 22. |
michael@0 | 448 | |
michael@0 | 449 | 2013-02-19 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 450 | |
michael@0 | 451 | [base] New bisecting BBox_Cubic_Check (disabled). |
michael@0 | 452 | |
michael@0 | 453 | * src/base/ftbbox.c (BBox_Cubic_Check): New bisecting algorithm |
michael@0 | 454 | for extremum search built around simple condition that defines |
michael@0 | 455 | which half contains the extremum. |
michael@0 | 456 | |
michael@0 | 457 | 2013-02-18 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 458 | |
michael@0 | 459 | [tools] Update BBox testing tool. |
michael@0 | 460 | |
michael@0 | 461 | * src/tools/test_bbox.c: Add another cubic outline with exact BBox. |
michael@0 | 462 | (REPEAT): Increase the number of benchmarking cycles. |
michael@0 | 463 | (profile_outline): Tweak output formatting. |
michael@0 | 464 | |
michael@0 | 465 | 2013-02-02 Werner Lemberg <wl@gnu.org> |
michael@0 | 466 | |
michael@0 | 467 | Fix Savannah bug #38235. |
michael@0 | 468 | |
michael@0 | 469 | * builds/unix/configure.raw: Don't generate `freetype-config' and |
michael@0 | 470 | `freetype.pc'. |
michael@0 | 471 | |
michael@0 | 472 | * builds/unix/unix-def.in (FT2_EXTRA_LIBS, LIBBZ2, LIBZ, |
michael@0 | 473 | build_libtool_libs, ft_version): New variables to be substituted. |
michael@0 | 474 | (freetype-config, freetype.pc): New rules to generate those files. |
michael@0 | 475 | |
michael@0 | 476 | * builds/unix/freetype-config.in: Remove code for handling `rpath'. |
michael@0 | 477 | The use of $rpath has been accidentally removed in a patch from |
michael@0 | 478 | 2009-12-22, and apparently noone has missed it since. |
michael@0 | 479 | Use `%' instead of `@' as a variable substitution marker. |
michael@0 | 480 | Use quotes. |
michael@0 | 481 | |
michael@0 | 482 | * builds/unix/freetype.in: Use `%' instead of `@' as a variable |
michael@0 | 483 | substitution marker. |
michael@0 | 484 | Use quotes. |
michael@0 | 485 | |
michael@0 | 486 | 2013-02-07 Werner Lemberg <wl@gnu.org> |
michael@0 | 487 | |
michael@0 | 488 | * src/truetype/ttobjs.c (tt_size_run_prep): Reset more GS variables. |
michael@0 | 489 | |
michael@0 | 490 | BTW, Greg agrees that the OpenType specification is missing the list |
michael@0 | 491 | of GS variables which will always be reset to the default values |
michael@0 | 492 | after the `prep' table has been executed. |
michael@0 | 493 | |
michael@0 | 494 | 2013-02-06 Werner Lemberg <wl@gnu.org> |
michael@0 | 495 | |
michael@0 | 496 | * src/truetype/ttobjs.c (tt_size_run_prep): Reset reference points. |
michael@0 | 497 | |
michael@0 | 498 | Up to now, we simply took a snapshot of the Graphics State after the |
michael@0 | 499 | `prep' table has been executed, and right before a glyph's bytecode |
michael@0 | 500 | was run it got reloaded. However, as Greg Hitchcock has told us in |
michael@0 | 501 | private communication, reference points get reset to zero in the MS |
michael@0 | 502 | rasterizer and we follow in due course. While reasonable, this is |
michael@0 | 503 | undocumented behaviour. |
michael@0 | 504 | |
michael@0 | 505 | Most notably, this fixes the rendering of Arial's `x' glyph in |
michael@0 | 506 | subpixel hinting mode. |
michael@0 | 507 | |
michael@0 | 508 | 2013-02-05 Werner Lemberg <wl@gnu.org> |
michael@0 | 509 | |
michael@0 | 510 | [truetype] A better fix for Savannah bug #38211. |
michael@0 | 511 | |
michael@0 | 512 | * src/truetype/ttinterp.c (Ins_IP): Implement identical behaviour to |
michael@0 | 513 | MS rasterizer if rp1 == rp2 (confirmed by Greg Hitchcock). |
michael@0 | 514 | |
michael@0 | 515 | 2013-02-01 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 516 | |
michael@0 | 517 | [pcf] Streamline parsing of PCF encoding table. |
michael@0 | 518 | |
michael@0 | 519 | * src/pcf/pcfread.c (pcf_get_encodings): Use simpler double for-loop. |
michael@0 | 520 | Reallocate array instead of using temporary storage. |
michael@0 | 521 | |
michael@0 | 522 | 2013-02-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 523 | |
michael@0 | 524 | Fix Savannah bug #38227. |
michael@0 | 525 | |
michael@0 | 526 | * builds/unix/freetype-config.in: Set LC_ALL. |
michael@0 | 527 | |
michael@0 | 528 | 2013-02-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 529 | |
michael@0 | 530 | Fix Savannah bug #38221. |
michael@0 | 531 | |
michael@0 | 532 | This complements commit 83c0ebab. |
michael@0 | 533 | |
michael@0 | 534 | * src/base/ftcalc.c (FT_MulDiv_No_Round): Don't enclose with |
michael@0 | 535 | `TT_USE_BYTECODE_INTERPRETER'. |
michael@0 | 536 | |
michael@0 | 537 | 2013-02-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 538 | |
michael@0 | 539 | [truetype] Fix Savannah bug #38211. |
michael@0 | 540 | |
michael@0 | 541 | * src/truetype/ttinterp.c (Ins_IP): Make FreeType behave identical |
michael@0 | 542 | to other interpreters if rp1 == rp2 (which is invalid). |
michael@0 | 543 | |
michael@0 | 544 | 2013-01-28 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 545 | |
michael@0 | 546 | [base] Small optimization of BBox calculation. |
michael@0 | 547 | |
michael@0 | 548 | * src/base/ftbbox.c (BBox_Cubic_Check): Use FT_MSB function in |
michael@0 | 549 | scaling algorithm. |
michael@0 | 550 | |
michael@0 | 551 | 2013-01-26 Infinality <infinality@infinality.net> |
michael@0 | 552 | |
michael@0 | 553 | [truetype] Minor formatting fix. |
michael@0 | 554 | |
michael@0 | 555 | * src/truetype/ttinterp.c: Updated. |
michael@0 | 556 | (DO_RS): Fix indentation. |
michael@0 | 557 | |
michael@0 | 558 | 2013-01-26 Infinality <infinality@infinality.net> |
michael@0 | 559 | |
michael@0 | 560 | [truetype] Fix rasterizer_version logic in sph. |
michael@0 | 561 | |
michael@0 | 562 | * src/truetype/ttsubpix.c: Updated. |
michael@0 | 563 | (ALWAYS_SKIP_DELTAP_Rules): Remove rule for Trebuchet MS. |
michael@0 | 564 | (sph_set_tweaks): Fix `rasterizer_version' logic. |
michael@0 | 565 | |
michael@0 | 566 | 2013-01-26 Infinality <infinality@infinality.net> |
michael@0 | 567 | |
michael@0 | 568 | [truetype] Align more to ClearType whitepaper for sph. |
michael@0 | 569 | |
michael@0 | 570 | * include/freetype/internal/tttypes.h (TT_FaceRec): Add flags |
michael@0 | 571 | for detected opcode patterns and compatibility mode. |
michael@0 | 572 | |
michael@0 | 573 | * src/truetype/ttgload.c (tt_loader_init): Complete conditional. |
michael@0 | 574 | |
michael@0 | 575 | * src/truetype/ttinterp.c: Updated. |
michael@0 | 576 | Remove SPH_DEBUG and replace with FT_TRACE7. |
michael@0 | 577 | (DO_RS): More conditions. |
michael@0 | 578 | (Ins_FDEF): Add more opcode detection patterns. |
michael@0 | 579 | More specific conditions when flagging an fdef. |
michael@0 | 580 | Make compatibility mode only turn on when delta fdefs are found. |
michael@0 | 581 | (Ins_CALL, Ins_LOOPCALL): Set flags for currently executed fdef. |
michael@0 | 582 | (Ins_SHPIX): Remove logic to handle ttfautohinted fonts. |
michael@0 | 583 | Simplify conditionals where possible. |
michael@0 | 584 | Use `&' instead of `%' operator for dumb compilers. |
michael@0 | 585 | (Ins_MIAP): Adjust twilight zone conditional. |
michael@0 | 586 | Ensure `ignore_x_mode' is on when testing sph conditionals. |
michael@0 | 587 | (Ins_MIRP): Ensure `ignore_x_mode' is on when testing sph |
michael@0 | 588 | conditionals. |
michael@0 | 589 | Do cvt cutin always when `ignore_x_mode' is active. |
michael@0 | 590 | Remove test for ttfautohinted fonts. |
michael@0 | 591 | (Ins_DELTAP): Ensure `ignore_x_mode' is on when testing sph |
michael@0 | 592 | conditionals. |
michael@0 | 593 | Do cvt cutin always when `ignore_x_mode' is active. |
michael@0 | 594 | Remove test for ttfautohinted fonts. |
michael@0 | 595 | Use `&' instead of `%' operator for dumb compilers. |
michael@0 | 596 | (Ins_GETINFO): Remove SPH_DEBUG and replace with FT_TRACE7. |
michael@0 | 597 | |
michael@0 | 598 | * src/truetype/ttinterp.h: Updated. |
michael@0 | 599 | (TT_ExecContextRec): Remove compatibility_mode variable. |
michael@0 | 600 | Add variable to indicate when executing in special fdefs for sph. |
michael@0 | 601 | |
michael@0 | 602 | * src/truetype/ttobjs.h: Updated. |
michael@0 | 603 | (TT_DefRecord): Add flags to identify special fdefs for sph. |
michael@0 | 604 | (TT_SizeRec): Remove unnecessary ttfautohinted variable. |
michael@0 | 605 | |
michael@0 | 606 | * src/truetype/ttsubpix.c: Updated. |
michael@0 | 607 | (COMPATIBILITY_MODE_Rules): Remove all. Auto-detected now. |
michael@0 | 608 | (PIXEL_HINTING_Rules): Remove all. Unnecessary after fixes. |
michael@0 | 609 | (SKIP_NONPIXEL_Y_MOVES_Rules): Remove Ubuntu. |
michael@0 | 610 | (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Arial Bold `N'. |
michael@0 | 611 | (SKIP_OFFPIXEL_Y_MOVES_Rules): Remove all. Happens automatically |
michael@0 | 612 | now. |
michael@0 | 613 | (ROUND_NONPIXEL_Y_MOVES_Rules): Remove Ubuntu. |
michael@0 | 614 | (ROUND_NONPIXEL_Y_MOVES_Rules_Exceptions): Remove all. |
michael@0 | 615 | (NORMAL_ROUND_Rules): Remove Verdana. |
michael@0 | 616 | (NO_DELTAP_AFTER_IUP_Rules): Remove all. |
michael@0 | 617 | (sph_set_tweaks): Performance fix. Don't run prep always. |
michael@0 | 618 | Adjust conditional for sph_compatibility_mode. |
michael@0 | 619 | |
michael@0 | 620 | * src/truetype/ttsubpix.h: Add new fdef flags for sph. |
michael@0 | 621 | |
michael@0 | 622 | 2013-01-23 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 623 | |
michael@0 | 624 | [base] Fix broken emboldening at small sizes. |
michael@0 | 625 | |
michael@0 | 626 | * src/base/ftoutln.c (FT_Outline_EmboldenXY): Do not attempt to |
michael@0 | 627 | normalize zero-length vectors. |
michael@0 | 628 | |
michael@0 | 629 | 2013-01-25 Werner Lemberg <wl@gnu.org> |
michael@0 | 630 | |
michael@0 | 631 | Fix Savannah bug #38167. |
michael@0 | 632 | |
michael@0 | 633 | This fixes commit 83c0ebab from 2012-06-27. |
michael@0 | 634 | |
michael@0 | 635 | * src/truetype/ttinterp.h: |
michael@0 | 636 | s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/. |
michael@0 | 637 | |
michael@0 | 638 | 2013-01-25 Xi Wang <xi.wang@gmail.com> |
michael@0 | 639 | |
michael@0 | 640 | [sfnt] Fix broken pointer overflow checks. |
michael@0 | 641 | |
michael@0 | 642 | Many compilers such as gcc and clang optimize away pointer overflow |
michael@0 | 643 | checks `p + n < p', because pointer overflow is undefined behavior. |
michael@0 | 644 | Use a safe form `n > p_limit - p' instead. |
michael@0 | 645 | |
michael@0 | 646 | Also avoid possible integer overflow issues, for example, using |
michael@0 | 647 | `num_glyphs > ( p_limit - p ) / 2' rather than `num_glyphs * 2' |
michael@0 | 648 | given a large `num_glyphs'. |
michael@0 | 649 | |
michael@0 | 650 | * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Implement it. |
michael@0 | 651 | |
michael@0 | 652 | 2013-01-25 Werner Lemberg <wl@gnu.org> |
michael@0 | 653 | |
michael@0 | 654 | [base] Fix `make multi'. |
michael@0 | 655 | |
michael@0 | 656 | * src/base/ftoutln.c, src/base/fttrigon.c: Include |
michael@0 | 657 | FT_INTERNAL_CALC_H. |
michael@0 | 658 | |
michael@0 | 659 | 2013-01-25 David 'Digit' Turner <digit@google.com> |
michael@0 | 660 | |
michael@0 | 661 | [truetype] Fix C++ compilation. |
michael@0 | 662 | |
michael@0 | 663 | * src/truetype/ttsubpix.h: Updated. |
michael@0 | 664 | (SPH_X_SCALING_RULES_SIZE): Moved and renamed to... |
michael@0 | 665 | * src/truetype/ttsubpix.c (X_SCALING_RULES_SIZE): This. |
michael@0 | 666 | (sph_X_SCALING_Rules): Removed. |
michael@0 | 667 | (scale_test_tweak): Make function static. |
michael@0 | 668 | (sph_test_tweak_x_scaling): New function. |
michael@0 | 669 | |
michael@0 | 670 | * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Updated. |
michael@0 | 671 | |
michael@0 | 672 | 2013-01-23 Werner Lemberg <wl@gnu.org> |
michael@0 | 673 | |
michael@0 | 674 | [base] Make `FT_Hypot' really internal. |
michael@0 | 675 | |
michael@0 | 676 | * include/freetype/fttrigon.h (FT_Hypot): Move to... |
michael@0 | 677 | * include/freetype/internal/ftcalc.h: This file. |
michael@0 | 678 | |
michael@0 | 679 | * src/base/fttrigon.c (FT_Hypot): Move to... |
michael@0 | 680 | * src/base/ftcalc.c: This file. |
michael@0 | 681 | Include FT_TRIGONOMETRY_H. |
michael@0 | 682 | |
michael@0 | 683 | * src/truetype/ttgload.c: Don't include FT_TRIGONOMETRY_H. |
michael@0 | 684 | |
michael@0 | 685 | 2013-01-23 Werner Lemberg <wl@gnu.org> |
michael@0 | 686 | |
michael@0 | 687 | [truetype] Revert change from 2013-01-22. |
michael@0 | 688 | |
michael@0 | 689 | FreeType's `height' value is the baseline-to-baseline distance... |
michael@0 | 690 | |
michael@0 | 691 | * src/truetype/ttobjs.c (tt_size_reset): Undo. |
michael@0 | 692 | |
michael@0 | 693 | 2013-01-23 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 694 | |
michael@0 | 695 | [base, truetype] New internal `FT_Hypot' function. |
michael@0 | 696 | |
michael@0 | 697 | * include/freetype/fttrigon.h (FT_Hypot): Declare it. |
michael@0 | 698 | * src/base/fttrigon.c (FT_Hypot): Define it. |
michael@0 | 699 | * src/truetype/ttgload.c (TT_Process_Composite_Component): Use it |
michael@0 | 700 | instead of explicit expressions. |
michael@0 | 701 | * src/truetype/ttinterp.c (Current_Ratio, Normalize): Use it instead |
michael@0 | 702 | of TT_VecLen. |
michael@0 | 703 | (TT_VecLen): Removed. |
michael@0 | 704 | |
michael@0 | 705 | 2013-01-23 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 706 | |
michael@0 | 707 | [base] Fix integer overflow. |
michael@0 | 708 | |
michael@0 | 709 | * src/base/ftoutln.c (FT_Outline_EmboldenXY): Normalize incoming and |
michael@0 | 710 | outgoing vectors and use fixed point arithmetic. |
michael@0 | 711 | |
michael@0 | 712 | 2013-01-23 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 713 | |
michael@0 | 714 | [base] Fix integer overflow. |
michael@0 | 715 | |
michael@0 | 716 | * src/base/ftoutln.c (FT_Outline_Get_Orientation): Scale the |
michael@0 | 717 | coordinates down to avoid overflow. |
michael@0 | 718 | |
michael@0 | 719 | 2013-01-23 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 720 | |
michael@0 | 721 | [base] Split out MSB function. |
michael@0 | 722 | |
michael@0 | 723 | * src/base/fttrigon.c (ft_trig_prenorm): Borrow from here. |
michael@0 | 724 | * include/freetype/internal/ftcalc.h (FT_MSB): Declare here. |
michael@0 | 725 | * src/base/ftcalc.c (FT_MSB): Define here. |
michael@0 | 726 | |
michael@0 | 727 | 2013-01-22 Werner Lemberg <wl@gnu.org> |
michael@0 | 728 | |
michael@0 | 729 | [truetype] Fix font height. |
michael@0 | 730 | |
michael@0 | 731 | * src/truetype/ttobjs.c (tt_size_reset): The Windows rendering |
michael@0 | 732 | engine uses rounded values of the ascender and descender to compute |
michael@0 | 733 | the TrueType font height. |
michael@0 | 734 | |
michael@0 | 735 | 2013-01-16 Behdad Esfahbod <behdad@behdad.org> |
michael@0 | 736 | |
michael@0 | 737 | [sfnt] Fix optimized sbit loader. |
michael@0 | 738 | |
michael@0 | 739 | It was not taking bit_depth into consideration when blitting! |
michael@0 | 740 | |
michael@0 | 741 | * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_byte_aligned, |
michael@0 | 742 | * tt_sbit_decoder_load_bit_aligned): Handle bit |
michael@0 | 743 | depth. |
michael@0 | 744 | |
michael@0 | 745 | 2013-01-16 David 'Digit' Turner <digit@google.com> |
michael@0 | 746 | |
michael@0 | 747 | [truetype] Improve sub-pixel code. |
michael@0 | 748 | |
michael@0 | 749 | This patches fixes many issues with the ttsubpix implementation. |
michael@0 | 750 | |
michael@0 | 751 | 1. Data tables are defined, instead of declared, in the header, and |
michael@0 | 752 | thus copied into each source file that includes it. |
michael@0 | 753 | |
michael@0 | 754 | 2. These tables were defined as global, mutable, visible variables, |
michael@0 | 755 | and thus costing private RAM to every process that loads the |
michael@0 | 756 | library (> 50 KB / process, this is huge!). |
michael@0 | 757 | |
michael@0 | 758 | Additionally, this also made the library export the symbols |
michael@0 | 759 | completely needlessly. |
michael@0 | 760 | |
michael@0 | 761 | 3. Missing `sph_' and `SPH_' prefixes to some of the definitions. |
michael@0 | 762 | |
michael@0 | 763 | Note that this doesn't try to fix the incredibly inefficient storage |
michael@0 | 764 | format for the data tables used by the code. This one will require |
michael@0 | 765 | another pass in the future. |
michael@0 | 766 | |
michael@0 | 767 | * src/truetype/ttinterp.h (MAX_NAME_SIZE, MAX_CLASS_MEMBERS): |
michael@0 | 768 | Renamed to... |
michael@0 | 769 | (SPH_MAX_NAME_SIZE, SPH_MAX_CLASS_MEMBERS): This. |
michael@0 | 770 | Update all users. |
michael@0 | 771 | |
michael@0 | 772 | (SPH_TweakRule, SPH_ScaleRule): Decorate with `const' where |
michael@0 | 773 | appropriate. |
michael@0 | 774 | |
michael@0 | 775 | (Font_Class): Rename to... |
michael@0 | 776 | (SPH_Font_Class): This. Decorate with `const' where appropriate. |
michael@0 | 777 | |
michael@0 | 778 | * src/truetype/ttsubpix.h (scale_test_tweak, sph_test_tweak): |
michael@0 | 779 | Decorate arguments with `const' where appropriate. |
michael@0 | 780 | |
michael@0 | 781 | Move font tweaking tables to... |
michael@0 | 782 | |
michael@0 | 783 | * src/truetype/ttsubpic.c: This file and decorate them with `static' |
michael@0 | 784 | and `const' where appropriate. |
michael@0 | 785 | |
michael@0 | 786 | (X_SCALING_Rules, X_SCALING_RULES_SIZE): Renamed to... |
michael@0 | 787 | (spu_X_SCALING_Rules, SPH_X_SCALING_RULES_SIZE): This. |
michael@0 | 788 | Update all users. |
michael@0 | 789 | |
michael@0 | 790 | 2013-01-12 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 791 | |
michael@0 | 792 | [truetype] Improve accuracy of normalization of short vectors. |
michael@0 | 793 | |
michael@0 | 794 | Unit vector components are stored as 2.14 fixed-point numbers. In |
michael@0 | 795 | order to calculate all 14 bits accurately, a short vector to be |
michael@0 | 796 | normalized has to be upscaled to at least 14 bits before its length |
michael@0 | 797 | is calculated. This has been safe since accurate CORDIC algorithms |
michael@0 | 798 | were adopted. |
michael@0 | 799 | |
michael@0 | 800 | * src/truetype/ttinterp.c (Normalize): Scale short vectors by 0x4000. |
michael@0 | 801 | |
michael@0 | 802 | 2013-01-12 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 803 | |
michael@0 | 804 | [truetype] Kill very old vector normalization hacks. |
michael@0 | 805 | |
michael@0 | 806 | Back in the days, vector length calculations were not very accurate |
michael@0 | 807 | and the vector normalization function, Normalize, had to meticulously |
michael@0 | 808 | correct the errors for long vectors [commit b7ef2b096867]. It was no |
michael@0 | 809 | longer necessary after accurate CORDIC algorithms were adopted, but |
michael@0 | 810 | the code remained. It is time to kill it. |
michael@0 | 811 | |
michael@0 | 812 | * src/truetype/ttinterp.c (Normalize): Remove error compensation. |
michael@0 | 813 | (TT_VecLen): Remove any mention of old less accurate implementation. |
michael@0 | 814 | |
michael@0 | 815 | 2013-01-11 Werner Lemberg <wl@gnu.org> |
michael@0 | 816 | |
michael@0 | 817 | Disable FT_CONFIG_OPTION_OLD_INTERNALS. |
michael@0 | 818 | |
michael@0 | 819 | After the next release we are going to remove the code completely. |
michael@0 | 820 | |
michael@0 | 821 | * devel/ftoption.h, include/freetype/config/ftoption.h |
michael@0 | 822 | (FT_CONFIG_OPTION_OLD_INTERNALS): Comment out. |
michael@0 | 823 | * docs/CHANGES: Document it. |
michael@0 | 824 | |
michael@0 | 825 | 2013-01-10 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 826 | |
michael@0 | 827 | [base] Update the overflow protection bit. |
michael@0 | 828 | |
michael@0 | 829 | The recent optimizations of CORDIC iterations drastically reduce the |
michael@0 | 830 | expansion factor. Vector components with MSB of 29 are now safe |
michael@0 | 831 | from overflow. |
michael@0 | 832 | |
michael@0 | 833 | * src/base/fttrigon.c (FT_TRIG_SAFE_MSB): New macro. |
michael@0 | 834 | (ft_trig_prenorm): Use it and remove dead code. |
michael@0 | 835 | |
michael@0 | 836 | 2013-01-09 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 837 | |
michael@0 | 838 | [base, pshinter] Use FT_ABS, FT_MIN, and FT_MAX for readability. |
michael@0 | 839 | |
michael@0 | 840 | * src/base/ftbbox.c: Updated. |
michael@0 | 841 | * src/base/ftobjs.c: Updated. |
michael@0 | 842 | * src/base/fttrigon.c: Updated. |
michael@0 | 843 | * src/pshinter/pshalgo.c: Updated. |
michael@0 | 844 | * src/pshinter/pshrec.c: Updated. |
michael@0 | 845 | |
michael@0 | 846 | 2013-01-08 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 847 | |
michael@0 | 848 | [base] Clean up trigonometric core. |
michael@0 | 849 | |
michael@0 | 850 | * src/base/fttrigon.c: Document the algorithm in a large comment. |
michael@0 | 851 | (FT_TRIG_COSCALE): Remove macro. |
michael@0 | 852 | (FT_Tan: Use `FT_TRIG_SCALE' instead. |
michael@0 | 853 | (FT_Cos, FT_Vector_Unit): Ditto and round the return values. |
michael@0 | 854 | |
michael@0 | 855 | 2013-01-02 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 856 | |
michael@0 | 857 | [base] Use rounding in CORDIC iterations. |
michael@0 | 858 | |
michael@0 | 859 | * src/base/fttrigon.c (ft_trig_pseudo_rotate, |
michael@0 | 860 | ft_trig_pseudo_polarize): Improve accuracy by rounding. |
michael@0 | 861 | |
michael@0 | 862 | 2013-01-02 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 863 | |
michael@0 | 864 | [base] Reduce trigonometric algorithms. |
michael@0 | 865 | |
michael@0 | 866 | After we get within 45 degrees by means of true 90-degree rotations, |
michael@0 | 867 | we can remove initial 45-degree CORDIC iteration and start from |
michael@0 | 868 | atan(1/2) pseudorotation, reducing expansion factor thereby. |
michael@0 | 869 | |
michael@0 | 870 | * src/base/fttrigon.c (FT_TRIG_SCALE, FT_TRIG_COSCALE): Update macros. |
michael@0 | 871 | (ft_trig_pseudo_rotate, ft_trig_pseudo_polarize): Update. |
michael@0 | 872 | |
michael@0 | 873 | * src/tools/cordic.py: Bring up to date with trigonometric core. |
michael@0 | 874 | |
michael@0 | 875 | * docs/CHANGES: Old typo. |
michael@0 | 876 | |
michael@0 | 877 | 2013-01-02 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 878 | |
michael@0 | 879 | * src/pshinter/pshalgo.h: Remove unused code. |
michael@0 | 880 | |
michael@0 | 881 | 2012-12-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 882 | |
michael@0 | 883 | * src/truetype/ttgload.c (tt_loader_init): Add more tracing. |
michael@0 | 884 | |
michael@0 | 885 | 2012-12-23 Werner Lemberg <wl@gnu.org> |
michael@0 | 886 | |
michael@0 | 887 | [type1] Fix handling of /FontBBox in MM fonts. |
michael@0 | 888 | Problem reported by Del Merritt <del@alum.mit.edu> |
michael@0 | 889 | |
michael@0 | 890 | If we have |
michael@0 | 891 | |
michael@0 | 892 | /FontBBox { { 11 12 13 14 15 16 17 18 } |
michael@0 | 893 | { 21 22 23 24 25 26 27 28 } |
michael@0 | 894 | { 31 32 33 34 35 36 37 38 } |
michael@0 | 895 | { 41 42 43 44 45 46 47 48 } } |
michael@0 | 896 | |
michael@0 | 897 | in the /Blend dictionary, then the first BBox is { 11 21 31 41 }, |
michael@0 | 898 | the second { 12 22 32 42 }, etc. |
michael@0 | 899 | |
michael@0 | 900 | * include/freetype/internal/psaux.h (T1_FieldType): Add |
michael@0 | 901 | `T1_FIELD_TYPE_MM_BBOX' (for temporary use). |
michael@0 | 902 | |
michael@0 | 903 | * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_MM_BBOX>: |
michael@0 | 904 | Implement it. |
michael@0 | 905 | |
michael@0 | 906 | 2012-12-21 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 907 | |
michael@0 | 908 | * src/tools/cordic.py: Bring up to date with trigonometric core. |
michael@0 | 909 | |
michael@0 | 910 | 2012-12-21 Werner Lemberg <wl@gnu.org> |
michael@0 | 911 | |
michael@0 | 912 | Check parameters of `FT_Outline_New'. |
michael@0 | 913 | Problem reported by Robin Watts <robin.watts@artifex.com>. |
michael@0 | 914 | |
michael@0 | 915 | * src/base/ftoutln.c (FT_Outline_New_Internal): Ensure that |
michael@0 | 916 | `numContours' and `numPoints' fit into FT_Outline's `n_points' and |
michael@0 | 917 | `n_contours', respectively. |
michael@0 | 918 | |
michael@0 | 919 | 2012-12-20 Werner Lemberg <wl@gnu.org> |
michael@0 | 920 | |
michael@0 | 921 | * Version 2.4.11 released. |
michael@0 | 922 | ========================== |
michael@0 | 923 | |
michael@0 | 924 | |
michael@0 | 925 | Tag sources with `VER-2-4-11'. |
michael@0 | 926 | |
michael@0 | 927 | * docs/CHANGES, docs/release: Updated. |
michael@0 | 928 | |
michael@0 | 929 | * docs/VERSION.DLL: Update documentation and bump version number to |
michael@0 | 930 | 2.4.11. |
michael@0 | 931 | |
michael@0 | 932 | * README, Jamfile (RefDoc), |
michael@0 | 933 | builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, |
michael@0 | 934 | builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, |
michael@0 | 935 | builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, |
michael@0 | 936 | builds/win32/visualc/freetype.dsp, |
michael@0 | 937 | builds/win32/visualc/freetype.vcproj, |
michael@0 | 938 | builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, |
michael@0 | 939 | builds/win32/visualce/freetype.vcproj, |
michael@0 | 940 | builds/win32/visualce/index.html, |
michael@0 | 941 | builds/wince/vc2005-ce/freetype.vcproj, |
michael@0 | 942 | builds/wince/vc2005-ce/index.html, |
michael@0 | 943 | builds/wince/vc2008-ce/freetype.vcproj, |
michael@0 | 944 | builds/wince/vc2008-ce/index.html: s/2.4.10/2.4.11/, s/2410/2411/. |
michael@0 | 945 | |
michael@0 | 946 | * include/freetype/freetype.h (FREETYPE_PATCH): Set to 11. |
michael@0 | 947 | |
michael@0 | 948 | * builds/unix/configure.raw (version_info): Set to 16:0:10. |
michael@0 | 949 | |
michael@0 | 950 | * builds/toplevel.mk (dist): Don't include `.mailmap'. |
michael@0 | 951 | |
michael@0 | 952 | 2012-12-20 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 953 | |
michael@0 | 954 | [base] Improve trigonometric core. |
michael@0 | 955 | |
michael@0 | 956 | FreeType used to rely on a 24-step iteration CORDIC algorithm to |
michael@0 | 957 | calculate trigonometric functions and rotate vectors. It turns out |
michael@0 | 958 | that once the vector is in the right half-plane, the initial rotation |
michael@0 | 959 | by 63 degrees is not necessary. The algorithm is perfectly capable |
michael@0 | 960 | to converge to any angle starting from the second 45 degree rotation. |
michael@0 | 961 | This patch removes the first rotation and makes it a 23-step CORDIC |
michael@0 | 962 | algorithm. |
michael@0 | 963 | |
michael@0 | 964 | * src/base/fttrigon.c (FT_TRIG_SCALE, FT_TRIG_COSCALE): Update macro |
michael@0 | 965 | values. |
michael@0 | 966 | (ft_trig_pseudo_rotate, ft_trig_pseudo_polarize): Remove initial |
michael@0 | 967 | rotation. |
michael@0 | 968 | |
michael@0 | 969 | 2012-12-19 Werner Lemberg <wl@gnu.org> |
michael@0 | 970 | |
michael@0 | 971 | * src/base/ftobjs.c (ft_property_do): Fix compiler warning. |
michael@0 | 972 | |
michael@0 | 973 | 2012-12-19 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 974 | |
michael@0 | 975 | * src/base/ftrfork.c (FT_Raccess_Guess): Switch to FT_Int counters. |
michael@0 | 976 | |
michael@0 | 977 | 2012-12-19 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 978 | |
michael@0 | 979 | [base] Clean up trigonometric core. |
michael@0 | 980 | |
michael@0 | 981 | * src/base/fttrrigon.c (ft_trig_pseudo_polarize): Align algorithm |
michael@0 | 982 | with `ft_trig_pseudo_rotate'. |
michael@0 | 983 | |
michael@0 | 984 | 2012-12-18 Infinality <infinality@infinality.net> |
michael@0 | 985 | |
michael@0 | 986 | [truetype] Minor performance enhancement. |
michael@0 | 987 | |
michael@0 | 988 | * src/truetype/ttgload.c: (TT_Process_Simple_Glyph): Use FT_MulFix |
michael@0 | 989 | instead of FT_MulDiv. |
michael@0 | 990 | |
michael@0 | 991 | 2012-12-17 Infinality <infinality@infinality.net> |
michael@0 | 992 | |
michael@0 | 993 | [truetype] Remove unusued code and variables. |
michael@0 | 994 | |
michael@0 | 995 | * src/truetype/ttinterp.c: Updated. |
michael@0 | 996 | (Ins_FDEF): Remove opcode patterns that are not being used. |
michael@0 | 997 | |
michael@0 | 998 | 2012-12-16 Werner Lemberg <wl@gnu.org> |
michael@0 | 999 | |
michael@0 | 1000 | Various compiler warning fixes. |
michael@0 | 1001 | |
michael@0 | 1002 | * include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Use |
michael@0 | 1003 | `logical not' operator instead of negation. The idea is that `~' |
michael@0 | 1004 | returns exactly the data type enforced by the cast to a pointer (be |
michael@0 | 1005 | it 32bit or 64bit or whatever), while a negative integer has not |
michael@0 | 1006 | this flexibility. |
michael@0 | 1007 | * src/cache/ftccmap.c (FTC_CMAP_UNKNOWN): Ditto. |
michael@0 | 1008 | * src/truetype/ttgxvar.c (ALL_POINTS, TT_Get_MM_Var): Ditto. |
michael@0 | 1009 | * src/type/t1load.c (T1_Get_MM_Var): Ditto. |
michael@0 | 1010 | (parse_blend_axis_types): Use cast. |
michael@0 | 1011 | * src/bdf/bdflib.c (_bdf_readstream): Use cast. |
michael@0 | 1012 | |
michael@0 | 1013 | 2012-12-16 Infinality <infinality@infinality.net> |
michael@0 | 1014 | |
michael@0 | 1015 | [truetype] Remove unusued code and variables. Add minor fixes. |
michael@0 | 1016 | |
michael@0 | 1017 | * src/truetype/ttsubpix.h: Updated. |
michael@0 | 1018 | (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Trebuchet MS. |
michael@0 | 1019 | (ALLOW_X_DMOVEX_Rules): Remove Arial characters. |
michael@0 | 1020 | (ALLOW_X_DMOVE_Rules): Remove Arial characters. |
michael@0 | 1021 | (RASTERIZER_35_Rules): Verdana no longer needs to be here. |
michael@0 | 1022 | (SKIP_IUP_Rules): Formatting fix. |
michael@0 | 1023 | (DELTAP_SKIP_EXAGGERATED_VALUES_Rules): Remove Segoe UI. |
michael@0 | 1024 | (COMPATIBLE_WIDTHS_Rules): Add Monaco and Trebuchet MS. |
michael@0 | 1025 | (X_SCALING_Rules): Add misc. corrective fixes. |
michael@0 | 1026 | |
michael@0 | 1027 | * src/truetype/ttgload.c: (TT_Process_Simple_Glyph): Adjust correction |
michael@0 | 1028 | factor for emboldening during scaling. |
michael@0 | 1029 | |
michael@0 | 1030 | * src/truetype/ttinterp.h: Updated. |
michael@0 | 1031 | (TT_ExecContextRec): Remove unused variables. |
michael@0 | 1032 | |
michael@0 | 1033 | * src/truetype/ttobjs.h: Updated. |
michael@0 | 1034 | (TT_SizeRec): Add ttfautohinted variable. |
michael@0 | 1035 | |
michael@0 | 1036 | * src/truetype/ttinterp.c: Updated. |
michael@0 | 1037 | (Ins_FDEF): Rework code to fix bugs and add more detection. |
michael@0 | 1038 | (Ins_CALL): Remove unused code. |
michael@0 | 1039 | (Ins_LOOPCALL): Remove unused code. |
michael@0 | 1040 | (TT_RunIns): Remove unusued code. |
michael@0 | 1041 | (Ins_SHPIX): Add logic to handle ttfautohinted fonts. |
michael@0 | 1042 | (Ins_MIRP): Don't round x in cut-in calculation. Add logic to handle |
michael@0 | 1043 | ttfautohinted fonts. |
michael@0 | 1044 | |
michael@0 | 1045 | 2012-12-16 Werner Lemberg <wl@gnu.org> |
michael@0 | 1046 | |
michael@0 | 1047 | [sfnt] Fix Savannah bug #37936. |
michael@0 | 1048 | |
michael@0 | 1049 | * src/sfnt/ttload.c (tt_face_load_gasp): Avoid memory leak. |
michael@0 | 1050 | |
michael@0 | 1051 | 2012-12-15 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 1052 | |
michael@0 | 1053 | [base] Fix 11-year old bug. |
michael@0 | 1054 | |
michael@0 | 1055 | Since the initial commit (ebe85f59) the value of FT_TRIG_SCALE has |
michael@0 | 1056 | always been slightly less than the correct value, which has been |
michael@0 | 1057 | given in the comment as a hexadecimal. As a result, vector lengths |
michael@0 | 1058 | were underestimated and rotated vectors were shortened. |
michael@0 | 1059 | |
michael@0 | 1060 | * src/base/fttrigon.c (FT_TRIG_SCALE): Fix macro value. |
michael@0 | 1061 | |
michael@0 | 1062 | 2012-12-15 Werner Lemberg <wl@gnu.org> |
michael@0 | 1063 | |
michael@0 | 1064 | [bdf] Fix Savannah bug #37907. |
michael@0 | 1065 | |
michael@0 | 1066 | * src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Normalize |
michael@0 | 1067 | negative second parameter of `ENCODING' field also. |
michael@0 | 1068 | |
michael@0 | 1069 | 2012-12-15 Werner Lemberg <wl@gnu.org> |
michael@0 | 1070 | |
michael@0 | 1071 | [bdf] Fix Savannah bug #37906. |
michael@0 | 1072 | |
michael@0 | 1073 | * src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Use correct array |
michael@0 | 1074 | size for checking `glyph_enc'. |
michael@0 | 1075 | |
michael@0 | 1076 | 2012-12-15 Werner Lemberg <wl@gnu.org> |
michael@0 | 1077 | |
michael@0 | 1078 | [bdf] Fix Savannah bug #37905. |
michael@0 | 1079 | |
michael@0 | 1080 | * src/bdf/bdflib.c (_bdf_parse_start) <STARTPROPERTIES>: Reset |
michael@0 | 1081 | `props_size' to zero in case of allocation error; this value gets |
michael@0 | 1082 | used in a loop in `bdf_free_font'. |
michael@0 | 1083 | |
michael@0 | 1084 | 2012-12-10 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 1085 | |
michael@0 | 1086 | [truetype] Scale F_dot_P down. |
michael@0 | 1087 | |
michael@0 | 1088 | The dot product between freeVector and projVector or cosine of |
michael@0 | 1089 | the angle between these FT_F2Dot14 unit vectors used to be scaled up |
michael@0 | 1090 | by 4 and routinely occupied 32 bits in an FT_Long field F_dot_P. |
michael@0 | 1091 | This patch scales the value down by 2^14 instead, which simplifies |
michael@0 | 1092 | its use throughout the bytecode interpreter. |
michael@0 | 1093 | |
michael@0 | 1094 | This does not lead to the loss of precision because the lower bits |
michael@0 | 1095 | are unreliable anyway. Consider two unit vectors (1,0) and (.6,.8) |
michael@0 | 1096 | for which the true value of F_dot_P is .6 * 0x40000000 = 0x26666666. |
michael@0 | 1097 | These vectors are stored as (0x4000,0) and (0x2666,0x3333) after |
michael@0 | 1098 | rounding and F_dot_P is assigned 0x26660000. The lower bits were |
michael@0 | 1099 | already lost while rounding the unit vector components. |
michael@0 | 1100 | |
michael@0 | 1101 | Besides code simplification, this change can lead to better |
michael@0 | 1102 | performance when FT_MulDiv with the scaled-down F_dot_P is less |
michael@0 | 1103 | likely to use the costly 64-bit path. We are not changing the type |
michael@0 | 1104 | of F_dot_P to FT_F2Dot14 at this point. |
michael@0 | 1105 | |
michael@0 | 1106 | * src/truetype/ttinterp.c (Compute_Funcs): Scale F_dot_P down by 14 |
michael@0 | 1107 | bits and modify its use accordingly. |
michael@0 | 1108 | (Direct_Move, Direct_Move_Orig, Compute_Point_Displacement): Modify |
michael@0 | 1109 | the use of F_dot_P field. |
michael@0 | 1110 | * src/truetype/ttobjs.c (tt_size_run_fpgm): Change arbitrary |
michael@0 | 1111 | assignment of F_dot_P to its theoretical maximum in case we decide |
michael@0 | 1112 | to scale back its type later. |
michael@0 | 1113 | |
michael@0 | 1114 | 2012-12-09 Johnson Y. Yan <yinsen_yan@foxitsoftware.com> |
michael@0 | 1115 | |
michael@0 | 1116 | [type1] Another fix for 2012-09-17 commit. |
michael@0 | 1117 | |
michael@0 | 1118 | * src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Correctly set |
michael@0 | 1119 | `limit' value. |
michael@0 | 1120 | |
michael@0 | 1121 | 2012-12-06 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 1122 | |
michael@0 | 1123 | [truetype] Tweak the previous commit. |
michael@0 | 1124 | |
michael@0 | 1125 | * src/truetype/ttinterp.c (Current_Ratio): Put unit vector |
michael@0 | 1126 | components as the second TT_MulFix14 arguments. This is required |
michael@0 | 1127 | on 16-bit systems. |
michael@0 | 1128 | |
michael@0 | 1129 | 2012-12-06 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 1130 | |
michael@0 | 1131 | [truetype] Microoptimizations in bytecode interpreter. |
michael@0 | 1132 | |
michael@0 | 1133 | * src/truetype/ttinterp.c (TT_DivFix14): New macro. |
michael@0 | 1134 | (Normalize): Use it here. |
michael@0 | 1135 | (Current_Ratio): Use TT_MulFix14 instead of FT_MulDiv. |
michael@0 | 1136 | (Ins_SHPIX): Cancel out two TT_MulFix14 calls. |
michael@0 | 1137 | |
michael@0 | 1138 | 2012-12-05 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 1139 | |
michael@0 | 1140 | [truetype] Cosmetic improvement in bytecode interpreter. |
michael@0 | 1141 | |
michael@0 | 1142 | * src/truetype/ttinterp.c: Use explicit calls to FT_MulDiv, |
michael@0 | 1143 | FT_MulFix, and FT_DivFix instead of macros. |
michael@0 | 1144 | |
michael@0 | 1145 | 2012-12-03 John Tytgat <John.Tytgat@esko.com> |
michael@0 | 1146 | |
michael@0 | 1147 | [pshinter] Clamp BlueScale value. |
michael@0 | 1148 | |
michael@0 | 1149 | This is Savannah bug #37856. |
michael@0 | 1150 | |
michael@0 | 1151 | * src/pshinter/pshglob.c (psh_calc_max_height): New function. |
michael@0 | 1152 | (psh_globals_new): Use it to limit BlueScale value to |
michael@0 | 1153 | `1 / max_of_blue_zone_heights'. |
michael@0 | 1154 | |
michael@0 | 1155 | 2012-12-01 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 1156 | |
michael@0 | 1157 | [truetype, type1] Revise the use of FT_MulDiv. |
michael@0 | 1158 | |
michael@0 | 1159 | * src/truetype/ttgxvar.c: Updated. |
michael@0 | 1160 | * src/truetype/ttobjs.c: Updated. |
michael@0 | 1161 | * src/type1/t1load.c: Updated. |
michael@0 | 1162 | |
michael@0 | 1163 | 2012-11-30 Werner Lemberg <wl@gnu.org> |
michael@0 | 1164 | |
michael@0 | 1165 | [configure] Preserve customized `ftoption.h'. |
michael@0 | 1166 | |
michael@0 | 1167 | Problem reported by Del Merritt <del@alum.mit.edu>. |
michael@0 | 1168 | |
michael@0 | 1169 | * builds/unix/configure.raw <cpp computation of bit length>: Don't |
michael@0 | 1170 | remove existing FreeType configuration files. |
michael@0 | 1171 | |
michael@0 | 1172 | 2012-11-29 John Tytgat <John.Tytgat@esko.com> |
michael@0 | 1173 | |
michael@0 | 1174 | [type1] Fix Savannah bug #37831. |
michael@0 | 1175 | |
michael@0 | 1176 | The bug report also contains a patch. |
michael@0 | 1177 | |
michael@0 | 1178 | * src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Really fix |
michael@0 | 1179 | change from 2012-09-17. |
michael@0 | 1180 | |
michael@0 | 1181 | 2012-11-28 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 1182 | |
michael@0 | 1183 | [truetype] Fix formatting and typo. |
michael@0 | 1184 | |
michael@0 | 1185 | 2012-11-27 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 1186 | |
michael@0 | 1187 | [cid, type1, type42] Clean up units_per_EM calculations. |
michael@0 | 1188 | |
michael@0 | 1189 | * src/cid/cidload.c (cid_parse_font_matrix): Updated. |
michael@0 | 1190 | * src/type1/t1load.c (t1_parse_font_matrix): Updated. |
michael@0 | 1191 | * src/type42/t42parse.c (t42_parse_font_matrix): Updated. |
michael@0 | 1192 | |
michael@0 | 1193 | 2012-11-27 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 1194 | |
michael@0 | 1195 | [ftstroke] Minor improvement. |
michael@0 | 1196 | |
michael@0 | 1197 | * src/base/ftstroke.c: Replace nested FT_DivFix and FT_MulFix with |
michael@0 | 1198 | FT_MulDiv. |
michael@0 | 1199 | |
michael@0 | 1200 | 2012-11-17 Werner Lemberg <wl@gnu.org> |
michael@0 | 1201 | |
michael@0 | 1202 | * src/base/fttrigon.c (ft_trig_downscale): Make 64bit version work. |
michael@0 | 1203 | |
michael@0 | 1204 | 2012-11-15 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 1205 | |
michael@0 | 1206 | [base] Fix integer overflows in dd5718c7d67a. |
michael@0 | 1207 | |
michael@0 | 1208 | * src/base/ftoutln.c (FT_Outline_EmboldenXY): Use FT_MulDiv. |
michael@0 | 1209 | |
michael@0 | 1210 | 2012-11-15 Werner Lemberg <wl@gnu.org> |
michael@0 | 1211 | |
michael@0 | 1212 | [autofit] Trace stem widths. |
michael@0 | 1213 | |
michael@0 | 1214 | * src/autofit/aflatin.c (af_latin_metrics_init_widths): Add some |
michael@0 | 1215 | FT_TRACE calls. |
michael@0 | 1216 | |
michael@0 | 1217 | 2012-11-13 Werner Lemberg <wl@gnu.org> |
michael@0 | 1218 | |
michael@0 | 1219 | [cff] Add support for OpenType Collections (OTC). |
michael@0 | 1220 | |
michael@0 | 1221 | * src/cff/cffload.c (cff_font_load): Separate subfont and face |
michael@0 | 1222 | index handling to load both pure CFFs with multiple subfonts and |
michael@0 | 1223 | OTCs (with multiple faces where each face holds exactly one |
michael@0 | 1224 | subfont). |
michael@0 | 1225 | * src/cff/cffobjs.c (cff_face_init): Updated. |
michael@0 | 1226 | |
michael@0 | 1227 | 2012-11-12 Werner Lemberg <wl@gnu.org> |
michael@0 | 1228 | |
michael@0 | 1229 | [autofit] Minor improvement. |
michael@0 | 1230 | |
michael@0 | 1231 | * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Fix |
michael@0 | 1232 | loop. |
michael@0 | 1233 | |
michael@0 | 1234 | 2012-11-10 Werner Lemberg <wl@gnu.org> |
michael@0 | 1235 | |
michael@0 | 1236 | [autofit] Improve tracing. |
michael@0 | 1237 | |
michael@0 | 1238 | * src/autofit/aflatin.c (af_latin_hint_edges) |
michael@0 | 1239 | [FT_DEBUG_LEVEL_TRACE]: Count number of actions and emit something |
michael@0 | 1240 | if there weren't any. |
michael@0 | 1241 | |
michael@0 | 1242 | 2012-11-04 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 1243 | |
michael@0 | 1244 | [base] Fortify emboldening code against egregious distortions. |
michael@0 | 1245 | |
michael@0 | 1246 | * src/base/ftoutln.c (FT_Outline_EmboldenXY): Threshold emboldening |
michael@0 | 1247 | strength when it leads to segment collapse. |
michael@0 | 1248 | |
michael@0 | 1249 | 2012-11-03 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 1250 | |
michael@0 | 1251 | [base] Clean up emboldening code and improve comments there. |
michael@0 | 1252 | |
michael@0 | 1253 | * src/base/ftoutln.c (FT_Outline_EmboldenXY): Replace sequential |
michael@0 | 1254 | calls to FT_MulFix and FT_DivFix with FT_MulDiv. |
michael@0 | 1255 | Mention that bisectors are used to figure out the shift direction. |
michael@0 | 1256 | |
michael@0 | 1257 | 2012-10-24 Werner Lemberg <wl@gnu.org> |
michael@0 | 1258 | |
michael@0 | 1259 | [autofit] Add standard character to `AF_ScriptClassRec' structure. |
michael@0 | 1260 | |
michael@0 | 1261 | * src/autofit/aftypes.h (AF_ScriptClassRec): Add `standard_char' |
michael@0 | 1262 | member. |
michael@0 | 1263 | (AF_DEFINE_SCRIPT_CLASS): Updated. |
michael@0 | 1264 | |
michael@0 | 1265 | * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use it. |
michael@0 | 1266 | (af_latin_metrics_init, af_latin_script_class): Updated. |
michael@0 | 1267 | |
michael@0 | 1268 | * src/autofit/aflatin.c (af_latin2_metrics_init_widths): Use it. |
michael@0 | 1269 | (af_latin2_metrics_init, af_latin2_script_class): Updated. |
michael@0 | 1270 | |
michael@0 | 1271 | * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Use it. |
michael@0 | 1272 | (af_cjk_metrics_init, af_cjk_script_class): Updated. |
michael@0 | 1273 | |
michael@0 | 1274 | * src/autofit/afindic.c (af_indic_metrics_init, |
michael@0 | 1275 | af_indic_script_class): Updated. |
michael@0 | 1276 | |
michael@0 | 1277 | * src/autofit/afcjk.h, src/autofit/aflatin.h: Updated. |
michael@0 | 1278 | |
michael@0 | 1279 | * src/autofit/afdummy.c: Updated. |
michael@0 | 1280 | |
michael@0 | 1281 | 2012-10-24 Werner Lemberg <wl@gnu.org> |
michael@0 | 1282 | |
michael@0 | 1283 | [autofit] Only use Unicode CMap. |
michael@0 | 1284 | |
michael@0 | 1285 | * src/autofit/aflatin.c (af_latin_metrics_init): Implement it, to be |
michael@0 | 1286 | in sync with `af_face_globals_compute_script_coverage'. |
michael@0 | 1287 | |
michael@0 | 1288 | 2012-10-21 Werner Lemberg <wl@gnu.org> |
michael@0 | 1289 | |
michael@0 | 1290 | [psaux] Improve parsing of invalid numbers. |
michael@0 | 1291 | |
michael@0 | 1292 | * src/psaux/psconv.c (PS_Conv_Strtol): Always parse complete number, |
michael@0 | 1293 | even in case of overflow. |
michael@0 | 1294 | (PS_Conv_ToInt): Only increase cursor if parsing was successful. |
michael@0 | 1295 | (PS_Conv_ToFixed): Ditto. |
michael@0 | 1296 | Trace underflow and data error. |
michael@0 | 1297 | |
michael@0 | 1298 | 2012-10-21 Werner Lemberg <wl@gnu.org> |
michael@0 | 1299 | |
michael@0 | 1300 | [smooth] Improve tracing. |
michael@0 | 1301 | |
michael@0 | 1302 | * src/smooth/ftgrays.c (gray_sweep): Trace last sweep line of |
michael@0 | 1303 | current band also. |
michael@0 | 1304 | |
michael@0 | 1305 | 2012-10-20 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 1306 | |
michael@0 | 1307 | [truetype] Cheaper way to threshold angles between vectors. |
michael@0 | 1308 | |
michael@0 | 1309 | * src/truetype/ttinterp.c (Ins_ISECT): Thresholding tangent is a lot |
michael@0 | 1310 | cheaper than thresholding sine. |
michael@0 | 1311 | |
michael@0 | 1312 | 2012-10-20 Werner Lemberg <wl@gnu.org> |
michael@0 | 1313 | |
michael@0 | 1314 | [cff] Improve parsing of invalid real numbers. |
michael@0 | 1315 | |
michael@0 | 1316 | * src/cff/cffparse.c (cff_parse_real): Always parse complete number, |
michael@0 | 1317 | even in case of overflow or underflow. |
michael@0 | 1318 | Also trace one more underflow. |
michael@0 | 1319 | |
michael@0 | 1320 | 2012-10-20 Andreas Pehnack <andreas.pehnack@me.com> |
michael@0 | 1321 | |
michael@0 | 1322 | [sfnt] Load pure CFF fonts wrapped in SFNT container. |
michael@0 | 1323 | |
michael@0 | 1324 | Such fonts only have a `cmap' and a `CFF' table. |
michael@0 | 1325 | |
michael@0 | 1326 | * src/sfnt/ttload.c (tt_face_load_font_dir): Don't call |
michael@0 | 1327 | `check_table_dir' if font signature is `OTTO'. |
michael@0 | 1328 | |
michael@0 | 1329 | 2012-10-20 Werner Lemberg <wl@gnu.org> |
michael@0 | 1330 | |
michael@0 | 1331 | [psaux] Fix some value overflows and improve tracing. |
michael@0 | 1332 | |
michael@0 | 1333 | * src/psaux/psconv.c: Include FT_INTERNAL_DEBUG_H. |
michael@0 | 1334 | (FT_COMPONENT): Define. |
michael@0 | 1335 | (PS_Conv_Strtol): Return FT_Long. |
michael@0 | 1336 | Handle bad data and overflow. |
michael@0 | 1337 | Emit some tracing messages in case of error. |
michael@0 | 1338 | (PS_Conv_ToInt): Return FT_Long. |
michael@0 | 1339 | (PS_Conv_ToFixed): Updated. |
michael@0 | 1340 | * src/psaux/psconv.h: Updated. |
michael@0 | 1341 | |
michael@0 | 1342 | * include/freetype/internal/fttrace.h: Add `psconv'. |
michael@0 | 1343 | |
michael@0 | 1344 | 2012-10-20 Werner Lemberg <wl@gnu.org> |
michael@0 | 1345 | |
michael@0 | 1346 | [autofit] Fix `make multi CC=c++'. |
michael@0 | 1347 | |
michael@0 | 1348 | * src/autofit/aflatin.c, src/autofit/aflatin2.c: Include |
michael@0 | 1349 | `afglobal.h'. |
michael@0 | 1350 | * src/autofit/afloader.c: Fix order of header files. |
michael@0 | 1351 | * src/autofit/afmodule.c: Include `afglobal.h' and `aferrors.h'. |
michael@0 | 1352 | |
michael@0 | 1353 | 2012-10-19 Werner Lemberg <wl@gnu.org> |
michael@0 | 1354 | |
michael@0 | 1355 | [cff] Fix more value errors and improve tracing. |
michael@0 | 1356 | |
michael@0 | 1357 | * src/cff/cffparse.c (cff_parse_integer): Emit tracing message in |
michael@0 | 1358 | case of error. |
michael@0 | 1359 | (cff_parse_real): Handle and trace overflow, underflow, and bad data |
michael@0 | 1360 | consistently. |
michael@0 | 1361 | (do_fixed): New helper function, handling and tracing overflow. |
michael@0 | 1362 | (cff_parse_fixed, cff_parse_fixed_scaled): Use `do_fixed'. |
michael@0 | 1363 | |
michael@0 | 1364 | 2012-10-17 Werner Lemberg <wl@gnu.org> |
michael@0 | 1365 | |
michael@0 | 1366 | [psaux] Fix some value overflows. |
michael@0 | 1367 | |
michael@0 | 1368 | * src/psaux/psconv.c (PS_Conv_ToFixed): Implement it. |
michael@0 | 1369 | |
michael@0 | 1370 | 2012-10-17 Bram Tassyns <BramT@enfocus.com> |
michael@0 | 1371 | |
michael@0 | 1372 | [cff] Fix value overflow. |
michael@0 | 1373 | |
michael@0 | 1374 | * src/cff/cffparse.c (cff_parse_fixed_scaled): Implement it. |
michael@0 | 1375 | |
michael@0 | 1376 | 2012-10-17 Werner Lemberg <wl@gnu.org> |
michael@0 | 1377 | |
michael@0 | 1378 | [truetype] Fix Savannah bug #37572. |
michael@0 | 1379 | |
michael@0 | 1380 | * src/truetype/ttinterp.c (Ins_ISECT): Use angle between vectors to |
michael@0 | 1381 | avoid grazing intersections. The previous threshold was too coarse, |
michael@0 | 1382 | incorrectly rejecting short but valid vectors. |
michael@0 | 1383 | |
michael@0 | 1384 | 2012-09-30 Gilles Espinasse <g.esp@free.fr> |
michael@0 | 1385 | |
michael@0 | 1386 | Remove useless `rm' detection. |
michael@0 | 1387 | |
michael@0 | 1388 | `rm -f' is directly used in the `configure' script created by |
michael@0 | 1389 | autoconf, thus no availability test is necessary. |
michael@0 | 1390 | |
michael@0 | 1391 | * builds/unix/configure.raw (RMF): Remove test. |
michael@0 | 1392 | * builds/unix/unix-def.in (DELETE): Updated. |
michael@0 | 1393 | |
michael@0 | 1394 | 2012-09-29 Werner Lemberg <wl@gnu.org> |
michael@0 | 1395 | |
michael@0 | 1396 | [autofit] Minor optimization. |
michael@0 | 1397 | |
michael@0 | 1398 | * src/autofit/afglobals.c (af_face_globals_compute_script_coverage): |
michael@0 | 1399 | Add loop condition. |
michael@0 | 1400 | |
michael@0 | 1401 | 2012-09-29 Werner Lemberg <wl@gnu.org> |
michael@0 | 1402 | |
michael@0 | 1403 | [autofit] Fix thinko. |
michael@0 | 1404 | |
michael@0 | 1405 | * src/autofit/aftypes.h (AF_SCRIPT): |
michael@0 | 1406 | s/AF_SCRIPT_NONE/AF_SCRIPT_DUMMY/. We already use `AF_SCRIPT_NONE' |
michael@0 | 1407 | as a bit mask. |
michael@0 | 1408 | |
michael@0 | 1409 | * src/autofit/afdummy.c: Updated. |
michael@0 | 1410 | |
michael@0 | 1411 | 2012-09-18 Werner Lemberg <wl@gnu.org> |
michael@0 | 1412 | |
michael@0 | 1413 | [autofit] Implement `increase-x-height' property. |
michael@0 | 1414 | |
michael@0 | 1415 | * include/freetype/ftautoh.h (FT_Prop_IncreaseXHeight): New |
michael@0 | 1416 | structure. |
michael@0 | 1417 | |
michael@0 | 1418 | * include/autofit/afmodule.c (af_property_get_face_globals): New |
michael@0 | 1419 | function, re-using code from `af_property_get'. |
michael@0 | 1420 | (af_property_set, af_property_get): Handle `increase-x-height'. |
michael@0 | 1421 | Updated. |
michael@0 | 1422 | |
michael@0 | 1423 | 2012-09-18 Werner Lemberg <wl@gnu.org> |
michael@0 | 1424 | |
michael@0 | 1425 | [autofit] Implement Infinality's `increase glyph heights'. |
michael@0 | 1426 | |
michael@0 | 1427 | This is an improved version of a similar fix contained in the |
michael@0 | 1428 | so-called `Infinality patch', taken from |
michael@0 | 1429 | |
michael@0 | 1430 | http://www.infinality.net/fedora/linux/zips/freetype-infinality-2.4.10-20120616_01-x86_64.tar.bz2 |
michael@0 | 1431 | |
michael@0 | 1432 | which addresses various enhancements of the auto-hinter. Without |
michael@0 | 1433 | properties to control a module's metadata it wasn't possible to |
michael@0 | 1434 | adapt the patches because everything was originally controlled by |
michael@0 | 1435 | environment variables which I consider not suitable in general. |
michael@0 | 1436 | |
michael@0 | 1437 | A patch to control `increase_x_height' follows. |
michael@0 | 1438 | |
michael@0 | 1439 | * src/autofit/afglobal.h (AF_PROP_INCREASE_X_HEIGHT_MIN, |
michael@0 | 1440 | AF_PROP_INCREASE_X_HEIGHT_MAX): New macros. |
michael@0 | 1441 | (AF_FaceGlobalsRec): Add `increase_x_height' member. |
michael@0 | 1442 | * src/autofit/afglobal.c (af_face_globals_new): Initialize it. |
michael@0 | 1443 | |
michael@0 | 1444 | * src/autofit/aflatin.c (af_latin_metrics_scale_dim), |
michael@0 | 1445 | * src/autofit/aflatin2.c (af_latin2_metrics_scale_dim): Implement |
michael@0 | 1446 | handling of `increase_x_height'. |
michael@0 | 1447 | |
michael@0 | 1448 | 2012-09-18 Werner Lemberg <wl@gnu.org> |
michael@0 | 1449 | |
michael@0 | 1450 | [autofit] Add hierarchical property access to some structures. |
michael@0 | 1451 | |
michael@0 | 1452 | * src/autofit/afglobal.h: Include `afmodule.h'. |
michael@0 | 1453 | (AF_FaceGlobalsRec): Add `module' member. |
michael@0 | 1454 | (AF_FaceGlobals): Typedef moved to... |
michael@0 | 1455 | * src/autofit/aftypes.h: Here. |
michael@0 | 1456 | (AF_ScriptMetricsRec): Add `globals' member. |
michael@0 | 1457 | |
michael@0 | 1458 | * src/autofit/afglobal.c (af_face_globals_new, |
michael@0 | 1459 | af_face_globals_compute_script_coverage, |
michael@0 | 1460 | af_face_globals_get_metrics): Updated. |
michael@0 | 1461 | |
michael@0 | 1462 | * src/autofit/afloader.c (af_loader_reset), src/autofit/afmodule.c |
michael@0 | 1463 | (af_property_get): Updated. |
michael@0 | 1464 | |
michael@0 | 1465 | 2012-09-17 Werner Lemberg <wl@gnu.org> |
michael@0 | 1466 | |
michael@0 | 1467 | [type1] Fix Savannah bug #37350. |
michael@0 | 1468 | |
michael@0 | 1469 | * src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Check for ASCII |
michael@0 | 1470 | storage only if we actually have at least four bytes. |
michael@0 | 1471 | |
michael@0 | 1472 | 2012-09-15 Werner Lemberg <wl@gnu.org> |
michael@0 | 1473 | |
michael@0 | 1474 | [autofit] Implement `fallback-script' property. |
michael@0 | 1475 | |
michael@0 | 1476 | * src/autofit/afglobal.c: s/default_script/fallback_script/. |
michael@0 | 1477 | * src/autofit/afglobal.h: s/AF_SCRIPT_DEFAULT/AF_SCRIPT_FALLBACK/. |
michael@0 | 1478 | |
michael@0 | 1479 | * src/autofit/afmodule.c: s/default_script/fallback_script/. |
michael@0 | 1480 | (af_property_set, af_property_get): Implement `fallback-script'. |
michael@0 | 1481 | * src/autofit/afmodule.h: s/default_script/fallback_script/. |
michael@0 | 1482 | |
michael@0 | 1483 | * include/freetype/ftautoh.h: Document it. |
michael@0 | 1484 | |
michael@0 | 1485 | 2012-09-15 Werner Lemberg <wl@gnu.org> |
michael@0 | 1486 | |
michael@0 | 1487 | [autofit] Correct previous Unicode 6.1.0 change. |
michael@0 | 1488 | |
michael@0 | 1489 | The auto-hinter's latin module only handles latin ligatures in the |
michael@0 | 1490 | `Alphabetical Presentation Forms' block. |
michael@0 | 1491 | |
michael@0 | 1492 | * src/autofit/aflatin.c (af_latin_uniranges): Fix it. |
michael@0 | 1493 | |
michael@0 | 1494 | 2012-09-15 Werner Lemberg <wl@gnu.org> |
michael@0 | 1495 | |
michael@0 | 1496 | * src/autofit/afmodule.c: s/FT_Err_/AF_Err_/. |
michael@0 | 1497 | |
michael@0 | 1498 | 2012-09-15 Werner Lemberg <wl@gnu.org> |
michael@0 | 1499 | |
michael@0 | 1500 | [autofit] Make default script a global property. |
michael@0 | 1501 | |
michael@0 | 1502 | * src/autofit/afmodule.h (AF_ModuleRec): Add `default_script' field. |
michael@0 | 1503 | |
michael@0 | 1504 | * src/autofit/afglobal.c (af_face_globals_compute_script_coverage, |
michael@0 | 1505 | af_face_globals_new), src/autofit/afloader.c (af_loader_reset), |
michael@0 | 1506 | src/autofit/afmodule.c (af_property_get) <glyph-to-script-map>, |
michael@0 | 1507 | af_autofitter_init: |
michael@0 | 1508 | Handle default script. |
michael@0 | 1509 | |
michael@0 | 1510 | * src/autofit/afglobal.h: Updated. |
michael@0 | 1511 | |
michael@0 | 1512 | 2012-09-15 Werner Lemberg <wl@gnu.org> |
michael@0 | 1513 | |
michael@0 | 1514 | Use `FT_Module' instead of `FT_Library' argument in property funcs. |
michael@0 | 1515 | |
michael@0 | 1516 | This internal change simplifies access to global module data. |
michael@0 | 1517 | |
michael@0 | 1518 | * include/freetype/internal/services/svprop.h |
michael@0 | 1519 | (FT_Properties_SetFunc, FT_Properties_GetFunc): Change accordingly. |
michael@0 | 1520 | |
michael@0 | 1521 | * src/base/ftobjs.c (ft_property_do), src/autofit/afmodule.c |
michael@0 | 1522 | (af_property_set, af_property_get): Updated. |
michael@0 | 1523 | |
michael@0 | 1524 | 2012-09-14 Werner Lemberg <wl@gnu.org> |
michael@0 | 1525 | |
michael@0 | 1526 | [autofit] Update to Unicode 6.1.0. |
michael@0 | 1527 | |
michael@0 | 1528 | * src/autofit/afcjk.c (af_cjk_uniranges), src/autofit/aflatin.c |
michael@0 | 1529 | (af_latin_uniranges): Add and fix ranges. |
michael@0 | 1530 | |
michael@0 | 1531 | 2012-09-14 Werner Lemberg <wl@gnu.org> |
michael@0 | 1532 | |
michael@0 | 1533 | [autofit] Pass `AF_Module' instead of `AF_Loader'. |
michael@0 | 1534 | |
michael@0 | 1535 | We want to access the (not yet existing) module's global data later |
michael@0 | 1536 | on. |
michael@0 | 1537 | |
michael@0 | 1538 | * src/autofit/afloader.c: Include `afmodule.h'. |
michael@0 | 1539 | (af_loader_init, af_loader_reset, af_loader_done, |
michael@0 | 1540 | af_loader_load_glyph): Change accordingly. |
michael@0 | 1541 | * src/autofit/afmodule.c (AF_ModuleRec): Move to `afmodule.h'. |
michael@0 | 1542 | Updated. |
michael@0 | 1543 | |
michael@0 | 1544 | * src/autofit/afmodule.h: Include `afloader.h'. |
michael@0 | 1545 | (AF_ModuleRec): Define here. |
michael@0 | 1546 | * src/autofit/afloader.h (AF_Module): Define here. |
michael@0 | 1547 | Updated. |
michael@0 | 1548 | |
michael@0 | 1549 | 2012-09-14 Werner Lemberg <wl@gnu.org> |
michael@0 | 1550 | |
michael@0 | 1551 | [autofit] Fix `make multi'. |
michael@0 | 1552 | |
michael@0 | 1553 | * include/freetype/internal/fttrace.h: Add `afmodule'. |
michael@0 | 1554 | * src/autofit/afmodule.c: Include FT_INTERNAL_DEBUG_H. |
michael@0 | 1555 | (FT_COMPONENT): Define. |
michael@0 | 1556 | |
michael@0 | 1557 | 2012-09-14 Werner Lemberg <wl@gnu.org> |
michael@0 | 1558 | |
michael@0 | 1559 | * src/autofit/afmodule.c: s/FT_Autofitter/AF_Module/. |
michael@0 | 1560 | |
michael@0 | 1561 | 2012-09-12 Werner Lemberg <wl@gnu.org> |
michael@0 | 1562 | |
michael@0 | 1563 | [autofit] Minor reorganization. |
michael@0 | 1564 | |
michael@0 | 1565 | * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT, |
michael@0 | 1566 | AF_SCRIPT_LIST_NONE, AF_DIGIT): Move to... |
michael@0 | 1567 | * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT, AF_SCRIPT_LIST_NONE, |
michael@0 | 1568 | AF_DIGIT): This and update code. |
michael@0 | 1569 | |
michael@0 | 1570 | 2012-09-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 1571 | |
michael@0 | 1572 | [autofit] Implement `glyph-to-script-map' property. |
michael@0 | 1573 | |
michael@0 | 1574 | * include/freetype/ftautoh.h: New public header file. |
michael@0 | 1575 | * include/freetype/config/ftheader.h (FT_AUTOHINTER_H): New macro. |
michael@0 | 1576 | |
michael@0 | 1577 | * src/autofit/afglobal.c (AF_FaceGlobalsRec): Move structure to... |
michael@0 | 1578 | * src/autofit/afglobal.h: This header file. |
michael@0 | 1579 | * src/autofit/afmodule.c: Include FT_AUTOHINTER_H. |
michael@0 | 1580 | (af_property_get): Handle `glyph-to-script-map'. |
michael@0 | 1581 | |
michael@0 | 1582 | 2012-08-31 Werner Lemberg <wl@gnu.org> |
michael@0 | 1583 | |
michael@0 | 1584 | [autofit] Implement properties service framework. |
michael@0 | 1585 | |
michael@0 | 1586 | No properties are added yet. |
michael@0 | 1587 | |
michael@0 | 1588 | * src/autofit/afmodule.c: Include FT_SERVICE_PROPERTIES_H. |
michael@0 | 1589 | (af_property_set, af_property_get): New dummy functions. |
michael@0 | 1590 | (af_service_properties, af_services, af_get_interface): Provide |
michael@0 | 1591 | service setup. |
michael@0 | 1592 | (autofit_moduleclass): Add service interface. |
michael@0 | 1593 | |
michael@0 | 1594 | * src/autofit/afpic.c: Add necessary forward declarations. |
michael@0 | 1595 | (autofit_module_class_pic_init): Add code for service addition. |
michael@0 | 1596 | (autofit_module_pic_free): Add code for service removal. |
michael@0 | 1597 | * src/autofit/afpic.h (AF_SERVICES_GET, AF_SERVICE_PROPERTIES_GET): |
michael@0 | 1598 | New macros which provide necessary syntactical sugar for PIC |
michael@0 | 1599 | support. |
michael@0 | 1600 | |
michael@0 | 1601 | 2012-08-30 Werner Lemberg <wl@gnu.org> |
michael@0 | 1602 | |
michael@0 | 1603 | Implement properties to control FreeType modules. |
michael@0 | 1604 | |
michael@0 | 1605 | * include/freetype/fterrdef.h (FT_Err_Missing_Property): New error |
michael@0 | 1606 | code. |
michael@0 | 1607 | * include/freetype/ftmodapi.h (FT_Property_Set, FT_Property_Get): |
michael@0 | 1608 | New API. |
michael@0 | 1609 | |
michael@0 | 1610 | * include/freetype/internal/services/svprop.h: New file. |
michael@0 | 1611 | * include/freetype/internal/ftserv.h (FT_SERVICE_PROPERTIES_H): New |
michael@0 | 1612 | macro. |
michael@0 | 1613 | |
michael@0 | 1614 | * src/base/ftobjs.c: Include FT_SERVICE_PROPERTIES_H. |
michael@0 | 1615 | (ft_property_do, FT_Property_Set, FT_Property_Get): New functions. |
michael@0 | 1616 | |
michael@0 | 1617 | 2012-08-29 Werner Lemberg <wl@gnu.org> |
michael@0 | 1618 | |
michael@0 | 1619 | [docmaker] Allow `-' in tags and identifiers. |
michael@0 | 1620 | |
michael@0 | 1621 | * src/tools/docmaker/content.py (re_identifier), |
michael@0 | 1622 | src/tools/docmaker/sources.py (re_markup_tag1, re_markup_tag2, |
michael@0 | 1623 | re_crossref): Add `-' in patterns. |
michael@0 | 1624 | |
michael@0 | 1625 | 2012-08-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 1626 | |
michael@0 | 1627 | [FT_CONFIG_OPTION_PIC] Fix g++ 4.6.2 compiler warnings. |
michael@0 | 1628 | |
michael@0 | 1629 | * include/freetype/internal/ftdriver.h (FT_DEFINE_DRIVER), |
michael@0 | 1630 | include/freetype/internal/ftobjs.h (FT_DEFINE_RENDERER, |
michael@0 | 1631 | FT_DEFINE_MODULE), include/freetype/internal/ftserv.h |
michael@0 | 1632 | (FT_DEFINE_SERVICEDESCREC1, FT_DEFINE_SERVICEDESCREC2, |
michael@0 | 1633 | FT_DEFINE_SERVICEDESCREC3, FT_DEFINE_SERVICEDESCREC4, |
michael@0 | 1634 | FT_DEFINE_SERVICEDESCREC5, FT_DEFINE_SERVICEDESCREC6), |
michael@0 | 1635 | src/autofit/afpic.c (autofit_module_class_pic_init), |
michael@0 | 1636 | src/base/basepic.c (ft_base_pic_init), src/base/ftinit.c |
michael@0 | 1637 | (ft_create_default_module_classes), src/cff/cffparse.c |
michael@0 | 1638 | (FT_Create_Class_cff_field_handlers), src/cff/cffpic.c |
michael@0 | 1639 | (cff_driver_class_pic_init), src/pshinter/pshpic.c |
michael@0 | 1640 | (pshinter_module_class_pic_init), src/psnames/pspic.c |
michael@0 | 1641 | (psnames_module_class_pic_init), src/raster/rastpic.c |
michael@0 | 1642 | (ft_raster1_renderer_class_pic_init), src/sfnt/sfntpic.c |
michael@0 | 1643 | (sfnt_module_class_pic_init), src/sfnt/ttcmap.c |
michael@0 | 1644 | (FT_Create_Class_tt_cmap_classes), src/smooth/ftspic.c |
michael@0 | 1645 | (ft_smooth_renderer_class_pic_init), src/truetype/ttpic.c |
michael@0 | 1646 | (tt_driver_class_pic_init): Initialize allocation variable. |
michael@0 | 1647 | |
michael@0 | 1648 | 2012-08-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 1649 | |
michael@0 | 1650 | [truetype] Fix compilation warning. |
michael@0 | 1651 | |
michael@0 | 1652 | * src/truetype/ttgload.c (IS_HINTED): Move macro to... |
michael@0 | 1653 | * src/truetype/ttobjs.h: This header file. |
michael@0 | 1654 | |
michael@0 | 1655 | 2012-08-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 1656 | |
michael@0 | 1657 | [autofit, cff, pshinter, psnames] More renamings for orthogonality. |
michael@0 | 1658 | |
michael@0 | 1659 | * src/autofit/afmodule.c, src/autofit/afpic.h: |
michael@0 | 1660 | s/AF_AUTOFITTER_/AF_/. |
michael@0 | 1661 | |
michael@0 | 1662 | * src/cff/cffdrivr.c, src/cff/cffobjs.c, src/cff/cffparse.c, |
michael@0 | 1663 | src/cff/cffpic.h: s/FT_CFF_/CFF_/. |
michael@0 | 1664 | |
michael@0 | 1665 | * src/pshinter/pshmod.c, src/pshinter/pshpic.h: |
michael@0 | 1666 | s/FT_PSHINTER_/PSHINTER_/. |
michael@0 | 1667 | |
michael@0 | 1668 | * src/psnames/psmodule.c, src/psnames/pspic.h: |
michael@0 | 1669 | s/FT_PSCMAPS/PSCMAPS_/. |
michael@0 | 1670 | |
michael@0 | 1671 | 2012-08-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 1672 | |
michael@0 | 1673 | [sfnt, truetype] More renamings for orthogonality. |
michael@0 | 1674 | |
michael@0 | 1675 | * src/sfnt/sfdriver.c, src/sfnt/sfntpic.h, src/sfnt/ttcmap.c, |
michael@0 | 1676 | src/truetype/ttdriver.c, src/truetype/ttpic.h: s/FT_SFNT_/SFNT_/, |
michael@0 | 1677 | s/FT_TT_/TT_/, s/GET_CMAP_INFO_GET/CMAP_INFO_GET/. |
michael@0 | 1678 | |
michael@0 | 1679 | 2012-08-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 1680 | |
michael@0 | 1681 | [autofit] Some macro and variable renamings for orthogonality. |
michael@0 | 1682 | |
michael@0 | 1683 | * include/freetype/internal/autohint.h, src/base/ftobjs.c, |
michael@0 | 1684 | src/autofit/afmodule.c, src/autofit/afpic.c, src/autofit/afpic.h: |
michael@0 | 1685 | s/SERVICE/INTERFACE/, s/service/interface/, s/Service/Interface/. |
michael@0 | 1686 | |
michael@0 | 1687 | 2012-08-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 1688 | |
michael@0 | 1689 | Fix Savannah bug #37178. |
michael@0 | 1690 | |
michael@0 | 1691 | * src/base/ftobjs.c (FT_Open_Face): Initialize `error' with |
michael@0 | 1692 | `FT_Err_Missing_Module' before loop to indicate `no valid drivers'. |
michael@0 | 1693 | |
michael@0 | 1694 | 2012-08-17 Werner Lemberg <wl@gnu.org> |
michael@0 | 1695 | |
michael@0 | 1696 | * src/base/ftsynth.c (FT_GlyphSlot_Oblique): Fix shear angle. |
michael@0 | 1697 | |
michael@0 | 1698 | The old value was far too large (more than 20°). The new one |
michael@0 | 1699 | corresponds to 12°, quite common in typography. |
michael@0 | 1700 | |
michael@0 | 1701 | 2012-08-12 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 1702 | |
michael@0 | 1703 | [smooth] Fix Savannah bug #37017. |
michael@0 | 1704 | |
michael@0 | 1705 | * src/smooth/ftgrays.c (gray_render_cubic): Use a different set of |
michael@0 | 1706 | checks when detecting super curvy splines to be split. |
michael@0 | 1707 | |
michael@0 | 1708 | 2012-08-05 Werner Lemberg <wl@gnu.org> |
michael@0 | 1709 | |
michael@0 | 1710 | [autofit] Improve recognition of flat segments. |
michael@0 | 1711 | |
michael@0 | 1712 | Problem reported by Brad Dunzer <BDunzer@extensis.com>. |
michael@0 | 1713 | |
michael@0 | 1714 | * src/autofit/aflatin.c (af_latin_metrics_init_blues): We have |
michael@0 | 1715 | a flat segment if the horizontal distance of best on-points is |
michael@0 | 1716 | larger than a given threshold. |
michael@0 | 1717 | |
michael@0 | 1718 | 2012-08-05 Werner Lemberg <wl@gnu.org> |
michael@0 | 1719 | |
michael@0 | 1720 | [autofit] Variable renamings. |
michael@0 | 1721 | |
michael@0 | 1722 | * src/autofit/aflatin.c (af_latin_metrics_init_blues): Replace |
michael@0 | 1723 | `glyph' with `outline'. |
michael@0 | 1724 | s/best_first/best_contour_first/. |
michael@0 | 1725 | s/best_last/best_contour_last/. |
michael@0 | 1726 | |
michael@0 | 1727 | 2012-07-31 Werner Lemberg <wl@gnu.org> |
michael@0 | 1728 | |
michael@0 | 1729 | [type1] Fix Savannah bug #37000. |
michael@0 | 1730 | |
michael@0 | 1731 | * src/type1/t1load.c (parse_encoding): Fix order of checks. |
michael@0 | 1732 | |
michael@0 | 1733 | 2012-07-17 Werner Lemberg <wl@gnu.org> |
michael@0 | 1734 | |
michael@0 | 1735 | [psaux] Fix Savannah bug #36833. |
michael@0 | 1736 | |
michael@0 | 1737 | * src/psaux/t1decode.c (t1operator_seac): `seac' is not a valid |
michael@0 | 1738 | operator if we want metrics only. |
michael@0 | 1739 | |
michael@0 | 1740 | 2012-07-16 Werner Lemberg <wl@gnu.org> |
michael@0 | 1741 | |
michael@0 | 1742 | [type1] Fix Savannah bug #36832. |
michael@0 | 1743 | |
michael@0 | 1744 | * src/type1/t1load.c (parse_charstrings): Reject negative number of |
michael@0 | 1745 | glyphs. |
michael@0 | 1746 | |
michael@0 | 1747 | 2012-07-13 Werner Lemberg <wl@gnu.org> |
michael@0 | 1748 | |
michael@0 | 1749 | [type1] Fix Savannah bug #36829. |
michael@0 | 1750 | |
michael@0 | 1751 | * src/type1/t1load.c (parse_encoding): Check cursor position after |
michael@0 | 1752 | call to T1_Skip_PS_Token. |
michael@0 | 1753 | |
michael@0 | 1754 | 2012-07-12 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 1755 | |
michael@0 | 1756 | Revert the last commit 45337b07. |
michael@0 | 1757 | |
michael@0 | 1758 | * src/base/ftstroke.c (FT_Stroker_New): Revert the previous change. |
michael@0 | 1759 | |
michael@0 | 1760 | 2012-07-11 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 1761 | |
michael@0 | 1762 | [ftstroke] Fix uninitialized return value. |
michael@0 | 1763 | |
michael@0 | 1764 | * src/base/ftstroke.c (FT_Stroker_New): Return FT_Err_Ok instead. |
michael@0 | 1765 | |
michael@0 | 1766 | 2012-07-11 Werner Lemberg <wl@gnu.org> |
michael@0 | 1767 | |
michael@0 | 1768 | [smooth] Avoid memory leak in case of failure. |
michael@0 | 1769 | |
michael@0 | 1770 | * src/smooth/ftsmooth.c (ft_smooth_render_generic): Use flags to |
michael@0 | 1771 | indicate what to clean up after finishing the function, with and |
michael@0 | 1772 | without errors. |
michael@0 | 1773 | |
michael@0 | 1774 | 2012-07-09 Werner Lemberg <wl@gnu.org> |
michael@0 | 1775 | |
michael@0 | 1776 | Fix compilation with MSVC 5.0. |
michael@0 | 1777 | |
michael@0 | 1778 | Problem reported by Peter Breitenlohner and Akira Kakuto. |
michael@0 | 1779 | |
michael@0 | 1780 | * include/freetype/config/ftstdlib.h (ft_setjmp): Updated. |
michael@0 | 1781 | * src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove cast. |
michael@0 | 1782 | |
michael@0 | 1783 | 2012-07-09 Werner Lemberg <wl@gnu.org> |
michael@0 | 1784 | |
michael@0 | 1785 | [autofit] Improve debugging messages; do some code cleanup. |
michael@0 | 1786 | |
michael@0 | 1787 | * src/autofit/aflatin.c (af_latin_align_linked_edge, |
michael@0 | 1788 | af_latin_hint_edges): Synchronize with formatting used in the |
michael@0 | 1789 | ttfautohint project. |
michael@0 | 1790 | |
michael@0 | 1791 | 2012-07-07 Gilles Espinasse <g.esp@free.fr> |
michael@0 | 1792 | |
michael@0 | 1793 | Fix strict-aliasing warning. |
michael@0 | 1794 | |
michael@0 | 1795 | * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Avoid double cast. |
michael@0 | 1796 | |
michael@0 | 1797 | 2012-07-07 Dave Thomas <dave.thomas@metaforic.com> |
michael@0 | 1798 | |
michael@0 | 1799 | [ARM] Fix FT_MulFix_arm. |
michael@0 | 1800 | |
michael@0 | 1801 | * include/freetype/config/ftconfig.h (FT_MulFix_arm) [__arm__]: |
michael@0 | 1802 | Avoid ADDS instruction to clobber condition codes. |
michael@0 | 1803 | |
michael@0 | 1804 | 2012-07-06 Werner Lemberg <wl@gnu.org> |
michael@0 | 1805 | |
michael@0 | 1806 | [autofit] Do some code cleanup. |
michael@0 | 1807 | |
michael@0 | 1808 | * src/autofit/afglobal.c (af_face_globals_new): Simplify. |
michael@0 | 1809 | |
michael@0 | 1810 | * src/autofit/afhints.c: Use `FT_TRACE7' instead of `printf' |
michael@0 | 1811 | everywhere. |
michael@0 | 1812 | (FT_COMPONENT): New macro. |
michael@0 | 1813 | (af_glyph_hints_done): Simplify. |
michael@0 | 1814 | |
michael@0 | 1815 | * include/freetype/internal/fttrace.h: Updated. |
michael@0 | 1816 | |
michael@0 | 1817 | 2012-07-05 Werner Lemberg <wl@gnu.org> |
michael@0 | 1818 | |
michael@0 | 1819 | [autofit] Improve output of debugging information. |
michael@0 | 1820 | |
michael@0 | 1821 | * src/autofit/afhints.c (af_glyph_hints_dump_segments): Print more |
michael@0 | 1822 | data; report no data. |
michael@0 | 1823 | (af_glyph_hints_dump_edges): Report no data. |
michael@0 | 1824 | |
michael@0 | 1825 | 2012-07-04 Werner Lemberg <wl@gnu.org> |
michael@0 | 1826 | |
michael@0 | 1827 | [autofit] Fix Savannah bug #36091. |
michael@0 | 1828 | |
michael@0 | 1829 | * src/autofit/aflatin.c (af_latin_metrics_init_blues), |
michael@0 | 1830 | src/autofit/aflatin2.c (af_latin2_metrics_init_blues): Change the |
michael@0 | 1831 | constraint for testing round vs. flat segment: Accept either a |
michael@0 | 1832 | small distance or a small angle. |
michael@0 | 1833 | |
michael@0 | 1834 | 2012-07-04 Werner Lemberg <wl@gnu.org> |
michael@0 | 1835 | |
michael@0 | 1836 | [autofit] Beautify blue zone tracing. |
michael@0 | 1837 | |
michael@0 | 1838 | * src/autofit/aflatin.c (af_latin_metrics_init_blues), |
michael@0 | 1839 | src/autofit/aflatin2.c (af_latin2_metrics_init_blues): Implement it. |
michael@0 | 1840 | |
michael@0 | 1841 | 2012-07-03 Werner Lemberg <wl@gnu.org> |
michael@0 | 1842 | |
michael@0 | 1843 | [autofit] Quantize stem widths. |
michael@0 | 1844 | |
michael@0 | 1845 | * src/autofit/afangles.c (af_sort_widths): Rename to... |
michael@0 | 1846 | (af_sort_and_quantize_widths): This. |
michael@0 | 1847 | Add code to avoid stem widths which are almost identical. |
michael@0 | 1848 | * src/autofit/aftypes.h, src/autofit/aflatin.c, src/autofit/afcjk.c: |
michael@0 | 1849 | Updated. |
michael@0 | 1850 | |
michael@0 | 1851 | 2012-07-03 Werner Lemberg <wl@gnu.org> |
michael@0 | 1852 | |
michael@0 | 1853 | [autofit] Minor speed-up. |
michael@0 | 1854 | |
michael@0 | 1855 | * src/autofit/afangles (af_sort_pos, af_sort_widths): Don't swap |
michael@0 | 1856 | elements if they are equal. |
michael@0 | 1857 | |
michael@0 | 1858 | 2012-06-30 Gilles Espinasse <g.esp@free.fr> |
michael@0 | 1859 | |
michael@0 | 1860 | Fix `checking if gcc static flag -static works' test. |
michael@0 | 1861 | |
michael@0 | 1862 | On my linux build tree, I receive yes answer in in every package I |
michael@0 | 1863 | build except freetype for this test checking if gcc static flag |
michael@0 | 1864 | `-static' works |
michael@0 | 1865 | |
michael@0 | 1866 | On freetype, no is received, unless bzip2 and zlib are disabled using |
michael@0 | 1867 | |
michael@0 | 1868 | ./configure --without-bzip2 --without-zlib |
michael@0 | 1869 | |
michael@0 | 1870 | The reason is that bzip2 and zlib tests add `-lz' and `-lbz2' to |
michael@0 | 1871 | LDFLAGS and this broke static flag test. |
michael@0 | 1872 | |
michael@0 | 1873 | * builds/unix/configure.raw: Update CFLAGS and LDFLAGS only after |
michael@0 | 1874 | LT_INIT has run. |
michael@0 | 1875 | |
michael@0 | 1876 | 2012-06-28 Infinality <infinality@infinality.net> |
michael@0 | 1877 | |
michael@0 | 1878 | [truetype] Fix various artifacts. |
michael@0 | 1879 | |
michael@0 | 1880 | Verdana was broken in the original Infinality commit. Also |
michael@0 | 1881 | includes other minor fixes. |
michael@0 | 1882 | |
michael@0 | 1883 | * src/truetype/ttsubpix.h: Updated. Removed unused macros. |
michael@0 | 1884 | (RASTERIZER_35_Rules): Add Verdana. |
michael@0 | 1885 | (SKIP_NONPIXEL_Y_MOVES_Rules): Add Tahoma `s'. |
michael@0 | 1886 | (MIRP_CVT_ZERO_Rules): Remove Verdana. |
michael@0 | 1887 | (ALWAYS_SKIP_DELTAP_Rules): Add Russian char 0x438. |
michael@0 | 1888 | (COMPATIBLE_WIDTHS_Rules): Rearrange some rules. |
michael@0 | 1889 | (X_SCALING_Rules): Adjust Verdana `a' at 12 and 13 ppem. |
michael@0 | 1890 | |
michael@0 | 1891 | * src/truetype/ttsubpix.c: Updated. |
michael@0 | 1892 | (sph_set_tweaks): Re-execute fpgm always. |
michael@0 | 1893 | |
michael@0 | 1894 | 2012-06-28 Gilles Espinasse <g.esp@free.fr> |
michael@0 | 1895 | |
michael@0 | 1896 | Fix CFLAGS and LDFLAGS share configure test. |
michael@0 | 1897 | |
michael@0 | 1898 | * builds/unix/configure.raw: Fix typo. |
michael@0 | 1899 | |
michael@0 | 1900 | 2012-06-28 Werner Lemberg <wl@gnu.org> |
michael@0 | 1901 | |
michael@0 | 1902 | [truetype] Set the `subpixel_positioned' flag unconditionally. |
michael@0 | 1903 | |
michael@0 | 1904 | This is how the code currently behaves. |
michael@0 | 1905 | |
michael@0 | 1906 | * src/truetype/ttgload.c (tt_loader_init): Do it. |
michael@0 | 1907 | |
michael@0 | 1908 | 2012-06-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 1909 | |
michael@0 | 1910 | Fix conditional compilation. |
michael@0 | 1911 | |
michael@0 | 1912 | * src/base/basepic.c: Use FT_CONFIG_OPTION_MAC_FONTS. |
michael@0 | 1913 | |
michael@0 | 1914 | 2012-06-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 1915 | |
michael@0 | 1916 | Fix conditional compilation. |
michael@0 | 1917 | |
michael@0 | 1918 | * include/freetype/internal/ftcalc.h (FT_MulDiv_No_Round): Don't |
michael@0 | 1919 | enclose with `TT_USE_BYTECODE_INTERPRETER'; we now need the function |
michael@0 | 1920 | elsewhere also. |
michael@0 | 1921 | |
michael@0 | 1922 | * src/autofit/afcjk.h: Use AF_CONFIG_OPTION_CJK. |
michael@0 | 1923 | |
michael@0 | 1924 | * src/truetype/ttgload.c (tt_loader_init): Fix compiler warning. |
michael@0 | 1925 | |
michael@0 | 1926 | * src/truetype/ttinterp.c (Ins_MSIRP): Fix compiler warning. |
michael@0 | 1927 | |
michael@0 | 1928 | * src/truetype/ttinterp.h: Use |
michael@0 | 1929 | TT_CONFIG_OPTION_BYTECODE_INTERPRETER. |
michael@0 | 1930 | |
michael@0 | 1931 | 2012-06-26 Infinality <infinality@infinality.net> |
michael@0 | 1932 | |
michael@0 | 1933 | [truetype] Remove unused rounding functionality. |
michael@0 | 1934 | |
michael@0 | 1935 | The subpixel hinting patch contained the concept of an adjustable |
michael@0 | 1936 | number of gridlines per pixel. This is no longer used due to x |
michael@0 | 1937 | being completely ignored instead. This will return some of the |
michael@0 | 1938 | code to its existing state prior to the original Infinality |
michael@0 | 1939 | commit. |
michael@0 | 1940 | |
michael@0 | 1941 | * include/freetype/internal/ftobjs.h (FT_PIX_FLOOR_GRID, |
michael@0 | 1942 | FT_PIX_ROUND_GRID, FT_PIX_CEIL_GRID): Removed. |
michael@0 | 1943 | |
michael@0 | 1944 | * src/truetype/ttinterp.c: Updated. |
michael@0 | 1945 | (Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid, |
michael@0 | 1946 | Round_Up_To_Grid, Round_To_Double_Grid, Round_Super, Round_Super_45, |
michael@0 | 1947 | SetSuperRound): Remove parameter to handle the number of grid lines per |
michael@0 | 1948 | pixel. |
michael@0 | 1949 | (SET_SuperRound, ROUND_None, CUR_Func_round): Updated. |
michael@0 | 1950 | (DO_SROUND, DOS45ROUND, DO_ODD, DO_EVEN): Updated. |
michael@0 | 1951 | (DO_ROUND, DO_NROUND): Updated. |
michael@0 | 1952 | (Move_Zp2_Point, Ins_SHPIX, Ins_MSIRP, Ins_MDAP, Ins_MIAP, |
michael@0 | 1953 | Ins_MDRP, Ins_MIRP): Perform Round_None instead of calling a modified |
michael@0 | 1954 | rounding function. Remove gridlines_per_pixel. Create a local |
michael@0 | 1955 | variable to store control value cutin. Simplify the conditional for |
michael@0 | 1956 | ignore_x_mode. Adjust rounding calls to pass only two values. |
michael@0 | 1957 | |
michael@0 | 1958 | 2012-06-25 Werner Lemberg <wl@gnu.org> |
michael@0 | 1959 | |
michael@0 | 1960 | [cff] Fix Savannah bug #36705. |
michael@0 | 1961 | |
michael@0 | 1962 | Handle numbers like 2.001 correctly. |
michael@0 | 1963 | |
michael@0 | 1964 | * src/cff/cffparse.c (cff_parse_real): Avoid negative values for |
michael@0 | 1965 | `shift'. |
michael@0 | 1966 | |
michael@0 | 1967 | 2012-06-18 Infinality <infinality@infinality.net> |
michael@0 | 1968 | |
michael@0 | 1969 | [truetype] Support subpixel hinting. |
michael@0 | 1970 | |
michael@0 | 1971 | This is the large, famous `Infinality' patch to support ClearType |
michael@0 | 1972 | bytecode which has been available from |
michael@0 | 1973 | http://www.infinality.net/blog/ for some time, and which has been |
michael@0 | 1974 | refined over the last years. While still experimental, it is now |
michael@0 | 1975 | mature enough to be included directly into FreeType. |
michael@0 | 1976 | |
michael@0 | 1977 | Most of the code is based on the ClearType whitepaper written by |
michael@0 | 1978 | Greg Hitchcock |
michael@0 | 1979 | |
michael@0 | 1980 | http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx |
michael@0 | 1981 | |
michael@0 | 1982 | which gives a detailed overview of the necessary changes to the |
michael@0 | 1983 | Microsoft rasterizer so that older fonts are supported. However, a |
michael@0 | 1984 | lot of details are still missing, and this patches provides a |
michael@0 | 1985 | framework to easily handle rendering issues down to the glyph level |
michael@0 | 1986 | of certain fonts. |
michael@0 | 1987 | |
michael@0 | 1988 | Note that ClearType support is not completely implemented! In |
michael@0 | 1989 | particular, full support for the options `compatible_widths', |
michael@0 | 1990 | `symmetrical_smoothing, and `bgr' (via the GETINFO bytecode |
michael@0 | 1991 | instruction) is missing. |
michael@0 | 1992 | |
michael@0 | 1993 | * src/truetype/ttsubpix.c: New file, providing code to handle |
michael@0 | 1994 | `tweaks', this is, rules for certain glyphs in certain fonts |
michael@0 | 1995 | (including wildcards) which need a special treatment. |
michael@0 | 1996 | |
michael@0 | 1997 | * src/truetype/ttsubpix.h: New file, holding the tweaking rules. |
michael@0 | 1998 | |
michael@0 | 1999 | * include/freetype/config/ftoption.h, src/devel/ftoption.h |
michael@0 | 2000 | (TT_CONFIG_OPTION_SUBPIXEL_HINTING): New macro. |
michael@0 | 2001 | |
michael@0 | 2002 | * include/freetype/internal/ftobjs.h (FT_PIX_FLOOR_GRID, |
michael@0 | 2003 | FT_PIX_ROUND_GRID, FT_PIX_CEIL_GRID): New macros. |
michael@0 | 2004 | |
michael@0 | 2005 | * src/truetype/truetype.c [TT_USE_BYTECODE_INTERPRETER]: Include |
michael@0 | 2006 | `ttsubpix.c'. |
michael@0 | 2007 | |
michael@0 | 2008 | * src/truetype/ttgload.c: Include `ttsubpix.h'. |
michael@0 | 2009 | [All changes below are guarded by TT_CONFIG_OPTION_SUBPIXEL_HINTING.] |
michael@0 | 2010 | |
michael@0 | 2011 | (tt_get_metrics): Set tweak flags. |
michael@0 | 2012 | (TT_Hint_Glyph): Call `FT_Outline_EmboldenXY' if necessary. |
michael@0 | 2013 | (TT_Process_Simple_Glyph): Compensate emboldening if necessary. |
michael@0 | 2014 | (compute_glyph_metrics): Handle `compatible widths' option. |
michael@0 | 2015 | (tt_loader_init): Handle ClearType GETINFO information bits. |
michael@0 | 2016 | |
michael@0 | 2017 | * src/truetype/rules.mk (TT_DRC_SRC): Updated. |
michael@0 | 2018 | |
michael@0 | 2019 | * src/truetype/ttinterp.c: Include `ttsubpix.h'. |
michael@0 | 2020 | [Where necessary, changes below are guarded by |
michael@0 | 2021 | TT_CONFIG_OPTION_SUBPIXEL_HINTING.] |
michael@0 | 2022 | |
michael@0 | 2023 | (Direct_Move, Direct_Move_X): Extended. |
michael@0 | 2024 | (Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid, |
michael@0 | 2025 | Round_Up_To_Grid, Round_To_Double_Grid, Round_Super, Round_Super_45, |
michael@0 | 2026 | SetSuperRound): Add parameter to handle the number of grid lines per |
michael@0 | 2027 | pixel. |
michael@0 | 2028 | (SET_SuperRound, ROUND_None, CUR_Func_round): Updated. |
michael@0 | 2029 | (DO_SROUND, DOS45ROUND, DO_ODD, DO_EVEN): Updated. |
michael@0 | 2030 | (DO_ROUND, DO_NROUND): Updated. |
michael@0 | 2031 | (DO_RS): Take care of `Typeman' bytecode patterns. |
michael@0 | 2032 | (Ins_FDEF): Add some debugging code. Commented out. |
michael@0 | 2033 | (Ins_ENDF): Restore state. |
michael@0 | 2034 | (Ins_CALL, Ins_LOOPCALL): Handle inline delta functions. |
michael@0 | 2035 | (Ins_MD): Handle `Vacuform' rounds. |
michael@0 | 2036 | (Move_Zp2_Point, Ins_SHPIX, Ins_MSIRP, Ins_MDAP, Ins_MIAP, |
michael@0 | 2037 | Ins_MDRP, Ins_MIRP): Handle tweaks. |
michael@0 | 2038 | (Ins_ALIGNRP): Add tweak guard. |
michael@0 | 2039 | (Ins_IUP, Ins_DELTAP): Handle tweaks. |
michael@0 | 2040 | (Ins_GETINFO): Handle new ClearType bits. |
michael@0 | 2041 | (TT_RunIns): Handle tweaks. |
michael@0 | 2042 | |
michael@0 | 2043 | * src/truetype/ttinterp.h: Updated. |
michael@0 | 2044 | (SPH_TweakRule, SPH_ScaleRule): New structures for tweaks. |
michael@0 | 2045 | (TT_ExecContextRec): Add members for subpixel hinting support. |
michael@0 | 2046 | |
michael@0 | 2047 | * src/truetype/ttobjs.h (TT_DefRecord): Add `inline_delta' member. |
michael@0 | 2048 | |
michael@0 | 2049 | 2012-06-15 Werner Lemberg <wl@gnu.org> |
michael@0 | 2050 | |
michael@0 | 2051 | * Version 2.4.10 released. |
michael@0 | 2052 | ========================= |
michael@0 | 2053 | |
michael@0 | 2054 | |
michael@0 | 2055 | Tag sources with `VER-2-4-10'. |
michael@0 | 2056 | |
michael@0 | 2057 | * docs/VERSION.DLL: Update documentation and bump version number to |
michael@0 | 2058 | 2.4.10. |
michael@0 | 2059 | |
michael@0 | 2060 | * README, Jamfile (RefDoc), |
michael@0 | 2061 | builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, |
michael@0 | 2062 | builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, |
michael@0 | 2063 | builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, |
michael@0 | 2064 | builds/win32/visualc/freetype.dsp, |
michael@0 | 2065 | builds/win32/visualc/freetype.vcproj, |
michael@0 | 2066 | builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, |
michael@0 | 2067 | builds/win32/visualce/freetype.vcproj, |
michael@0 | 2068 | builds/win32/visualce/index.html, |
michael@0 | 2069 | builds/wince/vc2005-ce/freetype.vcproj, |
michael@0 | 2070 | builds/wince/vc2005-ce/index.html, |
michael@0 | 2071 | builds/wince/vc2008-ce/freetype.vcproj, |
michael@0 | 2072 | builds/wince/vc2008-ce/index.html: s/2.4.9/2.4.10/, s/249/2410/. |
michael@0 | 2073 | |
michael@0 | 2074 | * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10. |
michael@0 | 2075 | |
michael@0 | 2076 | * builds/unix/configure.raw (version_info): Set to 15:0:9. |
michael@0 | 2077 | |
michael@0 | 2078 | 2012-06-15 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 2079 | |
michael@0 | 2080 | * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Improve spacing. |
michael@0 | 2081 | |
michael@0 | 2082 | * docs/CHANGES: Updated. |
michael@0 | 2083 | |
michael@0 | 2084 | 2012-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2085 | |
michael@0 | 2086 | * builds/exports.mk: Add CCexe_CFLAGS and CCexe_LDFLAGS. |
michael@0 | 2087 | |
michael@0 | 2088 | to pass special compiler/linker flags under cross development. |
michael@0 | 2089 | Suggested by Savannah bug #36367. |
michael@0 | 2090 | |
michael@0 | 2091 | ChangeLog on 2010-07-15 saying as they were removed was wrong |
michael@0 | 2092 | for the official trunk of FreeType2. This commit is the first |
michael@0 | 2093 | introduction of them. |
michael@0 | 2094 | |
michael@0 | 2095 | 2012-06-14 Werner Lemberg <wl@gnu.org> |
michael@0 | 2096 | |
michael@0 | 2097 | * docs/CHANGES: Updated. |
michael@0 | 2098 | |
michael@0 | 2099 | 2012-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2100 | |
michael@0 | 2101 | [truetype] Add new versions of NEC FA family to tricky font list. |
michael@0 | 2102 | |
michael@0 | 2103 | NEC FA family dated in 1996 have different checksum. |
michael@0 | 2104 | Reported by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>; see |
michael@0 | 2105 | |
michael@0 | 2106 | http://lists.gnu.org/archive/html/freetype-devel/2012-06/msg00023.html |
michael@0 | 2107 | |
michael@0 | 2108 | * src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids): 4 sets |
michael@0 | 2109 | of fpgm & prep table checksums for FA-Gothic, FA-Minchou, |
michael@0 | 2110 | FA-RoundedGothicM, FA-RoundedGothicB are added. The family |
michael@0 | 2111 | names in sample PDF are truncated, thus the list of the |
michael@0 | 2112 | family names in tt_check_trickyness_family() is not updated yet. |
michael@0 | 2113 | |
michael@0 | 2114 | 2012-06-06 Werner Lemberg <wl@gnu.org> |
michael@0 | 2115 | |
michael@0 | 2116 | [ftraster] Fix rounding issue causing visual artifacts. |
michael@0 | 2117 | |
michael@0 | 2118 | Problem reported by jola <hans-jochen.lau@lhsystems.com>; see |
michael@0 | 2119 | |
michael@0 | 2120 | http://lists.gnu.org/archive/html/freetype-devel/2012-05/msg00036.html |
michael@0 | 2121 | |
michael@0 | 2122 | * src/raster/ftraster.c (SMulDiv_No_Round): New macro. |
michael@0 | 2123 | (Line_Up): Use it. |
michael@0 | 2124 | * src/raster/ftmisc.h (FT_MulDiv_No_Round): Copied from `ftcalc.c'. |
michael@0 | 2125 | |
michael@0 | 2126 | 2012-05-28 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 2127 | |
michael@0 | 2128 | * src/base/ftoutln.c (FT_Outline_Get_Orientation): Simplify. |
michael@0 | 2129 | |
michael@0 | 2130 | We now use the cross product of the direction vectors to compute the |
michael@0 | 2131 | outline's orientation. |
michael@0 | 2132 | |
michael@0 | 2133 | 2012-05-28 Werner Lemberg <wl@gnu.org> |
michael@0 | 2134 | |
michael@0 | 2135 | * docs/CHANGES: Updated. |
michael@0 | 2136 | |
michael@0 | 2137 | 2012-05-28 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 2138 | |
michael@0 | 2139 | New function FT_Outline_EmboldenXY. |
michael@0 | 2140 | |
michael@0 | 2141 | * include/freetype/ftoutln.h (FT_Outline_EmboldenXY): Define it. |
michael@0 | 2142 | |
michael@0 | 2143 | * src/base/ftoutln.c (FT_Outline_EmboldenXY): Implement it, using a |
michael@0 | 2144 | simplified embolding algorithm. |
michael@0 | 2145 | (FT_Outline_Embolden): Make it a special case of |
michael@0 | 2146 | `FT_Outline_EmboldenXY' |
michael@0 | 2147 | |
michael@0 | 2148 | 2012-05-07 Werner Lemberg <wl@gnu.org> |
michael@0 | 2149 | |
michael@0 | 2150 | [type1] Fix Savannah bug #36386. |
michael@0 | 2151 | |
michael@0 | 2152 | * src/type1/t1load.c (t1_load_keyword): Ignore keyword if context is |
michael@0 | 2153 | not valid. |
michael@0 | 2154 | |
michael@0 | 2155 | 2012-04-07 Werner Lemberg <wl@gnu.org> |
michael@0 | 2156 | |
michael@0 | 2157 | Remove compiler warning. |
michael@0 | 2158 | |
michael@0 | 2159 | * src/truetype/ttgload.c (TT_Load_Glyph) |
michael@0 | 2160 | [!TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Access `glyph->face' directly. |
michael@0 | 2161 | |
michael@0 | 2162 | 2012-03-28 Werner Lemberg <wl@gnu.org> |
michael@0 | 2163 | |
michael@0 | 2164 | [autofit] Properly copy scaler flags to script metrics object. |
michael@0 | 2165 | |
michael@0 | 2166 | Without this patch, only the dummy and cjk autohinter modules get |
michael@0 | 2167 | them (since they copy the whole scaler object). |
michael@0 | 2168 | |
michael@0 | 2169 | * src/autofit/aflatin.c (af_latin_metrics_scale), |
michael@0 | 2170 | src/autofit/aflatin2.c (af_latin2_metrics_scale): Implement it. |
michael@0 | 2171 | |
michael@0 | 2172 | 2012-03-22 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 2173 | |
michael@0 | 2174 | [bdflib] Remove redundant macro. |
michael@0 | 2175 | |
michael@0 | 2176 | * src/bdf/bdflib.c (isdigok): Remove and replace with sbitset, which |
michael@0 | 2177 | is exactly the same. |
michael@0 | 2178 | |
michael@0 | 2179 | 2012-03-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2180 | |
michael@0 | 2181 | [configure] Fix Savannah bug #35644. |
michael@0 | 2182 | |
michael@0 | 2183 | * builds/unix/configure.raw: Check `-ansi' flag works even if gcc |
michael@0 | 2184 | is used. Bionic libc headers for Android lose the consistency |
michael@0 | 2185 | when they are parsed with __STDC_VERSION__ older than 199901L or |
michael@0 | 2186 | __STRICT_ANSI__. |
michael@0 | 2187 | |
michael@0 | 2188 | 2012-03-20 Werner Lemberg <wl@gnu.org> |
michael@0 | 2189 | |
michael@0 | 2190 | [bdf] Improvement to Savannah bug #35656. |
michael@0 | 2191 | |
michael@0 | 2192 | * src/bdf/bdflib.c (isdigok): Add cast, as suggested in report. |
michael@0 | 2193 | |
michael@0 | 2194 | 2012-03-17 Chris Liddell <chris.liddell@artifex.com> |
michael@0 | 2195 | |
michael@0 | 2196 | [type1] Fix Savannah bug #35847. |
michael@0 | 2197 | |
michael@0 | 2198 | * src/type1/t1load.c (parse_subrs): Fix the loop exit condition; |
michael@0 | 2199 | we want to exit when we have run out of data. |
michael@0 | 2200 | |
michael@0 | 2201 | 2012-03-16 Werner Lemberg <wl@gnu.org> |
michael@0 | 2202 | |
michael@0 | 2203 | [bdf] Really fix Savannah bug #35658. |
michael@0 | 2204 | |
michael@0 | 2205 | * src/bdf/bdflib.c (_bdf_list_split): Add one more `field' initializer. |
michael@0 | 2206 | |
michael@0 | 2207 | 2012-03-14 Yann Droneaud <yann@droneaud.fr> |
michael@0 | 2208 | |
michael@0 | 2209 | [sfnt] Make arrays static like all others. |
michael@0 | 2210 | |
michael@0 | 2211 | * src/sfnt/ttload.c (tt_face_load_maxp, tt_face_load_os2), |
michael@0 | 2212 | src/sfnt/ttmtx.c (tt_face_load_hhea): Add `static' keyword to frame |
michael@0 | 2213 | fields. |
michael@0 | 2214 | |
michael@0 | 2215 | 2012-03-14 Huw Davies <huw@codeweavers.com> |
michael@0 | 2216 | |
michael@0 | 2217 | [sfnt] A refinement of the previous commit. |
michael@0 | 2218 | |
michael@0 | 2219 | * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16, |
michael@0 | 2220 | tt_name_entry_ascii_from_other): Stop at null byte. |
michael@0 | 2221 | |
michael@0 | 2222 | 2012-03-14 Huw Davies <huw@codeweavers.com> |
michael@0 | 2223 | |
michael@0 | 2224 | [sfnt] Add `name' table compatibility to MS Windows. |
michael@0 | 2225 | |
michael@0 | 2226 | * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16, |
michael@0 | 2227 | tt_name_entry_ascii_from_other): Don't replace `\0' with question |
michael@0 | 2228 | marks when converting strings. |
michael@0 | 2229 | |
michael@0 | 2230 | 2012-03-14 Werner Lemberg <wl@gnu.org> |
michael@0 | 2231 | |
michael@0 | 2232 | [type1] Fix Savannah bug #35833. |
michael@0 | 2233 | |
michael@0 | 2234 | Based on the patch given in the bug report. |
michael@0 | 2235 | |
michael@0 | 2236 | * src/type1/t1load.c (IS_INCREMENTAL): New macro. |
michael@0 | 2237 | (read_binary_data): Add parameter `incremental'. |
michael@0 | 2238 | Update all callers using `IS_INCREMENTAL'. |
michael@0 | 2239 | |
michael@0 | 2240 | 2012-03-11 Werner Lemberg <wl@gnu.org> |
michael@0 | 2241 | |
michael@0 | 2242 | [autofit] Return correct linear advance width values. |
michael@0 | 2243 | |
michael@0 | 2244 | This was quite a subtle bug which accidentally showed up with glyph |
michael@0 | 2245 | `afii10023' of arial.ttf (version 2.76). This glyph is a composite; |
michael@0 | 2246 | the first component, `E', has an advance width of 1366 font units, |
michael@0 | 2247 | while the advance width of the composite itself (which looks like |
michael@0 | 2248 | uppercase `E' with dieresis) is 1367 font units. I think this is |
michael@0 | 2249 | actually a bug in the font itself, because there is no reason that |
michael@0 | 2250 | this glyph has not the same width as uppercase `E' without the |
michael@0 | 2251 | dieresis. Anyway, it helped identify this problem. |
michael@0 | 2252 | |
michael@0 | 2253 | Using the TrueType hinter, the correct value (1367) of `afii10023' |
michael@0 | 2254 | was returned, but the autohinter mysteriously returned 1366. |
michael@0 | 2255 | |
michael@0 | 2256 | Digging in the code showed that the autohinter recursively calls |
michael@0 | 2257 | FT_Load_Glyph to load the glyph, adding the FT_LOAD_NO_SCALE load |
michael@0 | 2258 | flag. However, the `linearHoriAdvance' field is still returned as a |
michael@0 | 2259 | scaled value. To avoid scaling twice, the old code in autofit reset |
michael@0 | 2260 | `linearHoriAdvance', using the `horiAdvance' field. This seemed to |
michael@0 | 2261 | work since FT_LOAD_NO_SCALE was in use, but it failed actually, |
michael@0 | 2262 | because `horiAdvance' is defined as the distance of the first |
michael@0 | 2263 | subglyph's phantom points, which in turn are initialized using the |
michael@0 | 2264 | advance width of the first subglyph. And as the given example |
michael@0 | 2265 | shows, these widths can differ. |
michael@0 | 2266 | |
michael@0 | 2267 | * src/autofit/afloader.c (af_loader_load_g): Temporarily set |
michael@0 | 2268 | FT_LOAD_LINEAR_DESIGN while calling FT_Load_Glyph to get unscaled |
michael@0 | 2269 | values for the linear advance widths. |
michael@0 | 2270 | |
michael@0 | 2271 | 2012-03-10 Werner Lemberg <wl@gnu.org> |
michael@0 | 2272 | |
michael@0 | 2273 | [truetype] Fix SSW instruction. |
michael@0 | 2274 | |
michael@0 | 2275 | * src/truetype/ttinterp.c (DO_SSW): SSW *does* use font units. For |
michael@0 | 2276 | verification, it took some time to find a font which actually uses |
michael@0 | 2277 | this instruction. |
michael@0 | 2278 | |
michael@0 | 2279 | 2012-03-09 Vinnie Falco <vinnie.falco@gmail.com> |
michael@0 | 2280 | |
michael@0 | 2281 | Prepare source code for amalgamation. |
michael@0 | 2282 | |
michael@0 | 2283 | * include/freetype/freetype.h: Swap order of preprocessor blocks. |
michael@0 | 2284 | |
michael@0 | 2285 | 2012-03-08 Werner Lemberg <wl@gnu.org> |
michael@0 | 2286 | |
michael@0 | 2287 | * Version 2.4.9 released. |
michael@0 | 2288 | ========================= |
michael@0 | 2289 | |
michael@0 | 2290 | |
michael@0 | 2291 | Tag sources with `VER-2-4-9'. |
michael@0 | 2292 | |
michael@0 | 2293 | * docs/CHANGES: Updated. |
michael@0 | 2294 | |
michael@0 | 2295 | * docs/VERSION.DLL: Update documentation and bump version number to |
michael@0 | 2296 | 2.4.9. |
michael@0 | 2297 | |
michael@0 | 2298 | * README, Jamfile (RefDoc), |
michael@0 | 2299 | builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, |
michael@0 | 2300 | builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, |
michael@0 | 2301 | builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, |
michael@0 | 2302 | builds/win32/visualc/freetype.dsp, |
michael@0 | 2303 | builds/win32/visualc/freetype.vcproj, |
michael@0 | 2304 | builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, |
michael@0 | 2305 | builds/win32/visualce/freetype.vcproj, |
michael@0 | 2306 | builds/win32/visualce/index.html, |
michael@0 | 2307 | builds/wince/vc2005-ce/freetype.vcproj, |
michael@0 | 2308 | builds/wince/vc2005-ce/index.html, |
michael@0 | 2309 | builds/wince/vc2008-ce/freetype.vcproj, |
michael@0 | 2310 | builds/wince/vc2008-ce/index.html: s/2.4.8/2.4.9/, s/248/249/. |
michael@0 | 2311 | |
michael@0 | 2312 | * include/freetype/freetype.h (FREETYPE_PATCH): Set to 9. |
michael@0 | 2313 | |
michael@0 | 2314 | * builds/unix/configure.raw (version_info): Set to 14:1:8. |
michael@0 | 2315 | |
michael@0 | 2316 | 2012-03-08 Werner Lemberg <wl@gnu.org> |
michael@0 | 2317 | |
michael@0 | 2318 | [bdf] Add missing overflow check. |
michael@0 | 2319 | |
michael@0 | 2320 | * src/bdf/bdflib.c (_bdf_parse_glyphs) <BITMAP>: Add threshold for |
michael@0 | 2321 | `glyph->bpr'. |
michael@0 | 2322 | |
michael@0 | 2323 | 2012-03-07 Vinnie Falco <vinnie.falco@gmail.com> |
michael@0 | 2324 | |
michael@0 | 2325 | Prepare source code for amalgamation. |
michael@0 | 2326 | |
michael@0 | 2327 | * src/autofit/aferrors.h, src/bdf/bdferror.h, src/bzip2/ftbzip2.c, |
michael@0 | 2328 | src/cache/ftcerror.h, src/cff/cfferrs.h, src/cid/ciderrs.h, |
michael@0 | 2329 | src/gxvalid/gxverror.h, src/gzip/ftgzip.c, src/lzw/ftlzw.c, |
michael@0 | 2330 | src/otvalid/otverror.h, src/pcf/pcferror.h, src/pfr/pfrerror.h, |
michael@0 | 2331 | src/psaux/psauxerr.h, src/pshinter/pshnterr.h, |
michael@0 | 2332 | src/psnames/psnamerr.h, src/raster/rasterrs.h, src/sfnt/sferrors.h, |
michael@0 | 2333 | src/smooth/ftsmerrs.h, src/truetype/tterrors.h, |
michael@0 | 2334 | src/type1/t1errors.h, src/type42/t42error.h, src/winfonts/fnterrs.h: |
michael@0 | 2335 | Add #undef FT_ERR_PREFIX before #define FT_ERR_PREFIX. |
michael@0 | 2336 | |
michael@0 | 2337 | 2012-03-03 Werner Lemberg <wl@gnu.org> |
michael@0 | 2338 | |
michael@0 | 2339 | Fix Savannah bug #35660. |
michael@0 | 2340 | |
michael@0 | 2341 | For some divisions, we use casts to 32bit entities. Always guard |
michael@0 | 2342 | against division by zero with these casts also. |
michael@0 | 2343 | |
michael@0 | 2344 | * src/base/ftcalc.c (ft_div64by32): Remove redundant cast. |
michael@0 | 2345 | (FT_MulDiv, FT_MulDiv_No_Round): Add 32bit cast. |
michael@0 | 2346 | (FT_DivFix): Add 32bit cast (this omission triggered the bug). |
michael@0 | 2347 | |
michael@0 | 2348 | 2012-03-03 Werner Lemberg <wl@gnu.org> |
michael@0 | 2349 | |
michael@0 | 2350 | [psaux] Fix handling of track kerning. |
michael@0 | 2351 | |
michael@0 | 2352 | * src/psaux/afmparse.c (afm_parse_track_kern): Don't inverse sign |
michael@0 | 2353 | for `min_kern'. It is indeed quite common that track kerning |
michael@0 | 2354 | *increases* spacing for very small sizes. |
michael@0 | 2355 | |
michael@0 | 2356 | 2012-03-02 Werner Lemberg <wl@gnu.org> |
michael@0 | 2357 | |
michael@0 | 2358 | [truetype] Fix Savannah bug #35689. |
michael@0 | 2359 | |
michael@0 | 2360 | * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check first outline |
michael@0 | 2361 | point. |
michael@0 | 2362 | |
michael@0 | 2363 | 2012-03-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 2364 | |
michael@0 | 2365 | [bdf] Fix Savannah bug #35656. |
michael@0 | 2366 | |
michael@0 | 2367 | * src/bdf/bdflib.c (_bdf_parse_glyphs) <_BDF_BITMAP>: Check validity |
michael@0 | 2368 | of nibble characters instead of accessing `a2i' array. |
michael@0 | 2369 | |
michael@0 | 2370 | 2012-03-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 2371 | |
michael@0 | 2372 | [winfonts] Fix Savannah bug #35659. |
michael@0 | 2373 | |
michael@0 | 2374 | * src/winfonts/winfnt.c (FNT_Face_Init): Check number of glyphs. |
michael@0 | 2375 | |
michael@0 | 2376 | 2012-03-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 2377 | |
michael@0 | 2378 | [bdf] Fix Savannah bug #35658. |
michael@0 | 2379 | |
michael@0 | 2380 | * src/bdf/bdflib.c (_bdf_list_split): Initialize `field' elements |
michael@0 | 2381 | properly. |
michael@0 | 2382 | |
michael@0 | 2383 | 2012-03-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 2384 | |
michael@0 | 2385 | [psaux] Fix Savannah bug #35657. |
michael@0 | 2386 | |
michael@0 | 2387 | If in function `skip_spaces' the routine `skip_comment' comes to the |
michael@0 | 2388 | end of buffer, `cur' is still increased by one, so we need to check |
michael@0 | 2389 | for `p >= limit' and not `p == limit'. |
michael@0 | 2390 | |
michael@0 | 2391 | * src/psaux/psconv.c (PS_Conv_Strtol, PS_Conv_ToFixed, |
michael@0 | 2392 | PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Fix boundary checking. |
michael@0 | 2393 | |
michael@0 | 2394 | 2012-03-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 2395 | |
michael@0 | 2396 | [truetype] Fix Savannah bug #35646. |
michael@0 | 2397 | |
michael@0 | 2398 | * src/truetype/ttinterp.c (Ins_MIRP): Typo, present since ages. The |
michael@0 | 2399 | code is now in sync with the other operators (e.g. MSIRP) which |
michael@0 | 2400 | modify twilight points. |
michael@0 | 2401 | |
michael@0 | 2402 | 2012-03-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 2403 | |
michael@0 | 2404 | [bdf] Fix Savannah bug #35643. |
michael@0 | 2405 | |
michael@0 | 2406 | * src/bdf/bdflib.c (_bdf_list_ensure): Bring code in sync with |
michael@0 | 2407 | comment before `_bdf_list_split', this is, really allocate at least |
michael@0 | 2408 | five `field' elements. |
michael@0 | 2409 | |
michael@0 | 2410 | 2012-03-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 2411 | |
michael@0 | 2412 | [bdf] Fix Savannah bug #35641. |
michael@0 | 2413 | |
michael@0 | 2414 | * src/bdf/bdflib.c (_bdf_parse_glyphs) <DWIDTH, BBX>: Abort if |
michael@0 | 2415 | _BDF_ENCODING isn't set. We need this because access to the `glyph' |
michael@0 | 2416 | variable might be undefined otherwise. |
michael@0 | 2417 | |
michael@0 | 2418 | 2012-03-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 2419 | |
michael@0 | 2420 | [truetype] Fix Savannah bug #35640. |
michael@0 | 2421 | |
michael@0 | 2422 | * src/truetype/ttinterp.c (SkipCode, TT_RunIns): Fix boundary check |
michael@0 | 2423 | for NPUSHB and NPUSHW instructions. |
michael@0 | 2424 | |
michael@0 | 2425 | 2012-02-29 Werner Lemberg <wl@gnu.org> |
michael@0 | 2426 | |
michael@0 | 2427 | [truetype] Fix Savannah bug #35601. |
michael@0 | 2428 | |
michael@0 | 2429 | * src/truetype/ttinterp.c (Ins_SHZ): Use number of points instead of |
michael@0 | 2430 | last point for loop. |
michael@0 | 2431 | Also remove redundant boundary check. |
michael@0 | 2432 | |
michael@0 | 2433 | 2012-02-29 Werner Lemberg <wl@gnu.org> |
michael@0 | 2434 | |
michael@0 | 2435 | [truetype] Remove redundant check. |
michael@0 | 2436 | |
michael@0 | 2437 | * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant |
michael@0 | 2438 | second check for ordered contour start points. |
michael@0 | 2439 | |
michael@0 | 2440 | 2012-02-29 Werner Lemberg <wl@gnu.org> |
michael@0 | 2441 | |
michael@0 | 2442 | [truetype] Make SHC instruction behave similar to MS rasterizer. |
michael@0 | 2443 | |
michael@0 | 2444 | * src/truetype/ttinterp.c (Ins_SHC): Handle virtual contour in |
michael@0 | 2445 | twilight zone. |
michael@0 | 2446 | |
michael@0 | 2447 | 2012-02-29 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 2448 | |
michael@0 | 2449 | Avoid modulo operators against a power-of-two denominator. |
michael@0 | 2450 | |
michael@0 | 2451 | * src/afcjk.c (af_hint_normal_stem), src/base/ftoutln.c |
michael@0 | 2452 | (ft_contour_has), src/cff/cffgload.c (cff_decoder_parse_charstrings) |
michael@0 | 2453 | <cff_op_vvcurveto, cff_op_hhcurveto, cff_op_hvcurveto>, |
michael@0 | 2454 | src/gxvalid/gxvcommn.c (GXV_32BIT_ALIGNMENT_VALIDATE), |
michael@0 | 2455 | src/gxvalid/gxvfeat.c (gxv_feat_setting_validate): Replace `%' with |
michael@0 | 2456 | `&' operator. |
michael@0 | 2457 | |
michael@0 | 2458 | 2012-02-29 Werner Lemberg <wl@gnu.org> |
michael@0 | 2459 | |
michael@0 | 2460 | [autofit] Don't synchronize digit widths for light rendering mode. |
michael@0 | 2461 | |
michael@0 | 2462 | We don't hint horizontally in this mode. |
michael@0 | 2463 | |
michael@0 | 2464 | * src/autofit/afloader.c (af_loader_load_g) <Hint_Metrics>: |
michael@0 | 2465 | Implement it. |
michael@0 | 2466 | |
michael@0 | 2467 | 2012-02-26 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 2468 | |
michael@0 | 2469 | [type42] Minor code optimization (again). |
michael@0 | 2470 | |
michael@0 | 2471 | * src/type42/t42parse.c (t42_parse_sfnts): Simplify previous change. |
michael@0 | 2472 | |
michael@0 | 2473 | 2012-02-26 Mateusz Jurczyk <mjurczyk@google.com> |
michael@0 | 2474 | Werner Lemberg <wl@gnu.org> |
michael@0 | 2475 | |
michael@0 | 2476 | [smooth] Fix Savannah bug #35604. |
michael@0 | 2477 | |
michael@0 | 2478 | * src/smooth/ftsmooth.c (ft_smooth_render_generic): Use `FT_Pos' |
michael@0 | 2479 | instead of `FT_UInt' for some variables and update comparisons |
michael@0 | 2480 | accordingly. A detailed analysis can be found in the bug report. |
michael@0 | 2481 | |
michael@0 | 2482 | 2012-02-26 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 2483 | |
michael@0 | 2484 | [type42] Minor code optimization. |
michael@0 | 2485 | |
michael@0 | 2486 | * src/type42/t42parse.c (t42_parse_sfnts): Use bitmask instead of |
michael@0 | 2487 | modulo operator. |
michael@0 | 2488 | |
michael@0 | 2489 | 2012-02-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 2490 | |
michael@0 | 2491 | * docs/CHANGES: Updated. |
michael@0 | 2492 | |
michael@0 | 2493 | 2012-02-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 2494 | |
michael@0 | 2495 | [type1] Fix Savannah bug #35608. |
michael@0 | 2496 | |
michael@0 | 2497 | * src/type1/t1parse.c (T1_Get_Private_Dict): Reject too short |
michael@0 | 2498 | dictionaries. |
michael@0 | 2499 | |
michael@0 | 2500 | 2012-02-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 2501 | |
michael@0 | 2502 | [bdf] Support `ENCODING -1 <n>' format. |
michael@0 | 2503 | |
michael@0 | 2504 | * src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Implement it. |
michael@0 | 2505 | |
michael@0 | 2506 | 2012-02-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 2507 | |
michael@0 | 2508 | [bdf] Fix Savannah bug #35607. |
michael@0 | 2509 | |
michael@0 | 2510 | * src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Normalize |
michael@0 | 2511 | negative encoding values. |
michael@0 | 2512 | |
michael@0 | 2513 | 2012-02-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 2514 | |
michael@0 | 2515 | [type1] Fix Savannah bug #35606. |
michael@0 | 2516 | |
michael@0 | 2517 | * src/type1/t1load.c (parse_subrs): Add proper guards for `strncmp'. |
michael@0 | 2518 | |
michael@0 | 2519 | * src/psaux/psobjs.c (ps_parser_skip_PS_token): Emit error message |
michael@0 | 2520 | only if cur < limit. |
michael@0 | 2521 | |
michael@0 | 2522 | 2012-02-25 Werner Lemberg <wl@gnu.org> |
michael@0 | 2523 | |
michael@0 | 2524 | [pcf] Fix Savannah bug #35603. |
michael@0 | 2525 | |
michael@0 | 2526 | * src/pcf/pcfread.c (pcf_get_properties): Assure final zero byte in |
michael@0 | 2527 | `strings' array. |
michael@0 | 2528 | |
michael@0 | 2529 | 2012-02-25 Werner Lemberg <wl@gnu.org> |
michael@0 | 2530 | |
michael@0 | 2531 | [type42] Fix Savannah bug #35602. |
michael@0 | 2532 | |
michael@0 | 2533 | * src/type42/t42parse.c (t42_parse_sfnts): Check `string_size' more |
michael@0 | 2534 | thoroughly. |
michael@0 | 2535 | |
michael@0 | 2536 | 2012-02-25 Werner Lemberg <wl@gnu.org> |
michael@0 | 2537 | |
michael@0 | 2538 | [bdf] Fix Savannah bugs #35599 and #35600. |
michael@0 | 2539 | |
michael@0 | 2540 | * src/bdf/bdflib.c (ACMSG16): New warning message. |
michael@0 | 2541 | (_bdf_parse_glyphs) <_BDF_BITMAP>: Check line length. |
michael@0 | 2542 | |
michael@0 | 2543 | 2012-02-24 Werner Lemberg <wl@gnu.org> |
michael@0 | 2544 | |
michael@0 | 2545 | [bdf] Fix Savannah bugs #35597 and #35598. |
michael@0 | 2546 | |
michael@0 | 2547 | * src/bdf/bdflib.c (_bdf_is_atom): Fix handling of property value. |
michael@0 | 2548 | |
michael@0 | 2549 | 2012-02-24 Vinnie Falco <vinnie.falco@gmail.com> |
michael@0 | 2550 | |
michael@0 | 2551 | Prepare source code for amalgamation (6/6). |
michael@0 | 2552 | |
michael@0 | 2553 | * src/cff/cffdrivr.c: s/Load_Glyph/cff_glyph_load/. |
michael@0 | 2554 | |
michael@0 | 2555 | * src/cid/cidload.c: s/parse_font_matrix/cid_parse_font_matrix/. |
michael@0 | 2556 | s/t1_init_loader/cid_init_loader/. |
michael@0 | 2557 | s/t1_done_loader/cid_done_loader/. |
michael@0 | 2558 | |
michael@0 | 2559 | * src/pxaux/t1cmap.c: s/t1_get_glyph_name/psaux_get_glyph_name/. |
michael@0 | 2560 | |
michael@0 | 2561 | * src/truetype/ttdriver.c: s/Load_Glyph/tt_glyph_load/. |
michael@0 | 2562 | |
michael@0 | 2563 | * src/type1/t1load.c: s/parse_font_matrix/t1_parse_font_matrix/. |
michael@0 | 2564 | |
michael@0 | 2565 | 2012-02-24 Vinnie Falco <vinnie.falco@gmail.com> |
michael@0 | 2566 | |
michael@0 | 2567 | Prepare source code for amalgamation (5/6). |
michael@0 | 2568 | |
michael@0 | 2569 | * include/freetype/fterrors.h: Undefine FT_KEEP_ERR_PREFIX after |
michael@0 | 2570 | using it. |
michael@0 | 2571 | |
michael@0 | 2572 | 2012-02-22 Vinnie Falco <vinnie.falco@gmail.com> |
michael@0 | 2573 | |
michael@0 | 2574 | Prepare source code for amalgamation (4/6). |
michael@0 | 2575 | |
michael@0 | 2576 | * src/smooth/ftgrays.c, src/raster/ftraster.c: Undefine RAS_ARG, |
michael@0 | 2577 | RAS_ARGS, RAS_VAR, and RAS_VARS before defining it. |
michael@0 | 2578 | |
michael@0 | 2579 | * src/smooth/ftgrays.c: s/TRaster/black_TRaster/, |
michael@0 | 2580 | s/PRaster/black_PRaster/. |
michael@0 | 2581 | * src/raster/ftraster.c: s/TRaster/gray_TRaster/, |
michael@0 | 2582 | s/PRaster/gray_PRaster/. |
michael@0 | 2583 | |
michael@0 | 2584 | 2012-02-20 Vinnie Falco <vinnie.falco@gmail.com> |
michael@0 | 2585 | |
michael@0 | 2586 | Prepare source code for amalgamation (3/6). |
michael@0 | 2587 | |
michael@0 | 2588 | * src/smooth/ftgrays.c: s/TWorker/black_TWorker/, |
michael@0 | 2589 | s/PWorker/black_PWorker/. |
michael@0 | 2590 | * src/raster/ftraster.c: s/TWorker/gray_TWorker/, |
michael@0 | 2591 | s/PWorker/gray_PWorker/. |
michael@0 | 2592 | |
michael@0 | 2593 | 2012-02-20 Vinnie Falco <vinnie.falco@gmail.com> |
michael@0 | 2594 | |
michael@0 | 2595 | Prepare source code for amalgamation (2/6). |
michael@0 | 2596 | |
michael@0 | 2597 | * src/smooth/ftgrays.c, src/raster/ftraster.c: Undefine FLOOR, |
michael@0 | 2598 | CEILING, TRUNC, and SCALED before defining it. |
michael@0 | 2599 | |
michael@0 | 2600 | 2012-02-20 Vinnie Falco <vinnie.falco@gmail.com> |
michael@0 | 2601 | |
michael@0 | 2602 | Prepare source code for amalgamation (1/6). |
michael@0 | 2603 | |
michael@0 | 2604 | See discussion starting at |
michael@0 | 2605 | |
michael@0 | 2606 | http://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00037.html |
michael@0 | 2607 | |
michael@0 | 2608 | * src/smooth/ftgrays.c: s/TBand/gray_TBand/. |
michael@0 | 2609 | * src/raster/ftraster.c: s/TBand/black_TBand/. |
michael@0 | 2610 | |
michael@0 | 2611 | 2012-02-17 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 2612 | |
michael@0 | 2613 | [autofit] Fix outline flags. |
michael@0 | 2614 | |
michael@0 | 2615 | * src/autofit/afloader.c (af_loader_load_g): Don't reassign |
michael@0 | 2616 | `outline.flags' so that this information is preserved. See |
michael@0 | 2617 | discussion starting at |
michael@0 | 2618 | |
michael@0 | 2619 | http://lists.gnu.org/archive/html/freetype-devel/2012-02/msg00046.html |
michael@0 | 2620 | |
michael@0 | 2621 | 2012-02-11 Werner Lemberg <wl@gnu.org> |
michael@0 | 2622 | |
michael@0 | 2623 | [truetype] Fix Savannah bug #35466. |
michael@0 | 2624 | |
michael@0 | 2625 | Jump instructions are now bound to the current function. The MS |
michael@0 | 2626 | Windows rasterizer behaves the same, as confirmed by Greg Hitchcock. |
michael@0 | 2627 | |
michael@0 | 2628 | * src/truetype/ttinterp.h (TT_CallRec): Add `Cur_End' element. |
michael@0 | 2629 | * src/truetype/ttobjs.h (TT_DefRecord): Add `end' element. |
michael@0 | 2630 | |
michael@0 | 2631 | * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Check upper |
michael@0 | 2632 | bound of jump address. |
michael@0 | 2633 | (Ins_FDEF, Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns): Updated. |
michael@0 | 2634 | |
michael@0 | 2635 | 2012-02-11 Werner Lemberg <wl@gnu.org> |
michael@0 | 2636 | |
michael@0 | 2637 | We don't use `extensions'. |
michael@0 | 2638 | |
michael@0 | 2639 | * include/freetype/internal/ftobjs.h (FT_DriverRec): Remove |
michael@0 | 2640 | `extensions' field. |
michael@0 | 2641 | |
michael@0 | 2642 | 2012-02-11 Werner Lemberg <wl@gnu.org> |
michael@0 | 2643 | |
michael@0 | 2644 | Clean up `generic' fields. |
michael@0 | 2645 | |
michael@0 | 2646 | * include/freetype/internal/ftobjs.h (FT_ModuleRec, FT_LibraryRec): |
michael@0 | 2647 | Remove `generic' field since users can't access it. |
michael@0 | 2648 | |
michael@0 | 2649 | * src/base/ftobjs.c (FT_Done_GlyphSlot): Call `generic.finalizer' as |
michael@0 | 2650 | advertised in the documentation of FT_Generic. |
michael@0 | 2651 | (Destroy_Module, FT_Done_Library): Updated to changes in `ftobjs.h'. |
michael@0 | 2652 | |
michael@0 | 2653 | 2012-02-07 Werner Lemberg <wl@gnu.org> |
michael@0 | 2654 | |
michael@0 | 2655 | [autofit] Harmonize function arguments. |
michael@0 | 2656 | |
michael@0 | 2657 | * src/autofit/afloader.c, src/autofit/afloader.h: Use `FT_Int32' for |
michael@0 | 2658 | `load_flags'. |
michael@0 | 2659 | |
michael@0 | 2660 | 2012-02-07 Werner Lemberg <wl@gnu.org> |
michael@0 | 2661 | |
michael@0 | 2662 | * src/cff/cffobjs.c (cff_face_init): Remove unnecessary casts. |
michael@0 | 2663 | |
michael@0 | 2664 | 2012-01-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2665 | |
michael@0 | 2666 | [gxvalid] Fix Savannah bug #35286. |
michael@0 | 2667 | |
michael@0 | 2668 | Patch submitted by anonymous reporter. |
michael@0 | 2669 | |
michael@0 | 2670 | * src/gxvalid/gxvcommn.c (gxv_XStateTable_subtable_setup): |
michael@0 | 2671 | gxv_set_length_by_ulong_offset() must be called with 3, not 4, |
michael@0 | 2672 | the number of the subtables in the state tables; classTable, |
michael@0 | 2673 | stateArray, entryTable. |
michael@0 | 2674 | |
michael@0 | 2675 | 2012-01-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2676 | |
michael@0 | 2677 | [raccess] Modify for PIC build. |
michael@0 | 2678 | |
michael@0 | 2679 | Based on the patch provided by Erik Dahlstrom <ed@opera.com>, |
michael@0 | 2680 | http://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00010.html |
michael@0 | 2681 | |
michael@0 | 2682 | Also `raccess_guess_table[]' and `raccess_rule_by_darwin_vfs()' |
michael@0 | 2683 | are renamed with `ft_' suffixes. |
michael@0 | 2684 | |
michael@0 | 2685 | * src/base/ftbase.h: `raccess_rule_by_darwin_vfs()' is renamed |
michael@0 | 2686 | to `ft_raccess_rule_by_darwin_vfs()'. |
michael@0 | 2687 | * src/base/ftobjs.c: Ditto. |
michael@0 | 2688 | |
michael@0 | 2689 | * src/base/ftrfork.c: Declarations of FT_RFork_Rule, |
michael@0 | 2690 | raccess_guess_rec, are moved to... |
michael@0 | 2691 | * include/freetype/internal/ftrfork.h: Here. |
michael@0 | 2692 | |
michael@0 | 2693 | * include/freetype/internal/ftrfork.h: |
michael@0 | 2694 | FT_RFORK_RULE_ARRAY_{BEGIN,ENTRY,END} macros are defined |
michael@0 | 2695 | to replace raccess_guess_table[] in both of PIC and non-PIC |
michael@0 | 2696 | modes. |
michael@0 | 2697 | * src/base/ftrfork.c: raccess_guess_table[] array is rewritten |
michael@0 | 2698 | by FT_RFORK_RULE_ARRAY_{BEGIN,ENTRY,END}. |
michael@0 | 2699 | |
michael@0 | 2700 | * src/base/basepic.h (BasePIC): Add `ft_raccess_guess_table' |
michael@0 | 2701 | storage. (FT_RACCESS_GUESS_TABLE_GET): New macro to retrieve |
michael@0 | 2702 | the function pointer from `ft_raccess_guess_table' storage in |
michael@0 | 2703 | `BasePIC' structure. |
michael@0 | 2704 | * src/base/ftrfork.c (FT_Raccess_Guess): Rewritten with |
michael@0 | 2705 | FT_RACCESS_GUESS_TABLE_GET. |
michael@0 | 2706 | (raccess_get_rule_type_from_rule_index): Add `library' as the |
michael@0 | 2707 | first argument to the function, to retrieve the storage of |
michael@0 | 2708 | `ft_raccess_guess_table' from it. Also `raccess_guess_table' |
michael@0 | 2709 | is replaced by FT_RACCESS_GUESS_TABLE_GET. |
michael@0 | 2710 | (ft_raccess_rule_by_darwin_vfs): Ditto. |
michael@0 | 2711 | |
michael@0 | 2712 | 2012-01-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2713 | |
michael@0 | 2714 | Remove trailing spaces. |
michael@0 | 2715 | |
michael@0 | 2716 | 2012-01-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2717 | |
michael@0 | 2718 | Formatting PIC related sources. |
michael@0 | 2719 | |
michael@0 | 2720 | * src/autofit/afpic.c: Harmonize to FT2 coding conventions. |
michael@0 | 2721 | * src/base/basepic.c: Ditto. |
michael@0 | 2722 | * src/base/ftpic.c: Ditto. |
michael@0 | 2723 | * src/cff/cffpic.c: Ditto. |
michael@0 | 2724 | * src/pshinter/pshpic.c: Ditto. |
michael@0 | 2725 | * src/psnames/pspic.c: Ditto. |
michael@0 | 2726 | * src/raster/rastpic.c: Ditto. |
michael@0 | 2727 | * src/sfnt/sfntpic.c: Ditto. |
michael@0 | 2728 | * src/smooth/ftspic.c: Ditto. |
michael@0 | 2729 | * src/truetype/ttpic.c: Ditto. |
michael@0 | 2730 | |
michael@0 | 2731 | 2012-01-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2732 | |
michael@0 | 2733 | [autofit] Fix the inclusion of `aflatin2.h' in PIC file. |
michael@0 | 2734 | |
michael@0 | 2735 | * src/autofit/afpic.c: Include `aflatin2.h' when |
michael@0 | 2736 | FT_OPTION_AUTOFIT2 is defined, as afglobal.c does so. |
michael@0 | 2737 | Unconditionally inclusion causes declared but unimplemented |
michael@0 | 2738 | warning by GCC 4.6. |
michael@0 | 2739 | |
michael@0 | 2740 | 2012-01-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2741 | |
michael@0 | 2742 | [cff] Remove redundant declarations of cff_cmap_XXX_class_rec. |
michael@0 | 2743 | |
michael@0 | 2744 | * src/cff/cffpic.c: The declarations of |
michael@0 | 2745 | FT_Init_Class_cff_cmap_encoding_class_rec() and |
michael@0 | 2746 | FT_Init_Class_cff_cmap_unicode_class_rec() are removed. |
michael@0 | 2747 | They can be obtained by the inclusion of cffcmap.h. |
michael@0 | 2748 | cffcmap.h invokes FT_DECLARE_CMAP_CLASS() and it declares |
michael@0 | 2749 | FT_Init_Class_cff_cmap_encoding_class_rec() etc in PIC mode. |
michael@0 | 2750 | |
michael@0 | 2751 | 2012-01-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2752 | |
michael@0 | 2753 | Fix redundant declaration warning in PIC mode. |
michael@0 | 2754 | |
michael@0 | 2755 | Originally FT_DEFINE_{DRIVER,MODULE,RENDERER}() macros were |
michael@0 | 2756 | designed to declare xxx_pic_{free,init} by themselves. |
michael@0 | 2757 | Because these macros are used at the end of the module |
michael@0 | 2758 | interface (e.g. ttdriver.c) and the wrapper source to build |
michael@0 | 2759 | a module as a single object (e.g. truetype.c) includes |
michael@0 | 2760 | the PIC file (e.g. ttpic.c) before the module interface, |
michael@0 | 2761 | these macros are expanded AFTER xxx_pic_{free,init} body |
michael@0 | 2762 | when the modules are built as single object. |
michael@0 | 2763 | The declaration after the implementation causes the redundant |
michael@0 | 2764 | declaration warnings, so the declarations are moved to module |
michael@0 | 2765 | PIC headers (e.g. ttpic.h). Separating to other header files |
michael@0 | 2766 | are needed for multi build. |
michael@0 | 2767 | |
michael@0 | 2768 | * include/freetype/internal/ftdriver.h (FT_DEFINE_DRIVER): |
michael@0 | 2769 | Remove class_##_pic_free and class_##_pic_init declarations. |
michael@0 | 2770 | * include/freetype/internal/ftobjs.h (FT_DEFINE_RENDERER, |
michael@0 | 2771 | FT_DEFINE_MODULE): Ditto. |
michael@0 | 2772 | |
michael@0 | 2773 | * src/base/basepic.h: Insert a comment and fix coding style. |
michael@0 | 2774 | * src/autofit/afpic.h: Declare autofit_module_class_pic_{free, |
michael@0 | 2775 | init}. |
michael@0 | 2776 | * src/cff/cffpic.h: Declare cff_driver_class_pic_{free,init}. |
michael@0 | 2777 | * src/pshinter/pshpic.h: Declare pshinter_module_class_pic_{free, |
michael@0 | 2778 | init}. |
michael@0 | 2779 | * src/psnames/pspic.h: Declare psnames_module_class_pic_{free, |
michael@0 | 2780 | init}. |
michael@0 | 2781 | * src/raster/rastpic.h: Declare |
michael@0 | 2782 | ft_raster{1,5}_renderer_class_pic_{free,init} |
michael@0 | 2783 | * src/sfnt/sfntpic.h: Declare sfnt_module_class_pic_{free,init}. |
michael@0 | 2784 | * src/smooth/ftspic.h: Declare |
michael@0 | 2785 | ft_smooth_{,lcd_,lcdv_}renderer_class_pic_{free,init}. |
michael@0 | 2786 | * src/truetype/ttpic.h: Declare tt_driver_class_pic_{free,init}. |
michael@0 | 2787 | |
michael@0 | 2788 | 2012-01-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2789 | |
michael@0 | 2790 | Make pspic.c to include module error header to fix multi build. |
michael@0 | 2791 | |
michael@0 | 2792 | * src/psnames/pspic.c: Include `psnamerr.h'. |
michael@0 | 2793 | |
michael@0 | 2794 | 2012-01-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2795 | |
michael@0 | 2796 | [base] Fix a dereference of uninitialized variable in PIC mode. |
michael@0 | 2797 | |
michael@0 | 2798 | * src/base/ftglyph.c (FT_Glyph_To_Bitmap): `glyph' must be |
michael@0 | 2799 | set before derefering to obtain `library'. The initialization |
michael@0 | 2800 | of `clazz', `glyph', `library' and NULL pointer check are |
michael@0 | 2801 | reordered to minimize PIC conditonals. |
michael@0 | 2802 | |
michael@0 | 2803 | 2012-01-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2804 | |
michael@0 | 2805 | [base] Insert explicit cast for GCC 4.6 in PIC mode. |
michael@0 | 2806 | |
michael@0 | 2807 | * src/base/ftinit.c (FT_Add_Default_Modules): Under PIC |
michael@0 | 2808 | configuration, FT_DEFAULT_MODULES_GET returns |
michael@0 | 2809 | FT_Module_Class** pointer, GCC 4.6 warns that |
michael@0 | 2810 | const FT_Module_Class* const* variable is warned as |
michael@0 | 2811 | inappropriate to store it. To calm it, explicit cast is |
michael@0 | 2812 | inserted. Also `library' is checked to prevent the NULL |
michael@0 | 2813 | pointer dereference in FT_DEFAULT_MODULES_GET. |
michael@0 | 2814 | |
michael@0 | 2815 | 2012-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2816 | |
michael@0 | 2817 | Fix PIC build broken by d9145241fe378104ba4c12a42534549faacc92e6. |
michael@0 | 2818 | |
michael@0 | 2819 | Under PIC configuration, FT_{CFF,PSCMAPS,SFNT,TT}_SERVICES_GET |
michael@0 | 2820 | take no arguments but derefer the variable named `library' |
michael@0 | 2821 | internally. |
michael@0 | 2822 | |
michael@0 | 2823 | * src/cff/cffdrivr.c (cff_get_interface): Declare `library' and |
michael@0 | 2824 | set it if non-NULL driver is passed. |
michael@0 | 2825 | * src/truetype/ttdriver.c (tt_get_interface): Ditto. |
michael@0 | 2826 | |
michael@0 | 2827 | * src/sfnt/sfdriver.c (sfnt_get_interface): Declare `library' |
michael@0 | 2828 | under PIC configuration, and set it if non-NULL module is given. |
michael@0 | 2829 | * src/psnames/psmodule.c (psnames_get_interface): Ditto. |
michael@0 | 2830 | |
michael@0 | 2831 | 2012-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2832 | |
michael@0 | 2833 | Make PIC files include module error headers, to use the error codes |
michael@0 | 2834 | with per-module prefix. |
michael@0 | 2835 | |
michael@0 | 2836 | * src/autofit/afpic.c: Include `aferrors.h'. |
michael@0 | 2837 | * src/cff/cffpic.c: Include `cfferrs.h'. |
michael@0 | 2838 | * src/pshinter/pshpic.c: Include `pshnterr.h'. |
michael@0 | 2839 | * src/raster/rastpic.c: Include `rasterrs.h'. |
michael@0 | 2840 | * src/sfnt/sfntpic.c: Include `sferrors.h'. |
michael@0 | 2841 | * src/smooth/ftspic.c: Include `ftsmerrs.h'. |
michael@0 | 2842 | * src/truetype/ttpic.c: Include `tterrors.h'. |
michael@0 | 2843 | |
michael@0 | 2844 | 2012-01-04 Tobias Ringström <tobias@ringis.se> |
michael@0 | 2845 | |
michael@0 | 2846 | [truetype] Fix IP instruction if x_ppem != y_ppem. |
michael@0 | 2847 | |
michael@0 | 2848 | * src/truetype/ttinterp.c (Ins_IP): Scale `orus' coordinates |
michael@0 | 2849 | properly. |
michael@0 | 2850 | |
michael@0 | 2851 | 2012-01-02 Werner Lemberg <wl@gnu.org> |
michael@0 | 2852 | |
michael@0 | 2853 | Fix tracing message for `loca' table. |
michael@0 | 2854 | |
michael@0 | 2855 | * src/truetype/ttpload.c (tt_face_get_location): Don't emit a |
michael@0 | 2856 | warning message if the last `loca' entry references an empty glyph. |
michael@0 | 2857 | |
michael@0 | 2858 | 2011-12-10 Werner Lemberg <wl@gnu.org> |
michael@0 | 2859 | |
michael@0 | 2860 | Add some variable initializations. |
michael@0 | 2861 | Reported by Richard COOK <rscook@unicode.org>. |
michael@0 | 2862 | |
michael@0 | 2863 | * src/type1/t1driver.c (t1_ps_get_font_value): Initialize `val'. |
michael@0 | 2864 | * src/smooth/ftgrays.c (gray_render_conic): Initialize `levels' |
michael@0 | 2865 | earlier. |
michael@0 | 2866 | |
michael@0 | 2867 | 2011-12-08 Werner Lemberg <wl@gnu.org> |
michael@0 | 2868 | |
michael@0 | 2869 | Fix serious scaling bug in `FT_Get_Advances'. |
michael@0 | 2870 | |
michael@0 | 2871 | * src/base/ftadvanc.c (FT_Get_Advances): Advance values returned by |
michael@0 | 2872 | `FT_Load_Glyph' must be simply multiplied by 1024. |
michael@0 | 2873 | |
michael@0 | 2874 | 2011-12-08 Werner Lemberg <wl@gnu.org> |
michael@0 | 2875 | |
michael@0 | 2876 | * src/bdf/bdflib.c (_bdf_parse_start): Drop redundant error tracing. |
michael@0 | 2877 | |
michael@0 | 2878 | 2011-12-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2879 | |
michael@0 | 2880 | [mac] Unify DARWIN_NO_CARBON with FT_MACINTOSH. |
michael@0 | 2881 | |
michael@0 | 2882 | Originally FT_MACINTOSH was a pure auto macro and DARWIN_NO_CARBON |
michael@0 | 2883 | was a configurable macro to disable Carbon-dependent code. Because |
michael@0 | 2884 | now configure script sets DARWIN_NO_CARBON by default and disables |
michael@0 | 2885 | Darwin & Carbon-dependent codes, these macros can be unified. |
michael@0 | 2886 | FT_MACINTOSH (undefined by default) is kept and DARWIN_NO_CARBON |
michael@0 | 2887 | (defined by default) is removed, because DARWIN_NO_CARBON violates |
michael@0 | 2888 | FT_XXX naming convention of public macros, and a macro configured by |
michael@0 | 2889 | default is not portable for the building without configure (e.g. |
michael@0 | 2890 | make devel). |
michael@0 | 2891 | |
michael@0 | 2892 | * builds/unix/configure.raw: Define FT_MACINTOSH if Carbon-based |
michael@0 | 2893 | old Mac font support is requested and Carbon is available. |
michael@0 | 2894 | * builds/unix/ftconfig.in: Undefine FT_MACINTOSH when the support |
michael@0 | 2895 | for Mac OS X without Carbon (e.g. Mac OS X 10.4 for ppc64) is |
michael@0 | 2896 | requested. |
michael@0 | 2897 | * include/freetype/config/ftconfig.in: Ditto. |
michael@0 | 2898 | * builds/vms/ftconfig.h: Ditto. |
michael@0 | 2899 | |
michael@0 | 2900 | * src/base/ftbase.h: Remove DARWIN_NO_CARBON. |
michael@0 | 2901 | * src/base/ftbase.c: Ditto. |
michael@0 | 2902 | * src/base/ftobjs.c: Ditto. |
michael@0 | 2903 | * src/base/ftrfork.c: Ditto. |
michael@0 | 2904 | |
michael@0 | 2905 | * src/base/ftmac.c: Compile the body if FT_MACINTOSH is defined |
michael@0 | 2906 | (same with TT_USE_BYTECODE_INTERPRETER in ttinterp.c). |
michael@0 | 2907 | * builds/mac/ftmac.c: Ditto. |
michael@0 | 2908 | |
michael@0 | 2909 | * builds/mac/FreeType.m68k_cfm.make.txt: Define FT_MACINTOSH. |
michael@0 | 2910 | * builds/mac/FreeType.m68k_far.make.txt: Ditto. |
michael@0 | 2911 | * builds/mac/FreeType.ppc_classic.make.txt: Ditto. |
michael@0 | 2912 | * builds/mac/FreeType.ppc_carbon.make.txt: Ditto. |
michael@0 | 2913 | |
michael@0 | 2914 | 2011-11-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2915 | |
michael@0 | 2916 | Fix Savannah bug #34728 (`make devel' on Mac OS X). |
michael@0 | 2917 | |
michael@0 | 2918 | * builds/toplevel.mk: Check `/dev/null' to identify the Unix- |
michael@0 | 2919 | like systems without `init' nor `hurd' (e.g. Mac OS X >= 10.4). |
michael@0 | 2920 | * builds/unix/detect.mk: Ditto. |
michael@0 | 2921 | |
michael@0 | 2922 | 2011-11-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 2923 | |
michael@0 | 2924 | [apinames] Fix the overflow of signed integer hash. |
michael@0 | 2925 | |
michael@0 | 2926 | * src/tools/apinames.c (names_add): Change the type of `h' from |
michael@0 | 2927 | int to unsigned int, to prevent undefined behaviour in the |
michael@0 | 2928 | overflow of signed integers (overflow of unsigned int is defined |
michael@0 | 2929 | to be wrap around). Found by clang test suggested by Sean |
michael@0 | 2930 | McBride. |
michael@0 | 2931 | |
michael@0 | 2932 | 2011-11-30 Werner Lemberg <wl@gnu.org> |
michael@0 | 2933 | |
michael@0 | 2934 | [winfonts] Remove casts. |
michael@0 | 2935 | |
michael@0 | 2936 | * src/winfonts/winfnt.c (winfnt_driver_class): Remove all casts and |
michael@0 | 2937 | update affected functions. |
michael@0 | 2938 | (FNT_Size_Select): Fix number of arguments. |
michael@0 | 2939 | |
michael@0 | 2940 | 2011-11-30 Werner Lemberg <wl@gnu.org> |
michael@0 | 2941 | |
michael@0 | 2942 | [type42] Remove casts. |
michael@0 | 2943 | |
michael@0 | 2944 | * src/type42/t42driver.c (t42_driver_class): Remove all casts and |
michael@0 | 2945 | update affected functions. |
michael@0 | 2946 | |
michael@0 | 2947 | * src/type42/t42objs.c, src/type42/t42objs.h: Updated for t42driver |
michael@0 | 2948 | changes. |
michael@0 | 2949 | |
michael@0 | 2950 | 2011-11-30 Werner Lemberg <wl@gnu.org> |
michael@0 | 2951 | |
michael@0 | 2952 | [type1] Remove casts. |
michael@0 | 2953 | |
michael@0 | 2954 | * src/type1/t1driver.c (t1_driver_class): Remove all casts and |
michael@0 | 2955 | update affected functions. |
michael@0 | 2956 | |
michael@0 | 2957 | * src/type1/t1gload.c, src/type1/t1gload.h, src/type1/t1objs.c: |
michael@0 | 2958 | Updated for t1driver changes. |
michael@0 | 2959 | src/type1/t1objs.h (T1_Driver): Remove unused typedef. |
michael@0 | 2960 | Updated for t1driver changes. |
michael@0 | 2961 | |
michael@0 | 2962 | 2011-11-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 2963 | |
michael@0 | 2964 | [bdf] Fix Savannah bug #34896. |
michael@0 | 2965 | |
michael@0 | 2966 | ENCODING now covers the whole Unicode range. |
michael@0 | 2967 | |
michael@0 | 2968 | Note, however, that this change is quite expensive since it |
michael@0 | 2969 | increases the size of three arrays by almost 400kByte in total. The |
michael@0 | 2970 | right fix is to replace the logic with something smarter. |
michael@0 | 2971 | Additionally, there exist very old BDFs for three-byte CCCII |
michael@0 | 2972 | encoding which exceeds the range of Unicode (another reason to have |
michael@0 | 2973 | a smarter logic). |
michael@0 | 2974 | |
michael@0 | 2975 | * src/bdf/bdf.h (bdf_font_t): Increase size of `nmod' and `umod' |
michael@0 | 2976 | arrays. |
michael@0 | 2977 | * src/bdf/bdflib.c (bdf_parse_t): Increase size of `have' array. |
michael@0 | 2978 | |
michael@0 | 2979 | 2011-11-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 2980 | |
michael@0 | 2981 | [bdf] Improve tracing. |
michael@0 | 2982 | |
michael@0 | 2983 | * src/bdf/bdflib.c (DBGMSG1, DBGMSG2): New macros. |
michael@0 | 2984 | (_bdf_parse_glyphs): Use them. |
michael@0 | 2985 | |
michael@0 | 2986 | 2011-11-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 2987 | |
michael@0 | 2988 | Improve tracing. |
michael@0 | 2989 | |
michael@0 | 2990 | * src/bdf/bdfdrivr.c (BDF_Face_Done), src/pcf/pcfdrivr.c |
michael@0 | 2991 | (PCF_Face_Done): Remove tracing message. |
michael@0 | 2992 | |
michael@0 | 2993 | * src/bdf/bdfdrivr.c (BDF_Face_Init), src/cff/cffobjs.c |
michael@0 | 2994 | (cff_face_init), src/cid/cidobjs.c (cid_face_init), |
michael@0 | 2995 | src/pfr/pfrobjs.c (pfr_face_init), src/sfnt/sfobjs.c |
michael@0 | 2996 | (sfnt_init_face), src/truetype/ttobjs.c (tt_face_init), |
michael@0 | 2997 | src/type1/t1objs.c (T1_Face_Init), src/type42/t42objs.c |
michael@0 | 2998 | (T42_Face_Init), src/winfonts/winfnt.c (FNT_Face_Init): Add |
michael@0 | 2999 | `greeting' message. |
michael@0 | 3000 | |
michael@0 | 3001 | * src/sfnt/sfobjs.c (sfnt_open_font), src/type42/t42objs.c |
michael@0 | 3002 | (T42_Open_Face): Improve tracing. |
michael@0 | 3003 | |
michael@0 | 3004 | 2011-11-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 3005 | |
michael@0 | 3006 | [cid] Fix error code. |
michael@0 | 3007 | |
michael@0 | 3008 | * src/cid/cidparse.c (cid_parser_new): Do it. |
michael@0 | 3009 | |
michael@0 | 3010 | 2011-11-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 3011 | |
michael@0 | 3012 | [cff] Fix error code. |
michael@0 | 3013 | |
michael@0 | 3014 | * src/cff/cffload.c (cff_font_load): Do it. |
michael@0 | 3015 | |
michael@0 | 3016 | 2011-11-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 3017 | |
michael@0 | 3018 | Add new error code FT_Err_Missing_Module. |
michael@0 | 3019 | |
michael@0 | 3020 | Previously, FreeType misleadingly returned |
michael@0 | 3021 | FT_Err_Unknown_File_Format if a module was missing (or a test was |
michael@0 | 3022 | missing completely). |
michael@0 | 3023 | |
michael@0 | 3024 | * include/freetype/fterrdef.h (FT_Err_Missing_Module): Define. |
michael@0 | 3025 | |
michael@0 | 3026 | * src/cff/cffobjs.c (cff_face_init), src/cff/cffdrivr.c |
michael@0 | 3027 | (cff_get_glyph_name), src/cid/cidobjs.c (cid_face_init), |
michael@0 | 3028 | src/sfnt/sfobjs.c (sfnt_init_face), src/truetype/ttobjs.c |
michael@0 | 3029 | (tt_face_init), src/type1/t1objs.c (T1_Face_Init), |
michael@0 | 3030 | src/type42/t42objs.c (T42_Face_Init, T42_Driver_Init): Updated. |
michael@0 | 3031 | |
michael@0 | 3032 | * src/type1/t1afm.c (T1_Read_Metrics), src/type/t1objs.c |
michael@0 | 3033 | (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Remove now |
michael@0 | 3034 | redundant test for `psaux'. |
michael@0 | 3035 | |
michael@0 | 3036 | 2011-11-25 Werner Lemberg <wl@gnu.org> |
michael@0 | 3037 | |
michael@0 | 3038 | [bdf] Add more error messages. |
michael@0 | 3039 | |
michael@0 | 3040 | * src/bdf/bdflib.c (_bdf_set_default_spacing, _bdf_add_property): |
michael@0 | 3041 | Add line number argument. |
michael@0 | 3042 | Update all callers. |
michael@0 | 3043 | (ERRMSG5, ERRMSG6, ERRMSG7, ERRMSG8, ERRMSG9): New macros. |
michael@0 | 3044 | (_bdf_readstream, _bdf_set_default_spacing, _bdf_add_property, |
michael@0 | 3045 | _bdf_parse_glyphs, _bdf_parse_start): Add error messages. |
michael@0 | 3046 | |
michael@0 | 3047 | 2011-11-24 Werner Lemberg <wl@gnu.org> |
michael@0 | 3048 | |
michael@0 | 3049 | * include/freetype/fterrors.h: Remove dead code. |
michael@0 | 3050 | |
michael@0 | 3051 | 2011-11-15 Werner Lemberg <wl@gnu.org> |
michael@0 | 3052 | |
michael@0 | 3053 | * docs/releases: Updated. |
michael@0 | 3054 | |
michael@0 | 3055 | 2011-11-15 Werner Lemberg <wl@gnu.org> |
michael@0 | 3056 | |
michael@0 | 3057 | * Version 2.4.8 released. |
michael@0 | 3058 | ========================= |
michael@0 | 3059 | |
michael@0 | 3060 | |
michael@0 | 3061 | Tag sources with `VER-2-4-8'. |
michael@0 | 3062 | |
michael@0 | 3063 | * docs/CHANGES: Updated. |
michael@0 | 3064 | |
michael@0 | 3065 | * docs/VERSION.DLL: Update documentation and bump version number to |
michael@0 | 3066 | 2.4.8. |
michael@0 | 3067 | |
michael@0 | 3068 | * README, Jamfile (RefDoc), |
michael@0 | 3069 | builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, |
michael@0 | 3070 | builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, |
michael@0 | 3071 | builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, |
michael@0 | 3072 | builds/win32/visualc/freetype.dsp, |
michael@0 | 3073 | builds/win32/visualc/freetype.vcproj, |
michael@0 | 3074 | builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, |
michael@0 | 3075 | builds/win32/visualce/freetype.vcproj, |
michael@0 | 3076 | builds/win32/visualce/index.html, |
michael@0 | 3077 | builds/wince/vc2005-ce/freetype.vcproj, |
michael@0 | 3078 | builds/wince/vc2005-ce/index.html, |
michael@0 | 3079 | builds/wince/vc2008-ce/freetype.vcproj, |
michael@0 | 3080 | builds/wince/vc2008-ce/index.html: s/2.4.7/2.4.8/, s/247/248/. |
michael@0 | 3081 | |
michael@0 | 3082 | * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8. |
michael@0 | 3083 | |
michael@0 | 3084 | * builds/unix/configure.raw (version_info): Set to 14:0:8. |
michael@0 | 3085 | |
michael@0 | 3086 | 2011-11-13 Chris Liddell <chris.liddell@artifex.com> |
michael@0 | 3087 | |
michael@0 | 3088 | Add FT_Get_PS_Font_Value() API. |
michael@0 | 3089 | |
michael@0 | 3090 | This allows a Type 1 font face to be interrogated to retrieve most |
michael@0 | 3091 | of the dictionary keys (keys not relevant to FreeType's Type 1 |
michael@0 | 3092 | interpreter are not available). |
michael@0 | 3093 | |
michael@0 | 3094 | * include/freetype/internal/services/svpsinfo.h |
michael@0 | 3095 | (PS_GetFontValueFunc): New typedef. |
michael@0 | 3096 | (PSInfo): Add `ps_get_font_value'. |
michael@0 | 3097 | (FT_DEFINE_SERVICE_PSINFOREC): Updated. |
michael@0 | 3098 | |
michael@0 | 3099 | * include/freetype/internal/t1types.h (T1_EncodingType): Moved to... |
michael@0 | 3100 | * include/freetype/t1tables.h: Here. |
michael@0 | 3101 | (PS_Dict_Keys): New enumeration. |
michael@0 | 3102 | (FT_Get_PS_Font_Value): New declaration. |
michael@0 | 3103 | |
michael@0 | 3104 | * src/base/fttype1.c (FT_Get_PS_Font_Value): New function. |
michael@0 | 3105 | |
michael@0 | 3106 | * src/type1/t1driver.c (t1_ps_get_font_value): This new function |
michael@0 | 3107 | does the real job. |
michael@0 | 3108 | (t1_service_ps_info): Add it. |
michael@0 | 3109 | |
michael@0 | 3110 | * src/cff/cffdrivr.c (cff_service_ps_info), src/cid/cidriver.c |
michael@0 | 3111 | (cid_service_ps_info), src/type42/t42drivr.c (t42_service_ps_info): |
michael@0 | 3112 | Updated. |
michael@0 | 3113 | |
michael@0 | 3114 | 2011-11-08 Braden Thomas <bthomas@apple.com> |
michael@0 | 3115 | |
michael@0 | 3116 | [cid] Various loading fixes. |
michael@0 | 3117 | |
michael@0 | 3118 | * src/cid/cidload.c (cid_load_keyword) <default>, |
michael@0 | 3119 | (parse_font_matrix, parse_expansion_factor): Correctly check number |
michael@0 | 3120 | of dictionaries. |
michael@0 | 3121 | (cid_read_subrs): Protect against invalid values of `num_subrs'. |
michael@0 | 3122 | Assure that the elements of the `offsets' array are ascending. |
michael@0 | 3123 | |
michael@0 | 3124 | 2011-11-05 Werner Lemberg <wl@gnu.org> |
michael@0 | 3125 | |
michael@0 | 3126 | * README: We use copyright ranges also. |
michael@0 | 3127 | |
michael@0 | 3128 | According to |
michael@0 | 3129 | |
michael@0 | 3130 | http://www.gnu.org/prep/maintain/html_node/Copyright-Notices.html |
michael@0 | 3131 | |
michael@0 | 3132 | this should be mentioned explicitly. |
michael@0 | 3133 | |
michael@0 | 3134 | 2011-10-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 3135 | |
michael@0 | 3136 | [raccess] Supplement for previous fix. |
michael@0 | 3137 | |
michael@0 | 3138 | * src/base/ftbase.h (raccess_rule_by_darwin_vfs): Do not declare |
michael@0 | 3139 | it on native Mac OS X. |
michael@0 | 3140 | * src/base/ftrfork.c (raccess_get_rule_type_from_rule_index): |
michael@0 | 3141 | Hide raccess_get_rule_type_from_rule_index() on native Mac OS X |
michael@0 | 3142 | too. |
michael@0 | 3143 | |
michael@0 | 3144 | 2011-10-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 3145 | |
michael@0 | 3146 | [raccess] Hide raccess_rule_by_darwin_vfs() on native Mac OS X. |
michael@0 | 3147 | |
michael@0 | 3148 | * src/base/ftrfork.c (raccess_rule_by_darwin_vfs): Do not |
michael@0 | 3149 | compile on native Mac OS X because it is not used. |
michael@0 | 3150 | |
michael@0 | 3151 | 2011-10-25 Werner Lemberg <wl@gnu.org> |
michael@0 | 3152 | |
michael@0 | 3153 | [truetype] Fix MD instruction for twilight zone. |
michael@0 | 3154 | |
michael@0 | 3155 | * src/truetype/ttinterp.c (Ins_MD): Without this fix, the MD |
michael@0 | 3156 | instruction applied to original coordinates of twilight points |
michael@0 | 3157 | always returns zero. |
michael@0 | 3158 | |
michael@0 | 3159 | 2011-10-18 Werner Lemberg <wl@gnu.org> |
michael@0 | 3160 | |
michael@0 | 3161 | * Version 2.4.7 released. |
michael@0 | 3162 | ========================= |
michael@0 | 3163 | |
michael@0 | 3164 | |
michael@0 | 3165 | Tag sources with `VER-2-4-7'. |
michael@0 | 3166 | |
michael@0 | 3167 | * docs/CHANGES: Updated. |
michael@0 | 3168 | |
michael@0 | 3169 | * docs/VERSION.DLL: Update documentation and bump version number to |
michael@0 | 3170 | 2.4.7. |
michael@0 | 3171 | |
michael@0 | 3172 | * README, Jamfile (RefDoc), |
michael@0 | 3173 | builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, |
michael@0 | 3174 | builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, |
michael@0 | 3175 | builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, |
michael@0 | 3176 | builds/win32/visualc/freetype.dsp, |
michael@0 | 3177 | builds/win32/visualc/freetype.vcproj, |
michael@0 | 3178 | builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, |
michael@0 | 3179 | builds/win32/visualce/freetype.vcproj, |
michael@0 | 3180 | builds/win32/visualce/index.html, |
michael@0 | 3181 | builds/wince/vc2005-ce/freetype.vcproj, |
michael@0 | 3182 | builds/wince/vc2005-ce/index.html, |
michael@0 | 3183 | builds/wince/vc2008-ce/freetype.vcproj, |
michael@0 | 3184 | builds/wince/vc2008-ce/index.html: s/2.4.6/2.4.7/, s/246/247/. |
michael@0 | 3185 | |
michael@0 | 3186 | * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7. |
michael@0 | 3187 | |
michael@0 | 3188 | * builds/unix/configure.raw (version_info): Set to 13:2:7. |
michael@0 | 3189 | |
michael@0 | 3190 | 2011-10-15 Kal Conley <kcconley@gmail.com> |
michael@0 | 3191 | |
michael@0 | 3192 | Fix handling of transformations if no renderer is present. |
michael@0 | 3193 | |
michael@0 | 3194 | * src/base/ftobjs.c (FT_Load_Glyph): Thinko. |
michael@0 | 3195 | |
michael@0 | 3196 | 2011-10-15 Kal Conley <kcconley@gmail.com> |
michael@0 | 3197 | |
michael@0 | 3198 | Fix conditions for autohinting. |
michael@0 | 3199 | |
michael@0 | 3200 | * src/base/ftobjs.c (FT_Load_Glyph): Handle |
michael@0 | 3201 | FT_LOAD_IGNORE_TRANSFORM. |
michael@0 | 3202 | |
michael@0 | 3203 | 2011-10-07 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 3204 | |
michael@0 | 3205 | [gxvalid] Fix a bug to detect too large offset in morx table. |
michael@0 | 3206 | |
michael@0 | 3207 | * src/gxvalid/gxvmorx2.c |
michael@0 | 3208 | (gxv_morx_subtable_type2_ligActionIndex_validate): Fix a bug |
michael@0 | 3209 | that too large positive offset cannot be detected. |
michael@0 | 3210 | |
michael@0 | 3211 | 2011-10-01 Braden Thomas <bthomas@apple.com> |
michael@0 | 3212 | |
michael@0 | 3213 | Handle some border cases. |
michael@0 | 3214 | |
michael@0 | 3215 | * include/freetype/config/ftstdlib.h (FT_USHORT_MAX): New macro. |
michael@0 | 3216 | |
michael@0 | 3217 | * src/base/ftbitmap.c (FT_Bitmap_Convert): Protect against invalid |
michael@0 | 3218 | value of `target->rows'. |
michael@0 | 3219 | |
michael@0 | 3220 | * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add check for |
michael@0 | 3221 | flex start. |
michael@0 | 3222 | |
michael@0 | 3223 | * src/raster/ftrend1.c (ft_raster1_render): Check `width' and |
michael@0 | 3224 | `height'. |
michael@0 | 3225 | |
michael@0 | 3226 | * src/truetype/ttgxvar.c (TT_Vary_Get_Glyph_Deltas): Protect against |
michael@0 | 3227 | invalid values in `localpoints' array. |
michael@0 | 3228 | |
michael@0 | 3229 | 2011-10-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 3230 | |
michael@0 | 3231 | [psnames] Handle zapfdingbats. |
michael@0 | 3232 | Problem reported by Nicolas Rougier <Nicolas.Rougier@inria.fr>. |
michael@0 | 3233 | |
michael@0 | 3234 | * src/tools/glnames.py (adobe_glyph_list): Add data from AGL's |
michael@0 | 3235 | `zapfdingbats.txt' file. |
michael@0 | 3236 | |
michael@0 | 3237 | * src/psnames/pstables.h: Regenerated. |
michael@0 | 3238 | |
michael@0 | 3239 | 2011-09-27 Simon Bünzli <zeniko@gmail.com> |
michael@0 | 3240 | |
michael@0 | 3241 | [type1] Fix Savannah bug #34189. |
michael@0 | 3242 | |
michael@0 | 3243 | * src/type1/t1load.c (T1_Open_Face): Initialize |
michael@0 | 3244 | `face->len_buildchar'. |
michael@0 | 3245 | |
michael@0 | 3246 | 2011-09-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 3247 | |
michael@0 | 3248 | [cff] Dump SIDs while tracing. |
michael@0 | 3249 | |
michael@0 | 3250 | * src/cff/cffobjs.c (cff_face_init): Do it. |
michael@0 | 3251 | |
michael@0 | 3252 | * src/cff/cffparse.c (cff_parser_run) [FT_DEBUG_LEVEL_TRACE] |
michael@0 | 3253 | <cff_kind_string>: Identify as SID. |
michael@0 | 3254 | |
michael@0 | 3255 | 2011-09-17 Werner Lemberg <wl@gnu.org> |
michael@0 | 3256 | |
michael@0 | 3257 | Remove unused FT_ALIGNMENT macro. |
michael@0 | 3258 | |
michael@0 | 3259 | * builds/unix/ftconfig.in, builds/vms/ftconfig.h, |
michael@0 | 3260 | include/freetype/config/ftconfig.h: Do it. |
michael@0 | 3261 | |
michael@0 | 3262 | 2011-09-17 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 3263 | |
michael@0 | 3264 | [smooth] Slightly optimize conic and cubic flatterners. |
michael@0 | 3265 | |
michael@0 | 3266 | * src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move |
michael@0 | 3267 | out some code from the main loop to speed it up. |
michael@0 | 3268 | |
michael@0 | 3269 | 2011-09-11 Tomas Hoger <thoger@redhat.com> |
michael@0 | 3270 | |
michael@0 | 3271 | Slightly improve LZW_CLEAR handling. |
michael@0 | 3272 | |
michael@0 | 3273 | * src/lzw/ftzopen.c (ft_lzwstate_io) <FT_LZW_PHASE_CODE>: |
michael@0 | 3274 | Ensure that subsequent (modulo garbage byte(s)) LZW_CLEAR codes are |
michael@0 | 3275 | handled as clear codes. This also re-sets old_code and old_char to |
michael@0 | 3276 | predictable values, which is a little better than using `random' |
michael@0 | 3277 | ones if the code following LZW_CLEAR is invalid. |
michael@0 | 3278 | |
michael@0 | 3279 | 2011-09-11 Tomas Hoger <thoger@redhat.com> |
michael@0 | 3280 | |
michael@0 | 3281 | Add explicit LZW decompression stack size limit. |
michael@0 | 3282 | |
michael@0 | 3283 | Stack larger than 1<<LZW_MAX_BITS is never needed if prefix table is |
michael@0 | 3284 | constructed correctly. It's even less than that, see e.g. |
michael@0 | 3285 | libarchive code comment for a better size upper bound: |
michael@0 | 3286 | |
michael@0 | 3287 | http://code.google.com/p/libarchive/source/browse/trunk/libarchive/archive_read_support_filter_compress.c?r=3635#121 |
michael@0 | 3288 | |
michael@0 | 3289 | This patch adds explicit stack size limit, enforced when stack is |
michael@0 | 3290 | realloced. |
michael@0 | 3291 | |
michael@0 | 3292 | An alternative is to ensure that code < state->prefix[code - 256] |
michael@0 | 3293 | when traversing prefix table. Such check is less efficient and |
michael@0 | 3294 | should not be required if prefix table is constructed correctly in |
michael@0 | 3295 | the first place. |
michael@0 | 3296 | |
michael@0 | 3297 | * src/lzw/ftzopen.c (ft_lzwstate_stack_grow): Implement it. |
michael@0 | 3298 | |
michael@0 | 3299 | 2011-09-11 Tomas Hoger <thoger@redhat.com> |
michael@0 | 3300 | |
michael@0 | 3301 | Protect against loops in the prefix table. |
michael@0 | 3302 | |
michael@0 | 3303 | LZW decompressor did not sufficiently check codes read from the |
michael@0 | 3304 | input LZW stream. A specially-crafted or corrupted input could |
michael@0 | 3305 | create a loop in the prefix table, which leads to memory usage |
michael@0 | 3306 | spikes, as there's no decompression stack size limit. |
michael@0 | 3307 | |
michael@0 | 3308 | * src/lzw/ftzopen.c (ft_lzwstate_io) <FT_LZW_PHASE_START>: First |
michael@0 | 3309 | code in valid LZW stream must be 0..255. |
michael@0 | 3310 | <FT_LZW_PHASE_CODE>: In the special KwKwK case, code == free_ent, |
michael@0 | 3311 | code > free_ent is invalid. |
michael@0 | 3312 | |
michael@0 | 3313 | 2011-09-09 Werner Lemberg <wl@gnu.org> |
michael@0 | 3314 | |
michael@0 | 3315 | Better tracing of metrics. |
michael@0 | 3316 | |
michael@0 | 3317 | * src/base/ftobjs.c (FT_Request_Size, FT_Select_Size): Decorate with |
michael@0 | 3318 | FT_TRACE. |
michael@0 | 3319 | |
michael@0 | 3320 | 2011-09-07 Werner Lemberg <wl@gnu.org> |
michael@0 | 3321 | |
michael@0 | 3322 | [cff] Fix Savannah bug #33816. |
michael@0 | 3323 | |
michael@0 | 3324 | * src/cff/cfftypes.h (CFF_FontRecDictRec): New member |
michael@0 | 3325 | `has_font_matrix'. |
michael@0 | 3326 | * src/cff/cffparse.c (cff_parse_font_matrix): Set it. |
michael@0 | 3327 | Update tracing output. |
michael@0 | 3328 | * src/cff/cffobjs.c (cff_face_init): Use it so that the heuristics |
michael@0 | 3329 | can be removed. |
michael@0 | 3330 | |
michael@0 | 3331 | 2011-08-30 Werner Lemberg <wl@gnu.org> |
michael@0 | 3332 | |
michael@0 | 3333 | Better tracing of metrics. |
michael@0 | 3334 | |
michael@0 | 3335 | * src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics): |
michael@0 | 3336 | Decorate with FT_TRACE. |
michael@0 | 3337 | |
michael@0 | 3338 | 2011-08-25 Werner Lemberg <wl@gnu.org> |
michael@0 | 3339 | |
michael@0 | 3340 | [cff] Better tracing of the parsing process. |
michael@0 | 3341 | |
michael@0 | 3342 | * src/cff/cffload.c (cff_subfont_load, cff_font_load): Decorate with |
michael@0 | 3343 | FT_TRACE. |
michael@0 | 3344 | |
michael@0 | 3345 | * src/cff/cffparse.c (cff_parse_font_matrix, cff_parse_font_bbox, |
michael@0 | 3346 | cff_parse_private_dict, cff_parse_cid_ros): Updated. |
michael@0 | 3347 | (CFF_FIELD_NUM, CFF_FIELD_FIXED, CFF_FIELD_FIXED_1000, |
michael@0 | 3348 | CFF_FIELD_STRING, CFF_FIELD_BOOL, CFF_FIELD_CALLBACK, CFF_FIELD, |
michael@0 | 3349 | CFF_FIELD_DELTA): Add argument for ID. |
michael@0 | 3350 | (cff_parser_run): Decorate with FT_TRACE. |
michael@0 | 3351 | |
michael@0 | 3352 | * src/cff/cffparse.h (CFF_Field_Handler) [FT_DEBUG_LEVEL_TRACE]: Add |
michael@0 | 3353 | `id' member. |
michael@0 | 3354 | |
michael@0 | 3355 | * src/cff/cfftoken.h: Add IDs to all fields. |
michael@0 | 3356 | |
michael@0 | 3357 | 2011-08-16 Werner Lemberg <wl@gnu.org> |
michael@0 | 3358 | |
michael@0 | 3359 | Fix Savannah bug #34022. |
michael@0 | 3360 | |
michael@0 | 3361 | * README, docs/INSTALL: Remove references to UPGRADE.UNIX. |
michael@0 | 3362 | |
michael@0 | 3363 | 2011-08-15 Werner Lemberg <wl@gnu.org> |
michael@0 | 3364 | |
michael@0 | 3365 | Fix Savannah bug #34018. |
michael@0 | 3366 | |
michael@0 | 3367 | * docs/UPGRADE.UNIX: Removed. Obsolete. |
michael@0 | 3368 | |
michael@0 | 3369 | 2011-08-15 David Bevan <david.bevan@pb.com> |
michael@0 | 3370 | |
michael@0 | 3371 | Fix Savannah bug #33992. |
michael@0 | 3372 | |
michael@0 | 3373 | * src/base/ftstroke.c (FT_Stroker_ParseOutline): Fix border case. |
michael@0 | 3374 | |
michael@0 | 3375 | 2011-08-12 Werner Lemberg <wl@gnu.org |
michael@0 | 3376 | |
michael@0 | 3377 | [truetype] Fix degenerate case in S{P,F,DP}VTL opcodes. |
michael@0 | 3378 | |
michael@0 | 3379 | * src/truetype/ttinterp.c (Ins_SxVTL): Handle p1 == p2 specially. |
michael@0 | 3380 | (Ins_SDPVTL): Handle v1 == v2 specially. |
michael@0 | 3381 | |
michael@0 | 3382 | 2011-08-09 Werner Lemberg <wl@gnu.org> |
michael@0 | 3383 | |
michael@0 | 3384 | [cff] Fix Savannah bug #33975. |
michael@0 | 3385 | |
michael@0 | 3386 | * src/cff/cffparse.c (cff_parse_font_matrix): Fix typo. |
michael@0 | 3387 | |
michael@0 | 3388 | 2011-07-29 Werner Lemberg <wl@gnu.org> |
michael@0 | 3389 | |
michael@0 | 3390 | * Version 2.4.6 released. |
michael@0 | 3391 | ========================= |
michael@0 | 3392 | |
michael@0 | 3393 | |
michael@0 | 3394 | Tag sources with `VER-2-4-6'. |
michael@0 | 3395 | |
michael@0 | 3396 | * docs/CHANGES: Updated. |
michael@0 | 3397 | |
michael@0 | 3398 | * docs/VERSION.DLL: Update documentation and bump version number to |
michael@0 | 3399 | 2.4.6. |
michael@0 | 3400 | |
michael@0 | 3401 | * README, Jamfile (RefDoc), |
michael@0 | 3402 | builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, |
michael@0 | 3403 | builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, |
michael@0 | 3404 | builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, |
michael@0 | 3405 | builds/win32/visualc/freetype.dsp, |
michael@0 | 3406 | builds/win32/visualc/freetype.vcproj, |
michael@0 | 3407 | builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, |
michael@0 | 3408 | builds/win32/visualce/freetype.vcproj, |
michael@0 | 3409 | builds/win32/visualce/index.html, |
michael@0 | 3410 | builds/wince/vc2005-ce/freetype.vcproj, |
michael@0 | 3411 | builds/wince/vc2005-ce/index.html, |
michael@0 | 3412 | builds/wince/vc2008-ce/freetype.vcproj, |
michael@0 | 3413 | builds/wince/vc2008-ce/index.html: s/2.4.5/2.4.6/, s/245/246/. |
michael@0 | 3414 | |
michael@0 | 3415 | * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6. |
michael@0 | 3416 | |
michael@0 | 3417 | * builds/unix/configure.raw (version_info): Set to 13:1:7. |
michael@0 | 3418 | |
michael@0 | 3419 | 2011-07-29 Werner Lemberg <wl@gnu.org> |
michael@0 | 3420 | |
michael@0 | 3421 | [cff] Add some more tracing infos. |
michael@0 | 3422 | |
michael@0 | 3423 | * src/cff/cffparse.c (cff_parse_font_matrix, cff_parse_font_bbox, |
michael@0 | 3424 | cff_parse_cid_ros): Add tracing. |
michael@0 | 3425 | |
michael@0 | 3426 | 2011-07-22 Dirk Müller <dmueller@suse.de> |
michael@0 | 3427 | |
michael@0 | 3428 | [psaux, type1] Fix null pointer dereferences. |
michael@0 | 3429 | |
michael@0 | 3430 | Found with font fuzzying. |
michael@0 | 3431 | |
michael@0 | 3432 | * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Check |
michael@0 | 3433 | `decoder->buildchar'. |
michael@0 | 3434 | |
michael@0 | 3435 | * src/type1/t1load.c (t1_load_keyword): Check `blend->num_designs'. |
michael@0 | 3436 | |
michael@0 | 3437 | 2011-07-20 Chris Morgan <cmorgan@cybexintl.com> |
michael@0 | 3438 | |
michael@0 | 3439 | Add FT_CONFIG_OPTION_DISABLE_STREAM_SUPPORT. |
michael@0 | 3440 | |
michael@0 | 3441 | Useful for embedded systems which don't need file stream support. |
michael@0 | 3442 | |
michael@0 | 3443 | * src/base/ftsystem.c, src/base/ftobjs.c (FT_Stream_New): Implement |
michael@0 | 3444 | it. |
michael@0 | 3445 | |
michael@0 | 3446 | 2011-07-20 Elton Chung <elton328@gmail.com> |
michael@0 | 3447 | |
michael@0 | 3448 | * src/base/ftpatent.c (FT_Face_SetUnpatentedHinting): Fix typo. |
michael@0 | 3449 | |
michael@0 | 3450 | 2011-07-16 Steven Chu <steven.f.chu@gmail.com> |
michael@0 | 3451 | |
michael@0 | 3452 | [truetype] Fix metrics on size request for scalable fonts. |
michael@0 | 3453 | |
michael@0 | 3454 | * src/truetype/ttdriver.c (tt_size_request): Fix copying metrics |
michael@0 | 3455 | from TT_Size to FT_Size if scalable font. |
michael@0 | 3456 | |
michael@0 | 3457 | See |
michael@0 | 3458 | |
michael@0 | 3459 | http://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00049.html |
michael@0 | 3460 | |
michael@0 | 3461 | for some comparison images. |
michael@0 | 3462 | |
michael@0 | 3463 | 2011-07-14 Matthias Drochner <M.Drochner@fz-juelich.de>. |
michael@0 | 3464 | |
michael@0 | 3465 | [psaux] Fix potential sign extension problems. |
michael@0 | 3466 | |
michael@0 | 3467 | When shifting right a signed value, it is not defined by the |
michael@0 | 3468 | C standard whether one gets a sign extension or not. Use a macro to |
michael@0 | 3469 | do an explicit cast from a signed short (assuming that this is |
michael@0 | 3470 | 16bit) to an int. |
michael@0 | 3471 | |
michael@0 | 3472 | * src/psaux/t1decode.c (Fix2Int): New macro. |
michael@0 | 3473 | Use it where appropriate. |
michael@0 | 3474 | |
michael@0 | 3475 | 2011-07-14 Werner Lemberg <wl@gnu.org> |
michael@0 | 3476 | |
michael@0 | 3477 | * src/psaux/t1decode.c (t1_decoder_parse_charstrings) |
michael@0 | 3478 | <op_callothersubr>: Better handling of subroutine index 0. |
michael@0 | 3479 | From Matthias Drochner <M.Drochner@fz-juelich.de>. |
michael@0 | 3480 | |
michael@0 | 3481 | 2011-07-10 Алексей Подтележников <apodtele@gmail.com> |
michael@0 | 3482 | |
michael@0 | 3483 | [psaux] Optimize previous commit. |
michael@0 | 3484 | |
michael@0 | 3485 | * src/psaux/t1decode.c (t1_decoder_parse_charstrings) |
michael@0 | 3486 | <op_callothersubr>: Move error check down to avoid testing twice for |
michael@0 | 3487 | good cases. |
michael@0 | 3488 | |
michael@0 | 3489 | 2011-07-08 Werner Lemberg <wl@gnu.org> |
michael@0 | 3490 | |
michael@0 | 3491 | [psaux] Add better argument check for `callothersubr'. |
michael@0 | 3492 | |
michael@0 | 3493 | * src/psaux/t1decode.c (t1_decoder_parse_charstrings) |
michael@0 | 3494 | <op_callothersubr>: Reject negative arguments. |
michael@0 | 3495 | |
michael@0 | 3496 | 2011-07-07 Werner Lemberg <wl@gnu.org> |
michael@0 | 3497 | |
michael@0 | 3498 | [sfnt] Try harder to find non-zero values for ascender and descender. |
michael@0 | 3499 | |
michael@0 | 3500 | * src/sfnt/sfobjs.c (sfnt_load_face): Consult `OS/2' table in case |
michael@0 | 3501 | the `hhea' table's values are zero. |
michael@0 | 3502 | |
michael@0 | 3503 | 2011-07-03 Werner Lemberg <wl@gnu.org> |
michael@0 | 3504 | |
michael@0 | 3505 | Fix previous commit. |
michael@0 | 3506 | |
michael@0 | 3507 | We want to unset FT_FACE_FLAG_SCALABLE only if there are bitmap |
michael@0 | 3508 | strikes in the font. |
michael@0 | 3509 | |
michael@0 | 3510 | * src/truetype/ttobjs.c (tt_face_init): Implement it. |
michael@0 | 3511 | |
michael@0 | 3512 | * docs/CHANGES: Updated. |
michael@0 | 3513 | |
michael@0 | 3514 | 2011-07-02 Just Fill Bugs <mozbugbox@yahoo.com.au> |
michael@0 | 3515 | |
michael@0 | 3516 | [truetype] Fix Savannah bug #33246. |
michael@0 | 3517 | |
michael@0 | 3518 | * src/truetype/ttobjs.c (tt_check_single_notdef): New function. |
michael@0 | 3519 | (tt_face_init): Use it to test FT_FACE_FLAG_SCALABLE. |
michael@0 | 3520 | |
michael@0 | 3521 | 2011-07-02 Werner Lemberg <wl@gnu.org> |
michael@0 | 3522 | |
michael@0 | 3523 | * docs/CHANGES: Updated. |
michael@0 | 3524 | |
michael@0 | 3525 | 2011-07-02 David Bevan <david.bevan@pb.com> |
michael@0 | 3526 | |
michael@0 | 3527 | [ftstroke] Major revision. |
michael@0 | 3528 | |
michael@0 | 3529 | The main problems |
michael@0 | 3530 | ----------------- |
michael@0 | 3531 | |
michael@0 | 3532 | o If FT_STROKER_LINEJOIN_BEVEL was specified, unlimited miter |
michael@0 | 3533 | joins (not bevel joins) were generated. Indeed, the meanings of |
michael@0 | 3534 | `miter' and `bevel' were incorrectly reversed (consistently) in |
michael@0 | 3535 | both the code and comments. |
michael@0 | 3536 | |
michael@0 | 3537 | o The way bevel joins were constructed (whether specified |
michael@0 | 3538 | explicitly, or created as a result of exceeding the miter limit) |
michael@0 | 3539 | did not match what is required for stroked text in PostScript or |
michael@0 | 3540 | PDF. |
michael@0 | 3541 | |
michael@0 | 3542 | The main fixes |
michael@0 | 3543 | -------------- |
michael@0 | 3544 | |
michael@0 | 3545 | o The behaviour of FT_STROKER_LINEJOIN_BEVEL has been corrected. |
michael@0 | 3546 | |
michael@0 | 3547 | o A new line join style, FT_STROKER_LINEJOIN_MITER_FIXED, has been |
michael@0 | 3548 | introduced to support PostScript and PDF miter joins. |
michael@0 | 3549 | |
michael@0 | 3550 | o FT_STROKER_LINEJOIN_MITER_VARIABLE has been introduced as an |
michael@0 | 3551 | alias for FT_STROKER_LINEJOIN_MITER. |
michael@0 | 3552 | |
michael@0 | 3553 | Additionally, a variety of stroking errors have been fixed. These |
michael@0 | 3554 | would cause various artifacts (including points `at infinity'), |
michael@0 | 3555 | especially when stroking poor quality fonts. |
michael@0 | 3556 | |
michael@0 | 3557 | See |
michael@0 | 3558 | |
michael@0 | 3559 | http://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00001.html |
michael@0 | 3560 | |
michael@0 | 3561 | for example documents. The FreeType stroker now produces results |
michael@0 | 3562 | very similar to that produced by GhostScript and Distiller for these |
michael@0 | 3563 | fonts. |
michael@0 | 3564 | |
michael@0 | 3565 | Other problems |
michael@0 | 3566 | -------------- |
michael@0 | 3567 | |
michael@0 | 3568 | The following problems have been resolved: |
michael@0 | 3569 | |
michael@0 | 3570 | o Inside corners could be generated incorrectly. Intersecting the |
michael@0 | 3571 | inside corner could cause a missing triangular area and other |
michael@0 | 3572 | effects. |
michael@0 | 3573 | |
michael@0 | 3574 | The intersection point can only be used if the join is between |
michael@0 | 3575 | two lines and both lines are long enough. The `optimization' |
michael@0 | 3576 | condition in `ft_stroker_inside' has been corrected; this |
michael@0 | 3577 | requires the line length to be passed into various functions and |
michael@0 | 3578 | stored in `FT_StrokerRec'. |
michael@0 | 3579 | |
michael@0 | 3580 | o Incorrect cubic curves could be generated. The angle |
michael@0 | 3581 | calculations in `FT_Stroker_CubicTo' have been corrected to |
michael@0 | 3582 | handle the case of the curve crossing the +/-PI direction. |
michael@0 | 3583 | |
michael@0 | 3584 | o If the border radius was greater than the radius of curvature of |
michael@0 | 3585 | a curve, then the negative sector would end up outside (not |
michael@0 | 3586 | inside) the border. This situation is now recognized and the |
michael@0 | 3587 | negative sector is circumnavigated in the opposite direction. |
michael@0 | 3588 | (If round line joins are being used, this code is disabled |
michael@0 | 3589 | because the line join will always cover the negative sector.) |
michael@0 | 3590 | |
michael@0 | 3591 | o When a curve is split, the arcs may not join smoothly (especially |
michael@0 | 3592 | if the curve turns sharply back on itself). Changes in |
michael@0 | 3593 | direction between adjacent arcs were not handled. A round |
michael@0 | 3594 | corner is now added if the deviation from one arc to the next is |
michael@0 | 3595 | greater than a suitable threshold. |
michael@0 | 3596 | |
michael@0 | 3597 | o The current direction wasn't retained if a the outline contained |
michael@0 | 3598 | a zero length lineto or a curve that was determined to be |
michael@0 | 3599 | `basically a point'. This could cause a spurious join to be |
michael@0 | 3600 | added. |
michael@0 | 3601 | |
michael@0 | 3602 | o Cubics with close control points could be mishandled. All eight |
michael@0 | 3603 | cases are now distinguished correctly. |
michael@0 | 3604 | |
michael@0 | 3605 | Other improvements |
michael@0 | 3606 | ------------------ |
michael@0 | 3607 | |
michael@0 | 3608 | o Borders for cubic curves could be too `flat'. |
michael@0 | 3609 | FT_SMALL_CUBIC_THRESHOLD has been reduced a little to prevent |
michael@0 | 3610 | this. |
michael@0 | 3611 | |
michael@0 | 3612 | o The handling and use of movable points has been simplified a |
michael@0 | 3613 | little. |
michael@0 | 3614 | |
michael@0 | 3615 | o Various values are now computed only if the results are actually |
michael@0 | 3616 | needed. |
michael@0 | 3617 | |
michael@0 | 3618 | o The directions of the outer and inner borders have been swapped, |
michael@0 | 3619 | as recommended by Graham Asher. |
michael@0 | 3620 | |
michael@0 | 3621 | * src/base/ftstroke.c: Revised. |
michael@0 | 3622 | * include/freetype/ftstroke.h: Updated. |
michael@0 | 3623 | |
michael@0 | 3624 | 2011-06-30 İsmail Dönmez <ismail@namtrac.org> |
michael@0 | 3625 | |
michael@0 | 3626 | * builds/toplevel.mk: We use git, not CVS, thus skip `.gitignore'. |
michael@0 | 3627 | |
michael@0 | 3628 | 2011-06-29 Werner Lemberg <wl@gnu.org> |
michael@0 | 3629 | |
michael@0 | 3630 | [bdf] Fix Savannah bug #33663. |
michael@0 | 3631 | |
michael@0 | 3632 | * src/bdf/bdflib.c (_bdf_parse_glyphs): Handle negative values for |
michael@0 | 3633 | ENCODING correctly. |
michael@0 | 3634 | |
michael@0 | 3635 | * docs/CHANGES: Document it. |
michael@0 | 3636 | |
michael@0 | 3637 | 2011-06-24 Werner Lemberg <wl@gnu.org> |
michael@0 | 3638 | |
michael@0 | 3639 | * Version 2.4.5 released. |
michael@0 | 3640 | ========================= |
michael@0 | 3641 | |
michael@0 | 3642 | |
michael@0 | 3643 | Tag sources with `VER-2-4-5'. |
michael@0 | 3644 | |
michael@0 | 3645 | * docs/CHANGES: Updated. |
michael@0 | 3646 | |
michael@0 | 3647 | * docs/VERSION.DLL: Update documentation and bump version number to |
michael@0 | 3648 | 2.4.5 |
michael@0 | 3649 | |
michael@0 | 3650 | * README, Jamfile (RefDoc), |
michael@0 | 3651 | builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, |
michael@0 | 3652 | builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, |
michael@0 | 3653 | builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, |
michael@0 | 3654 | builds/win32/visualc/freetype.dsp, |
michael@0 | 3655 | builds/win32/visualc/freetype.vcproj, |
michael@0 | 3656 | builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, |
michael@0 | 3657 | builds/win32/visualce/freetype.vcproj, |
michael@0 | 3658 | builds/win32/visualce/index.html, |
michael@0 | 3659 | builds/wince/vc2005-ce/freetype.vcproj, |
michael@0 | 3660 | builds/wince/vc2005-ce/index.html, |
michael@0 | 3661 | builds/wince/vc2008-ce/freetype.vcproj, |
michael@0 | 3662 | builds/wince/vc2008-ce/index.html: s/2.4.4/2.4.5/, s/244/245/. |
michael@0 | 3663 | |
michael@0 | 3664 | * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5. |
michael@0 | 3665 | |
michael@0 | 3666 | * builds/unix/configure.raw (version_info): Set to 13:0:7. |
michael@0 | 3667 | |
michael@0 | 3668 | 2011-06-20 Werner Lemberg <wl@gnu.org> |
michael@0 | 3669 | |
michael@0 | 3670 | * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Fix change |
michael@0 | 3671 | from 2011-05-04. |
michael@0 | 3672 | |
michael@0 | 3673 | 2011-06-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 3674 | |
michael@0 | 3675 | [gxvalid] make the `prop' validation tracing verbose. |
michael@0 | 3676 | |
michael@0 | 3677 | * src/gxvalid/gxvprop.c: Add tracing messages for errors. |
michael@0 | 3678 | |
michael@0 | 3679 | 2011-06-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 3680 | |
michael@0 | 3681 | [autogen.sh] Reflect environment variable LIBTOOLIZE. |
michael@0 | 3682 | |
michael@0 | 3683 | 2011-06-18 Werner Lemberg <wl@gnu.org> |
michael@0 | 3684 | |
michael@0 | 3685 | Update license documentation. |
michael@0 | 3686 | |
michael@0 | 3687 | * docs/GPL.TXT: Renamed to... |
michael@0 | 3688 | * docs/GPLv2.TXT: This. |
michael@0 | 3689 | |
michael@0 | 3690 | * docs/LICENSE.TXT: Updated. |
michael@0 | 3691 | |
michael@0 | 3692 | 2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 3693 | |
michael@0 | 3694 | Fix g++4.6 compiler warnings in module drivers. |
michael@0 | 3695 | |
michael@0 | 3696 | The background is same with previous commit. |
michael@0 | 3697 | |
michael@0 | 3698 | * src/truetype/ttgxvar.c (ft_var_readpackedpoints): |
michael@0 | 3699 | Init `points'. (TT_Vary_Get_Glyph_Deltas): Init |
michael@0 | 3700 | `delta_xy'. (TT_Get_MM_Var): Init `mmvar'. |
michael@0 | 3701 | * src/type1/t1load.c (T1_Get_MM_Var): Ditto. |
michael@0 | 3702 | * src/cff/cffdrivr.c (cff_ps_get_font_info): Init |
michael@0 | 3703 | `font_info'. |
michael@0 | 3704 | * src/cff/cffload.c (cff_index_get_pointers): Init `t'. |
michael@0 | 3705 | (cff_font_load): Init `sub'. |
michael@0 | 3706 | * src/cff/cffobjs.c (cff_size_init): Init `internal'. |
michael@0 | 3707 | (cff_face_init): Init `cff'. |
michael@0 | 3708 | * src/pfr/pfrload.c (pfr_extra_item_load_stem_snaps): |
michael@0 | 3709 | Init `snaps'. |
michael@0 | 3710 | * src/pcf/pcfread.c (pcf_get_properties): Init `properties'. |
michael@0 | 3711 | (pcf_get_bitmaps): Init `offsets'. (pcf_get_encodings): |
michael@0 | 3712 | Init `tmpEncoding'. |
michael@0 | 3713 | * src/sfnt/ttload.c (tt_face_load_gasp): Init `gaspranges'. |
michael@0 | 3714 | * src/sfnt/ttsbit.c (Load_SBit_Image): Init `components'. |
michael@0 | 3715 | * src/cache/ftcmru.c (FTC_MruList_New): Init `node'. |
michael@0 | 3716 | * src/gzip/ftgzip.c (FT_Stream_OpenGzip): Init `zip' and |
michael@0 | 3717 | `zip_buff'. |
michael@0 | 3718 | * src/lzw/ftlzw.c (FT_Stream_OpenLZW): Init `zip'. |
michael@0 | 3719 | * src/bzip2/ftbzip2.c (FT_Stream_OpenBzip2): Init `zip'. |
michael@0 | 3720 | |
michael@0 | 3721 | 2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 3722 | |
michael@0 | 3723 | [base] Fix g++4.6 compiler warnings in src/base/*.c. |
michael@0 | 3724 | |
michael@0 | 3725 | Passing uninitialized pointer to FT_NEW() families is |
michael@0 | 3726 | not problematic theoretically (as far as the returned |
michael@0 | 3727 | pointer is checked before writing), but g++4.6 dislikes |
michael@0 | 3728 | it and warns by -Wuninitialized. Initialize them by NULL. |
michael@0 | 3729 | |
michael@0 | 3730 | * src/base/ftobjs.c (FT_Stream_New): Init `stream'. |
michael@0 | 3731 | (new_memory_stream): Ditto. |
michael@0 | 3732 | (FT_New_GlyphSlot): Init `slot'. |
michael@0 | 3733 | (FT_CMap_New): Init `cmap'. |
michael@0 | 3734 | (open_face_PS_from_sfnt_stream): Init `sfnt_ps'. |
michael@0 | 3735 | (Mac_Read_POST_Resource): Init `pfb_data'. |
michael@0 | 3736 | (Mac_Read_sfnt_Resource): Init `sfnt_data'. |
michael@0 | 3737 | * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): |
michael@0 | 3738 | Init `offsets_internal' and `ref'. |
michael@0 | 3739 | (raccess_guess_darwin_hfsplus): Init `newpath'. |
michael@0 | 3740 | (raccess_guess_darwin_newvfs): Ditto. |
michael@0 | 3741 | * src/base/ftbitmap.c (ft_bitmap_assure_buffer): |
michael@0 | 3742 | Init `buffer'. |
michael@0 | 3743 | * src/base/ftstroke.c (FT_Stroker_New): Init `stroker'. |
michael@0 | 3744 | |
michael@0 | 3745 | 2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 3746 | |
michael@0 | 3747 | [gxvalid] Cleanup. |
michael@0 | 3748 | |
michael@0 | 3749 | Some invalid, overrunning, unrecommended non-zero values |
michael@0 | 3750 | are cared in paranoid validation mode only. There are |
michael@0 | 3751 | many lines looking like: |
michael@0 | 3752 | |
michael@0 | 3753 | if ( valid->root->level >= FT_VALIDATE_PARANOID ) |
michael@0 | 3754 | FT_INVALID_xxx; |
michael@0 | 3755 | |
michael@0 | 3756 | To simplify them, GXV_SET_ERR_IF_PARANOID( err ) is |
michael@0 | 3757 | introduced for more paranoid validation in future. |
michael@0 | 3758 | |
michael@0 | 3759 | * src/gxvalid/gxvcommn.h (IS_PARANOID_VALIDATION): |
michael@0 | 3760 | New macro to assure valid->root->level is more or |
michael@0 | 3761 | equal to FT_VALIDATE_PARANOID. (GXV_SET_ERR_IF_PARANOID): |
michael@0 | 3762 | New macro to raise an error if in paranoid validation. |
michael@0 | 3763 | * src/gxvalid/gxvcommn.c: Use GXV_SET_ERR_IF_PARANOID(). |
michael@0 | 3764 | * src/gxvalid/gxvfeat.c: Ditto. |
michael@0 | 3765 | * src/gxvalid/gxvjust.c: Ditto. |
michael@0 | 3766 | * src/gxvalid/gxvkern.c: Ditto. |
michael@0 | 3767 | * src/gxvalid/gxvmort.c: Ditto. |
michael@0 | 3768 | * src/gxvalid/gxvmort0.c: Ditto. |
michael@0 | 3769 | * src/gxvalid/gxvmort1.c: Ditto. |
michael@0 | 3770 | * src/gxvalid/gxvmort2.c: Ditto. |
michael@0 | 3771 | * src/gxvalid/gxvmorx1.c: Ditto. |
michael@0 | 3772 | * src/gxvalid/gxvmorx2.c: Ditto. |
michael@0 | 3773 | |
michael@0 | 3774 | 2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 3775 | |
michael@0 | 3776 | [gxvalid] Fix gcc4.6 compiler warnings in gxvtrak.c. |
michael@0 | 3777 | |
michael@0 | 3778 | * src/gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): |
michael@0 | 3779 | Check different entries pointing same traking value. |
michael@0 | 3780 | (gxv_trak_validate): Remove unused variable `table_size'. |
michael@0 | 3781 | |
michael@0 | 3782 | 2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 3783 | |
michael@0 | 3784 | [gxvalid] Fix gcc4.6 compiler warnings in gxvmorx*.c. |
michael@0 | 3785 | |
michael@0 | 3786 | * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate): |
michael@0 | 3787 | Conditionalize unvalidated variable `subFeatureFlags'. |
michael@0 | 3788 | (gxv_morx_chain_validate): Conditionalize unvalidated |
michael@0 | 3789 | variable `defaultFlags'. |
michael@0 | 3790 | |
michael@0 | 3791 | * src/gxvalid/gxmorx0.c |
michael@0 | 3792 | (gxv_morx_subtable_type0_entry_validate): |
michael@0 | 3793 | Conditionalize unvalidated variables; `markFirst', |
michael@0 | 3794 | `dontAdvance', `markLast', `verb'. |
michael@0 | 3795 | |
michael@0 | 3796 | * src/gxvalid/gxmorx1.c |
michael@0 | 3797 | (gxv_morx_subtable_type1_entry_validate): Conditionalize |
michael@0 | 3798 | unvalidated variables; `setMark', `dontAdvance'. |
michael@0 | 3799 | |
michael@0 | 3800 | * src/gxvalid/gxvmorx2.c |
michael@0 | 3801 | (gxv_morx_subtable_type2_ligActionOffset_validate): |
michael@0 | 3802 | Conditionalize unvalidated variables; `last', `store'. |
michael@0 | 3803 | Checking for overrunning offset is added. |
michael@0 | 3804 | (gxv_morx_subtable_type2_entry_validate): |
michael@0 | 3805 | Conditionalize unvalidated variables; `setComponent', |
michael@0 | 3806 | `dontAdvance', `performAction'. |
michael@0 | 3807 | (gxv_morx_subtable_type2_ligatureTable_validate): |
michael@0 | 3808 | Check if the GID for ligature does not exceed the |
michael@0 | 3809 | max GID in `maxp' table. |
michael@0 | 3810 | |
michael@0 | 3811 | * src/gxvalid/gxvmort5.c |
michael@0 | 3812 | (gxv_morx_subtable_type5_InsertList_validate): |
michael@0 | 3813 | Conditionalize unvalidated loading of `insert_glyphID' |
michael@0 | 3814 | array. (gxv_morx_subtable_type5_entry_validate): |
michael@0 | 3815 | Conditionalize unvalidated variables; `setMark', |
michael@0 | 3816 | `dontAdvance', `currentIsKashidaLike', |
michael@0 | 3817 | `markedIsKashidaLike', `currentInsertBefore', |
michael@0 | 3818 | `markedInsertBefore'. |
michael@0 | 3819 | |
michael@0 | 3820 | 2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 3821 | |
michael@0 | 3822 | [gxvalid] Fix gcc4.6 compiler warnings in gxvmort*.c. |
michael@0 | 3823 | |
michael@0 | 3824 | * src/gxvalid/gxvmort.c (gxv_mort_subtables_validate): |
michael@0 | 3825 | Conditionalize unvalidated variable `subFeatureFlags'. |
michael@0 | 3826 | (gxv_mort_chain_validate): Conditionalize unvalidated |
michael@0 | 3827 | variable `defaultFlags'. |
michael@0 | 3828 | |
michael@0 | 3829 | * src/gxvalid/gxmort0.c |
michael@0 | 3830 | (gxv_mort_subtable_type0_entry_validate): Check the |
michael@0 | 3831 | conflict of the marks for the glyphs. |
michael@0 | 3832 | |
michael@0 | 3833 | * src/gxvalid/gxmort1.c |
michael@0 | 3834 | (gxv_mort_subtable_type1_offset_to_subst_validate): |
michael@0 | 3835 | Local variables `min_gid', `max_gid' are replaced by |
michael@0 | 3836 | variables in the validator. |
michael@0 | 3837 | (gxv_mort_subtable_type1_entry_validate): Conditionalize |
michael@0 | 3838 | unvalidated variables; `setMark', `dontAdvance'. |
michael@0 | 3839 | (gxv_mort_subtable_type1_substTable_validate): |
michael@0 | 3840 | Validate the GID by the min/max GIDs in the validator. |
michael@0 | 3841 | |
michael@0 | 3842 | * src/gxvalid/gxvmort2.c |
michael@0 | 3843 | (gxv_mort_subtable_type2_ligActionOffset_validate): |
michael@0 | 3844 | Conditionalize unvalidated variables; `last', `store'. |
michael@0 | 3845 | Checking for overrunning offset is added. |
michael@0 | 3846 | (gxv_mort_subtable_type2_entry_validate): |
michael@0 | 3847 | Conditionalize unvalidated variables; `setComponent', |
michael@0 | 3848 | `dontAdvance'. |
michael@0 | 3849 | (gxv_mort_subtable_type2_ligatureTable_validate): |
michael@0 | 3850 | Check if the GID for ligature does not exceed the |
michael@0 | 3851 | max GID in `maxp' table. |
michael@0 | 3852 | |
michael@0 | 3853 | * src/gxvalid/gxvmort5.c |
michael@0 | 3854 | (gxv_mort_subtable_type5_InsertList_validate): |
michael@0 | 3855 | Conditionalize unvalidated loading of `insert_glyphID' |
michael@0 | 3856 | array. (gxv_mort_subtable_type5_entry_validate): |
michael@0 | 3857 | Conditionalize unvalidated variables; `setMark', |
michael@0 | 3858 | `dontAdvance', `currentIsKashidaLike', |
michael@0 | 3859 | `markedIsKashidaLike', `currentInsertBefore', |
michael@0 | 3860 | `markedInsertBefore'. |
michael@0 | 3861 | |
michael@0 | 3862 | 2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 3863 | |
michael@0 | 3864 | [gxvalid] Fix gcc4.6 compiler warnings in gxvkern.c. |
michael@0 | 3865 | |
michael@0 | 3866 | * src/gxvalid/gxvkern.c |
michael@0 | 3867 | (gxv_kern_subtable_fmt0_pairs_validate): Conditionalize |
michael@0 | 3868 | unvalidated variable `kernValue'. |
michael@0 | 3869 | (gxv_kern_subtable_fmt1_entry_validate): Conditionalize |
michael@0 | 3870 | unvalidated variables; `push', `dontAdvance', `kernAction', |
michael@0 | 3871 | `kernValue'. |
michael@0 | 3872 | (gxv_kern_coverage_new_apple_validate): Conditionalize |
michael@0 | 3873 | trace-only variables; `kernVertical', `kernCrossStream', |
michael@0 | 3874 | `kernVariation'. |
michael@0 | 3875 | (gxv_kern_coverage_classic_apple_validate): Conditionalize |
michael@0 | 3876 | trace-only variables; `horizontal', `cross_stream'. |
michael@0 | 3877 | (gxv_kern_coverage_classic_microsoft_validate): |
michael@0 | 3878 | Conditionalize trace-only variables; `horizontal', |
michael@0 | 3879 | `minimum', `cross_stream', `override'. |
michael@0 | 3880 | (gxv_kern_subtable_validate): Conditionalize trace-only |
michael@0 | 3881 | variables; `version', `tupleIndex'. |
michael@0 | 3882 | |
michael@0 | 3883 | 2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 3884 | |
michael@0 | 3885 | [gxvalid] Fix gcc4.6 compiler warnings in gxvjust.c. |
michael@0 | 3886 | |
michael@0 | 3887 | * src/gxvalid/gxvjust.c (gxv_just_check_max_gid): |
michael@0 | 3888 | New function to unify the checks of too large GID. |
michael@0 | 3889 | (gxv_just_wdp_entry_validate): Conditionalize unvalidated |
michael@0 | 3890 | variables; `beforeGrowLimit', `beforeShrinkGrowLimit', |
michael@0 | 3891 | `afterGrowLimit', `afterShrinkGrowLimit', `growFlags', |
michael@0 | 3892 | `shrinkFlags'. Additional check for non-zero values in |
michael@0 | 3893 | unused storage `justClass' is added. |
michael@0 | 3894 | (gxv_just_actSubrecord_type0_validate): Conditionalize |
michael@0 | 3895 | unvalidated variable `order'. GID is checked by |
michael@0 | 3896 | gxv_just_check_max_gid(). Additional check for upside-down |
michael@0 | 3897 | relationship between `lowerLimit' and `upperLimit' is added. |
michael@0 | 3898 | (gxv_just_actSubrecord_type1_validate): GID is checked by |
michael@0 | 3899 | gxv_just_check_max_gid(). |
michael@0 | 3900 | (gxv_just_actSubrecord_type2_validate): Conditionalize |
michael@0 | 3901 | unvalidated variable `substThreshhold'. GID is checked by |
michael@0 | 3902 | gxv_just_check_max_gid(). |
michael@0 | 3903 | (gxv_just_actSubrecord_type5_validate): GID is checked by |
michael@0 | 3904 | gxv_just_check_max_gid(). |
michael@0 | 3905 | (gxv_just_classTable_entry_validate): Conditionalize |
michael@0 | 3906 | unvalidated variables; `setMark', `dontAdvance', |
michael@0 | 3907 | `markClass', `currentClass'. |
michael@0 | 3908 | |
michael@0 | 3909 | 2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 3910 | |
michael@0 | 3911 | [gxvalid] Preparation to fix gcc4.6 compiler warnings. |
michael@0 | 3912 | |
michael@0 | 3913 | * src/gxvalid/gxvcommn.h (GXV_LOAD_TRACE_VARS): New macro to |
michael@0 | 3914 | conditionalize the variable which is only used for trace messages. |
michael@0 | 3915 | Automatically set by FT_DEBUG_LEVEL_TRACE. |
michael@0 | 3916 | (GXV_LOAD_UNUSED_VARS): New macro to conditionalize the loading of |
michael@0 | 3917 | unvalidated variables. Undefined by default to calm gcc4.6 warning. |
michael@0 | 3918 | (GXV_ValidatorRec.{min_gid,max_gid}): New variables to hold defined |
michael@0 | 3919 | GID ranges, for the comparison of GID ranges in different subtables. |
michael@0 | 3920 | |
michael@0 | 3921 | 2011-06-08 Werner Lemberg <wl@gnu.org> |
michael@0 | 3922 | |
michael@0 | 3923 | [autofit] Remove unused structure member. |
michael@0 | 3924 | |
michael@0 | 3925 | * src/autofit/afhints.h (AF_SegmentRec): Remove `contour'. |
michael@0 | 3926 | * src/autofit/aflatin.c (af_latin_hints_compute_segments), |
michael@0 | 3927 | src/autofit/aflatin2.c (af_latin2_hints_compute_segments): Updated. |
michael@0 | 3928 | |
michael@0 | 3929 | 2011-05-30 Werner Lemberg <wl@gnu.org> |
michael@0 | 3930 | |
michael@0 | 3931 | Fix g++ 4.6 compilation. |
michael@0 | 3932 | |
michael@0 | 3933 | * src/autofit/afhints.c (af_glyph_hints_dump_segments, |
michael@0 | 3934 | af_glyph_hints_dump_edges): Use cast. |
michael@0 | 3935 | |
michael@0 | 3936 | 2011-05-30 Werner Lemberg <wl@gnu.org> |
michael@0 | 3937 | |
michael@0 | 3938 | Fix gcc 4.6 compiler warnings. |
michael@0 | 3939 | |
michael@0 | 3940 | * src/autofit/afcjk.c (af_cjk_metrics_init_blues): Use casts and |
michael@0 | 3941 | remove unused variables. |
michael@0 | 3942 | * src/autofit/aflatin.c (af_latin_hints_compute_edges): Comment out |
michael@0 | 3943 | `up_dir'. |
michael@0 | 3944 | * src/smooth/ftsmooth.c (ft_smooth_render_generic): Use `height_org' |
michael@0 | 3945 | and `width_org' conditionalized. |
michael@0 | 3946 | |
michael@0 | 3947 | 2011-05-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 3948 | |
michael@0 | 3949 | [mac] Conditionalize the inclusion of `AvailabilityMacros.h'. |
michael@0 | 3950 | |
michael@0 | 3951 | The native SDK on earliest Mac OS X (10.0-10.1) did not have |
michael@0 | 3952 | `AvailabilityMacros.h'. To prevent the inclusion of missing |
michael@0 | 3953 | header file, ECANCELED (introduced in 10.2) in POSIX header |
michael@0 | 3954 | file <errno.h> is checked to detect the system version. |
michael@0 | 3955 | |
michael@0 | 3956 | * include/freetype/config/ftconfig.h: Conditionalize the |
michael@0 | 3957 | inclusion of `AvailabilityMacros.h'. |
michael@0 | 3958 | * builds/unix/ftconfig.in: Ditto. |
michael@0 | 3959 | * builds/vms/ftconfig.h: Ditto. |
michael@0 | 3960 | |
michael@0 | 3961 | 2011-05-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 3962 | |
michael@0 | 3963 | [autofit] Improve tracing of hinting process. |
michael@0 | 3964 | |
michael@0 | 3965 | * src/autofit/aflatin.c (af_latin_hint_edges): Add tracing message |
michael@0 | 3966 | `ADJUST'. |
michael@0 | 3967 | |
michael@0 | 3968 | 2011-05-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 3969 | |
michael@0 | 3970 | [autofit] Fix trace message. |
michael@0 | 3971 | |
michael@0 | 3972 | * src/autofit/aflatin.c (af_latin_hint_edges): Show correct value in |
michael@0 | 3973 | tracing message. |
michael@0 | 3974 | |
michael@0 | 3975 | 2011-05-24 Daniel Zimmermann <netzimme@googlemail.com> |
michael@0 | 3976 | |
michael@0 | 3977 | Reduce warnings for MS Visual Studio 2010. |
michael@0 | 3978 | |
michael@0 | 3979 | * src/autofit/afhints.c (af_glyph_hints_get_num_segments, |
michael@0 | 3980 | af_glyph_hints_get_segment_offset) [!FT_DEBUG_AUTOFIT]: Provide |
michael@0 | 3981 | return value. |
michael@0 | 3982 | * src/cff/cffgload.c (cff_slot_load): Add cast. |
michael@0 | 3983 | * src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids): Use proper |
michael@0 | 3984 | loop variable type. |
michael@0 | 3985 | |
michael@0 | 3986 | 2011-05-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 3987 | |
michael@0 | 3988 | Automake component `builds/unix/install-sh' is removed. |
michael@0 | 3989 | |
michael@0 | 3990 | * builds/unix/install-sh: Removed. It is not needed to |
michael@0 | 3991 | include repository, because autogen.sh installs it. |
michael@0 | 3992 | * builds/unix/.gitignore: Register install-sh. |
michael@0 | 3993 | |
michael@0 | 3994 | 2011-05-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 3995 | |
michael@0 | 3996 | [autofit] Make trace message for CJK bluezone more verbose. |
michael@0 | 3997 | |
michael@0 | 3998 | 2011-05-08 Just Fill Bugs <mozbugbox@yahoo.com.au> |
michael@0 | 3999 | suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4000 | |
michael@0 | 4001 | [autofit] Add bluezones for CJK Ideographs. |
michael@0 | 4002 | |
michael@0 | 4003 | To remove extremas of vertical strokes of CJK Ideographs at |
michael@0 | 4004 | low resolution and make the top and bottom horizontal stems |
michael@0 | 4005 | aligned, bluezones for CJK Ideographs are calculated from |
michael@0 | 4006 | sample glyphs. At present, vertical bluezones (bluezones |
michael@0 | 4007 | to align vertical stems) are disabled by default. For detail, see |
michael@0 | 4008 | http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00070.html |
michael@0 | 4009 | http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00092.html |
michael@0 | 4010 | http://lists.gnu.org/archive/html/freetype-devel/2011-05/msg00001.html |
michael@0 | 4011 | |
michael@0 | 4012 | * include/freetype/internal/fttrace.h: New trace component `afcjk'. |
michael@0 | 4013 | * src/autofit/afcjk.h (AF_CJK{Blue,Axis,Metric}Rec): Add CJK version |
michael@0 | 4014 | for AF_Latin{Blue,Axis,Metric}Rec. |
michael@0 | 4015 | (af_cjk_metrics_check_digits): Ditto, shared with Indic module. |
michael@0 | 4016 | (af_cjk_metrics_init_widths): Ditto. |
michael@0 | 4017 | (af_cjk_metrics_init): Take AF_CJKMetric instead of AF_LatinMetric. |
michael@0 | 4018 | (af_cjk_metrics_scale): Ditto (declaration). |
michael@0 | 4019 | (af_cjk_hints_init): Ditto (declaration). |
michael@0 | 4020 | (af_cjk_hints_apply): Ditto (declaration). |
michael@0 | 4021 | * src/autofit/afcjk.c (af_cjk_metrics_scale): Ditto (body). |
michael@0 | 4022 | (af_cjk_hints_init): Ditto (body). |
michael@0 | 4023 | (af_cjk_hints_apply): Ditto (body). |
michael@0 | 4024 | (af_cjk_metrics_init_widths): Duplicate af_latin_metrics_init_widths. |
michael@0 | 4025 | (af_cjk_metrics_check_digits): Duplicate af_latin_metrics_check_digits. |
michael@0 | 4026 | (af_cjk_metrics_init): Call CJK bluezone initializer. |
michael@0 | 4027 | (af_cjk_metrics_scale_dim): Add code to scale bluezones. |
michael@0 | 4028 | (af_cjk_hints_compute_blue_edges): New function, CJK version of |
michael@0 | 4029 | af_latin_hints_compute_blue_edges. |
michael@0 | 4030 | (af_cjk_metrics_init_blues): New function, CJK version of |
michael@0 | 4031 | af_latin_metrics_init_blues. |
michael@0 | 4032 | (af_cjk_hints_edges): Add code to align the edge stems to blue zones. |
michael@0 | 4033 | |
michael@0 | 4034 | * src/autofit/afindic.c (af_indic_metrics_init): Take AF_CJKMetric |
michael@0 | 4035 | instead of AF_LatinMetric, and initialize as af_cjk_metrics_init. |
michael@0 | 4036 | However bluezones are not initialized. |
michael@0 | 4037 | (af_indic_metrics_scale): Take AF_CJKMetric instead of AF_LatinMetric. |
michael@0 | 4038 | (af_indic_hints_init): Ditto. |
michael@0 | 4039 | (af_indic_hints_apply): Ditto. |
michael@0 | 4040 | |
michael@0 | 4041 | * docs/CHANGES: Note about CJK bluezone support. |
michael@0 | 4042 | |
michael@0 | 4043 | 2011-05-06 Werner Lemberg <wl@gnu.org> |
michael@0 | 4044 | |
michael@0 | 4045 | [autofit] Remove unused struct member. |
michael@0 | 4046 | |
michael@0 | 4047 | * src/autofit/aflatin.h (AF_LatinAxis): Remove `control_overshoot'. |
michael@0 | 4048 | |
michael@0 | 4049 | 2011-05-04 Werner Lemberg <wl@gnu.org> |
michael@0 | 4050 | |
michael@0 | 4051 | * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Simplify. |
michael@0 | 4052 | |
michael@0 | 4053 | 2011-05-01 Just Fill Bugs <mozbugbox@yahoo.com.au> |
michael@0 | 4054 | Werner Lemberg <wl@gnu.org> |
michael@0 | 4055 | |
michael@0 | 4056 | [autofit] Add more debugging functions. |
michael@0 | 4057 | |
michael@0 | 4058 | * src/autofit/afhints.c (af_glyph_hints_get_num_segments, |
michael@0 | 4059 | af_glyph_hints_get_segment_offset): New functions. |
michael@0 | 4060 | |
michael@0 | 4061 | 2011-05-01 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4062 | |
michael@0 | 4063 | Add new option `--disable-mmap' to configure script. |
michael@0 | 4064 | |
michael@0 | 4065 | * builds/unix/configure.raw: New option `--disable-mmap' |
michael@0 | 4066 | is added. It is for the developers to simulate the systems |
michael@0 | 4067 | without mmap() (like 4.3BSD, minix etc) on POSIX systems. |
michael@0 | 4068 | |
michael@0 | 4069 | 2011-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4070 | |
michael@0 | 4071 | [truetype] Always recalculate the sfnt table checksum. |
michael@0 | 4072 | |
michael@0 | 4073 | * src/truetype/ttobjs.c (tt_get_sfnt_checksum): Recalculate |
michael@0 | 4074 | the sfnt table checksum even if non-zero value is written in |
michael@0 | 4075 | the TrueType font header. Some bad PDF generators write |
michael@0 | 4076 | wrong values. For details see examples and benchmark tests |
michael@0 | 4077 | of the latency by recalculation: |
michael@0 | 4078 | http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00091.html |
michael@0 | 4079 | http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00096.html |
michael@0 | 4080 | |
michael@0 | 4081 | 2011-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4082 | |
michael@0 | 4083 | [truetype] Register a set of tricky fonts, NEC FA family. |
michael@0 | 4084 | |
michael@0 | 4085 | * src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids): |
michael@0 | 4086 | Add 8 checksum sets for NEC FA family. For the tricky fonts |
michael@0 | 4087 | without some tables (e.g. NEC FA fonts lack cvt table), |
michael@0 | 4088 | extra check is added to assure that a zero-length table in the |
michael@0 | 4089 | registry is not included in the font. |
michael@0 | 4090 | |
michael@0 | 4091 | 2011-04-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4092 | |
michael@0 | 4093 | [truetype] Fix a bug in the sfnt table checksum getter. |
michael@0 | 4094 | |
michael@0 | 4095 | * src/truetype/ttobjs.c (tt_get_sfnt_checksum): Check the |
michael@0 | 4096 | return value of face->goto_table() correctly. |
michael@0 | 4097 | |
michael@0 | 4098 | 2011-04-28 Werner Lemberg <wl@gnu.org> |
michael@0 | 4099 | |
michael@0 | 4100 | [autofit] Improve tracing messages. |
michael@0 | 4101 | |
michael@0 | 4102 | * src/autofit/aflatin.c (af_latin_metrics_init_blues, |
michael@0 | 4103 | af_latin_align_linked_edge, af_latin_hint_edges): Do it. |
michael@0 | 4104 | |
michael@0 | 4105 | 2011-04-25 Kan-Ru Chen <kanru@kanru.info> |
michael@0 | 4106 | |
michael@0 | 4107 | [truetype] Always check the checksum to identify tricky fonts. |
michael@0 | 4108 | |
michael@0 | 4109 | Because some PDF generators mangle the family name badly, |
michael@0 | 4110 | the trickyness check by the checksum should be invoked always. |
michael@0 | 4111 | For sample PDF, see |
michael@0 | 4112 | http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00073.html |
michael@0 | 4113 | |
michael@0 | 4114 | * src/truetype/ttobjs.c (tt_check_trickyness): Even when |
michael@0 | 4115 | tt_check_trickyness_family() finds no trickyness, |
michael@0 | 4116 | tt_check_trickyness_sfnt_ids() is invoked. |
michael@0 | 4117 | |
michael@0 | 4118 | 2011-04-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4119 | |
michael@0 | 4120 | [autofit] Add more Indic scripts with hanging baseline. |
michael@0 | 4121 | |
michael@0 | 4122 | * src/autofit/afindic.c (af_indic_uniranges): Tibetan, Limbu, |
michael@0 | 4123 | Sundanese, Meetei Mayak, Syloti Nagri and Sharada scripts are |
michael@0 | 4124 | added. |
michael@0 | 4125 | |
michael@0 | 4126 | 2011-04-21 Behdad Esfahbod <behdad@behdad.org> |
michael@0 | 4127 | |
michael@0 | 4128 | Always ignore global advance. |
michael@0 | 4129 | |
michael@0 | 4130 | This makes FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH redundant, |
michael@0 | 4131 | deprecated, and ignored. The new behavior is what every major user |
michael@0 | 4132 | of FreeType has been requesting. Global advance is broken in many |
michael@0 | 4133 | CJK fonts. Just ignoring it by default makes most sense. |
michael@0 | 4134 | |
michael@0 | 4135 | * src/truetype/ttdriver.c (tt_get_advances), |
michael@0 | 4136 | src/truetype/ttgload.c (TT_Get_HMetrics, TT_Get_VMetrics, |
michael@0 | 4137 | tt_get_metrics, compute_glyph_metrics, TT_Load_Glyph), |
michael@0 | 4138 | src/truetype/ttgload.h: Implement it. |
michael@0 | 4139 | |
michael@0 | 4140 | * docs/CHANGES: Updated. |
michael@0 | 4141 | |
michael@0 | 4142 | 2011-04-21 rainy6144 <rainy6144@gmail.com> |
michael@0 | 4143 | |
michael@0 | 4144 | [autofit] Blur CJK stems if too many to preserve their gaps. |
michael@0 | 4145 | |
michael@0 | 4146 | When there are too many stems to preserve their gaps in the |
michael@0 | 4147 | rasterization of CJK Ideographs at a low resolution, blur the |
michael@0 | 4148 | stems instead of showing clumped stems. See |
michael@0 | 4149 | http://lists.gnu.org/archive/html/freetype-devel/2011-02/msg00011.html |
michael@0 | 4150 | http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00046.html |
michael@0 | 4151 | for details. |
michael@0 | 4152 | |
michael@0 | 4153 | * src/autofit/afcjk.c (af_cjk_hint_edges): Store the position of |
michael@0 | 4154 | the previous stem by `has_last_stem' and `last_stem_pos', and skip |
michael@0 | 4155 | a stem if the current and previous stem are too near to preserve |
michael@0 | 4156 | the gap. |
michael@0 | 4157 | |
michael@0 | 4158 | 2011-04-18 Werner Lemberg <wl@gnu.org> |
michael@0 | 4159 | |
michael@0 | 4160 | Integrate autofitter debugging stuff. |
michael@0 | 4161 | |
michael@0 | 4162 | * devel/ftoption.h, include/freetype/config/ftoption.h |
michael@0 | 4163 | (FT_DEBUG_AUTOFIT): New macro. |
michael@0 | 4164 | |
michael@0 | 4165 | * include/freetype/internal/fttrace.h: Add trace components for |
michael@0 | 4166 | autofitter. |
michael@0 | 4167 | |
michael@0 | 4168 | * src/autofit/aftypes.h (AF_LOG): Removed. |
michael@0 | 4169 | (_af_debug): Removed. |
michael@0 | 4170 | |
michael@0 | 4171 | * src/autofit/*: s/AF_DEBUG/FT_DEBUG_AUTOFIT/. |
michael@0 | 4172 | s/AF_LOG/FT_TRACE5/. |
michael@0 | 4173 | Define FT_COMPONENT where necessary. |
michael@0 | 4174 | |
michael@0 | 4175 | 2011-04-18 Werner Lemberg <wl@gnu.org> |
michael@0 | 4176 | |
michael@0 | 4177 | Synchronize config files. |
michael@0 | 4178 | |
michael@0 | 4179 | * builds/unix/ftconfig.in: Copy missing assembler routines from |
michael@0 | 4180 | include/freetype/config/ftconfig.h. |
michael@0 | 4181 | |
michael@0 | 4182 | 2011-04-13 Werner Lemberg <wl@gnu.org> |
michael@0 | 4183 | |
michael@0 | 4184 | [psaux] Fix Savannah bug #33047. |
michael@0 | 4185 | |
michael@0 | 4186 | Patch submitted by anonymous reporter. |
michael@0 | 4187 | |
michael@0 | 4188 | * src/psaux/psobjs.c (ps_table_add): Use FT_PtrDist for pointer |
michael@0 | 4189 | difference. |
michael@0 | 4190 | |
michael@0 | 4191 | 2011-04-11 Kan-Ru Chen <kanru@kanru.info> |
michael@0 | 4192 | |
michael@0 | 4193 | Fix reading of signed integers from files on 64bit platforms. |
michael@0 | 4194 | |
michael@0 | 4195 | Previously, signed integers were converted to unsigned integers, but |
michael@0 | 4196 | this can fail because of sign extension. For example, 0xa344a1eb |
michael@0 | 4197 | becomes 0xffffffffa344a1eb. |
michael@0 | 4198 | |
michael@0 | 4199 | We now do the reverse which is always correct because the integer |
michael@0 | 4200 | size is the same during the cast from unsigned to signed. |
michael@0 | 4201 | |
michael@0 | 4202 | * include/freetype/internal/ftstream.h, src/base/ftstream.c |
michael@0 | 4203 | (FT_Stream_Get*): Replace with... |
michael@0 | 4204 | (FT_Stream_GetU*): Functions which read unsigned integers. |
michael@0 | 4205 | Update all macros accordingly. |
michael@0 | 4206 | |
michael@0 | 4207 | * src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Updated. |
michael@0 | 4208 | |
michael@0 | 4209 | 2011-04-07 Werner Lemberg <wl@gnu.org> |
michael@0 | 4210 | |
michael@0 | 4211 | Update Unicode ranges for CJK autofitter; in particular, add Hangul. |
michael@0 | 4212 | |
michael@0 | 4213 | * src/autofit/afcjk.c (af_cjk_uniranges): Update to Unicode 6.0. |
michael@0 | 4214 | |
michael@0 | 4215 | 2011-04-04 Werner Lemberg <wl@gnu.org> |
michael@0 | 4216 | |
michael@0 | 4217 | Fix formatting of autofit debug dumps. |
michael@0 | 4218 | |
michael@0 | 4219 | * src/autofit/afhints.c (af_glyph_hints_dump_points, |
michael@0 | 4220 | af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Adjust |
michael@0 | 4221 | column widths. |
michael@0 | 4222 | |
michael@0 | 4223 | 2011-03-30 Werner Lemberg <wl@gnu.org> |
michael@0 | 4224 | |
michael@0 | 4225 | * src/autofit/aftypes.h (AF_OutlineRec): Removed, unused. |
michael@0 | 4226 | |
michael@0 | 4227 | 2011-03-24 Werner Lemberg <wl@gnu.org> |
michael@0 | 4228 | |
michael@0 | 4229 | * src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 256. |
michael@0 | 4230 | This limit is given on p. 37 of Adobe Technical Note #5014. |
michael@0 | 4231 | |
michael@0 | 4232 | 2011-03-23 Werner Lemberg <wl@gnu.org> |
michael@0 | 4233 | |
michael@0 | 4234 | * src/truetype/ttpload.c (tt_face_load_loca): Fix mismatch warning. |
michael@0 | 4235 | |
michael@0 | 4236 | 2011-03-20 Werner Lemberg <wl@gnu.org> |
michael@0 | 4237 | |
michael@0 | 4238 | * src/sfnt/sfobjs.c (sfnt_open_font): Check number of TTC subfonts. |
michael@0 | 4239 | |
michael@0 | 4240 | 2011-03-19 Werner Lemberg <wl@gnu.org> |
michael@0 | 4241 | |
michael@0 | 4242 | More C++ compilation fixes. |
michael@0 | 4243 | |
michael@0 | 4244 | * src/autofit/afhints.c (af_glyph_hints_dump_points, |
michael@0 | 4245 | af_glyph_hints_dump_segments, af_glyph_hints_dump_edges) |
michael@0 | 4246 | [__cplusplus]: Protect with `extern "C"'. |
michael@0 | 4247 | |
michael@0 | 4248 | 2011-03-18 Werner Lemberg <wl@gnu.org> |
michael@0 | 4249 | |
michael@0 | 4250 | C++ compilation fixes. |
michael@0 | 4251 | |
michael@0 | 4252 | * src/autofit/aflatin.c (af_latin_hints_apply), src/autofit/afcjk.c |
michael@0 | 4253 | (af_cjk_hints_apply): Use cast for `dim'. |
michael@0 | 4254 | |
michael@0 | 4255 | 2011-03-17 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 4256 | |
michael@0 | 4257 | A better fix for Savannah bug #32671. |
michael@0 | 4258 | |
michael@0 | 4259 | * src/smooth/ftgrays.c (gray_render_conic): Clean up code and |
michael@0 | 4260 | replace WHILE loop with a more natural DO-WHILE construct. |
michael@0 | 4261 | |
michael@0 | 4262 | 2011-03-16 Werner Lemberg <wl@gnu.org>. |
michael@0 | 4263 | |
michael@0 | 4264 | * src/base/ftstroke.c (FT_StrokerRec): Remove unused `valid' field. |
michael@0 | 4265 | Suggested by Graham Asher. |
michael@0 | 4266 | |
michael@0 | 4267 | 2011-03-09 Werner Lemberg <wl@gnu.org> |
michael@0 | 4268 | |
michael@0 | 4269 | Make FT_Sfnt_Table_Info return the number of SFNT tables. |
michael@0 | 4270 | |
michael@0 | 4271 | * src/sfnt/sfdriver.c (sfnt_table_info): Implement it. |
michael@0 | 4272 | * include/freetype/tttables.h: Update documentation. |
michael@0 | 4273 | * docs/CHANGES: Updated. |
michael@0 | 4274 | |
michael@0 | 4275 | 2011-03-07 Bram Tassyns <bramt@enfocus.be> |
michael@0 | 4276 | |
michael@0 | 4277 | [cff] Fix Savannah bug #27988. |
michael@0 | 4278 | |
michael@0 | 4279 | * src/cff/cffobjs.c (remove_style): New function. |
michael@0 | 4280 | (cff_face_init): Use it to strip off the style part of the family |
michael@0 | 4281 | name. |
michael@0 | 4282 | |
michael@0 | 4283 | 2011-03-07 Werner Lemberg <wl@gnu.org> |
michael@0 | 4284 | |
michael@0 | 4285 | * docs/CHANGES: Updated. |
michael@0 | 4286 | |
michael@0 | 4287 | 2011-03-07 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 4288 | |
michael@0 | 4289 | Quick fix for Savannah bug #32671. |
michael@0 | 4290 | |
michael@0 | 4291 | This isn't the optimal solution yet, but it restores the previous |
michael@0 | 4292 | rendering quality (more or less). |
michael@0 | 4293 | |
michael@0 | 4294 | * src/smooth/ftgrays.c (gray_render_conic): Do more splitting. |
michael@0 | 4295 | |
michael@0 | 4296 | 2011-03-06 Werner Lemberg <wl@gnu.org> |
michael@0 | 4297 | |
michael@0 | 4298 | Fix autohinting fallback. |
michael@0 | 4299 | |
michael@0 | 4300 | * src/base/ftobjs.c (FT_Load_Glyph): Assure that we only check TTFs, |
michael@0 | 4301 | ignoring CFF-based OTFs. |
michael@0 | 4302 | |
michael@0 | 4303 | 2011-02-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 4304 | |
michael@0 | 4305 | Add AF_CONFIG_OPTION_USE_WARPER to control the autofit warper. |
michael@0 | 4306 | |
michael@0 | 4307 | * devel/ftoption.h, include/freetype/config/ftoption.h |
michael@0 | 4308 | (AF_CONFIG_OPTION_USE_WARPER): New macro. |
michael@0 | 4309 | * src/autofit/aftypes.h (AF_USE_WARPER): Remove. |
michael@0 | 4310 | |
michael@0 | 4311 | * src/autofit/*: s/AF_USE_WARPER/AF_CONFIG_OPTION_USE_WARPER/. |
michael@0 | 4312 | |
michael@0 | 4313 | * src/autofit/afwarp.c [!AF_CONFIG_OPTION_USE_WARPER]: Replace dummy |
michael@0 | 4314 | variable assignment with a typedef. |
michael@0 | 4315 | |
michael@0 | 4316 | 2011-02-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 4317 | |
michael@0 | 4318 | [autofit] Slight simplifications. |
michael@0 | 4319 | |
michael@0 | 4320 | * src/autofit/aflatin.c (af_latin_hints_link_segments): Remove |
michael@0 | 4321 | test which always returns false. |
michael@0 | 4322 | (af_latin_hints_compute_blue_edges): Remove redundant assignment. |
michael@0 | 4323 | |
michael@0 | 4324 | 2011-02-24 Werner Lemberg <wl@gnu.org> |
michael@0 | 4325 | |
michael@0 | 4326 | * docs/PROBLEMS: Mention rendering differences on different |
michael@0 | 4327 | platforms. |
michael@0 | 4328 | Suggested and worded by Jason Owen <jason.a.owen@gmail.com>. |
michael@0 | 4329 | |
michael@0 | 4330 | 2011-02-24 Werner Lemberg <wl@gnu.org> |
michael@0 | 4331 | |
michael@0 | 4332 | [autofit] Comment out unused code. |
michael@0 | 4333 | |
michael@0 | 4334 | * src/autofit/aflatin.c, src/autofit/aflatin2.c |
michael@0 | 4335 | (af_latin_hints_compute_edges): Do it. |
michael@0 | 4336 | |
michael@0 | 4337 | 2011-02-24 Werner Lemberg <wl@gnu.org> |
michael@0 | 4338 | |
michael@0 | 4339 | * src/autofit/afhints.h (AF_GlyphHints): Remove unused field. |
michael@0 | 4340 | |
michael@0 | 4341 | 2011-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4342 | |
michael@0 | 4343 | [cache] Fix an off-by-one bug in `FTC_Manager_RemoveFaceID'. |
michael@0 | 4344 | Found by <ychen1392001@yahoo.com.cn>, see detail in |
michael@0 | 4345 | |
michael@0 | 4346 | http://lists.gnu.org/archive/html/freetype/2011-01/msg00023.html |
michael@0 | 4347 | |
michael@0 | 4348 | * src/cache/ftccache.c (FTC_Cache_RemoveFaceID): Check the node |
michael@0 | 4349 | buckets[cache->p + cache->mask] too. |
michael@0 | 4350 | |
michael@0 | 4351 | 2011-02-19 Kevin Kofler <kevin.kofler@chello.at> |
michael@0 | 4352 | |
michael@0 | 4353 | Fall back to autohinting if a TTF/OTF doesn't contain any bytecode. |
michael@0 | 4354 | This is Savannah patch #7471. |
michael@0 | 4355 | |
michael@0 | 4356 | * src/base/ftobjs.c (FT_Load_Glyph): Implement it. |
michael@0 | 4357 | |
michael@0 | 4358 | 2011-02-19 John Tytgat <John.Tytgat@esko.com> |
michael@0 | 4359 | |
michael@0 | 4360 | [cff] Fix subset prefix removal. |
michael@0 | 4361 | This is Savannah patch #7465. |
michael@0 | 4362 | |
michael@0 | 4363 | * src/cff/cffobjs.c (remove_subset_prefix): Update length after |
michael@0 | 4364 | subset prefix removal. |
michael@0 | 4365 | |
michael@0 | 4366 | 2011-02-13 Bradley Grainger <bgrainger@logos.com> |
michael@0 | 4367 | |
michael@0 | 4368 | Add inline assembly version of FT_MulFix for MSVC. |
michael@0 | 4369 | |
michael@0 | 4370 | * include/freetype/config/ftconfig.h: Ported the FT_MulFix_i386 |
michael@0 | 4371 | function from GNU inline assembly syntax (see #ifdef __GNUC__ block |
michael@0 | 4372 | above) to MASM syntax for Microsoft Visual C++. |
michael@0 | 4373 | |
michael@0 | 4374 | 2011-02-13 Bradley Grainger <bgrainger@logos.com> |
michael@0 | 4375 | |
michael@0 | 4376 | Add project and solution files in Visual Studio 2010 format. |
michael@0 | 4377 | |
michael@0 | 4378 | * builds/win32/.gitignore: Ignore user-specific cache files. |
michael@0 | 4379 | * builds/win32/vc2010/: Add VS2010 project & solution files, created |
michael@0 | 4380 | by upgrading builds/win32/vc2008/freetype.vcproj. |
michael@0 | 4381 | * objs/.gitignore: Ignore Visual Studio output files. |
michael@0 | 4382 | |
michael@0 | 4383 | 2011-02-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 4384 | |
michael@0 | 4385 | * src/autofit/afdummy.c: Include `aferrors.h'. |
michael@0 | 4386 | Problem reported by Chris Liddell <chris.liddell@artifex.com>. |
michael@0 | 4387 | |
michael@0 | 4388 | 2011-02-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 4389 | |
michael@0 | 4390 | [cff] Ignore unknown operators in charstrings. |
michael@0 | 4391 | Patch suggested by Miles.Lau <sunliang_liu@foxitsoftware.com>. |
michael@0 | 4392 | |
michael@0 | 4393 | * src/cff/cffgload.c (cff_decoder_parse_charstrings): Emit tracing |
michael@0 | 4394 | message for unknown operators and continue instead of exiting with a |
michael@0 | 4395 | syntax error. |
michael@0 | 4396 | |
michael@0 | 4397 | 2011-02-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 4398 | |
michael@0 | 4399 | [truetype] FT_LOAD_PEDANTIC now affects `prep' and `fpgm' also. |
michael@0 | 4400 | |
michael@0 | 4401 | * src/truetype/ttgload.c (tt_loader_init): Handle |
michael@0 | 4402 | `FT_LOAD_PEDANTIC'. |
michael@0 | 4403 | * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep, |
michael@0 | 4404 | tt_size_init_bytecode, tt_size_ready_bytecode): New argument to |
michael@0 | 4405 | handle pedantic mode. |
michael@0 | 4406 | * src/truetype/ttobjs.h: Updated. |
michael@0 | 4407 | |
michael@0 | 4408 | 2011-01-31 Werner Lemberg <wl@gnu.org> |
michael@0 | 4409 | |
michael@0 | 4410 | [truetype] Protect jump instructions against endless loops. |
michael@0 | 4411 | |
michael@0 | 4412 | * src/truetype/interp.c (DO_JROT, DO_JMPR, DO_JROF): Exit with error |
michael@0 | 4413 | if offset is zero. |
michael@0 | 4414 | |
michael@0 | 4415 | 2011-01-31 Werner Lemberg <wl@gnu.org> |
michael@0 | 4416 | |
michael@0 | 4417 | [truetype] Improve handling of invalid references. |
michael@0 | 4418 | |
michael@0 | 4419 | * src/truetype/interp.c: Set even more TT_Err_Invalid_Reference |
michael@0 | 4420 | error codes only if pedantic hinting is active. At the same time, |
michael@0 | 4421 | try to provide sane values which hopefully allow useful |
michael@0 | 4422 | continuation. Exception to this is CALL and LOOPCALL – due to |
michael@0 | 4423 | possible stack corruption it is necessary to bail out. |
michael@0 | 4424 | |
michael@0 | 4425 | 2011-01-31 Werner Lemberg <wl@gnu.org> |
michael@0 | 4426 | |
michael@0 | 4427 | [truetype] Improve handling of stack underflow. |
michael@0 | 4428 | |
michael@0 | 4429 | * src/truetype/ttinterp.c (TT_RunIns, Ins_FLIPPT, Ins_DELTAP, |
michael@0 | 4430 | Ins_DELTAC): Exit with error only if `pedantic_hinting' is set. |
michael@0 | 4431 | Otherwise, try to do something sane. |
michael@0 | 4432 | |
michael@0 | 4433 | 2011-01-30 Werner Lemberg <wl@gnu.org> |
michael@0 | 4434 | |
michael@0 | 4435 | * src/sfnt/ttmtx.c (tt_face_load_hmtx): Fix tracing message. |
michael@0 | 4436 | |
michael@0 | 4437 | 2011-01-30 LIU Sun-Liang <sunliang_liu@foxitsoftware.com> |
michael@0 | 4438 | |
michael@0 | 4439 | [truetype]: Fix behaviour of MIAP for invalid arguments. |
michael@0 | 4440 | |
michael@0 | 4441 | * src/truetype/ttinterp.c (Ins_MIAP): Set reference points even in |
michael@0 | 4442 | case of error. |
michael@0 | 4443 | |
michael@0 | 4444 | 2011-01-18 Werner Lemberg <wl@gnu.org> |
michael@0 | 4445 | |
michael@0 | 4446 | [truetype] Fix handling of MIRP instruction. |
michael@0 | 4447 | |
michael@0 | 4448 | Thanks to Greg Hitchcock who explained the issue. |
michael@0 | 4449 | |
michael@0 | 4450 | * src/truetype/ttinterp.c (Ins_MIRP): Replace a `>=' operator with |
michael@0 | 4451 | `>' since the description in the specification is incorrect. |
michael@0 | 4452 | This fixes, for example, glyph `two' in font `Helvetica Neue LT Com |
michael@0 | 4453 | 65 medium' at 15ppem. |
michael@0 | 4454 | |
michael@0 | 4455 | 2011-01-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4456 | |
michael@0 | 4457 | Fix ARM assembly code in include/freetype/config/ftconfig.h. |
michael@0 | 4458 | |
michael@0 | 4459 | * include/freetype/config/ftconfig.h (FT_MulFix_arm): |
michael@0 | 4460 | Copy the maintained code from builds/unix/ftconfig.in. |
michael@0 | 4461 | Old GNU binutils could not accept the reduced syntax |
michael@0 | 4462 | `orr %0, %2, lsl #16'. Un-omitted syntax like RVCT, |
michael@0 | 4463 | `orr %0, %0, %2, lsl #16' is better. Reported by |
michael@0 | 4464 | Johnson Y. Yan. The bug report by Qt developers is |
michael@0 | 4465 | considered too. |
michael@0 | 4466 | |
michael@0 | 4467 | http://bugreports.qt.nokia.com/browse/QTBUG-6521 |
michael@0 | 4468 | |
michael@0 | 4469 | 2011-01-15 Werner Lemberg <wl@gnu.org> |
michael@0 | 4470 | |
michael@0 | 4471 | [raster] Make bbox handling the same as with Microsoft's rasterizer. |
michael@0 | 4472 | |
michael@0 | 4473 | Right before B/W rasterizing, the bbox gets simply rounded to |
michael@0 | 4474 | integers. This fixes, for example, glyph `three' in font `Helvetica |
michael@0 | 4475 | Neue LT Com 65 Medium' at 11ppem. |
michael@0 | 4476 | |
michael@0 | 4477 | Thanks to Greg Hitchcock who explained this behaviour. |
michael@0 | 4478 | |
michael@0 | 4479 | * src/raster/ftrend1.c (ft_raster1_render): Implement it. |
michael@0 | 4480 | |
michael@0 | 4481 | 2011-01-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4482 | |
michael@0 | 4483 | Copy -mcpu=* & -march=* options from CFLAGS to LDFLAGS. |
michael@0 | 4484 | |
michael@0 | 4485 | * builds/unix/configure.raw: Consider recent gcc-standard |
michael@0 | 4486 | flags to specify architecture in CFLAGS & LDFLAGS |
michael@0 | 4487 | harmonization. Requested by Savannah bug #32114, to |
michael@0 | 4488 | support multilib feature of BuildRoot SDK correctly. |
michael@0 | 4489 | |
michael@0 | 4490 | 2011-01-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4491 | |
michael@0 | 4492 | Fix off-by-one bug in CFLAGS & LDFLAGS harmonizer. |
michael@0 | 4493 | |
michael@0 | 4494 | * builds/unix/configure.raw: Some important options that |
michael@0 | 4495 | included in CFLAGS but not in LDFLAGS are copied to |
michael@0 | 4496 | LDFLAGS, but the last option in CFLAGS was not checked. |
michael@0 | 4497 | |
michael@0 | 4498 | 2011-01-13 Werner Lemberg <wl@gnu.org> |
michael@0 | 4499 | |
michael@0 | 4500 | [raster] Add undocumented drop-out rule to the other bbox side also. |
michael@0 | 4501 | |
michael@0 | 4502 | * src/raster/ftraster.c (Vertical_Sweep_Drop, |
michael@0 | 4503 | Horizontal_Sweep_Drop): Implement it. |
michael@0 | 4504 | |
michael@0 | 4505 | 2011-01-13 Werner Lemberg <wl@gnu.org> |
michael@0 | 4506 | |
michael@0 | 4507 | [raster] Reduce jitter value. |
michael@0 | 4508 | |
michael@0 | 4509 | This catches a rendering problem with glyph `x' from Tahoma at |
michael@0 | 4510 | 10ppem. It seems that the increase of the precision in the change |
michael@0 | 4511 | from 2009-06-11 makes a larger jitter value unnecessary. |
michael@0 | 4512 | |
michael@0 | 4513 | * src/raster/ftraster.c (Set_High_Precision): Implement it. |
michael@0 | 4514 | |
michael@0 | 4515 | 2011-01-13 Werner Lemberg <wl@gnu.org> |
michael@0 | 4516 | |
michael@0 | 4517 | [raster] Handle drop-outs at glyph borders according to Microsoft. |
michael@0 | 4518 | |
michael@0 | 4519 | If a drop-out rule would switch on a pixel outside of the glyph's |
michael@0 | 4520 | bounding box, use the right (or top) pixel instead. This is an |
michael@0 | 4521 | undocumented feature, but some fonts like `Helvetica Neue LT Com 65 |
michael@0 | 4522 | Medium' heavily rely on it. |
michael@0 | 4523 | |
michael@0 | 4524 | Thanks to Greg Hitchcock who explained this behaviour. |
michael@0 | 4525 | |
michael@0 | 4526 | * src/raster/ftraster.c (Vertical_Sweep_Drop, |
michael@0 | 4527 | Horizontal_Sweep_Drop): Implement it. |
michael@0 | 4528 | |
michael@0 | 4529 | 2011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4530 | |
michael@0 | 4531 | [cache] Fix Savannah bug #31923, patch drafted by Harsha. |
michael@0 | 4532 | |
michael@0 | 4533 | When a node comparator changes the cached nodes during the |
michael@0 | 4534 | search of a node matching with queried properties, the |
michael@0 | 4535 | pointers obtained before the function should be updated to |
michael@0 | 4536 | prevent the dereference to freed or reallocated nodes. |
michael@0 | 4537 | To minimize the rescan of the linked list, the update is |
michael@0 | 4538 | executed when the comparator notifies the change of cached |
michael@0 | 4539 | nodes. This change depends previous change: |
michael@0 | 4540 | 38b272ffbbdaae276d636aec4ef84af407d16181 |
michael@0 | 4541 | |
michael@0 | 4542 | * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Rescan the |
michael@0 | 4543 | top node if the cached nodes are changed. |
michael@0 | 4544 | * src/cache/ftccache.c (FTC_Cache_Lookup): Ditto. |
michael@0 | 4545 | |
michael@0 | 4546 | 2011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4547 | |
michael@0 | 4548 | [cache] Notice if a cache query induced the node list change. |
michael@0 | 4549 | |
michael@0 | 4550 | Some node comparators (comparing the cache node contents and the |
michael@0 | 4551 | properties specified by the query) can flush the cache node to |
michael@0 | 4552 | prevent the cache inflation. The change may invalidate the pointers |
michael@0 | 4553 | to the node obtained before the node comparison, so it should be |
michael@0 | 4554 | noticed to the caller. The problem caused by the cache node |
michael@0 | 4555 | changing is reported by Harsha, see Savannah bug #31923. |
michael@0 | 4556 | |
michael@0 | 4557 | * src/cache/ftccache.h (FTC_Node_CompareFunc): Add new argument |
michael@0 | 4558 | `FT_Bool* list_changed' to indicate the change of the cached nodes |
michael@0 | 4559 | to the caller. |
michael@0 | 4560 | (FTC_CACHE_LOOKUP_CMP): Watch the change of the cached nodes by |
michael@0 | 4561 | `_list_changed'. |
michael@0 | 4562 | (FTC_CACHE_TRYLOOP_END): Take new macro argument `_list_changed' |
michael@0 | 4563 | and update it when `FTC_Manager_FlushN' flushes any nodes. |
michael@0 | 4564 | |
michael@0 | 4565 | * src/cache/ftccback.h (ftc_snode_compare): Updated to fit with new |
michael@0 | 4566 | FTC_Node_CompareFunc type. |
michael@0 | 4567 | (ftc_gnode_compare): Ditto. |
michael@0 | 4568 | |
michael@0 | 4569 | * src/cache/ftcbasic.c: Include FT_INTERNAL_OBJECTS_H to use |
michael@0 | 4570 | TRUE/FALSE macros. |
michael@0 | 4571 | (ftc_basic_gnode_compare_faceid): New argument `FT_Bool* |
michael@0 | 4572 | list_changed' to indicate the change of the cache nodes (anyway, it |
michael@0 | 4573 | is always FALSE). |
michael@0 | 4574 | |
michael@0 | 4575 | * src/cache/ftccmap.c: Include FT_INTERNAL_OBJECTS_H to use |
michael@0 | 4576 | TRUE/FALSE macros. |
michael@0 | 4577 | (ftc_cmap_node_compare): New argument `FT_Bool* list_changed' to |
michael@0 | 4578 | indicate the change of the cache nodes (anyway, it is always FALSE). |
michael@0 | 4579 | (ftc_cmap_node_remove_faceid): Ditto. |
michael@0 | 4580 | |
michael@0 | 4581 | * src/cache/ftccache.c (FTC_Cache_NewNode): Pass a NULL pointer to |
michael@0 | 4582 | `FTC_CACHE_TRYLOOP_END', because the result is not needed. |
michael@0 | 4583 | (FTC_Cache_Lookup): Watch the change of the cache nodes by |
michael@0 | 4584 | `list_changed'. |
michael@0 | 4585 | (FTC_Cache_RemoveFaceID): Ditto. |
michael@0 | 4586 | |
michael@0 | 4587 | * src/cache/ftcglyph.c: Include FT_INTERNAL_OBJECTS_H to use |
michael@0 | 4588 | TRUE/FALSE macros. |
michael@0 | 4589 | (ftc_gnode_compare): New argument `FT_Bool* list_changed' to |
michael@0 | 4590 | indicate the change of the cache nodes (anyway, it is always FALSE). |
michael@0 | 4591 | (FTC_GNode_Compare): New argument `FT_Bool* list_changed' to be |
michael@0 | 4592 | passed to `ftc_gnode_compare'. |
michael@0 | 4593 | * src/cache/ftcglyph.h (FTC_GNode_Compare): Ditto. |
michael@0 | 4594 | |
michael@0 | 4595 | * src/cache/ftcsbits.c (ftc_snode_compare): New argument `FT_Bool* |
michael@0 | 4596 | list_changed' to indicate the change of the cache nodes, anyway. It |
michael@0 | 4597 | is updated by `FTC_CACHE_TRYLOOP'. |
michael@0 | 4598 | (FTC_SNode_Compare): New argument `FT_Bool* list_changed' to be |
michael@0 | 4599 | passed to `ftc_snode_compare'. |
michael@0 | 4600 | * src/cache/ftcsbits.h (FTC_SNode_Compare): Ditto. |
michael@0 | 4601 | |
michael@0 | 4602 | 2011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4603 | |
michael@0 | 4604 | [cache] Fit `FTC_GNode_Compare' to `FTC_Node_CompareFunc'. |
michael@0 | 4605 | |
michael@0 | 4606 | * src/cache/ftcglyph.h (FTC_GNode_Compare): Add the 3rd |
michael@0 | 4607 | argument `FTC_Cache cache' to fit FTC_Node_CompareFunc |
michael@0 | 4608 | prototype. |
michael@0 | 4609 | * src/cache/ftcglyph.c (FTC_GNode_Compare): Ditto. Anyway, |
michael@0 | 4610 | `cache' is not used by its child `ftc_gnode_compare'. |
michael@0 | 4611 | |
michael@0 | 4612 | 2011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4613 | |
michael@0 | 4614 | [cache] Deduplicate the code to get the top node by a hash. |
michael@0 | 4615 | |
michael@0 | 4616 | There are several duplicated code fragments getting the top node |
michael@0 | 4617 | from a cache by a given hash, like: |
michael@0 | 4618 | |
michael@0 | 4619 | idx = hash & cache->mask; |
michael@0 | 4620 | if ( idx < cache->p ) |
michael@0 | 4621 | idx = hash & ( cache->mask * 2 + 1 ); |
michael@0 | 4622 | pnode = cache->buckets + idx; |
michael@0 | 4623 | |
michael@0 | 4624 | To remove duplication, a cpp-macro to do same work |
michael@0 | 4625 | `FTC_NODE__TOP_FOR_HASH' is introduced. For non-inlined |
michael@0 | 4626 | configuration, non-`ftc_get_top_node_for_hash' is also introduced. |
michael@0 | 4627 | |
michael@0 | 4628 | * src/cache/ftccache.h (FTC_NODE__TOP_FOR_HASH): Declare |
michael@0 | 4629 | and implement inlined version. |
michael@0 | 4630 | (FTC_CACHE_LOOKUP_CMP): Use `FTC_NODE__TOP_FOR_HASH'. |
michael@0 | 4631 | * src/cache/ftccache.c (ftc_get_top_node_for_hash): Non-inlined |
michael@0 | 4632 | version. |
michael@0 | 4633 | (ftc_node_hash_unlink): Use `FTC_NODE__TOP_FOR_HASH'. |
michael@0 | 4634 | (ftc_node_hash_link): Ditto. |
michael@0 | 4635 | (FTC_Cache_Lookup): Ditto. |
michael@0 | 4636 | |
michael@0 | 4637 | 2011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4638 | |
michael@0 | 4639 | [cache] inline-specific functions are conditionalized. |
michael@0 | 4640 | |
michael@0 | 4641 | * src/cache/ftcglyph.c (FTC_GNode_Compare): Conditionalized for |
michael@0 | 4642 | inlined configuration. This function is a thin wrapper of |
michael@0 | 4643 | `ftc_gnode_compare' for inlined `FTC_CACHE_LOOKUP_CMP' (see |
michael@0 | 4644 | `nodecmp' argument). Under non-inlined configuration, |
michael@0 | 4645 | `ftc_gnode_compare' is invoked by `FTC_Cache_Lookup', via |
michael@0 | 4646 | `FTC_Cache->clazz.node_compare'. |
michael@0 | 4647 | |
michael@0 | 4648 | * src/cache/ftcglyph.h (FTC_GNode_Compare): Ditto. |
michael@0 | 4649 | * src/cache/ftcsbits.c (FTC_SNode_Compare): Ditto, for |
michael@0 | 4650 | `ftc_snode_compare'. |
michael@0 | 4651 | * src/cache/ftcsbits.h (FTC_SNode_Compare): Ditto. |
michael@0 | 4652 | |
michael@0 | 4653 | 2011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4654 | |
michael@0 | 4655 | [cache] Correct a type mismatch under non-inlined config. |
michael@0 | 4656 | |
michael@0 | 4657 | * src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): `FTC_GCache_Lookup' |
michael@0 | 4658 | takes the node via a pointer `FTC_Node*', differently from cpp-macro |
michael@0 | 4659 | `FTC_CACHE_LOOKUP_CMP'. |
michael@0 | 4660 | |
michael@0 | 4661 | 2011-01-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4662 | |
michael@0 | 4663 | Update Jamfile to include Bzip2 support. |
michael@0 | 4664 | |
michael@0 | 4665 | * Jamfile: Include src/bzip2 to project. |
michael@0 | 4666 | Comments for lzw, gzip, bzip2 are changed to clarify that |
michael@0 | 4667 | they are for compressed PCF fonts, not others. |
michael@0 | 4668 | (e.g. compressed BDF fonts are not supported yet) |
michael@0 | 4669 | |
michael@0 | 4670 | 2011-01-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4671 | |
michael@0 | 4672 | Update Symbian project files to include Bzip2 support. |
michael@0 | 4673 | |
michael@0 | 4674 | Currently, it provides `FT_Stream_OpenBzip2' that returns |
michael@0 | 4675 | unimplemented error always, to prevent unresolved symbol |
michael@0 | 4676 | error for the applications designed for Unix systems. |
michael@0 | 4677 | |
michael@0 | 4678 | * builds/symbian/bld.inf: Include ftbzip2.h. |
michael@0 | 4679 | * builds/symbian/freetype.mmp: Include ftbzip2.c. |
michael@0 | 4680 | |
michael@0 | 4681 | 2011-01-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4682 | |
michael@0 | 4683 | Update classic MacOS makefiles to include Bzip2 support. |
michael@0 | 4684 | |
michael@0 | 4685 | Currently, it provides `FT_Stream_OpenBzip2' that returns |
michael@0 | 4686 | unimplemented error always, to prevent unresolved symbol |
michael@0 | 4687 | error for the applications designed for Unix systems. |
michael@0 | 4688 | |
michael@0 | 4689 | * builds/mac/FreeType.m68k_cfm.make.txt: Include ftbzip2.c.o. |
michael@0 | 4690 | * builds/mac/FreeType.m68k_far.make.txt: Ditto. |
michael@0 | 4691 | * builds/mac/FreeType.ppc_carbon.make.txt: Include ftbzip2.c.x. |
michael@0 | 4692 | * builds/mac/FreeType.ppc_classic.make.txt: Ditto. |
michael@0 | 4693 | |
michael@0 | 4694 | 2011-01-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4695 | |
michael@0 | 4696 | Update Amiga makefiles to include Bzip2 support. |
michael@0 | 4697 | |
michael@0 | 4698 | Currently, it provides `FT_Stream_OpenBzip2' that returns |
michael@0 | 4699 | unimplemented error always, to prevent unresolved symbol |
michael@0 | 4700 | error for the applications designed for Unix systems. |
michael@0 | 4701 | |
michael@0 | 4702 | * builds/amiga/makefile: Include bzip2.ppc.o built from ftbzip2.c. |
michael@0 | 4703 | * builds/amiga/makefile.os4: Include bzip2.o built from ftbzip2.c. |
michael@0 | 4704 | * builds/amiga/smakefile: Ditto. |
michael@0 | 4705 | |
michael@0 | 4706 | 2011-01-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4707 | |
michael@0 | 4708 | Update pkg-config tools to reflect Bzip2 support. |
michael@0 | 4709 | |
michael@0 | 4710 | * builds/unix/freetype-config.in: Include `-lbz2' to |
michael@0 | 4711 | --libs output, if built with Bzip2 support. |
michael@0 | 4712 | * builds/unix/freetype2.in: Ditto. |
michael@0 | 4713 | |
michael@0 | 4714 | 2011-01-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4715 | |
michael@0 | 4716 | * builds/unix/configure.raw: Remove `SYSTEM_BZ2LIB' macro. |
michael@0 | 4717 | |
michael@0 | 4718 | SYSTEM_ZLIB is used to switch the builtin zlib source |
michael@0 | 4719 | or system zlib source out of FreeType2. But ftbzip2 |
michael@0 | 4720 | module has no builtin bzip2 library and always requires |
michael@0 | 4721 | system bzip2 library. Thus SYSTEM_BZ2LIB is always yes, |
michael@0 | 4722 | it is not used. |
michael@0 | 4723 | |
michael@0 | 4724 | 2011-01-03 Werner Lemberg <wl@gnu.org> |
michael@0 | 4725 | |
michael@0 | 4726 | */rules.mk: Handle `*pic.c' files. |
michael@0 | 4727 | |
michael@0 | 4728 | 2010-12-31 Werner Lemberg <wl@gnu.org> |
michael@0 | 4729 | |
michael@0 | 4730 | * src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 64. |
michael@0 | 4731 | Problem reported by Tom Bishop <wenlin@wenlin.com>. |
michael@0 | 4732 | |
michael@0 | 4733 | 2010-12-31 Werner Lemberg <wl@gnu.org> |
michael@0 | 4734 | |
michael@0 | 4735 | Improve bzip2 support. |
michael@0 | 4736 | |
michael@0 | 4737 | * include/freetype/ftmoderr.h: Add bzip2. |
michael@0 | 4738 | |
michael@0 | 4739 | * docs/INSTALL.ANY, docs/CHANGES: Updated. |
michael@0 | 4740 | |
michael@0 | 4741 | * src/pcf/README: Updated. |
michael@0 | 4742 | * include/freetype/internal/pcftypes.h: Obsolete, removed. |
michael@0 | 4743 | |
michael@0 | 4744 | 2010-12-31 Joel Klinghed <the_jk@yahoo.com> |
michael@0 | 4745 | |
michael@0 | 4746 | Add bzip2 compression support to handle *.pcf.bz2 files. |
michael@0 | 4747 | |
michael@0 | 4748 | * builds/unix/configure.raw: Test for libbz2 library. |
michael@0 | 4749 | |
michael@0 | 4750 | * devel/ftoption.h, include/freetype/config/ftoption.h |
michael@0 | 4751 | (FT_CONFIG_OPTION_USE_BZIP2): Define. |
michael@0 | 4752 | * include/freetype/config/ftheader.h (FT_BZIP2_H): Define. |
michael@0 | 4753 | |
michael@0 | 4754 | * include/freetype/ftbzip2.h: New file. |
michael@0 | 4755 | |
michael@0 | 4756 | * src/bzip2/*: New files. |
michael@0 | 4757 | |
michael@0 | 4758 | * src/pcf/pcf.h: s/gzip_/comp_/. |
michael@0 | 4759 | * src/pcf/pcfdrvr.c: Include FT_BZIP2_H. |
michael@0 | 4760 | s/gzip_/comp_/. |
michael@0 | 4761 | (PCF_Face_Init): Handle bzip2 compressed files. |
michael@0 | 4762 | |
michael@0 | 4763 | * docs/formats.txt, modules.cfg: Updated. |
michael@0 | 4764 | |
michael@0 | 4765 | 2010-12-25 Harsha <mm.harsha@gmail.com> |
michael@0 | 4766 | |
michael@0 | 4767 | Apply Savannah patch #7422. |
michael@0 | 4768 | |
michael@0 | 4769 | If we encounter a space in a string then the sbit buffer is NULL, |
michael@0 | 4770 | height and width are 0s. So the check in ftc_snode_compare will |
michael@0 | 4771 | always pass for spaces (comparision with 255). Here the comments |
michael@0 | 4772 | above the condition are proper but the implementation is not. When |
michael@0 | 4773 | we create an snode I think it is the proper way to initialize the |
michael@0 | 4774 | width to 255 and then put a check for being equal to 255 in snode |
michael@0 | 4775 | compare function. |
michael@0 | 4776 | |
michael@0 | 4777 | * src/cache/ftcsbits.c (FTC_SNode_New): Initialize sbit widths with |
michael@0 | 4778 | value 255. |
michael@0 | 4779 | (ftc_snode_compare): Fix condition. |
michael@0 | 4780 | |
michael@0 | 4781 | 2010-12-13 Werner Lemberg <wl@gnu.org> |
michael@0 | 4782 | |
michael@0 | 4783 | Fix parameter handling of `FT_Set_Renderer'. |
michael@0 | 4784 | Reported by Kirill Tishin <siege@bk.ru>. |
michael@0 | 4785 | |
michael@0 | 4786 | * src/base/ftobjs.c (FT_Set_Renderer): Increment `parameters'. |
michael@0 | 4787 | |
michael@0 | 4788 | 2010-12-09 Werner Lemberg <wl@gnu.org> |
michael@0 | 4789 | |
michael@0 | 4790 | [cff] Allow `hlineto' and `vlineto' without arguments. |
michael@0 | 4791 | |
michael@0 | 4792 | We simply ignore such instructions. This is invalid, but it doesn't |
michael@0 | 4793 | harm; and indeed, there exist such subsetted fonts in PDFs. |
michael@0 | 4794 | |
michael@0 | 4795 | Reported by Albert Astals Cid <aacid@kde.org>. |
michael@0 | 4796 | |
michael@0 | 4797 | * src/cff/cffgload.c (cff_decoder_parse_charstrings) |
michael@0 | 4798 | [cff_op_hlineto]: Ignore instruction if there aren't any arguments |
michael@0 | 4799 | on the stack. |
michael@0 | 4800 | |
michael@0 | 4801 | 2010-11-28 Werner Lemberg <wl@gnu.org> |
michael@0 | 4802 | |
michael@0 | 4803 | * Version 2.4.4 released. |
michael@0 | 4804 | ========================= |
michael@0 | 4805 | |
michael@0 | 4806 | |
michael@0 | 4807 | Tag sources with `VER-2-4-4'. |
michael@0 | 4808 | |
michael@0 | 4809 | * docs/CHANGES: Updated. |
michael@0 | 4810 | |
michael@0 | 4811 | * docs/VERSION.DLL: Update documentation and bump version number to |
michael@0 | 4812 | 2.4.4 |
michael@0 | 4813 | |
michael@0 | 4814 | * README, Jamfile (RefDoc), |
michael@0 | 4815 | builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, |
michael@0 | 4816 | builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, |
michael@0 | 4817 | builds/win32/visualc/freetype.dsp, |
michael@0 | 4818 | builds/win32/visualc/freetype.vcproj, |
michael@0 | 4819 | builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, |
michael@0 | 4820 | builds/win32/visualce/freetype.vcproj, |
michael@0 | 4821 | builds/win32/visualce/index.html, |
michael@0 | 4822 | builds/wince/vc2005-ce/freetype.vcproj, |
michael@0 | 4823 | builds/wince/vc2005-ce/index.html, |
michael@0 | 4824 | builds/wince/vc2008-ce/freetype.vcproj, |
michael@0 | 4825 | builds/wince/vc2008-ce/index.html: s/2.4.3/2.4.4/, s/243/244/. |
michael@0 | 4826 | |
michael@0 | 4827 | * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4. |
michael@0 | 4828 | |
michael@0 | 4829 | * builds/unix/configure.raw (version_info): Set to 12:2:6. |
michael@0 | 4830 | |
michael@0 | 4831 | 2010-11-28 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 4832 | |
michael@0 | 4833 | [ftsmooth]: Minor code simplification. |
michael@0 | 4834 | |
michael@0 | 4835 | * src/smooth/ftgrays (gray_render_cubic): Do only one comparison |
michael@0 | 4836 | instead of two. |
michael@0 | 4837 | |
michael@0 | 4838 | 2010-11-26 Johnson Y. Yan <yinsen_yan@foxitsoftware.com> |
michael@0 | 4839 | |
michael@0 | 4840 | [truetype] Better multi-threading support. |
michael@0 | 4841 | |
michael@0 | 4842 | * src/truetype/ttinterp.c (TT_Load_Context): Reset glyph zone |
michael@0 | 4843 | references. |
michael@0 | 4844 | |
michael@0 | 4845 | 2010-11-23 John Tytgat <John.Tytgat@esko.com> |
michael@0 | 4846 | |
michael@0 | 4847 | * src/psaux/t1decode.c (t1_decoder_parse_charstring): Expand |
michael@0 | 4848 | start_point, check_points, add_point, add_point1, close_contour |
michael@0 | 4849 | macros. |
michael@0 | 4850 | Remove add_contour macro. |
michael@0 | 4851 | Return error code from t1_builder_start_point and |
michael@0 | 4852 | t1_builder_check_points when there was one (instead of returning 0). |
michael@0 | 4853 | |
michael@0 | 4854 | 2010-11-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4855 | |
michael@0 | 4856 | [truetype] Identify the tricky fonts by cvt/fpgm/prep checksums. |
michael@0 | 4857 | Some Latin TrueType fonts are still expected to be unhinted. |
michael@0 | 4858 | Fix Savannah bug #31645. |
michael@0 | 4859 | |
michael@0 | 4860 | * src/truetype/ttobjs.c (tt_check_trickyness): Divided to... |
michael@0 | 4861 | (tt_check_trickyness_family): this checking family name, and |
michael@0 | 4862 | (tt_check_trickyness_sfnt_ids): this checking cvt/fpgm/prep. |
michael@0 | 4863 | (tt_get_sfnt_checksum): Function to retrieve the sfnt checksum |
michael@0 | 4864 | for specified subtable even if cleared by lazy PDF generators. |
michael@0 | 4865 | (tt_synth_sfnt_checksum): Function to calculate the checksum. |
michael@0 | 4866 | |
michael@0 | 4867 | 2010-11-18 Werner Lemberg <wl@gnu.org> |
michael@0 | 4868 | |
michael@0 | 4869 | [truetype] Fix `loca' handling for inconsistent number of glyphs. |
michael@0 | 4870 | Reported by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>. |
michael@0 | 4871 | |
michael@0 | 4872 | * src/truetype/ttpload.c (tt_face_load_loca): While sanitizing, |
michael@0 | 4873 | handle case where `loca' is the last table in the font. |
michael@0 | 4874 | |
michael@0 | 4875 | 2010-11-18 Werner Lemberg <wl@gnu.org> |
michael@0 | 4876 | |
michael@0 | 4877 | [sfnt] Ignore all errors while loading `OS/2' table. |
michael@0 | 4878 | Suggested by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>. |
michael@0 | 4879 | |
michael@0 | 4880 | * src/sfnt/sfobjs.c (sfnt_load_face): Do it. |
michael@0 | 4881 | |
michael@0 | 4882 | 2010-11-18 Johnson Y. Yan <yinsen_yan@foxitsoftware.com> |
michael@0 | 4883 | |
michael@0 | 4884 | [type1] Fix matrix normalization. |
michael@0 | 4885 | |
michael@0 | 4886 | * src/type1/t1load.c (parse_font_matrix): Handle sign of scaling |
michael@0 | 4887 | factor. |
michael@0 | 4888 | |
michael@0 | 4889 | 2010-11-18 Werner Lemberg <wl@gnu.org> |
michael@0 | 4890 | |
michael@0 | 4891 | [type1] Improve guard against malformed data. |
michael@0 | 4892 | Based on a patch submitted by Johnson Y. Yan |
michael@0 | 4893 | <yinsen_yan@foxitsoftware.com> |
michael@0 | 4894 | |
michael@0 | 4895 | * src/type1/t1load.c (read_binary_data): Check `size'. |
michael@0 | 4896 | |
michael@0 | 4897 | 2010-11-17 Werner Lemberg <wl@gnu.org> |
michael@0 | 4898 | |
michael@0 | 4899 | [sfnt] While tracing, output table checksums also. |
michael@0 | 4900 | |
michael@0 | 4901 | * src/sfnt/ttload.c (tt_face_load_font_dir): Do it. |
michael@0 | 4902 | |
michael@0 | 4903 | 2010-11-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4904 | |
michael@0 | 4905 | [UVS] Fix `find_variant_selector_charmap', Savannah bug #31545. |
michael@0 | 4906 | |
michael@0 | 4907 | Since 2010-07-04, `find_variant_selector_charmap' returns |
michael@0 | 4908 | the first cmap subtable always under rogue-compatible |
michael@0 | 4909 | configuration, it causes NULL pointer dereference and |
michael@0 | 4910 | make UVS-related functions crashed. |
michael@0 | 4911 | |
michael@0 | 4912 | * src/base/ftobjs.c (Fix find_variant_selector_charmap): |
michael@0 | 4913 | Returns UVS cmap correctly. |
michael@0 | 4914 | |
michael@0 | 4915 | 2010-11-01 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 4916 | |
michael@0 | 4917 | [ftsmooth] Improve rendering. |
michael@0 | 4918 | |
michael@0 | 4919 | * src/smooth/ftsmooth.c (gray_render_conic): Since version 2.4.3, |
michael@0 | 4920 | cubic deviations have been estimated _after_ UPSCALE, whereas |
michael@0 | 4921 | conic ones have been evaluated _before_ UPSCALE, which produces |
michael@0 | 4922 | inferior rendering results. Fix this. |
michael@0 | 4923 | Partially undo change from 2010-10-15 by using ONE_PIXEL/4; this has |
michael@0 | 4924 | been tested with demo images sent to the mailing list. See |
michael@0 | 4925 | |
michael@0 | 4926 | http://lists.gnu.org/archive/html/freetype-devel/2010-10/msg00055.html |
michael@0 | 4927 | |
michael@0 | 4928 | and later mails in this thread. |
michael@0 | 4929 | |
michael@0 | 4930 | 2010-10-28 Werner Lemberg <wl@gnu.org> |
michael@0 | 4931 | |
michael@0 | 4932 | [ftraster] Minor fixes. |
michael@0 | 4933 | |
michael@0 | 4934 | Reported by Tom Bishop <wenlin@wenlin.com>. |
michael@0 | 4935 | |
michael@0 | 4936 | * src/raster/ftraster.c (ULong): Remove unused typedef. |
michael@0 | 4937 | (TWorker): Remove unused variable `precision_mask'. |
michael@0 | 4938 | |
michael@0 | 4939 | 2010-10-28 Werner Lemberg <wl@gnu.org> |
michael@0 | 4940 | |
michael@0 | 4941 | [ftraster] Fix rendering. |
michael@0 | 4942 | |
michael@0 | 4943 | Problem reported by Tom Bishop <wenlin@wenlin.com>; see |
michael@0 | 4944 | thread starting with |
michael@0 | 4945 | |
michael@0 | 4946 | http://lists.gnu.org/archive/html/freetype/2010-10/msg00049.html |
michael@0 | 4947 | |
michael@0 | 4948 | * src/raster/ftraster.c (Line_Up): Replace FMulDiv with SMulDiv |
michael@0 | 4949 | since the involved multiplication exceeds 32 bits. |
michael@0 | 4950 | |
michael@0 | 4951 | 2010-10-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4952 | |
michael@0 | 4953 | Revert a change of `_idx' type in `FTC_CACHE_LOOKUP_CMP'. |
michael@0 | 4954 | |
michael@0 | 4955 | * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Revert |
michael@0 | 4956 | the type of `_idx' from FT_PtrDist (by previous change) |
michael@0 | 4957 | to original FT_UFast, to match with FT_CacheRec. |
michael@0 | 4958 | |
michael@0 | 4959 | 2010-10-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 4960 | |
michael@0 | 4961 | [cache] Change the hash types to FT_PtrDist. |
michael@0 | 4962 | |
michael@0 | 4963 | On LLP64 platforms (e.g. Win64), FT_ULong (32-bit) |
michael@0 | 4964 | variables are inappropriate to calculate hash values |
michael@0 | 4965 | from the memory address (64-bit). The hash variables |
michael@0 | 4966 | are extended from FT_ULong to FT_PtrDist and new |
michael@0 | 4967 | hashing macro functions are introduced. The hash |
michael@0 | 4968 | values on 16-bit memory platforms are changed, but |
michael@0 | 4969 | ILP32 and LP64 are not changed. The hash value in |
michael@0 | 4970 | the cache subsystem is not reverted to the memory |
michael@0 | 4971 | address, so using signed type FT_PtrDist is safe. |
michael@0 | 4972 | |
michael@0 | 4973 | * src/cache/ftccache.h (_FTC_FACE_ID_HASH): New hash |
michael@0 | 4974 | function to replace `FTC_FACE_ID_HASH' for portability. |
michael@0 | 4975 | * src/cache/ftcmanag.h (FTC_SCALER_HASH): Replace |
michael@0 | 4976 | `FTC_FACE_ID_HASH' by `_FTC_FACE_ID_HASH'. |
michael@0 | 4977 | * src/cache/ftccmap.c (FTC_CMAP_HASH): Ditto. |
michael@0 | 4978 | |
michael@0 | 4979 | * src/cache/ftccache.h (FTC_NodeRec): The type of the |
michael@0 | 4980 | member `hash' is changed from FT_UInt32 to FT_PtrDist. |
michael@0 | 4981 | |
michael@0 | 4982 | * src/cache/ftccache.h (FTC_Cache_Lookup): The type of the |
michael@0 | 4983 | argument `hash' is changed from FT_UInt32 to FT_PtrDist. |
michael@0 | 4984 | (FTC_Cache_NewNode): Ditto. |
michael@0 | 4985 | * src/cache/ftccache.c (ftc_cache_add): Ditto. |
michael@0 | 4986 | (FTC_Cache_Lookup): Ditto. (FTC_Cache_NewNode): Ditto. |
michael@0 | 4987 | * src/cache/ftcglyph.h (FTC_GCache_Lookup): Ditto. |
michael@0 | 4988 | * src/cache/ftcglyph.c (FTC_GCache_Lookup): Ditto. |
michael@0 | 4989 | |
michael@0 | 4990 | * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): The type |
michael@0 | 4991 | of the internal variable `hash' is changed to FT_PtrDist |
michael@0 | 4992 | from FT_UInt32. (FTC_ImageCache_LookupScaler): Ditto. |
michael@0 | 4993 | (FTC_SBitCache_Lookup): Ditto. |
michael@0 | 4994 | (FTC_SBitCache_LookupScaler): Ditto. |
michael@0 | 4995 | * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Ditto. |
michael@0 | 4996 | * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Ditto. |
michael@0 | 4997 | Also the type of the internal variable `_idx' is changed to |
michael@0 | 4998 | FT_PtrDist from FT_UFast for better pointer calculation. |
michael@0 | 4999 | |
michael@0 | 5000 | 2010-10-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5001 | |
michael@0 | 5002 | [cache] Hide internal macros incompatible with LLP64. |
michael@0 | 5003 | |
michael@0 | 5004 | `FT_POINTER_TO_ULONG', `FTC_FACE_ID_HASH', and |
michael@0 | 5005 | `FTC_IMAGE_TYPE_HASH' are enclosed by |
michael@0 | 5006 | FT_CONFIG_OPTION_OLD_INTERNALS and hidden from |
michael@0 | 5007 | normal clients. |
michael@0 | 5008 | |
michael@0 | 5009 | For the history of these macros, see the investigation: |
michael@0 | 5010 | http://lists.gnu.org/archive/html/freetype/2010-10/msg00022.html |
michael@0 | 5011 | |
michael@0 | 5012 | 2010-10-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5013 | |
michael@0 | 5014 | Change the type of `FT_MEM_VAL' from FT_ULong to FT_PtrDist. |
michael@0 | 5015 | |
michael@0 | 5016 | On LLP64 platforms (e.g. Win64), unsigned long (32-bit) |
michael@0 | 5017 | cannot cover the memory address (64-bit). `FT_MEM_VAL' is |
michael@0 | 5018 | used for hashing only and not dereferred, so using signed |
michael@0 | 5019 | type FT_PtrDist is safe. |
michael@0 | 5020 | |
michael@0 | 5021 | * src/base/ftdbgmem.c (FT_MEM_VAL): Change the type of the |
michael@0 | 5022 | return value from FT_ULong to FT_PtrDist. |
michael@0 | 5023 | (ft_mem_table_resize): The type of hash is changed to |
michael@0 | 5024 | FT_PtrDist. (ft_mem_table_get_nodep): Ditto. |
michael@0 | 5025 | |
michael@0 | 5026 | 2010-10-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5027 | |
michael@0 | 5028 | Replace "%lx" for memory address by "%p", LLP64 platforms. |
michael@0 | 5029 | |
michael@0 | 5030 | On LLP64 platforms (e.g. Win64), long (32-bit) cannot cover |
michael@0 | 5031 | the memory address (64-bit). Also the casts from the pointer |
michael@0 | 5032 | type to long int should be removed to preserve the address |
michael@0 | 5033 | correctly. |
michael@0 | 5034 | |
michael@0 | 5035 | * src/raster/ftraster.c (New_Profile): Replace "%lx" by "%p". |
michael@0 | 5036 | (End_Profile) Ditto. |
michael@0 | 5037 | * src/truetype/ttinterp.c (Init_Context): Ditto. |
michael@0 | 5038 | |
michael@0 | 5039 | 2010-10-15 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 5040 | |
michael@0 | 5041 | Fix thinko in spline flattening. |
michael@0 | 5042 | |
michael@0 | 5043 | FT_MAX_CURVE_DEVIATION is dependent on the value of ONE_PIXEL. |
michael@0 | 5044 | |
michael@0 | 5045 | * src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): Remove it and |
michael@0 | 5046 | replace it everywhere with ONE_PIXEL/8. |
michael@0 | 5047 | |
michael@0 | 5048 | 2010-10-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5049 | |
michael@0 | 5050 | [raccess] Skip unrequired resource access rules by Darwin VFS. |
michael@0 | 5051 | |
michael@0 | 5052 | When a resource fork access rule by Darwin VFS could open the |
michael@0 | 5053 | resource fork but no font is found in it, the rest of rules |
michael@0 | 5054 | by Darwin VFS are skipped. It reduces the warnings of the |
michael@0 | 5055 | deprecated resource fork access method by recent Darwin kernel. |
michael@0 | 5056 | Fix MacPorts ticket #18859: |
michael@0 | 5057 | http://trac.macports.org/ticket/18859 |
michael@0 | 5058 | |
michael@0 | 5059 | * src/base/ftobjs.c (load_face_in_embedded_rfork): |
michael@0 | 5060 | When `FT_Stream_New' returns FT_Err_Cannot_Open_Stream, it |
michael@0 | 5061 | means that the file is possible to be `fopen'-ed but zero-sized. |
michael@0 | 5062 | Also there is a case that the resource fork is not zero-sized, |
michael@0 | 5063 | but no supported font exists in it. If a rule by Darwin VFS |
michael@0 | 5064 | falls into such cases, there is no need to try other Darwin VFS |
michael@0 | 5065 | rules anymore. Such cases are marked by vfs_rfork_has_no_font. |
michael@0 | 5066 | If it is TRUE, the Darwin VFS rules are skipped. |
michael@0 | 5067 | |
michael@0 | 5068 | 2010-10-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5069 | |
michael@0 | 5070 | [raccess] Grouping resource access rules based on Darwin VFS. |
michael@0 | 5071 | |
michael@0 | 5072 | MacOS X/Darwin kernel supports a few tricky methods to access |
michael@0 | 5073 | a resource fork via ANSI C or POSIX interface. Current resource |
michael@0 | 5074 | fork accessor tries all possible methods to support all kernels. |
michael@0 | 5075 | But if a method could open a resource fork but no font is found, |
michael@0 | 5076 | there is no need to try other methods older than tested method. |
michael@0 | 5077 | To determine whether the rule index is for Darwin VFS, a local |
michael@0 | 5078 | function `ftrfork.c::raccess_rule_by_darwin_vfs' is introduced. |
michael@0 | 5079 | To use this function in ftobjs.c etc but it should be inlined, |
michael@0 | 5080 | it is exposed by ftbase.h. |
michael@0 | 5081 | |
michael@0 | 5082 | * src/base/ftrfork.c (FT_RFork_Rule): New enum type to identify |
michael@0 | 5083 | the rules to access the resource fork. |
michael@0 | 5084 | (raccess_guess_rec): New structure to bind the rule function and |
michael@0 | 5085 | rule enum type. |
michael@0 | 5086 | (FT_Raccess_Guess): The list of the rule functions is replaced by |
michael@0 | 5087 | (raccess_guess_table): This. This is exposed to be used by other |
michael@0 | 5088 | intra module functions. |
michael@0 | 5089 | (raccess_rule_by_darwin_vfs): A function to return a boolean |
michael@0 | 5090 | if the rule specified by the rule index is based on Darwin VFS. |
michael@0 | 5091 | |
michael@0 | 5092 | 2010-10-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5093 | |
michael@0 | 5094 | Prevent to open a FT_Stream for zero-sized file on non-Unix. |
michael@0 | 5095 | |
michael@0 | 5096 | builds/unix/ftsystem.c prevents to open an useless stream from |
michael@0 | 5097 | zero-sized file and returns FT_Err_Cannot_Open_Stream, but the |
michael@0 | 5098 | stream drivers for ANSI C, Amiga and VMS return useless streams. |
michael@0 | 5099 | For cross-platform consistency, all stream drivers should act |
michael@0 | 5100 | same. |
michael@0 | 5101 | |
michael@0 | 5102 | * src/base/ftsystem.c (FT_Stream_Open): If the size of the opened |
michael@0 | 5103 | file is zero, FT_Err_Cannot_Open_Stream is returned. |
michael@0 | 5104 | * builds/amiga/src/base/ftsystem.c (FT_Stream_Open): Ditto. |
michael@0 | 5105 | * src/vms/ftsystem.c (FT_Stream_Open): Ditto. |
michael@0 | 5106 | |
michael@0 | 5107 | 2010-10-12 Werner Lemberg <wl@gnu.org> |
michael@0 | 5108 | |
michael@0 | 5109 | [truetype] Fix Savannah bug #31310. |
michael@0 | 5110 | |
michael@0 | 5111 | * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against |
michael@0 | 5112 | invalid `runcnt' values. |
michael@0 | 5113 | |
michael@0 | 5114 | 2010-10-08 Chris Liddell <chris.liddell@artifex.com> |
michael@0 | 5115 | |
michael@0 | 5116 | [sfnt] Fix Savannah bug #31275. |
michael@0 | 5117 | |
michael@0 | 5118 | * src/sfnt/ttpost.c: Include FT_INTERNAL_DEBUG_H. |
michael@0 | 5119 | |
michael@0 | 5120 | 2010-10-06 Werner Lemberg <wl@gnu.org> |
michael@0 | 5121 | |
michael@0 | 5122 | [truetype] Improve error handling of `SHZ' bytecode instruction. |
michael@0 | 5123 | Problem reported by Chris Evans <scarybeasts@gmail.com>. |
michael@0 | 5124 | |
michael@0 | 5125 | * src/truetype/ttinterp.c (Ins_SHZ): Check `last_point'. |
michael@0 | 5126 | |
michael@0 | 5127 | 2010-10-05 Werner Lemberg <wl@gnu.org> |
michael@0 | 5128 | |
michael@0 | 5129 | Fix Savannah bug #31253. |
michael@0 | 5130 | Patch submitted by an anonymous reporter. |
michael@0 | 5131 | |
michael@0 | 5132 | * configure: Use `awk' instead of `sed' to manipulate output of `ls |
michael@0 | 5133 | -id'. |
michael@0 | 5134 | |
michael@0 | 5135 | 2010-10-03 Werner Lemberg <wl@gnu.org> |
michael@0 | 5136 | |
michael@0 | 5137 | * Version 2.4.3 released. |
michael@0 | 5138 | ========================= |
michael@0 | 5139 | |
michael@0 | 5140 | |
michael@0 | 5141 | Tag sources with `VER-2-4-3'. |
michael@0 | 5142 | |
michael@0 | 5143 | * docs/CHANGES: Updated. |
michael@0 | 5144 | |
michael@0 | 5145 | * docs/VERSION.DLL: Update documentation and bump version number to |
michael@0 | 5146 | 2.4.3 |
michael@0 | 5147 | |
michael@0 | 5148 | * README, Jamfile (RefDoc), |
michael@0 | 5149 | builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, |
michael@0 | 5150 | builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, |
michael@0 | 5151 | builds/win32/visualc/freetype.dsp, |
michael@0 | 5152 | builds/win32/visualc/freetype.vcproj, |
michael@0 | 5153 | builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, |
michael@0 | 5154 | builds/win32/visualce/freetype.vcproj, |
michael@0 | 5155 | builds/win32/visualce/index.html, |
michael@0 | 5156 | builds/wince/vc2005-ce/freetype.vcproj, |
michael@0 | 5157 | builds/wince/vc2005-ce/index.html, |
michael@0 | 5158 | builds/wince/vc2008-ce/freetype.vcproj, |
michael@0 | 5159 | builds/wince/vc2008-ce/index.html: s/2.4.2/2.4.3/, s/242/243/. |
michael@0 | 5160 | |
michael@0 | 5161 | * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3. |
michael@0 | 5162 | |
michael@0 | 5163 | * builds/unix/configure.raw (version_info): Set to 12:1:6. |
michael@0 | 5164 | |
michael@0 | 5165 | 2010-10-03 Werner Lemberg <wl@gnu.org> |
michael@0 | 5166 | |
michael@0 | 5167 | Avoid `configure' issues with symbolic links. |
michael@0 | 5168 | Based on a patch from Alexander Stohr <Alexander.Stohr@gmx.de>. |
michael@0 | 5169 | |
michael@0 | 5170 | * configure: Compare directories using `ls -id'. |
michael@0 | 5171 | Check existence of `reference' subdirectory before creating it. |
michael@0 | 5172 | |
michael@0 | 5173 | 2010-10-02 Werner Lemberg <wl@gnu.org> |
michael@0 | 5174 | |
michael@0 | 5175 | [sfnt] Fix Savannah bug #31088 (sort of). |
michael@0 | 5176 | |
michael@0 | 5177 | * src/sfnt/ttload.c (tt_face_load_maxp): Always allocate at least 64 |
michael@0 | 5178 | function entries. |
michael@0 | 5179 | |
michael@0 | 5180 | 2010-10-02 Werner Lemberg <wl@gnu.org> |
michael@0 | 5181 | |
michael@0 | 5182 | [smooth] Fix splitting of cubics for negative values. |
michael@0 | 5183 | |
michael@0 | 5184 | Reported by Róbert Márki <gsmiko@gmail.com>; see |
michael@0 | 5185 | http://lists.gnu.org/archive/html/freetype/2010-09/msg00019.html. |
michael@0 | 5186 | |
michael@0 | 5187 | * src/smooth/ftgrays.c (gray_render_cubic): Fix thinko. |
michael@0 | 5188 | |
michael@0 | 5189 | 2010-10-01 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5190 | |
michael@0 | 5191 | [truetype] Fix Savannah bug #31040. |
michael@0 | 5192 | |
michael@0 | 5193 | * src/truetype/ttinterp.c (free_buffer_in_size): Remove. |
michael@0 | 5194 | (TT_RunIns): Updated. |
michael@0 | 5195 | |
michael@0 | 5196 | 2010-09-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5197 | |
michael@0 | 5198 | [sfnt] Make error message filling NULL names less verbose. |
michael@0 | 5199 | |
michael@0 | 5200 | * src/sfnt/ttpost.c (load_format_20): Showing 1 summary message |
michael@0 | 5201 | when we fill `post' names by NULL, instead of per-entry message. |
michael@0 | 5202 | |
michael@0 | 5203 | 2010-09-20 Graham Asher <graham.asher@btinternet.com> |
michael@0 | 5204 | David Bevan <david.bevan@pb.com> |
michael@0 | 5205 | |
michael@0 | 5206 | [smooth] Fix and improve spline flattening. |
michael@0 | 5207 | |
michael@0 | 5208 | This fixes the flattening of cubic, S-shaped curves and speeds up |
michael@0 | 5209 | the handling of both the conic and cubic arcs. |
michael@0 | 5210 | |
michael@0 | 5211 | See the discussions on the freetype-devel mailing list in late |
michael@0 | 5212 | August and September 2010 for details. |
michael@0 | 5213 | |
michael@0 | 5214 | * src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): New macro. |
michael@0 | 5215 | (TWorker): Remove `conic_level' and `cubic_level' elements. |
michael@0 | 5216 | (gray_render_conic): Simplify algorithm. |
michael@0 | 5217 | (gray_render_cubic): New algorithm; details are given in the code |
michael@0 | 5218 | comments. |
michael@0 | 5219 | (gray_convert_glyph): Remove heuristics. |
michael@0 | 5220 | |
michael@0 | 5221 | 2010-09-19 Werner Lemberg <wl@gnu.org> |
michael@0 | 5222 | |
michael@0 | 5223 | Minor fixes. |
michael@0 | 5224 | |
michael@0 | 5225 | * src/cff/cffload.c (cff_charset_compute_cids): `charset->sids[i]' |
michael@0 | 5226 | is `FT_UShort'. |
michael@0 | 5227 | (cff_index_access_element): Don't use additions in comparison. |
michael@0 | 5228 | * src/sfnt/ttpost.c (load_format_20): Make `post_limit' of type |
michael@0 | 5229 | `FT_Long'. |
michael@0 | 5230 | Don't use additions in comparison. |
michael@0 | 5231 | Improve tracing messages. |
michael@0 | 5232 | (load_format_25, load_post_names): Make `post_limit' of type |
michael@0 | 5233 | `FT_Long'. |
michael@0 | 5234 | |
michael@0 | 5235 | 2010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5236 | |
michael@0 | 5237 | [cff] Truncate the element length at the end of the stream. |
michael@0 | 5238 | See Savannah bug #30975. |
michael@0 | 5239 | |
michael@0 | 5240 | * src/cff/cffload.c (cff_index_access_element): `off2', the offset |
michael@0 | 5241 | to the next element is truncated at the end of the stream to prevent |
michael@0 | 5242 | invalid I/O. As `off1', the offset to the requested element has |
michael@0 | 5243 | been checked by `FT_STREAM_SEEK', `off2' should be checked |
michael@0 | 5244 | similarly. |
michael@0 | 5245 | |
michael@0 | 5246 | 2010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5247 | |
michael@0 | 5248 | [cff] Ignore CID > 0xFFFFU. |
michael@0 | 5249 | See Savannah bug #30975. |
michael@0 | 5250 | |
michael@0 | 5251 | * src/cff/cffload.c (cff_charset_compute_cids): Ignore CID if |
michael@0 | 5252 | greater than 0xFFFFU. CFF font spec does not mention maximum CID in |
michael@0 | 5253 | the font, but PostScript and PDF spec define that maximum CID is |
michael@0 | 5254 | 0xFFFFU. |
michael@0 | 5255 | |
michael@0 | 5256 | 2010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5257 | |
michael@0 | 5258 | [cff] Make trace message in` cff_charset_load' verbose. |
michael@0 | 5259 | See Savannah bug #30975. |
michael@0 | 5260 | |
michael@0 | 5261 | * src/cff/cffload.c (cff_charset_load): Report the original `nleft' |
michael@0 | 5262 | and truncated `nleft'. |
michael@0 | 5263 | |
michael@0 | 5264 | 2010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5265 | |
michael@0 | 5266 | [cff] Correct `max_cid' from CID array length to max CID. |
michael@0 | 5267 | See Savannah bug #30975. |
michael@0 | 5268 | |
michael@0 | 5269 | * src/cff/cffload.c (cff_charset_compute_cids): Don't increment |
michael@0 | 5270 | max_cid after detecting max CID. The array CFF_Charset->cids is |
michael@0 | 5271 | allocated by max_cid + 1. |
michael@0 | 5272 | (cff_charset_cid_to_gindex): Permit CID is less than or equal to |
michael@0 | 5273 | CFF_Charset->max_cid. |
michael@0 | 5274 | * src/cff/cffobjs.c (cff_face_init): FT_Face->num_glyphs is |
michael@0 | 5275 | calculated as CFF_Charset->max_cid + 1. |
michael@0 | 5276 | |
michael@0 | 5277 | 2010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5278 | |
michael@0 | 5279 | [truetype] Sanitize the broken offsets in `loca'. |
michael@0 | 5280 | See Savannah bug #31040. |
michael@0 | 5281 | |
michael@0 | 5282 | * src/truetype/ttpload.c (tt_face_get_location): If `pos1', the |
michael@0 | 5283 | offset to the requested entry in `glyf' exceeds the end of the |
michael@0 | 5284 | table, return offset=0, length=0. If `pos2', the offset to the next |
michael@0 | 5285 | entry in `glyf' exceeds the end of the table, truncate the entry |
michael@0 | 5286 | length at the end of `glyf' table. |
michael@0 | 5287 | |
michael@0 | 5288 | 2010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5289 | |
michael@0 | 5290 | [sfnt] Prevent overrunning in `post' table parser. |
michael@0 | 5291 | See Savannah bug #31040. |
michael@0 | 5292 | |
michael@0 | 5293 | * src/sfnt/ttpost.c (load_post_names): Get the length of `post' |
michael@0 | 5294 | table and pass the limit of `post' table to `load_format_20' and |
michael@0 | 5295 | `load_format_25'. |
michael@0 | 5296 | (load_format_20): Stop the parsing when we reached at the limit of |
michael@0 | 5297 | `post' table. If more glyph names are required, they are filled by |
michael@0 | 5298 | NULL names. |
michael@0 | 5299 | |
michael@0 | 5300 | 2010-09-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5301 | |
michael@0 | 5302 | [truetype] Don't duplicate size->twilight structure to be freed. |
michael@0 | 5303 | See Savannah bug #31040 for detail. |
michael@0 | 5304 | |
michael@0 | 5305 | * src/truetype/ttinterp.c (free_buffer_in_size): Don't duplicate |
michael@0 | 5306 | FT_GlyphZoneRec size->twilight to be freed. If duplicated, |
michael@0 | 5307 | `FT_FREE' erases the duplicated pointers only and leave original |
michael@0 | 5308 | pointers. They can cause the double-free crash when the burst |
michael@0 | 5309 | errors occur in TrueType interpreter and `free_buffer_in_size' is |
michael@0 | 5310 | invoked repeatedly. |
michael@0 | 5311 | |
michael@0 | 5312 | 2010-09-15 Werner Lemberg <wl@gnu.org> |
michael@0 | 5313 | |
michael@0 | 5314 | Make bytecode debugging with FontForge work again. |
michael@0 | 5315 | |
michael@0 | 5316 | * src/truetype/ttinterp.c (TT_RunIns): Don't call |
michael@0 | 5317 | `free_buffer_in_size' in case of error if a debugger is active. |
michael@0 | 5318 | |
michael@0 | 5319 | 2010-09-14 Werner Lemberg <wl@gnu.org> |
michael@0 | 5320 | |
michael@0 | 5321 | Improve tracing messages. |
michael@0 | 5322 | |
michael@0 | 5323 | * src/truetype/ttinterp.c (TT_RunIns): Improve wording of tracing |
michael@0 | 5324 | message. |
michael@0 | 5325 | * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Add |
michael@0 | 5326 | tracing message. |
michael@0 | 5327 | * src/truetype/ttgload.c (tt_loader_init): Add tracing message. |
michael@0 | 5328 | * src/cache/ftcsbits.c (ftc_snode_load): Emit tracing message if |
michael@0 | 5329 | glyph doesn't fit into a small bitmap container. |
michael@0 | 5330 | |
michael@0 | 5331 | 2010-09-13 Werner Lemberg <wl@gnu.org> |
michael@0 | 5332 | |
michael@0 | 5333 | Fix minor issues reported by <muktha.narayan@wipro.com>. |
michael@0 | 5334 | |
michael@0 | 5335 | * src/autofit/aflatin.c (af_latin_compute_stem_width): Remove |
michael@0 | 5336 | redundant conditional check. |
michael@0 | 5337 | * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Ditto. |
michael@0 | 5338 | * src/cff/cffload.c (cff_encoding_load): Remove conditional check |
michael@0 | 5339 | which always evaluates to `true'. |
michael@0 | 5340 | * src/pshinter/pshalgo.c (ps_glyph_interpolate_strong_points): |
michael@0 | 5341 | Ditto. |
michael@0 | 5342 | * src/truetype/ttinterp.c (Ins_IUP): Ditto. |
michael@0 | 5343 | * src/cid/cidgload.c (cid_slot_load_glyph): Don't check for NULL if |
michael@0 | 5344 | value is already dereferenced. |
michael@0 | 5345 | * src/winfonts/winfnt.c (FNT_Load_Glyph): Fix check of `face'. |
michael@0 | 5346 | |
michael@0 | 5347 | 2010-08-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5348 | |
michael@0 | 5349 | Ignore the environmental setting of LIBTOOL. |
michael@0 | 5350 | Patch is suggested by Adrian Bunk, to prevent unexpected |
michael@0 | 5351 | reflection of environmental LIBTOOL. See: |
michael@0 | 5352 | http://savannah.nongnu.org/patch/?7290 |
michael@0 | 5353 | |
michael@0 | 5354 | * builds/unix/unix-cc.in: LIBTOOL is unconditionally set to |
michael@0 | 5355 | $(FT_LIBTOOL_DIR)/libtool. FT_LIBTOOL_DIR is set to $(BUILD_DIR) |
michael@0 | 5356 | by default. |
michael@0 | 5357 | * configure: When configured for the building out of source tee, |
michael@0 | 5358 | FT_LIBTOOL_DIR is set to $(OBJ_DIR). |
michael@0 | 5359 | |
michael@0 | 5360 | 2010-08-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5361 | |
michael@0 | 5362 | [truetype] Decrease the trace level catching the interpreter error. |
michael@0 | 5363 | |
michael@0 | 5364 | * src/truetype/ttinterp.c (TT_RunIns): Decrease the trace level |
michael@0 | 5365 | showing the error when the interpreter returns with an error, |
michael@0 | 5366 | from` FT_TRACE7' to `FT_TRACE1'. |
michael@0 | 5367 | |
michael@0 | 5368 | 2010-08-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5369 | |
michael@0 | 5370 | [truetype] Prevent bytecode reuse after the interpretation error. |
michael@0 | 5371 | |
michael@0 | 5372 | * src/truetype/ttinterp.c (free_buffer_in_size): New function to |
michael@0 | 5373 | free the buffer allocated during the interpretation of this glyph. |
michael@0 | 5374 | (TT_RunIns): Unset FT_Face->size->{cvt_ready,bytecode_ready} if |
michael@0 | 5375 | an error occurs in the bytecode interpretation. The interpretation |
michael@0 | 5376 | of invalid bytecode may break the function definitions and referring |
michael@0 | 5377 | them in later interpretation is danger. By unsetting these flags, |
michael@0 | 5378 | `fpgm' and `prep' tables are executed again in next interpretation. |
michael@0 | 5379 | |
michael@0 | 5380 | This fixes Savannah bug #30798, reported by Robert Święcki. |
michael@0 | 5381 | |
michael@0 | 5382 | 2010-08-29 Werner Lemberg <wl@gnu.org> |
michael@0 | 5383 | |
michael@0 | 5384 | [ftraster] Pacify compiler. |
michael@0 | 5385 | |
michael@0 | 5386 | * src/raster/ftraster.c (ft_black_new) [_STANDALONE_]: `memory' is |
michael@0 | 5387 | not used. |
michael@0 | 5388 | |
michael@0 | 5389 | 2010-08-29 Werner Lemberg <wl@gnu.org> |
michael@0 | 5390 | |
michael@0 | 5391 | [cff] Allow SIDs >= 65000. |
michael@0 | 5392 | |
michael@0 | 5393 | * src/cff/cffload.c (cff_charset_load): Fix change from 2009-03-20: |
michael@0 | 5394 | The threshold for SIDs is not applicable here. I misinterpreted the |
michael@0 | 5395 | `SID values 65000 and above are available for implementation use' |
michael@0 | 5396 | sentence in the CFF specification. |
michael@0 | 5397 | |
michael@0 | 5398 | Problem reported by Ivan Ninčić <inincic@pdftron.com>. |
michael@0 | 5399 | |
michael@0 | 5400 | 2010-08-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5401 | |
michael@0 | 5402 | Force hinting when the font lacks its familyname. |
michael@0 | 5403 | |
michael@0 | 5404 | In Type42 or Type11 font embedded in PostScript & PDF, TrueType sfnt |
michael@0 | 5405 | stream may lack `name' table because they are not required. Hinting |
michael@0 | 5406 | for nameless fonts is safer for PDFs including embedded Chinese |
michael@0 | 5407 | fonts. Written by David Bevan, see: |
michael@0 | 5408 | |
michael@0 | 5409 | http://lists.gnu.org/archive/html/freetype-devel/2010-08/msg00021.html |
michael@0 | 5410 | http://lists.freedesktop.org/archives/poppler/2010-August/006310.html |
michael@0 | 5411 | |
michael@0 | 5412 | * src/truetype/ttobjs.c (tt_check_trickyness): If a NULL pointer by |
michael@0 | 5413 | nameless font is given, TRUE is returned to enable hinting. |
michael@0 | 5414 | |
michael@0 | 5415 | 2010-08-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5416 | |
michael@0 | 5417 | Register yet another tricky TrueType font. |
michael@0 | 5418 | |
michael@0 | 5419 | * src/truetype/ttobjs.c (tt_check_trickyness): Add `HuaTianKaiTi?', |
michael@0 | 5420 | a Kaishu typeface paired with `HuaTianSongTi?' by Huatian |
michael@0 | 5421 | Information Industry. |
michael@0 | 5422 | |
michael@0 | 5423 | 2010-08-17 Teijo Kinnunen <Teijo.Kinnunen@nuance.com> |
michael@0 | 5424 | |
michael@0 | 5425 | [cache] Fix Savannah bug #30788. |
michael@0 | 5426 | |
michael@0 | 5427 | * src/cache/ftccache.c (FTC_Cache_Clear): Check `cache->buckets' for |
michael@0 | 5428 | NULL too. |
michael@0 | 5429 | |
michael@0 | 5430 | 2010-08-10 Werner Lemberg <wl@gnu.org> |
michael@0 | 5431 | |
michael@0 | 5432 | Try to fix Savannah bug #30717 (and probably #30719 too). |
michael@0 | 5433 | |
michael@0 | 5434 | * src/smooth/ftsmooth.c (ft_smooth_render_generic): Add another |
michael@0 | 5435 | overflow test for `width' and `height'. |
michael@0 | 5436 | |
michael@0 | 5437 | 2010-08-06 Werner Lemberg <wl@gnu.org> |
michael@0 | 5438 | |
michael@0 | 5439 | * Version 2.4.2 released. |
michael@0 | 5440 | ========================= |
michael@0 | 5441 | |
michael@0 | 5442 | |
michael@0 | 5443 | Tag sources with `VER-2-4-2'. |
michael@0 | 5444 | |
michael@0 | 5445 | * docs/CHANGES: Updated. |
michael@0 | 5446 | |
michael@0 | 5447 | * docs/VERSION.DLL: Update documentation and bump version number to |
michael@0 | 5448 | 2.4.2 |
michael@0 | 5449 | |
michael@0 | 5450 | * README, Jamfile (RefDoc), |
michael@0 | 5451 | builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, |
michael@0 | 5452 | builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, |
michael@0 | 5453 | builds/win32/visualc/freetype.dsp, |
michael@0 | 5454 | builds/win32/visualc/freetype.vcproj, |
michael@0 | 5455 | builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, |
michael@0 | 5456 | builds/win32/visualce/freetype.vcproj, |
michael@0 | 5457 | builds/win32/visualce/index.html, |
michael@0 | 5458 | builds/wince/vc2005-ce/freetype.vcproj, |
michael@0 | 5459 | builds/wince/vc2005-ce/index.html, |
michael@0 | 5460 | builds/wince/vc2008-ce/freetype.vcproj, |
michael@0 | 5461 | builds/wince/vc2008-ce/index.html: s/2.4.1/2.4.2/, s/241/242/. |
michael@0 | 5462 | |
michael@0 | 5463 | * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2. |
michael@0 | 5464 | |
michael@0 | 5465 | * builds/unix/configure.raw (version_info): Set to 12:0:6. |
michael@0 | 5466 | |
michael@0 | 5467 | 2010-08-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5468 | |
michael@0 | 5469 | Fix Savannah bug #30648. |
michael@0 | 5470 | |
michael@0 | 5471 | * src/base/ftobjs.c (FT_Done_Library): Specify the order of font |
michael@0 | 5472 | drivers during the face closing process. Type42 faces should be |
michael@0 | 5473 | closed before TrueType faces, because a Type42 face refers to |
michael@0 | 5474 | another internal TrueType face which is created from sfnt[] array on |
michael@0 | 5475 | the memory. |
michael@0 | 5476 | |
michael@0 | 5477 | 2010-08-06 Yuriy Kaminskiy <yumkam@mail.ru> |
michael@0 | 5478 | |
michael@0 | 5479 | [raster] Fix valgrind warning. |
michael@0 | 5480 | |
michael@0 | 5481 | * src/raster/ftraster.c (Decompose_Curve) <default>: Access point[0] |
michael@0 | 5482 | only if we don't hit `limit'. |
michael@0 | 5483 | |
michael@0 | 5484 | 2010-08-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5485 | |
michael@0 | 5486 | Fix Savannah bug #30658. |
michael@0 | 5487 | |
michael@0 | 5488 | * src/base/ftobjs.c (Mac_Read_POST_Resource): Check that the total |
michael@0 | 5489 | length of collected POST segments does not overrun the allocated |
michael@0 | 5490 | buffer. |
michael@0 | 5491 | |
michael@0 | 5492 | 2010-08-06 Yuriy Kaminskiy <yumkam@mail.ru> |
michael@0 | 5493 | |
michael@0 | 5494 | Fix conditional usage of FT_MulFix_i386. |
michael@0 | 5495 | With -ansi flag, gcc does not define `i386', only `__i386__'. |
michael@0 | 5496 | |
michael@0 | 5497 | * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: |
michael@0 | 5498 | s/i386/__i386__/. |
michael@0 | 5499 | |
michael@0 | 5500 | 2010-08-05 Werner Lemberg <wl@gnu.org> |
michael@0 | 5501 | |
michael@0 | 5502 | [truetype] Fix Savannah bug #30657. |
michael@0 | 5503 | |
michael@0 | 5504 | * src/truetype/ttinterp.c (BOUNDSL): New macro. |
michael@0 | 5505 | Change `BOUNDS' to `BOUNDSL' where appropriate. |
michael@0 | 5506 | |
michael@0 | 5507 | * src/truetype/ttinterp.h (TT_ExecContextRec): Fix type of |
michael@0 | 5508 | `cvtSize'. |
michael@0 | 5509 | |
michael@0 | 5510 | 2010-08-05 Werner Lemberg <wl@gnu.org> |
michael@0 | 5511 | |
michael@0 | 5512 | [type42] Fix Savannah bug #30656. |
michael@0 | 5513 | |
michael@0 | 5514 | * src/type42/t42parse.c (t42_parse_sfnts): Protect against negative |
michael@0 | 5515 | string_size. |
michael@0 | 5516 | Fix comparison. |
michael@0 | 5517 | |
michael@0 | 5518 | 2010-08-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5519 | |
michael@0 | 5520 | [cff] Don't use any values in decoder after parsing error. |
michael@0 | 5521 | |
michael@0 | 5522 | * src/cff/cffgload.c (cff_slot_load): Skip the evaluations |
michael@0 | 5523 | of the values in decoder, if `cff_decoder_parse_charstrings' |
michael@0 | 5524 | returns any error. |
michael@0 | 5525 | |
michael@0 | 5526 | 2010-08-04 Werner Lemberg <wl@gnu.org> |
michael@0 | 5527 | |
michael@0 | 5528 | Fix Savannah bug #30644. |
michael@0 | 5529 | |
michael@0 | 5530 | * src/base/ftstream.c (FT_Stream_EnterFrame): Fix comparison. |
michael@0 | 5531 | |
michael@0 | 5532 | 2010-08-04 Werner Lemberg <wl@gnu.org> |
michael@0 | 5533 | |
michael@0 | 5534 | `make devel' fails if FT_CONFIG_OPTION_OLD_INTERNALS is set. |
michael@0 | 5535 | |
michael@0 | 5536 | * devel/ftoption.h: Synchronize with |
michael@0 | 5537 | include/freetype/config/ftoption.h. |
michael@0 | 5538 | |
michael@0 | 5539 | 2010-08-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5540 | |
michael@0 | 5541 | [cff] Improve stack overflow test. |
michael@0 | 5542 | |
michael@0 | 5543 | * src/cff/cffgload.c (cff_decoder_parse_charstrings): Check stack |
michael@0 | 5544 | after execution of operations too. |
michael@0 | 5545 | |
michael@0 | 5546 | 2010-07-18 Werner Lemberg <wl@gnu.org> |
michael@0 | 5547 | |
michael@0 | 5548 | Add reference counters and to FT_Library and FT_Face objects. |
michael@0 | 5549 | |
michael@0 | 5550 | * include/freetype/freetype.h (FT_Reference_Face): New function. |
michael@0 | 5551 | * include/freetype/ftmodapi.h (FT_Rererence_Library): New function. |
michael@0 | 5552 | |
michael@0 | 5553 | * include/freetype/internal/ftobjs.h (FT_Face_InternalRec, |
michael@0 | 5554 | FT_LibraryRec): New field `refcount'. |
michael@0 | 5555 | |
michael@0 | 5556 | * src/base/ftobjs.c (FT_Open_Face, FT_New_Library): Handle |
michael@0 | 5557 | `refcount'. |
michael@0 | 5558 | (FT_Reference_Face, FT_Reference_Library): Implement new functions. |
michael@0 | 5559 | (FT_Done_Face, FT_Done_Library): Handle `refcount'. |
michael@0 | 5560 | |
michael@0 | 5561 | * docs/CHANGES: Updated. |
michael@0 | 5562 | |
michael@0 | 5563 | 2010-07-18 Werner Lemberg <wl@gnu.org> |
michael@0 | 5564 | |
michael@0 | 5565 | * Version 2.4.1 released. |
michael@0 | 5566 | ========================= |
michael@0 | 5567 | |
michael@0 | 5568 | |
michael@0 | 5569 | Tag sources with `VER-2-4-1'. |
michael@0 | 5570 | |
michael@0 | 5571 | * docs/CHANGES: Updated. |
michael@0 | 5572 | |
michael@0 | 5573 | * docs/VERSION.DLL: Update documentation and bump version number to |
michael@0 | 5574 | 2.4.1. |
michael@0 | 5575 | |
michael@0 | 5576 | * README, Jamfile (RefDoc), |
michael@0 | 5577 | builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, |
michael@0 | 5578 | builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, |
michael@0 | 5579 | builds/win32/visualc/freetype.dsp, |
michael@0 | 5580 | builds/win32/visualc/freetype.vcproj, |
michael@0 | 5581 | builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, |
michael@0 | 5582 | builds/win32/visualce/freetype.vcproj, |
michael@0 | 5583 | builds/win32/visualce/index.html, |
michael@0 | 5584 | builds/wince/vc2005-ce/freetype.vcproj, |
michael@0 | 5585 | builds/wince/vc2005-ce/index.html, |
michael@0 | 5586 | builds/wince/vc2008-ce/freetype.vcproj, |
michael@0 | 5587 | builds/wince/vc2008-ce/index.html: s/2.4.0/2.4.1/, s/240/241/. |
michael@0 | 5588 | |
michael@0 | 5589 | * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. |
michael@0 | 5590 | |
michael@0 | 5591 | * builds/unix/configure.raw (version_info): Set to 11:1:5. |
michael@0 | 5592 | |
michael@0 | 5593 | 2010-07-17 Werner Lemberg <wl@gnu.org> |
michael@0 | 5594 | |
michael@0 | 5595 | [cff] Final try to fix `hintmask' and `cntrmask' limit check. |
michael@0 | 5596 | |
michael@0 | 5597 | Problem reported by Tobias Wolf <towolf@gmail.com>. |
michael@0 | 5598 | |
michael@0 | 5599 | * src/cff/cffgload.c (cff_decoder_parse_charstrings) |
michael@0 | 5600 | <cff_op_hintmask>: Sigh. I'm apparently too silly to fix this |
michael@0 | 5601 | correctly in less than three tries. |
michael@0 | 5602 | |
michael@0 | 5603 | 2010-07-12 Werner Lemberg <wl@gnu.org> |
michael@0 | 5604 | |
michael@0 | 5605 | * Version 2.4.0 released. |
michael@0 | 5606 | ========================= |
michael@0 | 5607 | |
michael@0 | 5608 | |
michael@0 | 5609 | Tag sources with `VER-2-4-0'. |
michael@0 | 5610 | |
michael@0 | 5611 | * docs/CHANGES: Updated. |
michael@0 | 5612 | |
michael@0 | 5613 | * docs/VERSION.DLL: Update documentation and bump version number to |
michael@0 | 5614 | 2.4.0. |
michael@0 | 5615 | |
michael@0 | 5616 | * README, Jamfile (RefDoc), |
michael@0 | 5617 | builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, |
michael@0 | 5618 | builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, |
michael@0 | 5619 | builds/win32/visualc/freetype.dsp, |
michael@0 | 5620 | builds/win32/visualc/freetype.vcproj, |
michael@0 | 5621 | builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, |
michael@0 | 5622 | builds/win32/visualce/freetype.vcproj, |
michael@0 | 5623 | builds/win32/visualce/index.html, |
michael@0 | 5624 | builds/wince/vc2005-ce/freetype.vcproj, |
michael@0 | 5625 | builds/wince/vc2005-ce/index.html, |
michael@0 | 5626 | builds/wince/vc2008-ce/freetype.vcproj, |
michael@0 | 5627 | builds/wince/vc2008-ce/index.html: s/2.3.12/2.4.0/, s/2312/240/. |
michael@0 | 5628 | |
michael@0 | 5629 | * include/freetype/freetype.h (FREETYPE_MINOR): Set to 4. |
michael@0 | 5630 | (FREETYPE_PATCH): Set to 0. |
michael@0 | 5631 | |
michael@0 | 5632 | * builds/unix/configure.raw (version_info): Set to 11:0:5. |
michael@0 | 5633 | |
michael@0 | 5634 | 2010-07-12 Werner Lemberg <wl@gnu.org> |
michael@0 | 5635 | |
michael@0 | 5636 | Remove C++ warnings. |
michael@0 | 5637 | |
michael@0 | 5638 | */*: Initialize pointers where necessary to make g++ happy. |
michael@0 | 5639 | |
michael@0 | 5640 | 2010-07-12 malc <av1474@comtv.ru> |
michael@0 | 5641 | Richard Henderson <rth@redhat.com> |
michael@0 | 5642 | |
michael@0 | 5643 | Fix type-punning issues with C++. |
michael@0 | 5644 | |
michael@0 | 5645 | * include/freetype/internal/ftmemory.h (FT_ASSIGNP) [__cplusplus]: |
michael@0 | 5646 | Emulate a `typeof' operator with an inline template which uses |
michael@0 | 5647 | `static_cast'. |
michael@0 | 5648 | |
michael@0 | 5649 | 2010-07-11 Werner Lemberg <wl@gnu.org> |
michael@0 | 5650 | |
michael@0 | 5651 | Fix C++ compilation issue. |
michael@0 | 5652 | |
michael@0 | 5653 | * src/tools/apinames.c (names_dump) <OUTPUT_WATCOM_LBC>: Fix |
michael@0 | 5654 | type of `dot' variable. |
michael@0 | 5655 | |
michael@0 | 5656 | 2010-07-10 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5657 | |
michael@0 | 5658 | Fix another case reported in Savannah bug #30373. |
michael@0 | 5659 | Permit a face for Type1, Type42 and CFF without charmap, |
michael@0 | 5660 | patch by Tor Andersson. |
michael@0 | 5661 | |
michael@0 | 5662 | * src/type1/t1objs.c (T1_Face_Init): Reset the error if it |
michael@0 | 5663 | is FT_Err_No_Unicode_Glyph_Name. |
michael@0 | 5664 | * src/type42/t42objs.c (T42_Face_Init): Ditto. |
michael@0 | 5665 | * src/cff/cffobjs.c (cff_face_init): Ditto. |
michael@0 | 5666 | |
michael@0 | 5667 | 2010-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5668 | |
michael@0 | 5669 | Use defined macros to set {platform,encoding}_id. |
michael@0 | 5670 | |
michael@0 | 5671 | * src/bdf/bdfdrivr.c: Include ttnameid.h and use macros to |
michael@0 | 5672 | set charmap.{platfom,encoding}_id. |
michael@0 | 5673 | * src/pcf/pcfdrivr.c: Ditto. |
michael@0 | 5674 | * src/winfonts/winfnt.c: Ditto. |
michael@0 | 5675 | * src/type1/t1objs.c: Ditto. |
michael@0 | 5676 | * src/type42/t42objs.c: Ditto. |
michael@0 | 5677 | * src/cff/cffobjs.c: Ditto. |
michael@0 | 5678 | * src/pfr/pfrobjs.c: Ditto. |
michael@0 | 5679 | |
michael@0 | 5680 | 2010-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5681 | |
michael@0 | 5682 | Fix Savannah bug #30373. |
michael@0 | 5683 | Too serious check of errors by `FT_CMap_New' since 2010-07-04 |
michael@0 | 5684 | is fixed. Reported by Tor Andersson. |
michael@0 | 5685 | |
michael@0 | 5686 | * include/freetype/fterrdef.h |
michael@0 | 5687 | (PSnames_Err_No_Unicode_Glyph_Name): New error code to |
michael@0 | 5688 | indicate the Unicode charmap synthesis failed because |
michael@0 | 5689 | no Unicode glyph name is found. |
michael@0 | 5690 | |
michael@0 | 5691 | * src/psnames/psmodule.c (ps_unicodes_init): Return |
michael@0 | 5692 | PSnames_Err_No_Unicode_Glyph_Name when no Unicode glyph name |
michael@0 | 5693 | is found in the font. |
michael@0 | 5694 | * src/cff/cffcmap.c (cff_cmap_unicode_init): Return |
michael@0 | 5695 | CFF_Err_No_Unicode_Glyph_Name when no SID is available. |
michael@0 | 5696 | |
michael@0 | 5697 | * src/type1/t1objs.c (T1_Face_Init): Proceed if `FT_CMap_New' |
michael@0 | 5698 | is failed by the lack of Unicode glyph name. |
michael@0 | 5699 | * src/type42/t42objs.c (T42_Face_Init): Ditto. |
michael@0 | 5700 | * src/cff/cffobjs.c (cff_face_init): Ditto. |
michael@0 | 5701 | |
michael@0 | 5702 | 2010-07-09 Ken Sharp <ken.sharp@artifex.com> |
michael@0 | 5703 | |
michael@0 | 5704 | Make ftraster.c compile in stand-alone mode with MSVC compiler. |
michael@0 | 5705 | |
michael@0 | 5706 | * src/raster/ftmisc.h (FT_Int64) [_WIN32, _WIN64]: Fix typedef |
michael@0 | 5707 | since there is no `inttypes.h' for MSVC. |
michael@0 | 5708 | |
michael@0 | 5709 | 2010-07-08 Werner Lemberg <wl@gnu.org> |
michael@0 | 5710 | |
michael@0 | 5711 | [truetype] Fix Savannah bug #30361. |
michael@0 | 5712 | |
michael@0 | 5713 | * src/truetype/ttinterp.c (Ins_IUP): Fix bounds check. |
michael@0 | 5714 | |
michael@0 | 5715 | 2010-07-06 Werner Lemberg <wl@gnu.org> |
michael@0 | 5716 | |
michael@0 | 5717 | Pacify compiler. |
michael@0 | 5718 | |
michael@0 | 5719 | * src/cff/cffload.c (cff_index_get_pointers): Initialize |
michael@0 | 5720 | `new_bytes'. |
michael@0 | 5721 | |
michael@0 | 5722 | 2010-07-05 Eugene A. Shatokhin <spectre@ispras.ru> |
michael@0 | 5723 | |
michael@0 | 5724 | Fix Savannah bug #27648. |
michael@0 | 5725 | |
michael@0 | 5726 | * src/base/ftobjs.c (ft_remove_renderer, FT_Add_Module): Call |
michael@0 | 5727 | `raster_done' only if we have an outline glyph format. |
michael@0 | 5728 | |
michael@0 | 5729 | 2010-07-05 Werner Lemberg <wl@gnu.org> |
michael@0 | 5730 | |
michael@0 | 5731 | Fix Savannah bug #30030. |
michael@0 | 5732 | |
michael@0 | 5733 | * builds/win32/*/freetype.vcproj: Add ftxf86.c. |
michael@0 | 5734 | |
michael@0 | 5735 | 2010-07-05 Werner Lemberg <wl@gnu.org> |
michael@0 | 5736 | |
michael@0 | 5737 | [cff] Next try to fix `hintmask' and `cntrmask' limit check. |
michael@0 | 5738 | |
michael@0 | 5739 | Problem reported by malc <av1474@comtv.ru>. |
michael@0 | 5740 | |
michael@0 | 5741 | * src/cff/cffgload.c (cff_decoder_parse_charstrings) |
michael@0 | 5742 | <cff_op_hintmask>: It is possible that there is just a single byte |
michael@0 | 5743 | after the `hintmask' or `cntrmask', e.g., a `return' instruction. |
michael@0 | 5744 | |
michael@0 | 5745 | 2010-07-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5746 | |
michael@0 | 5747 | Restrict the number of the charmaps in a rogue-compatible mode. |
michael@0 | 5748 | Fix for Savannah bug #30059. |
michael@0 | 5749 | |
michael@0 | 5750 | * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Replace `16' the |
michael@0 | 5751 | minimum character code passed by a legacy rogue client by... |
michael@0 | 5752 | * include/freetype/config/ftoption.h (FT_MAX_CHARMAP_CACHEABLE): |
michael@0 | 5753 | This. It is undefined when FT_CONFIG_OPTION_OLD_INTERNALS is |
michael@0 | 5754 | undefined (thus the rogue client compatibility is not required). |
michael@0 | 5755 | |
michael@0 | 5756 | * src/cff/cffobjs.c (cff_face_init): Abort the automatic |
michael@0 | 5757 | selection or synthesis of Unicode cmap subtable when the charmap |
michael@0 | 5758 | index exceeds FT_MAX_CHARMAP_CACHEABLE. |
michael@0 | 5759 | * src/sfnt/ttcmap.c (tt_face_build_cmaps): Issue error message |
michael@0 | 5760 | when the charmap index exceeds FT_MAX_CHARMAP_CACHEABLE. |
michael@0 | 5761 | |
michael@0 | 5762 | * src/base/ftobjs.c (find_unicode_charmap): When Unicode charmap |
michael@0 | 5763 | is found after FT_MAX_CHARMAP_CACHEABLE, ignore it and search |
michael@0 | 5764 | earlier one. |
michael@0 | 5765 | (find_variant_selector_charmap): When UVS charmap is found after |
michael@0 | 5766 | FT_MAX_CHARMAP_CACHEABLE, ignore it and search earlier one. |
michael@0 | 5767 | (FT_Select_Charmap): When a charmap matching with requested |
michael@0 | 5768 | encoding but after FT_MAX_CHARMAP_CACHEABLE, ignore and search |
michael@0 | 5769 | earlier one. |
michael@0 | 5770 | (FT_Set_Charmap): When a charmap matching with requested |
michael@0 | 5771 | charmap but after FT_MAX_CHARMAP_CACHEABLE, ignore and search |
michael@0 | 5772 | earlier one. |
michael@0 | 5773 | (FT_Get_Charmap_Index): When a requested charmap is found |
michael@0 | 5774 | after FT_MAX_CHARMAP_CACHEABLE, return the inverted charmap |
michael@0 | 5775 | index. |
michael@0 | 5776 | |
michael@0 | 5777 | 2010-07-04 Werner Lemberg <wl@gnu.org> |
michael@0 | 5778 | |
michael@0 | 5779 | TrueType hinting is no longer patented. |
michael@0 | 5780 | |
michael@0 | 5781 | * include/freetype/config/ftoption.h, devel/ftoption.h |
michael@0 | 5782 | (TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Define. |
michael@0 | 5783 | (TT_CONFIG_OPTION_UNPATENTED_HINTING): Undefine. |
michael@0 | 5784 | |
michael@0 | 5785 | * docs/CHANGES, docs/INSTALL, include/freetype/freetype.h: Updated. |
michael@0 | 5786 | * docs/TRUETYPE, docs/PATENTS: Removed. |
michael@0 | 5787 | |
michael@0 | 5788 | 2010-07-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5789 | |
michael@0 | 5790 | Check error value by `FT_CMap_New'. |
michael@0 | 5791 | |
michael@0 | 5792 | * src/cff/cffobjs.c (cff_face_init): Check error value by |
michael@0 | 5793 | `FT_CMap_New'. |
michael@0 | 5794 | * src/pfr/pfrobjs.c (pfr_face_init): Ditto. |
michael@0 | 5795 | * src/type1/t1jobjs.c (T1_Face_Init): Ditto. |
michael@0 | 5796 | * src/type42/t42jobjs.c (T42_Face_Init): Ditto. |
michael@0 | 5797 | |
michael@0 | 5798 | 2010-07-03 Werner Lemberg <wl@gnu.org> |
michael@0 | 5799 | |
michael@0 | 5800 | Make ftgrays.c compile stand-alone again. |
michael@0 | 5801 | |
michael@0 | 5802 | * src/smooth/ftgrays.c [_STANDALONE_]: Include `stddef.h'. |
michael@0 | 5803 | (FT_INT_MAX, FT_PtrDist)[_STANDALONE_]: Define. |
michael@0 | 5804 | |
michael@0 | 5805 | 2010-07-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5806 | |
michael@0 | 5807 | Additional fix for Savannah bug #30306. |
michael@0 | 5808 | |
michael@0 | 5809 | * src/base/ftobjs.c (Mac_Read_POST_Resource): If the type of the |
michael@0 | 5810 | POST fragment is 0, the segment is completely ignored. The declared |
michael@0 | 5811 | length of the segment is not cared at all. According to Adobe |
michael@0 | 5812 | Technical Note 5040, type 0 segment is a comment only and should not |
michael@0 | 5813 | be loaded for the interpreter. Reported by Robert Święcki. |
michael@0 | 5814 | |
michael@0 | 5815 | 2010-07-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 5816 | |
michael@0 | 5817 | [truetype] Protect against code range underflow. |
michael@0 | 5818 | |
michael@0 | 5819 | * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Don't allow |
michael@0 | 5820 | negative IP values. |
michael@0 | 5821 | |
michael@0 | 5822 | 2010-07-01 Werner Lemberg <wl@gnu.org> |
michael@0 | 5823 | |
michael@0 | 5824 | [truetype] Add rudimentary tracing for bytecode instructions. |
michael@0 | 5825 | |
michael@0 | 5826 | * src/truetype/ttinterp.c (opcode_name) [FT_DEBUG_LEVEL_TRACE]: New |
michael@0 | 5827 | array. |
michael@0 | 5828 | (TT_RunIns): Trace opcodes. |
michael@0 | 5829 | |
michael@0 | 5830 | 2010-06-30 Werner Lemberg <wl@gnu.org> |
michael@0 | 5831 | |
michael@0 | 5832 | [smooth] Fix Savannah bug #30263. |
michael@0 | 5833 | |
michael@0 | 5834 | * src/smooth/ftgrays.c (gray_render_span): Use cast to `unsigned |
michael@0 | 5835 | int' to avoid integer overflow. |
michael@0 | 5836 | |
michael@0 | 5837 | * src/smooth/ftsmooth.c (ft_smooth_render_generic): Use smaller |
michael@0 | 5838 | threshold values for `width' and `height'. This is not directly |
michael@0 | 5839 | related to the bug fix but makes sense anyway. |
michael@0 | 5840 | |
michael@0 | 5841 | 2010-07-01 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5842 | |
michael@0 | 5843 | Initial fix for Savannah bug #30306. |
michael@0 | 5844 | |
michael@0 | 5845 | * src/base/ftobjs.c (Mac_Read_POST_Resource): Check `rlen', the |
michael@0 | 5846 | length of fragment declared in the POST fragment header, and prevent |
michael@0 | 5847 | an underflow in length calculation. Some fonts set the length to |
michael@0 | 5848 | zero in spite of the existence of a following 16bit `type'. |
michael@0 | 5849 | Reported by Robert Święcki. |
michael@0 | 5850 | |
michael@0 | 5851 | 2010-07-01 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5852 | |
michael@0 | 5853 | Additional fix for Savannah bug #30248 and #30249. |
michael@0 | 5854 | |
michael@0 | 5855 | * src/base/ftobjs.c (Mac_Read_POST_Resource): Check the buffer size |
michael@0 | 5856 | during gathering PFB fragments embedded in LaserWriter PS font for |
michael@0 | 5857 | Macintosh. Reported by Robert Święcki. |
michael@0 | 5858 | |
michael@0 | 5859 | 2010-06-30 Alexei Podtelezhnikov <apodtele@gmail.com> |
michael@0 | 5860 | |
michael@0 | 5861 | Minor optimizations by avoiding divisions. |
michael@0 | 5862 | |
michael@0 | 5863 | * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning): |
michael@0 | 5864 | Replace divisions with multiplication in comparisons. |
michael@0 | 5865 | |
michael@0 | 5866 | 2010-06-29 Werner Lemberg <wl@gnu.org> |
michael@0 | 5867 | |
michael@0 | 5868 | Fix minor tracing issues. |
michael@0 | 5869 | |
michael@0 | 5870 | * src/cff/cffgload.c, src/truetype/ttgload.c: Adjust tracing levels. |
michael@0 | 5871 | |
michael@0 | 5872 | 2010-06-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 5873 | |
michael@0 | 5874 | [cff] Really fix `hintmask' and `cntrmask' limit check. |
michael@0 | 5875 | |
michael@0 | 5876 | * src/cff/cffgload.c (cff_decoder_parse_charstrings) |
michael@0 | 5877 | <cff_op_hintmask>: Fix thinko and handle tracing also. |
michael@0 | 5878 | |
michael@0 | 5879 | 2010-06-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 5880 | |
michael@0 | 5881 | Fix valgrind warning. |
michael@0 | 5882 | |
michael@0 | 5883 | * src/base/ftoutln.c (FT_Outline_Get_Orientation): Initialize |
michael@0 | 5884 | `result' array. |
michael@0 | 5885 | |
michael@0 | 5886 | 2010-06-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 5887 | |
michael@0 | 5888 | [cff] Fix memory leak. |
michael@0 | 5889 | |
michael@0 | 5890 | * src/cff/cffgload.c (cff_operator_seac): Free charstrings even in |
michael@0 | 5891 | case of errors. |
michael@0 | 5892 | |
michael@0 | 5893 | 2010-06-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 5894 | |
michael@0 | 5895 | [cff] Protect against invalid `hintmask' and `cntrmask' operators. |
michael@0 | 5896 | |
michael@0 | 5897 | * src/cff/cffgload.c (cff_decoder_parse_charstrings) |
michael@0 | 5898 | <cff_op_hintmask>: Ensure that we don't exceed `limit' while parsing |
michael@0 | 5899 | the bit masks of the `hintmask' and `cntrmask' operators. |
michael@0 | 5900 | |
michael@0 | 5901 | 2010-06-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 5902 | |
michael@0 | 5903 | Fix PFR change 2010-06-24. |
michael@0 | 5904 | |
michael@0 | 5905 | * src/pfr/pfrgload.c (pfr_glyph_load_simple): Really protect against |
michael@0 | 5906 | invalid indices. |
michael@0 | 5907 | |
michael@0 | 5908 | 2010-06-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 5909 | |
michael@0 | 5910 | Improve PFR tracing messages. |
michael@0 | 5911 | |
michael@0 | 5912 | * src/pfr/pfrgload.c (pfr_glyph_load_rec): Emit tracing messages for |
michael@0 | 5913 | simple and compound glyph offsets. |
michael@0 | 5914 | |
michael@0 | 5915 | 2010-06-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 5916 | |
michael@0 | 5917 | Fix last PFR change. |
michael@0 | 5918 | |
michael@0 | 5919 | * src/pfr/pfrobjs.c (pfr_face_init): Fix rejection logic. |
michael@0 | 5920 | |
michael@0 | 5921 | 2010-06-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 5922 | |
michael@0 | 5923 | [sfnt] Fix Savannah bug #30262. |
michael@0 | 5924 | |
michael@0 | 5925 | * src/sfnt/ttload.c (tt_face_load_maxp): Limit `maxComponentDepth' |
michael@0 | 5926 | arbitrarily to 100 to avoid stack exhaustion. |
michael@0 | 5927 | |
michael@0 | 5928 | 2010-06-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 5929 | |
michael@0 | 5930 | Add some memory checks (mainly for debugging). |
michael@0 | 5931 | |
michael@0 | 5932 | * src/base/ftstream.c (FT_Stream_EnterFrame): Exit with error |
michael@0 | 5933 | if the frame size is larger than the stream size. |
michael@0 | 5934 | |
michael@0 | 5935 | * src/base/ftsystem.c (ft_ansi_stream_io): Exit with error if |
michael@0 | 5936 | seeking a position larger than the stream size. |
michael@0 | 5937 | |
michael@0 | 5938 | 2010-06-25 Werner Lemberg <wl@gnu.org> |
michael@0 | 5939 | |
michael@0 | 5940 | [pfr] Fix Savannah bug #30261. |
michael@0 | 5941 | |
michael@0 | 5942 | * src/pfr/pfrobjs.c (pfr_face_init): Reject fonts which contain |
michael@0 | 5943 | neither outline nor bitmap glyphs. |
michael@0 | 5944 | |
michael@0 | 5945 | 2010-06-25 Werner Lemberg <wl@gnu.org> |
michael@0 | 5946 | |
michael@0 | 5947 | [cff] Fix Savannah bug #30254. |
michael@0 | 5948 | |
michael@0 | 5949 | * src/cff/cffload.c (cff_index_get_pointers): Do sanity check for |
michael@0 | 5950 | first offset also. |
michael@0 | 5951 | |
michael@0 | 5952 | 2010-06-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 5953 | |
michael@0 | 5954 | Initial fix for Savannah bug #30248 and #30249. |
michael@0 | 5955 | |
michael@0 | 5956 | * src/base/ftobjs.c (Mac_Read_POST_Resource): Check the error during |
michael@0 | 5957 | reading a PFB fragment embedded in LaserWriter PS font for Macintosh. |
michael@0 | 5958 | Reported by Robert Święcki. |
michael@0 | 5959 | |
michael@0 | 5960 | 2010-06-24 Werner Lemberg <wl@gnu.org> |
michael@0 | 5961 | |
michael@0 | 5962 | [pcf] Fix Savannah bug #30247. |
michael@0 | 5963 | |
michael@0 | 5964 | * src/pcf/pcfread.c (pcf_get_metrics): Disallow (invalid) fonts with |
michael@0 | 5965 | zero metrics. |
michael@0 | 5966 | |
michael@0 | 5967 | 2010-06-24 Graham Asher <graham.asher@btinternet.com> |
michael@0 | 5968 | |
michael@0 | 5969 | * src/smooth/ftgrays.c (gray_render_cubic): Fix algorithm. |
michael@0 | 5970 | The previous version was too aggressive, as demonstrated in |
michael@0 | 5971 | http://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00020.html. |
michael@0 | 5972 | |
michael@0 | 5973 | 2010-06-24 Werner Lemberg <wl@gnu.org> |
michael@0 | 5974 | |
michael@0 | 5975 | */*: Use module specific error names where appropriate. |
michael@0 | 5976 | |
michael@0 | 5977 | 2010-06-24 Werner Lemberg <wl@gnu.org> |
michael@0 | 5978 | |
michael@0 | 5979 | [sfnt] Fix Savannah bug #30236. |
michael@0 | 5980 | |
michael@0 | 5981 | * src/sfnt/ttcmap.c (tt_face_build_cmaps): Improve check for pointer |
michael@0 | 5982 | to `cmap_table'. |
michael@0 | 5983 | |
michael@0 | 5984 | 2010-06-24 Werner Lemberg <wl@gnu.org> |
michael@0 | 5985 | |
michael@0 | 5986 | [pfr] Fix Savannah bug #30235. |
michael@0 | 5987 | |
michael@0 | 5988 | * src/pfr/pfrgload.c (pfr_glyph_load_simple): Protect against |
michael@0 | 5989 | invalid indices if there aren't any coordinates for indexing. |
michael@0 | 5990 | |
michael@0 | 5991 | 2010-06-24 Werner Lemberg <wl@gnu.org> |
michael@0 | 5992 | |
michael@0 | 5993 | [bdf]: Font properties are optional. |
michael@0 | 5994 | |
michael@0 | 5995 | * src/bdf/bdflib.c (_bdf_readstream): Use special error code to |
michael@0 | 5996 | indicate a redo operation. |
michael@0 | 5997 | (_bdf_parse_start): Handle `CHARS' keyword here too and pass current |
michael@0 | 5998 | input line to `_bdf_parse_glyph'. |
michael@0 | 5999 | |
michael@0 | 6000 | 2010-06-23 Werner Lemberg <wl@gnu.org> |
michael@0 | 6001 | |
michael@0 | 6002 | [bdf] Fix Savannah bug #30220. |
michael@0 | 6003 | |
michael@0 | 6004 | * include/freetype/fterrdef.h |
michael@0 | 6005 | (BDF_Err_Missing_Fontboundingbox_Field): New error code. |
michael@0 | 6006 | |
michael@0 | 6007 | * src/bdf/bdflib.c (_bdf_parse_start): Check for missing |
michael@0 | 6008 | `FONTBOUNDINGBOX' field. |
michael@0 | 6009 | Avoid memory leak if there are multiple `FONT' lines (which is |
michael@0 | 6010 | invalid but doesn't hurt). |
michael@0 | 6011 | |
michael@0 | 6012 | 2010-06-21 Werner Lemberg <wl@gnu.org> |
michael@0 | 6013 | |
michael@0 | 6014 | [pfr] Fix Savannah bug #30168. |
michael@0 | 6015 | |
michael@0 | 6016 | * src/pfr/pfrgload.c (pfr_glyph_load_compound): Limit the number of |
michael@0 | 6017 | subglyphs to avoid endless recursion. |
michael@0 | 6018 | |
michael@0 | 6019 | 2010-06-20 Werner Lemberg <wl@gnu.org> |
michael@0 | 6020 | |
michael@0 | 6021 | [psaux] Fix Savannah bug #30145. |
michael@0 | 6022 | |
michael@0 | 6023 | * src/psaux/psobjs.c (t1_builder_add_contour): Protect against |
michael@0 | 6024 | `outline == NULL' which might happen in invalid fonts. |
michael@0 | 6025 | |
michael@0 | 6026 | 2010-06-19 Werner Lemberg <wl@gnu.org> |
michael@0 | 6027 | |
michael@0 | 6028 | [bdf] Fix Savannah bug #30135. |
michael@0 | 6029 | |
michael@0 | 6030 | * src/bdf/bdflib.c (_bdf_list_join): Don't modify value in static |
michael@0 | 6031 | string `empty'. |
michael@0 | 6032 | (_bdf_parse_glyph): Avoid memory leak in case of error. |
michael@0 | 6033 | |
michael@0 | 6034 | 2010-06-15 Werner Lemberg <wl@gnu.org> |
michael@0 | 6035 | |
michael@0 | 6036 | [autofit] Fix Savannah bug #30108. |
michael@0 | 6037 | |
michael@0 | 6038 | * src/autofit/afglobal.c (af_face_globals_compute_script_coverage): |
michael@0 | 6039 | Properly mask AF_DIGIT bit in comparison. |
michael@0 | 6040 | |
michael@0 | 6041 | 2010-06-11 Werner Lemberg <wl@gnu.org> |
michael@0 | 6042 | |
michael@0 | 6043 | [pshinter] Fix Savannah bug #30106. |
michael@0 | 6044 | |
michael@0 | 6045 | Point numbers for FreeType's implementation of hinting masks are |
michael@0 | 6046 | collected before the final number of points of a glyph has been |
michael@0 | 6047 | determined; in particular, the code for handling the `endchar' |
michael@0 | 6048 | opcode can reduce the number of points. |
michael@0 | 6049 | |
michael@0 | 6050 | * src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Assure that |
michael@0 | 6051 | `end_point' is not larger than `glyph->num_points'. |
michael@0 | 6052 | |
michael@0 | 6053 | 2010-06-11 Werner Lemberg <wl@gnu.org> |
michael@0 | 6054 | |
michael@0 | 6055 | [cff]: Improve debugging output. |
michael@0 | 6056 | |
michael@0 | 6057 | * src/cff/cffgload.c (cff_decoder_parse_charstrings) |
michael@0 | 6058 | <cff_op_hintmask>: Implement it. |
michael@0 | 6059 | |
michael@0 | 6060 | 2010-06-10 Graham Asher <graham.asher@btinternet.com> |
michael@0 | 6061 | |
michael@0 | 6062 | ftgrays: Speed up rendering of small cubic splines. |
michael@0 | 6063 | |
michael@0 | 6064 | * src/smooth/ftgrays.c (gray_render_cubic): Implement new, |
michael@0 | 6065 | simplified algorithm to find out whether the spline can be replaced |
michael@0 | 6066 | with two straight lines. See this thread for more: |
michael@0 | 6067 | |
michael@0 | 6068 | http://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00000.html |
michael@0 | 6069 | |
michael@0 | 6070 | 2010-06-09 Werner Lemberg <wl@gnu.org> |
michael@0 | 6071 | |
michael@0 | 6072 | [cff] Fix Savannah bug #30082. |
michael@0 | 6073 | |
michael@0 | 6074 | * src/cff/cffgload.c (cff_decoder_parse_charstrings) |
michael@0 | 6075 | <cff_op_callothersubr>: Protect against stack underflow. |
michael@0 | 6076 | |
michael@0 | 6077 | 2010-06-08 Werner Lemberg <wl@gnu.org> |
michael@0 | 6078 | |
michael@0 | 6079 | [cff] Fix Savannah bug #30053. |
michael@0 | 6080 | |
michael@0 | 6081 | * src/cff/cffparse.c (cff_parse_real): Handle border case where |
michael@0 | 6082 | `fraction_length' has value 10. |
michael@0 | 6083 | |
michael@0 | 6084 | 2010-06-07 Werner Lemberg <wl@gnu.org> |
michael@0 | 6085 | |
michael@0 | 6086 | Fix Savannah bug #30052. |
michael@0 | 6087 | This bug has been introduced with commit 2415cbf3. |
michael@0 | 6088 | |
michael@0 | 6089 | * src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Protect |
michael@0 | 6090 | against endless loop in case of corrupted font header data. |
michael@0 | 6091 | |
michael@0 | 6092 | 2010-05-26 Werner Lemberg <wl@gnu.org> |
michael@0 | 6093 | |
michael@0 | 6094 | Remove unused variable. |
michael@0 | 6095 | Found by Graham. |
michael@0 | 6096 | |
michael@0 | 6097 | * src/autofit/afhints.c (af_glyph_hints_reload): Remove unused |
michael@0 | 6098 | variable `first' in first block. |
michael@0 | 6099 | |
michael@0 | 6100 | 2010-05-22 Werner Lemberg <wl@gnu.org> |
michael@0 | 6101 | |
michael@0 | 6102 | Fix various memory problems found by linuxtesting.org. |
michael@0 | 6103 | |
michael@0 | 6104 | * src/base/ftgxval.c (FT_TrueTypeGX_Free, FT_ClassicKern_Free), |
michael@0 | 6105 | src/base/ftotval.c (FT_OpenType_Free), src/base/ftpfr.c |
michael@0 | 6106 | (ft_pfr_check): Check `face'. |
michael@0 | 6107 | |
michael@0 | 6108 | * src/base/ftobjs.c (FT_Get_Charmap_Index): Check `charmap' and |
michael@0 | 6109 | `charmap->face'. |
michael@0 | 6110 | (FT_Render_Glyph): Check `slot->face'. |
michael@0 | 6111 | (FT_Get_SubGlyph_Info): Check `glyph->subglyphs'. |
michael@0 | 6112 | |
michael@0 | 6113 | 2010-05-22 Werner Lemberg <wl@gnu.org> |
michael@0 | 6114 | |
michael@0 | 6115 | autofit: Remove dead code. |
michael@0 | 6116 | Suggested by Graham. |
michael@0 | 6117 | |
michael@0 | 6118 | * src/autofit/afhints.c (af_glyph_hints_compute_inflections): |
michael@0 | 6119 | Removed. |
michael@0 | 6120 | (af_glyph_hints_reload): Remove third argument. |
michael@0 | 6121 | Update all callers. |
michael@0 | 6122 | |
michael@0 | 6123 | 2010-05-21 Bram Tassyns <bramt@enfocus.be> |
michael@0 | 6124 | |
michael@0 | 6125 | [cff] Fix Savannah bug #27987. |
michael@0 | 6126 | |
michael@0 | 6127 | * src/cff/cffobjs.c (remove_subset_prefix): New function. |
michael@0 | 6128 | (cff_face_init): Use it to adjust `cffface->family_name'. |
michael@0 | 6129 | |
michael@0 | 6130 | 2010-05-20 Werner Lemberg <wl@gnu.org> |
michael@0 | 6131 | |
michael@0 | 6132 | TrueType: Make FreeType ignore maxSizeOfInstructions in `maxp'. |
michael@0 | 6133 | |
michael@0 | 6134 | Acroread does the same. |
michael@0 | 6135 | |
michael@0 | 6136 | * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Call |
michael@0 | 6137 | `Update_Max' to adjust size of instructions array if necessary and |
michael@0 | 6138 | add a rough safety check. |
michael@0 | 6139 | |
michael@0 | 6140 | (load_truetype_glyph): Save `loader->byte_len' before recursive |
michael@0 | 6141 | call. |
michael@0 | 6142 | |
michael@0 | 6143 | * src/truetype/ttinterp.h, src/truetype/ttinterp.c (Update_Max): |
michael@0 | 6144 | Declare it as FT_LOCAL. |
michael@0 | 6145 | |
michael@0 | 6146 | 2010-05-18 Hongbo Ni <hongbo@njstar.com> |
michael@0 | 6147 | |
michael@0 | 6148 | Apply Savannah patch #7196. |
michael@0 | 6149 | |
michael@0 | 6150 | * src/cff/cffgload.c (cff_slot_load): Prevent crash if CFF subfont |
michael@0 | 6151 | index is out of range. |
michael@0 | 6152 | |
michael@0 | 6153 | 2010-05-11 Werner Lemberg <wl@gnu.org> |
michael@0 | 6154 | |
michael@0 | 6155 | * docs/formats.txt: Give pointer to PCF documentation. |
michael@0 | 6156 | Information provided by Alan Coopersmith |
michael@0 | 6157 | <alan.coopersmith@oracle.com>. |
michael@0 | 6158 | |
michael@0 | 6159 | 2010-05-10 Ken Sharp <ken.sharp@artifex.com> |
michael@0 | 6160 | |
michael@0 | 6161 | [psaux] Fix Savannah bug #29846. |
michael@0 | 6162 | |
michael@0 | 6163 | Previously we discovered fonts which used `setcurrentpoint' to set |
michael@0 | 6164 | the initial point of a contour to 0,0. This caused FreeType to |
michael@0 | 6165 | raise an error, because the `setcurrentpoint' operator is only |
michael@0 | 6166 | supposed to be used with the results from an OtherSubr subroutine. |
michael@0 | 6167 | |
michael@0 | 6168 | This was fixed by simply ignoring the error and carrying on. |
michael@0 | 6169 | |
michael@0 | 6170 | Now we have found a font which uses setcurrentpoint to actually |
michael@0 | 6171 | establish a non-zero point for a contour during the course of a |
michael@0 | 6172 | glyph program. FWIW, these files may be produced by an application |
michael@0 | 6173 | called `Intaglio' on the Mac, when converting TrueType fonts to |
michael@0 | 6174 | Type 1. |
michael@0 | 6175 | |
michael@0 | 6176 | The fix allows the new invalid behaviour, the old invalid behaviour |
michael@0 | 6177 | and real proper usage of the operator to work the same way as Adobe |
michael@0 | 6178 | interpreters apparently do. |
michael@0 | 6179 | |
michael@0 | 6180 | * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Make |
michael@0 | 6181 | `setcurrentpoint' use the top two elements of the stack to establish |
michael@0 | 6182 | unconditionally the current x and y coordinates. |
michael@0 | 6183 | |
michael@0 | 6184 | Make the `flex' subroutine handling (OtherSubr 0) put the current |
michael@0 | 6185 | x,y coordinates onto the stack, instead of two dummy uninitialised |
michael@0 | 6186 | values. |
michael@0 | 6187 | |
michael@0 | 6188 | 2010-04-14 Ken Sharp <ken.sharp@artifex.com> |
michael@0 | 6189 | |
michael@0 | 6190 | [psaux] Fix Savannah bug #29444. |
michael@0 | 6191 | |
michael@0 | 6192 | * src/psaux/psobjs.c (t1_builder_start_point): Accept (invalid) |
michael@0 | 6193 | `lineto' immediately after `hsbw', in accordance with Acrobat, GS, |
michael@0 | 6194 | and others. |
michael@0 | 6195 | |
michael@0 | 6196 | 2010-04-14 Michał Cichoń <thedmd@artifexmundi.com> |
michael@0 | 6197 | |
michael@0 | 6198 | [psaux] Fix Savannah bug #27999. |
michael@0 | 6199 | |
michael@0 | 6200 | * src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID): Only remove |
michael@0 | 6201 | selected entry, not all. |
michael@0 | 6202 | |
michael@0 | 6203 | 2010-04-06 Jonathan Kew <jfkthame@gmail.com> |
michael@0 | 6204 | |
michael@0 | 6205 | [truetype] Add overflow check to `fvar' table. |
michael@0 | 6206 | |
michael@0 | 6207 | * src/truetype/ttgxvar.c (TT_Get_MM_Var): Check axis and instance |
michael@0 | 6208 | count. |
michael@0 | 6209 | |
michael@0 | 6210 | 2010-04-05 Ken Sharp <ken.sharp@artifex.com> |
michael@0 | 6211 | |
michael@0 | 6212 | [raster] Fix Savannah bug #29335. |
michael@0 | 6213 | |
michael@0 | 6214 | * src/raster/ftraster.c (Line_Up): Use slow multiplication to |
michael@0 | 6215 | prevent overflow. This shouldn't have any serious impact on speed, |
michael@0 | 6216 | however. |
michael@0 | 6217 | |
michael@0 | 6218 | 2010-04-05 Werner Lemberg <wl@gnu.org> |
michael@0 | 6219 | |
michael@0 | 6220 | Add new function `FT_Library_SetLcdFilterWeights'. |
michael@0 | 6221 | |
michael@0 | 6222 | This is based on code written by Lifter |
michael@0 | 6223 | <http://unixforum.org/index.php?showuser=11691>. It fixes |
michael@0 | 6224 | FreeDesktop bug #27386. |
michael@0 | 6225 | |
michael@0 | 6226 | * src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights): New |
michael@0 | 6227 | function. |
michael@0 | 6228 | |
michael@0 | 6229 | * include/freetype/ftlcdfil.h: Updated. |
michael@0 | 6230 | |
michael@0 | 6231 | * docs/CHANGES: Updated. |
michael@0 | 6232 | |
michael@0 | 6233 | 2010-04-01 John Tytgat <John.Tytgat@esko.com> |
michael@0 | 6234 | |
michael@0 | 6235 | [truetype] Fix Savannah bug #29404. |
michael@0 | 6236 | |
michael@0 | 6237 | * src/truetype/ttgload.c: Revert change 2752bd1a (check on bit 1 |
michael@0 | 6238 | of `head' table of TrueType fonts). |
michael@0 | 6239 | |
michael@0 | 6240 | 2010-03-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 6241 | |
michael@0 | 6242 | Fix `multi build' for Tytgat's CFF driver improvement. |
michael@0 | 6243 | |
michael@0 | 6244 | * src/base/cffload.h (cff_index_get_name): Added. |
michael@0 | 6245 | |
michael@0 | 6246 | 2010-03-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
michael@0 | 6247 | |
michael@0 | 6248 | Remove duplicated inclusion of `FT_OUTLINE_H' in ftobjs.c. |
michael@0 | 6249 | |
michael@0 | 6250 | * src/base/ftobjs.c: Remove 2nd inclusion of `FT_OUTLINE_H'. |
michael@0 | 6251 | |
michael@0 | 6252 | 2010-03-11 Chris Liddell <chris.liddell@artifex.com> |
michael@0 | 6253 | |
michael@0 | 6254 | [raster] Fix Savannah bug #27442. |
michael@0 | 6255 | |
michael@0 | 6256 | * src/raster/ftraster.c (ft_black_reset): Fix `buffer_size'. |
michael@0 | 6257 | |
michael@0 | 6258 | 2010-03-09 Werner Lemberg <wl@gnu.org> |
michael@0 | 6259 | |
michael@0 | 6260 | [cff] Remove unused variable. |
michael@0 | 6261 | Reported by Graham. |
michael@0 | 6262 | |
michael@0 | 6263 | * src/cff/cffparse.c (cff_parse_real): Remove `rest'. |
michael@0 | 6264 | |
michael@0 | 6265 | 2010-03-02 John Tytgat <John.Tytgat@esko.com> |
michael@0 | 6266 | |
michael@0 | 6267 | [cff] Improve CFF string (especially glyphname) lookup performance. |
michael@0 | 6268 | |
michael@0 | 6269 | We do this by avoiding memory allocation and file I/O. This is |
michael@0 | 6270 | Savannah patch #7104. |
michael@0 | 6271 | |
michael@0 | 6272 | * src/cff/cfftypes.h: Include PS cmaps service and |
michael@0 | 6273 | FT_INTERNAL_POSTSCRIPT_HINTS_H. |
michael@0 | 6274 | (CFF_SubFontRec): Remove `num_local_subrs'. |
michael@0 | 6275 | (CFF_FontRec): Add `num_strings', `strings', and `string_pool' |
michael@0 | 6276 | fields. |
michael@0 | 6277 | Remove `string_index' and `num_global_subrs' fields. |
michael@0 | 6278 | Use real types instead of `void' for `pshinter' and `psnames' fields. |
michael@0 | 6279 | |
michael@0 | 6280 | * src/cff/cffload.c: Don't include PS cmaps service. |
michael@0 | 6281 | (cff_index_get_pointers): Add `pool' parameter which allows to |
michael@0 | 6282 | insert an extra NUL character for each String INDEX entry. |
michael@0 | 6283 | (cff_index_get_name): Make it a local function. |
michael@0 | 6284 | (cff_index_get_string): New function. |
michael@0 | 6285 | (cff_subfont_load): Updated. |
michael@0 | 6286 | (cff_font_load): Initialize `num_strings', `strings', and |
michael@0 | 6287 | `string_pool' fields in the `CFF_FontRec' structure. |
michael@0 | 6288 | (cff_index_get_sid_string): Use `cff_index_get_string' instead of |
michael@0 | 6289 | `cff_index_get_name'. |
michael@0 | 6290 | (cff_font_done): Updated. |
michael@0 | 6291 | |
michael@0 | 6292 | * src/cff/cffload.h: Don't include PS cmaps service. |
michael@0 | 6293 | (cff_index_get_string): Added. |
michael@0 | 6294 | (cff_index_get_sid_string): Updated. |
michael@0 | 6295 | |
michael@0 | 6296 | * src/cff/cffobjs.c: Don't include PS cmaps service and |
michael@0 | 6297 | FT_INTERNAL_POSTSCRIPT_HINTS_H. |
michael@0 | 6298 | (cff_size_get_globals_funcs, cff_slot_init): Updated. |
michael@0 | 6299 | (cff_face_init): Follow `cff_index_get_name', |
michael@0 | 6300 | `cff_index_get_string', and `cff_index_get_sid_string' changes. |
michael@0 | 6301 | |
michael@0 | 6302 | * src/cff/cffcmap.c (cff_sid_free_glyph_name): Removed. |
michael@0 | 6303 | (cff_sid_to_glyph_name): Use `cff_index_get_cid_string'. |
michael@0 | 6304 | (cff_cmap_unicode_init): Updated. |
michael@0 | 6305 | |
michael@0 | 6306 | * src/cff/cffdrivr.c: Don't include PS cmap service. |
michael@0 | 6307 | (cff_get_glyph_name): Avoid unnecessary lookup for POSTSCRIPT_CMAPS |
michael@0 | 6308 | service. |
michael@0 | 6309 | (cff_get_glyph_name, cff_ps_get_font_info, cff_get_ros): Follow API |
michael@0 | 6310 | `cff_index_get_sid_string' change. |
michael@0 | 6311 | (cff_get_name_index): Use `cff_index_get_string' instead of |
michael@0 | 6312 | `cff_index_get_name'. |
michael@0 | 6313 | |
michael@0 | 6314 | * src/cff/cffgload.c: Don't include FT_INTERNAL_POSTSCRIPT_HINTS_H. |
michael@0 | 6315 | (cff_decoder_init, cff_decoder_prepare): Updated. |
michael@0 | 6316 | |
michael@0 | 6317 | 2010-02-27 Werner Lemberg <wl@gnu.org> |
michael@0 | 6318 | |
michael@0 | 6319 | Simplify code. |
michael@0 | 6320 | Suggested by Behdad. |
michael@0 | 6321 | |
michael@0 | 6322 | * src/base/ftobjs.c (FT_Get_First_Char): Don't use a loop since we |
michael@0 | 6323 | call FT_Get_Next_Char anyway if necessary. |
michael@0 | 6324 | |
michael@0 | 6325 | 2010-02-26 Behdad Esfahbod <behdad@behdad.org> |
michael@0 | 6326 | |
michael@0 | 6327 | Improve handling of invalid glyph indices in char->index functions. |
michael@0 | 6328 | |
michael@0 | 6329 | * src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Use a |
michael@0 | 6330 | loop. |
michael@0 | 6331 | |
michael@0 | 6332 | 2010-02-18 Chris Liddell <chris.liddell@artifex.com> |
michael@0 | 6333 | |
michael@0 | 6334 | [truetype] Fix Savannah bug #28905. |
michael@0 | 6335 | |
michael@0 | 6336 | Initialize phantom points before calling the incremental interface |
michael@0 | 6337 | to update glyph metrics. |
michael@0 | 6338 | |
michael@0 | 6339 | * src/truetype/ttgload.c (tt_get_metrics_incr_overrides) |
michael@0 | 6340 | [FT_CONFIG_OPTION_INCREMENTAL]: New function, split off from... |
michael@0 | 6341 | (tt_get_metrics): This. |
michael@0 | 6342 | Updated. |
michael@0 | 6343 | (load_truetype_glyph): Use tt_get_metrics_incr_overrides. |
michael@0 | 6344 | |
michael@0 | 6345 | ---------------------------------------------------------------------------- |
michael@0 | 6346 | |
michael@0 | 6347 | Copyright 2010-2013 by |
michael@0 | 6348 | David Turner, Robert Wilhelm, and Werner Lemberg. |
michael@0 | 6349 | |
michael@0 | 6350 | This file is part of the FreeType project, and may only be used, modified, |
michael@0 | 6351 | and distributed under the terms of the FreeType project license, |
michael@0 | 6352 | LICENSE.TXT. By continuing to use, modify, or distribute this file you |
michael@0 | 6353 | indicate that you have read the license and understand and accept it |
michael@0 | 6354 | fully. |
michael@0 | 6355 | |
michael@0 | 6356 | |
michael@0 | 6357 | Local Variables: |
michael@0 | 6358 | version-control: never |
michael@0 | 6359 | coding: utf-8 |
michael@0 | 6360 | End: |