From: Amine Khaldi Date: Sun, 13 Mar 2016 11:33:31 +0000 (+0000) Subject: [FREETYPE] Update to v2.6.3. CORE-10964 X-Git-Tag: ReactOS-0.4.1~219 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=8b061d20f4536b407efd42c152df3dfa10fdb8c2 [FREETYPE] Update to v2.6.3. CORE-10964 svn path=/trunk/; revision=71002 --- diff --git a/reactos/lib/3rdparty/freetype/CMakeLists.txt b/reactos/lib/3rdparty/freetype/CMakeLists.txt index 08d6e89296e..2760d2691e6 100644 --- a/reactos/lib/3rdparty/freetype/CMakeLists.txt +++ b/reactos/lib/3rdparty/freetype/CMakeLists.txt @@ -6,56 +6,57 @@ add_definitions( include_directories(include) list(APPEND SOURCE - src/autofit/autofit.c - src/base/ftadvanc.c - src/base/ftbbox.c - src/base/ftbitmap.c - src/base/ftcalc.c - src/base/ftcid.c - src/base/ftdbgmem.c - src/base/ftdebug.c - src/base/ftfntfmt.c - src/base/ftfstype.c - src/base/ftgasp.c - src/base/ftgloadr.c - src/base/ftglyph.c - src/base/ftgxval.c - src/base/ftinit.c - src/base/ftlcdfil.c - src/base/ftmm.c - src/base/ftobjs.c - src/base/ftotval.c - src/base/ftoutln.c - src/base/ftpatent.c - src/base/ftpfr.c - src/base/ftrfork.c - src/base/ftsnames.c - src/base/ftstream.c - src/base/ftstroke.c - src/base/ftsynth.c - src/base/ftsystem.c - src/base/fttrigon.c - src/base/fttype1.c - src/base/ftutil.c - src/base/ftwinfnt.c - src/bdf/bdf.c - src/bzip2/ftbzip2.c - src/cache/ftcache.c - src/cff/cff.c - src/cid/type1cid.c - src/gzip/ftgzip.c - src/lzw/ftlzw.c - src/pcf/pcf.c - src/pfr/pfr.c - src/psaux/psaux.c - src/pshinter/pshinter.c - src/psnames/psmodule.c - src/raster/raster.c - src/sfnt/sfnt.c - src/smooth/smooth.c - src/truetype/truetype.c - src/type1/type1.c - src/type42/type42.c - src/winfonts/winfnt.c) + src/autofit/autofit.c + src/base/ftadvanc.c + src/base/ftbbox.c + src/base/ftbitmap.c + src/base/ftcalc.c + src/base/ftcid.c + src/base/ftdbgmem.c + src/base/ftdebug.c + src/base/ftfntfmt.c + src/base/ftfstype.c + src/base/ftgasp.c + src/base/ftgloadr.c + src/base/ftglyph.c + src/base/ftgxval.c + src/base/fthash.c + src/base/ftinit.c + src/base/ftlcdfil.c + src/base/ftmm.c + src/base/ftobjs.c + src/base/ftotval.c + src/base/ftoutln.c + src/base/ftpatent.c + src/base/ftpfr.c + src/base/ftrfork.c + src/base/ftsnames.c + src/base/ftstream.c + src/base/ftstroke.c + src/base/ftsynth.c + src/base/ftsystem.c + src/base/fttrigon.c + src/base/fttype1.c + src/base/ftutil.c + src/base/ftwinfnt.c + src/bdf/bdf.c + src/bzip2/ftbzip2.c + src/cache/ftcache.c + src/cff/cff.c + src/cid/type1cid.c + src/gzip/ftgzip.c + src/lzw/ftlzw.c + src/pcf/pcf.c + src/pfr/pfr.c + src/psaux/psaux.c + src/pshinter/pshinter.c + src/psnames/psmodule.c + src/raster/raster.c + src/sfnt/sfnt.c + src/smooth/smooth.c + src/truetype/truetype.c + src/type1/type1.c + src/type42/type42.c + src/winfonts/winfnt.c) -add_library(freetype ${SOURCE}) \ No newline at end of file +add_library(freetype ${SOURCE}) diff --git a/reactos/lib/3rdparty/freetype/ChangeLog b/reactos/lib/3rdparty/freetype/ChangeLog index 31c2ac9e016..a19b4decfb5 100644 --- a/reactos/lib/3rdparty/freetype/ChangeLog +++ b/reactos/lib/3rdparty/freetype/ChangeLog @@ -1,3 +1,817 @@ +2016-02-07 Werner Lemberg + + * Version 2.6.3 released. + ========================= + + + Tag sources with `VER-2-6-3'. + + * docs/VERSION.DLL: Update documentation and bump version number to + 2.6.3. + + * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, + builds/windows/vc2005/index.html, + builds/windows/vc2008/freetype.vcproj, + builds/windows/vc2008/index.html, + builds/windows/vc2010/freetype.vcxproj, + builds/windows/vc2010/index.html, + builds/windows/visualc/freetype.dsp, + builds/windows/visualc/freetype.vcproj, + builds/windows/visualc/index.html, + builds/windows/visualce/freetype.dsp, + builds/windows/visualce/freetype.vcproj, + builds/windows/visualce/index.html, + builds/wince/vc2005-ce/freetype.vcproj, + builds/wince/vc2005-ce/index.html, + builds/wince/vc2008-ce/freetype.vcproj, + builds/wince/vc2008-ce/index.html: s/2.6.2/2.6.3/, s/262/263/. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3. + + * builds/unix/configure.raw (version_info): Set to 18:3:12. + * CMakeLists.txt (VERSION_PATCH): Set to 2. + + * docs/CHANGES: Updated. + +2016-02-07 Werner Lemberg + + Fix another runtime error found by clang's sanitizer (#47082). + + * src/base/ftstroke.c (ft_stroke_border_export): Properly handle + empty input buffer. + +2016-02-07 Werner Lemberg + + Fix runtime errors found by clang's sanitizer (#47082). + + * src/base/ftobjs.c (FT_Render_Glyph_Internal), src/base/ftoutln.c + (FT_Outline_Copy), src/cache/ftcsbits.c (ftc_sbit_copy_bitmap): + Properly handle empty input buffer. + +2016-02-07 Werner Lemberg + + [cff] Minor. + + * src/cff/cffgload.c (cff_decoder_parse_charstrings) : + Remove dead code. + +2016-02-07 Werner Lemberg + + [cff] Implement missing operators in new engine (except `random'). + + * src/cff/cf2font.h (CF2_STORAGE_SIZE): New macro. + + * src/cff/cf2intrp.c (cf2_interpT2CharString): Implement the + following operators: abs, add, and, div, drop, dup, eq, exch, get, + ifelse, index, mul, neg, not, or, put, roll, sqrt, sub. + + * src/cff/cf2stack.h, src/cff/cf2stack.c (cf2_stack_roll): New + auxiliary function for `roll' operator. + +2016-02-06 Werner Lemberg + + [cff] Fix some Type 2 operators in old CFF engine. + + * src/cff/cffgload.c (cff_decoder_parse_charstrings): Fix `eq' + operator, add `not' and (unsupported) `blend' operators. + +2016-02-05 Sebastian Rasmussen + + Make direct call of `make install' work (#47072). + + * builds/unix/unix-def.in (freetype-config): Make sure + `freetype-config' is generated for both make targets (`all' and + `install'). + +2016-02-05 Werner Lemberg + + [base] Fix advance width loading for MM and GX fonts (#47064). + + * src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Return false for + MM and GX fonts. + Update callers. + +2016-02-03 Werner Lemberg + + [cff] Fix handling of face_index == -1 for pure CFF. + + * src/cff/cffobjs.c (cff_face_init): Return correct number of faces. + +2016-01-30 Werner Lemberg + + [autofit] Minor tracing improvement. + + * src/autofit/afhints.c (af_glyph_hints_dump_points): Insert newline + at the start of a new contour. + +2016-01-28 Nikolaus Waxweiler + + Remove unpatented hinter (3/3). + + * include/freetype/config/ftoption.h + (TT_CONFIG_OPTION_UNPATENTED_HINTING): Remove. + + * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove + `ignore_unpatented_hinter' field. + Update users. + (FT_DEBUG_HOOK_UNPATENTED_HINTING): Remove. + Update users. + + * include/freetype/internal/tttypes.h (TT_FaceRec): Remove + `unpatented_hinting' field. + Update users. + + * src/base/ftpatent.c (_tt_check_patents_in_range, + _tt_check_patents_in_table, _tt_face_check_patents): Remove. + (FT_Face_CheckTrueTypePatents, FT_Face_SetUnpatentedHinting): + Replace code with dummies. + + * src/truetype/ttobjs.c (tt_face_init): Remove now defunct code. + * src/truetype/ttobjs.h (TT_GraphicsState): Remove `both_x_axis' + field. + +2016-01-28 Nikolaus Waxweiler + + Remove unpatented hinter (2/3). + + * devel/ftoption.h (TT_CONFIG_OPTION_UNPATENTED_HINTING): Remove. + +2016-01-28 Nikolaus Waxweiler + + Remove unpatented hinter (1/3). + + * src/truetype/ttinterp.c [TT_CONFIG_OPTION_UNPATENTED_HINTING]: + Remove all code related to this macro. + +2016-01-28 Werner Lemberg + + [autofit] Add blue-zone support for Kannada script. + + This essentially moves the Kannada script from the `Indic' hinter to + the `Latin' hinter. + + * src/autofit/afblue.dat: Add blue zone data for Kannada. + + * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. + + * src/autofit/afscript.h: Add Kannada standard characters and move + data out of AF_CONFIG_OPTION_INDIC block. + + * src/autofit/afranges.c: Move Kannada data out of + AF_CONFIG_OPTION_INDIC block. + + * src/autofit/afstyles.h: Update Kannada data; in particular, use + AF_WRITING_SYSTEM_LATIN. + +2016-01-22 Alexei Podtelezhnikov + + Better access to 64-bit integers for C99 compilers. + + * include/freetype/config/ftconfig.h [FT_LONG64]: Use + __STDC_VERSION__ to define 64-bit integers. + * builds/unix/ftconfig.in [FT_LONG64]: Ditto. + * builds/vms/ftconfig.h [FT_LONG64]: Ditto. + +2016-01-21 Werner Lemberg + + [gxvalid] Remove commented out code. + + * src/gxvalid/gxvcommn.c (gxv_EntryTable_validate): Do it. + +2016-01-20 Werner Lemberg + + [autofit] Complete last autofit commit. + + Problem reported by Kostya Serebryany . + + * src/autofit/afshaper.c (af_shaper_get_coverage) + [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Update signature. + +2016-01-20 Werner Lemberg + + Still handle `__FTERRORS_H__'. + + We need this for backwards compatibility. + + Problem reported by John Emmas . + + * include/freetype/fterrors.h: Fix inclusion guard so that + undefining either `FTERRORS_H_' or `__FTERRORS_H__' works as + expected. + +2016-01-19 Werner Lemberg + + [autofit] Fix handling of default script. + + Patch taken from ttfautohint, commit + 071ae2c00e0d67f9d19418f4fade1c23d27dc185. + + There were two bugs. + + - We now use non-standard script tags like `khms' for special + purposes. However, HarfBuzz maps such tags to `DFLT', and + without this commit the associated lookups were incorrectly + assigned to the non-standard tags. + + - Let's assume we have a Bengali font, and the font's `DFLT' + script tag handles the necessary lookups for Bengali, too. + Without this commit, the `DFLT' lookups were assigned to + ttfautohint's default script (usually `latn') before the + standard lookups for Bengali were handled. + + We now have the following order while searching for covered + glyph indices. + + special features of scripts (e.g. `sups' for Cyrillic) + Unicode mappings of scripts + remaining features of scripts (especially important for Indic + scripts) + default features of default script + + * src/autofit/afshaper.c, src/autofit/afshaper.h + (af_shaper_get_coverage): Add boolean parameter to indicate default + script. + Update all callers. + + * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): + Fix search order for coverages. + +2016-01-19 Werner Lemberg + + Various minor clang fixes. + + * src/autofit/afcjk.c (af_cjk_metrics_init_widths), + src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize + `ch'. + + * src/base/ftcalc.c (FT_MulFix) [FT_LONG64]: Add cast. + + * src/base/ftdbgmem.c (ft_mem_table_destroy): Add cast. + + * src/base/fthash.c (hash_num_lookup): Add cast. + + * src/base/fttrigon.c (ft_trig_downscale) [FT_LONG64]: Fix cast. + + * src/gxvalid/gxvcommn.c (gxv_EntryTable_validate): Comment out + redundant code. + + * src/type1/t1driver.c (t1_get_ps_font_value) : Add + cast. + + * src/type1/t1load.c (parse_subrs): Fix type of `count'. + +2016-01-19 Derek B. Noonburg + + [truetype] Add another tricky font. + + * src/truetype/ttobjs.c (TRICK_SFNT_IDS_NUM_FACES): Increase. + (sfnt_id): Add variant of `DFKaiShu'. + +2016-01-14 Alexei Podtelezhnikov + + [base] Empower `FT_Library_SetLcdFilterWeights'. + + * src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights): Enable filter + in addition to setting weights. + (FT_Library_SetLcdFilter): Clean out FT_FORCE_LIGHT_LCD_FILTER and + FT_FORCE_LEGACY_LCD_FILTER. + * include/freetype/ftlcdfil.h: Documentation update. + +2016-01-12 Werner Lemberg + + Don't use macro names that start with `_[A-Z]' [3/3]. + + Such macro names are reserved for both C and C++. + + * src/cache/ftccache.h: s/_FTC_FACE_ID_HASH/FTC_FACE_ID_HASH/. + Update all callers. + (FTC_CACHE_LOOKUP_CMP): Replace `_XXX' with `XXX_'. + * src/cache/ftcmru.c (FTC_MRULIST_LOOKUP_CMP): Ditto. + +2016-01-12 Werner Lemberg + + Don't use macro names that start with `_[A-Z]' [2/3]. + + Such macro names are reserved for both C and C++. + + * include/freetype/ftimage.h, src/raster/ftraster.c, + src/smooth/ftgrays.c, src/smooth/ftgrays.h: + s/_STANDALONE_/STANDALONE_/. + +2016-01-12 Werner Lemberg + + Don't use macro names that start with `_[A-Z]' [1/3]. + + Such macro names are reserved for both C and C++. + + * src/bdf/bdflib.c: Replace macros of the form `_BDF_XXX' with + `BDF_XXX_'. + +2016-01-12 Werner Lemberg + + Don't use macro names that contain `__' [2/2]. + + Such macro names are reserved for both C and C++. + + * src/cache/*: s/__/_/. + +2016-01-12 Werner Lemberg + + Don't use macro names that contain `__' [1/2]. + + Such macro names are reserved for both C and C++. + + * */*: Replace macros of the form `__XXX_H__' with `XXX_H_'. + +2016-01-10 Jered Gray + + [cff] Fix usage of `|' operator. + + * src/cff/cf2intrp.c (cf2_interpT2CharString) [cf2_cmdEXTENDEDNMBR, + default]: `|' is not guaranteed to be processed from left to right + by the compiler. However, the code repeatedly calls + `cf2_buf_readByte' to get the arguments to `|' ... Fix this. + +2015-12-25 Werner Lemberg + + [autofit] Make top-to-bottom hinting work in latin auto-hinter. + + This improves rendering of scripts like Bengali or Devanagari. + + * src/autofit/afhints.c (af_axis_hints_new_edge): Add parameter to + pass top-to-bottom hinting flag. This makes the function sort edges + in descending vertical position. + + * src/autofit/afhints.c: Updated. + + * src/autofit/aflatin.c (af_latin_hints_compute_edges, + af_latin_hint_edges): Use `top_to_bottom_hinting' flag. + + * src/autofit/afcjk.c (af_cjk_hints_compute_edges), + src/autofit/aflatin2.c (af_latin2_hints_compute_edges): Updated. + +2015-12-24 Werner Lemberg + + [autofit] Add hinting direction to `AF_ScriptClassRec'. + + Still unused. + + * src/autofit/afglobal.c (SCRIPT): Handle hinting direction. + + * src/autofit/aftypes.h (AF_ScriptClassRec): Add + `top_to_bottom_hinting' field. + (AF_HINTING_BOTTOM_TO_TOP, AF_HINTING_TOP_TO_BOTTOM): New macros. + (AF_DEFINE_SCRIPT_CLASS): Updated. + +2015-12-23 Werner Lemberg + + [autofit] Start implementing hinting direction (up/down, down/up). + + Right now, it does nothing. + + * src/autofit/afscript.h: Add another parameter to `SCRIPT', + specifying hinting direction. + + * src/autofit/afglobal.c, scr/autofit/afglobal.h, + src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/afshaper.c, + src/autofit/aftypes.h: Extend `SCRIPT' definitions. + +2015-12-22 Werner Lemberg + + * src/type1/t1load.c (parse_subrs): Fix memory leak (#46744). + +2015-12-22 Werner Lemberg + + [base] Make hash interface symmetric. + + Use `num' and `str' infixes everywhere. + + * src/base/fthash.c (ft_hash_init): Renamed to... + (hash_init): ... This. + (ft_hash_str_init, ft_hash_num_init): New functions. + (ft_hash_free): Renamed to... + (ft_hash_str_free): ... This. + + * include/freetype/internal/fthash.h: Updated. + + * src/bdf/bdflib.c, src/type1/t1load.c, src/type1/t1objs.c: Updated. + +2015-12-21 Werner Lemberg + + [type1] Avoid shift of negative numbers (#46732). + + * src/type1/t1load.c (parse_subrs): Do it. + +2015-12-20 Werner Lemberg + + [type1, psaux] Handle large values of num_subrs correctly (#46692). + + We now use a hash to map from subr indices to array elements holding + the subroutines, if necessary. + + * include/freetype/internal/t1types.h: Include FT_INTERNAL_HASH_H. + (T1_FontRec): Add `subrs_hash' field. + + * include/freetype/internal/psaux.h: Include FT_INTERNAL_HASH_H. + (T1_DecoderRec): Add `subrs_hash' field. + + * src/type1/t1load.h (T1_LoaderRec): Add `subrs_hash' field. + + * src/type1/t1driver.c: Include FT_INTERNAL_HASH_H. + (t1_ps_get_font_value) [PS_DICT_SUBR]: Look up hash if necessary. + + * src/type1/t1load.c: Include FT_INTERNAL_HASH_H. + (parse_subrs): Use hash for subr indices that exceed the allocated + number of subr slots. + (t1_init_loader): Remove unnecessary code. + (t1_done_loader, T1_Open_Face): Updated. + + * src/type1/t1gload.c (T1_Compute_Max_Advance, T1_Get_Advances, + T1_Load_Glyph): Updated. + + * src/type1/t1objs.c (T1_Face_Done): Updated. + + * src/psaux/t1decode.c: Include FT_INTERNAL_HASH_H. + (t1_decoder_parse_charstrings) [op_callsubr]: Look up hash if + necessary. + + * src/cid/cidgload.c (cid_load_glyph): Updated. + +2015-12-20 Werner Lemberg + + [base] Thinko: Remove free function pointer. + + We don't copy keys or values while hashing. + + * include/freetype/internal/fthash.h (FT_Hash_FreeFunc): Removed. + (FT_HashRec): Remove `free' field. + + * src/base/fthash.c (hash_str_free): Removed. + (ft_hash_init, ft_hash_free): Updated. + +2015-12-20 Werner Lemberg + + [base, bdf] Don't expose `FT_Hashnode' in hash functions. + + * src/base/fthash.c (hash_lookup, ft_hash_str_lookup, + ft_hash_num_lookup): Return pointer to `size_t' instead of + `FT_Hashnode'. + + * include/freetype/internal/fthash.h: Updated. + + * src/bdf/bdflib.c (bdf_get_property, _bdf_add_property, + bdf_get_font_property): Updated. + +2015-12-20 Werner Lemberg + + [base, bdf] Add number hashing. + + * src/base/fthash.c (hash_num_lookup, hash_num_compare): New + functions. + (ft_hash_init): Add argument to select between number and string + hashing. + (ft_hash_num_insert, ft_hash_num_lookup): New functions. + + * include/freetype/internal/fthash.h: Updated. + + * src/bdf/bdflib.c (_bdf_parse_start): Updated. + +2015-12-20 Werner Lemberg + + [base] Introduce hash lookup, compare, and free function pointers. + + * include/freetype/internal/fthash.c (FT_Hash_LookupFunc, + FT_Hash_CompareFunc, FT_Hash_FreeFunc): New typedefs. + (FT_HashRec): Add `lookup', `compare', and `free' fields. + + * src/base/fthash.c (hash_str_lookup, hash_str_compare, + hash_str_free): New functions. + (ft_hash_init): Set function pointers. + (hash_bucket, ft_hash_free): Use them. + +2015-12-20 Werner Lemberg + + [base, bdf] Use a union as a hash key. + + We want to support both an integer and a string key later on. + + * include/freetype/internal/fthash.h (FT_Hashkey): New union. + (FT_HashnodeRec): Updated. + (ft_hash_insert, ft_hash_lookup): Renamed to ... + (ft_hash_str_insert, ft_hash_str_lookup): ... this. + + * src/base/fthash.c (hash_bucket): Updated. + (ft_hash_insert, ft_hash_lookup): Renamed to ... + (hash_insert, hash_lookup): ... this. + (ft_hash_str_insert, ft_hash_str_lookup): New wrapper functions. + + * src/bdf/bdflib.c: Updated. + +2015-12-19 Werner Lemberg + + [bdf] Use new hash functions. + + * src/bdf/bdf.h: Include FT_INTERNAL_HASH_H. + (hashnode, hashtable): Removed. + (bdf_font_t): Use `FT_HashRec' type for `proptbl'. + + * src/bdf/bdflib.c: Remove all hash functions. + Update code for new hash structure and function names. + +2015-12-19 Werner Lemberg + + [bdf, base] Lift hash functions from bdf driver to base module. + + * src/base/fthash.c, include/freetype/internal/fthash.h: New files, + containing (massaged) code from `bdflib.c' and `bdf.h'. + + * include/freetype/internal/internal.h (FT_INTERNAL_HASH_H): New + macro. + + * src/base/ftbase.c: Include `fthash.c'. + + * src/base/Jamfile (_sources): Add `fthash'. + + * src/base/rules.mk (BASE_SRC): Add `fthash.c'. + + * docs/LICENSE.TXT: Updated. + +2015-12-15 Werner Lemberg + + [autofit] Add blue-zone support for Bengali script. + + This essentially moves the Bengali script from the `Indic' hinter to + the `Latin' hinter. + + * src/autofit/afblue.dat: Add blue zone data for Bengali. + + * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. + + * src/autofit/afscript.h: Add Bengali standard characters and move + data out of AF_CONFIG_OPTION_INDIC block. + + * src/autofit/afranges.c: Move Bengali data out of + AF_CONFIG_OPTION_INDIC block. + + * src/autofit/afstyles.h: Update Bengali data; in particular, use + AF_WRITING_SYSTEM_LATIN. + +2015-12-14 Ben Wagner + + [bdf] Remove dead code (#46625). + + The BDF specification only allows decimal numbers, no octal or + hexidecimal decoding is needed. + + * src/bdf/bdflib.c (_bdf_atoul, _bdf_atol, _bdf_atous, + _bdf_atos): Remove unused code and parameters. + Update all callers. + (odigits): Remove. + +2015-12-14 Werner Lemberg + + [base] Fix calls to `FT_Stream_Seek'. + + * src/base/ftobjs.c (Mac_Read_sfnt_Resource, FT_Open_Face): Set + `error'. + +2015-12-14 Ben Wagner + + [base] Check error when seeking to data supplied offset (#46635). + + * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): + `ft_lookup_PS_in_sfnt_stream' returns offset and and length from + user supplied data. Use of this these values must be checked. + +2015-12-13 Werner Lemberg + + [autofit] Add support for Myanmar script. + + * src/autofit/afblue.dat: Add blue zone data for Myanmar. + + * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. + + * src/autofit/afscript.h: Add Myanmar standard characters. + + * src/autofit/afranges.c: Add Myanmar data. + + * src/autofit/afstyles.h: Add Myanmar data. + +2015-12-12 Werner Lemberg + + * src/autofit/aflatin.c (af_latin_metrics_init_blues): Minor. + +2015-12-12 Werner Lemberg + + * src/autofit/afscript.h: Avoid potential crash. + +2015-12-10 Werner Lemberg + + [autofit] Restore OpenType feature check. + + This was removed while rewriting the HarfBuzz interface. + + * src/autofit/afglobal.h (AF_FaceGlobalsRec): Add `hb_buf' field to + hold internal HarfBuzz buffer, needed for feature comparison. + + * src/autofit/afglobal.c (af_face_globals_new, + af_face_globals_free): Initialize and destroy `hb_buf'. + + * src/autofit/afshaper.c (af_shaper_get_cluster): Compare character + (cluster) with and without applied feature. + + * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix tracing + message. + +2015-12-10 Werner Lemberg + + [autofit] Remove redundant code. + + * src/autofit/aflatin.c (af_latin_metrics_init_widths): Do it. + +2015-12-09 Werner Lemberg + + [autofit] Thinko. + + * src/autofit/aflatin.c (af_latin_metrics_init_blues): Don't count + empty blue zones (bug introduced 2015-12-06). + +2015-12-09 Werner Lemberg + + [autofit] Introduce subscript top blue zones. + + This feature is mainly for Khmer: The idea is to avoid a clash + between the top of subscript glyphs and the bottom of normal + baseline glyphs. + + This only works for character clusters mapped to multiple glyphs. + + * src/autofit/afblue.dat: Add subscript top blue zone for Khmer. + + * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_SUB_TOP): New + macro. + + * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. + + * src/autofit/aflatin.h (AF_LATIN_IS_SUB_TOP_BLUE, + AF_LATIN_BLUE_SUB_TOP): New macros. + + * src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle new + blue zone property. + Update tracing messages. + (af_latin_metrics_scale_dim): Handle new blue zone property. + (af_latin_hints_compute_blue_edges): Updated. + +2015-12-09 Werner Lemberg + + [autofit] Fix tracing message. + + * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Display + inactive blue zones also. + +2015-12-06 Werner Lemberg + + * src/autofit/afblue.dat: Add more Khmer clusters. + + Some fonts have incorrect ligatures; we need more samples to get a + good mean value. + + * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. + +2015-12-06 Werner Lemberg + + [autofit] Typos. + + * src/autofit/afshaper.c (af_shaper_buf_create, af_shaper_get_elem) + [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Make it compile. + +2015-12-06 Werner Lemberg + + [autofit] Add support for Khmer script. + + We split Khmer into two auto-hinter scripts: `Khmer' (`khmr') and + `Khmer symbols' (`khms', U+19E0-U+19FF). + + * src/autofit/afblue.dat: Add blue zone data for Khmer. + + * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. + + * src/autofit/afscript.h: Add Khmer standard characters. + + * src/autofit/afranges.c: Add Khmer data. + + * src/autofit/afstyles.h: Add Khmer data. + +2015-12-06 Werner Lemberg + + [autofit] Rewrite HarfBuzz interface to support character clusters. + + Scripts like Khmer have blue zones that can't be directly + represented by Unicode characters. Instead, it is necessary to let + HarfBuzz convert character clusters into proper glyph representation + forms, then deriving the blue zone information from the resulting + glyphs. + + * src/autofit/hbshim.c, src/autofit/hbshim.h: Replaced by... + * src/autofit/afshaper.c, src/autofit/afshaper.h: ... these two new + files, providing a new API to access HarfBuzz. + + The new API manages a HarfBuzz buffer with `af_shaper_buf_create' + and `af_shaper_buf_destroy'. The buffer receives a UTF8 encoded + string with function `af_shaper_get_cluster', and the resulting + glyph data (indices, advance widths, vertical offsets) can be + iteratively accessed with function `af_shaper_get_elem'. + + * src/autofit/afcjk.c (af_cjk_metrics_init_widths, + af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated. + + * src/autofit/aflatin.c (af_latin_metrics_init_widths, + af_latin_metrics_init_blues, af_latin_metrics_check_digits): + Updated. + + * include/freetype/internal/fttrace.h: s/afharfbuzz/afshaper/. + + * src/autofit/afglobal.c: s/hbshim.h/afshaper.h/. + (af_face_globals_compute_style_coverage): Updated. + + * src/autofit/afglocal.h: s/hbshim.h/afshaper.h/. + + * src/autofit/autofit.c: s/hbshim.c/afshaper.c/. + + * src/autofit/Jamfile, src/autofit/rules.mk (AUTOF_DRV_SRC): + Updated. + +2015-12-06 Werner Lemberg + + [autofit] Prepare forthcoming changes. + + This makes it easier to control the commits. + + * src/autofit/aflatin.c (af_latin_metrics_init_blues): Add dummy + loop. No functional change. + +2015-12-06 Werner Lemberg + + [autofit] Use string of standard characters. + + This is more flexible; additionally, it would allow character + clusters. + + * src/autofit/aftypes.h (SCRIPT, AF_DEFINE_SCRIPT_CLASS): Updated. + (AF_ScriptClassRec): Replace `standard_char[123]' with + `standard_charstring'. + + * src/autofit/afscript.h: Replace last three character arguments + of the `SCRIPT' calls with a string parameter, holding the standard + characters (in UTF-8 encoding) separated with spaces. + + * src/autofit/afglobal.c, src/autofit/afglobal.h, + src/autofit/afpic.c, src/autofit/afranges.c, src/autofit/hbshim.c + (SCRIPT): Updated. + + * src/autofit/afcjk.c (af_cjk_metrics_init_widths), + src/autofit/aflatin.c (af_latin_metrics_init_widths): Updated. + +2015-12-05 Werner Lemberg + + * src/autofit/afblue.dat: Separate blue zone characters with spaces. + + Another preparation for character cluster support. + + * src/autofit/afblue.c, src/autofit.afblue.h: Regenerated. + +2015-12-05 Werner Lemberg + + * src/tools/afblue.pl (convert_ascii_chars): Don't ignore spaces. + + Instead, reduce multiple spaces to a single one. We need this later + for supporting character clusters in `afblue.dat'. + +2015-12-05 Werner Lemberg + + * src/autofit/afblue.hin (GET_UTF8_CHAR): Use `do...while(0)'. + + * src/autofit/afblue.h: Regenerated. + +2015-12-05 Werner Lemberg + + * src/autofit/afwarp.c: s/INT_MIN/FT_INT_MIN/. + +2015-12-03 Werner Lemberg + + * builds/unix/install.mk (install): Remove stale `ft2build.h'. + +2015-12-01 Werner Lemberg + + [type1] Avoid dangling pointer (#46572). + + * src/type1/t1afm.c (T1_Read_Metrics): Properly reset + `face->afm_data'. + +2015-11-28 Alexei Podtelezhnikov + + * include/freetype/ftlcdfil.h: Documentation tweak. + 2015-11-28 Werner Lemberg * Version 2.6.2 released. @@ -322,7 +1136,7 @@ Handle them. (af_autofitter_init): Initialize them. -2015-11-02 Bungeman +2015-11-02 Ben Wagner [ftfuzzer] Add support for multiple files (patch #8779). @@ -385,7 +1199,7 @@ (PFR_CHECK_SIZE): ... this. (PFR_SIZE): [!PFR_CONFIG_NO_CHECKS]: Define to PFR_CHECK_SIZE. - * src/pfr/pfrload.c (pfr_log_font_count): Check `count'. + * src/pfr/pfrload.c (pfr_log_font_count): Check `count'. (pfr_extra_item_load_kerning_pairs): Remove tracing message. (pfr_phy_font_load): Use PFR_CHECK_SIZE where appropriate. Allocate `chars' after doing a size checks. @@ -530,7 +1344,7 @@ * src/type1/t1afm.c (T1_Read_Metrics): Fix memory leak (#46229). -2015-10-19 Bungeman +2015-10-19 Ben Wagner [cid] Better handle invalid glyph stream offsets (#46221). @@ -608,7 +1422,7 @@ * src/tools/ftfuzzer/README: New file. -2015-10-15 Bungeman +2015-10-15 Ben Wagner [bdf] Fix memory leak (#46213). @@ -631,7 +1445,7 @@ The used indices were off by 1. -2015-10-15 Bungeman +2015-10-15 Ben Wagner Werner Lemberg * src/tools/ftfuzzer/ftfuzzer.cc: Handle fixed sizes (#46211). @@ -977,7 +1791,7 @@ * src/autofit/afstyles.h: Add Lao data. 2015-09-27 suzuki toshiya - + [base] Fix a leak by broken sfnt-PS or resource fork (#46028). open_face_from_buffer() frees passed buffer if valid font @@ -3590,7 +4404,7 @@ ---------------------------------------------------------------------------- -Copyright 2015 by +Copyright 2015-2016 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, diff --git a/reactos/lib/3rdparty/freetype/README b/reactos/lib/3rdparty/freetype/README index f53644dacee..ff81cdf3b6d 100644 --- a/reactos/lib/3rdparty/freetype/README +++ b/reactos/lib/3rdparty/freetype/README @@ -1,4 +1,4 @@ - FreeType 2.6.2 + FreeType 2.6.3 ============== Homepage: http://www.freetype.org @@ -24,9 +24,9 @@ and download one of the following files. - freetype-doc-2.6.2.tar.bz2 - freetype-doc-2.6.2.tar.gz - ftdoc262.zip + freetype-doc-2.6.3.tar.bz2 + freetype-doc-2.6.3.tar.gz + ftdoc263.zip To view the documentation online, go to @@ -71,7 +71,7 @@ ---------------------------------------------------------------------- -Copyright 2006-2015 by +Copyright 2006-2016 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/reactos/lib/3rdparty/freetype/autogen.sh b/reactos/lib/3rdparty/freetype/autogen.sh index 8f05b2da7ef..78053ccb661 100644 --- a/reactos/lib/3rdparty/freetype/autogen.sh +++ b/reactos/lib/3rdparty/freetype/autogen.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright 2005-2015 by +# Copyright 2005-2016 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/reactos/lib/3rdparty/freetype/configure b/reactos/lib/3rdparty/freetype/configure index fd525816cac..9a09a4271c9 100644 --- a/reactos/lib/3rdparty/freetype/configure +++ b/reactos/lib/3rdparty/freetype/configure @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2002-2015 by +# Copyright 2002-2016 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/reactos/lib/3rdparty/freetype/devel/ft2build.h b/reactos/lib/3rdparty/freetype/devel/ft2build.h index b9eade2dd33..d055f51a290 100644 --- a/reactos/lib/3rdparty/freetype/devel/ft2build.h +++ b/reactos/lib/3rdparty/freetype/devel/ft2build.h @@ -4,7 +4,7 @@ /* */ /* FreeType 2 build and setup macros (development version). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -27,14 +27,14 @@ * */ -#ifndef __FT2BUILD_H__ -#define __FT2BUILD_H__ +#ifndef FT2BUILD_H_ +#define FT2BUILD_H_ #define FT_CONFIG_OPTIONS_H #include -#endif /* __FT2BUILD_H__ */ +#endif /* FT2BUILD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/devel/ftoption.h b/reactos/lib/3rdparty/freetype/devel/ftoption.h index f68b3adec6e..b354efdcdb0 100644 --- a/reactos/lib/3rdparty/freetype/devel/ftoption.h +++ b/reactos/lib/3rdparty/freetype/devel/ftoption.h @@ -4,7 +4,7 @@ /* */ /* User-selectable configuration macros (specification only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTOPTION_H__ -#define __FTOPTION_H__ +#ifndef FTOPTION_H_ +#define FTOPTION_H_ #include @@ -605,56 +605,6 @@ FT_BEGIN_HEADER #define TT_CONFIG_OPTION_SUBPIXEL_HINTING - /*************************************************************************/ - /* */ - /* If you define TT_CONFIG_OPTION_UNPATENTED_HINTING, a special version */ - /* of the TrueType bytecode interpreter is used that doesn't implement */ - /* any of the patented opcodes and algorithms. The patents related to */ - /* TrueType hinting have expired worldwide since May 2010; this option */ - /* is now deprecated. */ - /* */ - /* Note that the TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* */ - /* if you define TT_CONFIG_OPTION_BYTECODE_INTERPRETER; in other words, */ - /* either define TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */ - /* TT_CONFIG_OPTION_UNPATENTED_HINTING but not both at the same time. */ - /* */ - /* This macro is only useful for a small number of font files (mostly */ - /* for Asian scripts) that require bytecode interpretation to properly */ - /* load glyphs. For all other fonts, this produces unpleasant results, */ - /* thus the unpatented interpreter is never used to load glyphs from */ - /* TrueType fonts unless one of the following two options is used. */ - /* */ - /* - The unpatented interpreter is explicitly activated by the user */ - /* through the FT_PARAM_TAG_UNPATENTED_HINTING parameter tag */ - /* when opening the FT_Face. */ - /* */ - /* - FreeType detects that the FT_Face corresponds to one of the */ - /* `trick' fonts (e.g., `Mingliu') it knows about. The font engine */ - /* contains a hard-coded list of font names and other matching */ - /* parameters (see function `tt_face_init' in file */ - /* `src/truetype/ttobjs.c'). */ - /* */ - /* Here a sample code snippet for using FT_PARAM_TAG_UNPATENTED_HINTING. */ - /* */ - /* { */ - /* FT_Parameter parameter; */ - /* FT_Open_Args open_args; */ - /* */ - /* */ - /* parameter.tag = FT_PARAM_TAG_UNPATENTED_HINTING; */ - /* */ - /* open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; */ - /* open_args.pathname = my_font_pathname; */ - /* open_args.num_params = 1; */ - /* open_args.params = ¶meter; */ - /* */ - /* error = FT_Open_Face( library, &open_args, index, &face ); */ - /* ... */ - /* } */ - /* */ -/* #define TT_CONFIG_OPTION_UNPATENTED_HINTING */ - - /*************************************************************************/ /* */ /* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the */ @@ -856,14 +806,11 @@ FT_BEGIN_HEADER /* - * This macro is defined if either unpatented or native TrueType - * hinting is requested by the definitions above. + * This macro is defined if native TrueType hinting is requested by the + * definitions above. */ #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER #define TT_USE_BYTECODE_INTERPRETER -#undef TT_CONFIG_OPTION_UNPATENTED_HINTING -#elif defined TT_CONFIG_OPTION_UNPATENTED_HINTING -#define TT_USE_BYTECODE_INTERPRETER #endif @@ -898,7 +845,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTOPTION_H__ */ +#endif /* FTOPTION_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/config/ftconfig.h b/reactos/lib/3rdparty/freetype/include/freetype/config/ftconfig.h index d4d79936df1..157a704fa81 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/config/ftconfig.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/config/ftconfig.h @@ -4,7 +4,7 @@ /* */ /* ANSI-specific configuration file (specification only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -35,8 +35,8 @@ /* */ /*************************************************************************/ -#ifndef __FTCONFIG_H__ -#define __FTCONFIG_H__ +#ifndef FTCONFIG_H_ +#define FTCONFIG_H_ #include #include FT_CONFIG_OPTIONS_H @@ -275,7 +275,13 @@ FT_BEGIN_HEADER /* */ #elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 ) -#if defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */ +#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L + +#define FT_LONG64 +#define FT_INT64 long long int +#define FT_UINT64 unsigned long long int + +#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */ /* this compiler provides the __int64 type */ #define FT_LONG64 @@ -309,7 +315,7 @@ FT_BEGIN_HEADER #define FT_INT64 long long int #define FT_UINT64 unsigned long long int -#endif /* _MSC_VER */ +#endif /* __STDC_VERSION__ >= 199901L */ #endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */ @@ -461,7 +467,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTCONFIG_H__ */ +#endif /* FTCONFIG_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/config/ftheader.h b/reactos/lib/3rdparty/freetype/include/freetype/config/ftheader.h index 55f833db0fb..68e14834d49 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/config/ftheader.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/config/ftheader.h @@ -4,7 +4,7 @@ /* */ /* Build macros of the FreeType 2 library. */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -15,8 +15,8 @@ /* */ /***************************************************************************/ -#ifndef __FT_HEADER_H__ -#define __FT_HEADER_H__ +#ifndef FTHEADER_H_ +#define FTHEADER_H_ /*@***********************************************************************/ @@ -753,8 +753,7 @@ * FT_UNPATENTED_HINTING_H * * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs color filtering for subpixel rendering. + * Deprecated. */ #define FT_UNPATENTED_HINTING_H @@ -766,7 +765,7 @@ * * @description: * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs color filtering for subpixel rendering. + * FreeType~2 API which performs incremental glyph loading. */ #define FT_INCREMENTAL_H @@ -828,7 +827,7 @@ #endif /* FT2_BUILD_LIBRARY */ -#endif /* __FT2_BUILD_H__ */ +#endif /* FTHEADER_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/config/ftoption.h b/reactos/lib/3rdparty/freetype/include/freetype/config/ftoption.h index b481f8fbac5..a8097feb0a6 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/config/ftoption.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/config/ftoption.h @@ -4,7 +4,7 @@ /* */ /* User-selectable configuration macros (specification only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTOPTION_H__ -#define __FTOPTION_H__ +#ifndef FTOPTION_H_ +#define FTOPTION_H_ #include @@ -605,56 +605,6 @@ FT_BEGIN_HEADER /* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING */ - /*************************************************************************/ - /* */ - /* If you define TT_CONFIG_OPTION_UNPATENTED_HINTING, a special version */ - /* of the TrueType bytecode interpreter is used that doesn't implement */ - /* any of the patented opcodes and algorithms. The patents related to */ - /* TrueType hinting have expired worldwide since May 2010; this option */ - /* is now deprecated. */ - /* */ - /* Note that the TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* */ - /* if you define TT_CONFIG_OPTION_BYTECODE_INTERPRETER; in other words, */ - /* either define TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */ - /* TT_CONFIG_OPTION_UNPATENTED_HINTING but not both at the same time. */ - /* */ - /* This macro is only useful for a small number of font files (mostly */ - /* for Asian scripts) that require bytecode interpretation to properly */ - /* load glyphs. For all other fonts, this produces unpleasant results, */ - /* thus the unpatented interpreter is never used to load glyphs from */ - /* TrueType fonts unless one of the following two options is used. */ - /* */ - /* - The unpatented interpreter is explicitly activated by the user */ - /* through the FT_PARAM_TAG_UNPATENTED_HINTING parameter tag */ - /* when opening the FT_Face. */ - /* */ - /* - FreeType detects that the FT_Face corresponds to one of the */ - /* `trick' fonts (e.g., `Mingliu') it knows about. The font engine */ - /* contains a hard-coded list of font names and other matching */ - /* parameters (see function `tt_face_init' in file */ - /* `src/truetype/ttobjs.c'). */ - /* */ - /* Here a sample code snippet for using FT_PARAM_TAG_UNPATENTED_HINTING. */ - /* */ - /* { */ - /* FT_Parameter parameter; */ - /* FT_Open_Args open_args; */ - /* */ - /* */ - /* parameter.tag = FT_PARAM_TAG_UNPATENTED_HINTING; */ - /* */ - /* open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; */ - /* open_args.pathname = my_font_pathname; */ - /* open_args.num_params = 1; */ - /* open_args.params = ¶meter; */ - /* */ - /* error = FT_Open_Face( library, &open_args, index, &face ); */ - /* ... */ - /* } */ - /* */ -/* #define TT_CONFIG_OPTION_UNPATENTED_HINTING */ - - /*************************************************************************/ /* */ /* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the */ @@ -856,14 +806,11 @@ FT_BEGIN_HEADER /* - * This macro is defined if either unpatented or native TrueType - * hinting is requested by the definitions above. + * This macro is defined if native TrueType hinting is requested by the + * definitions above. */ #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER #define TT_USE_BYTECODE_INTERPRETER -#undef TT_CONFIG_OPTION_UNPATENTED_HINTING -#elif defined TT_CONFIG_OPTION_UNPATENTED_HINTING -#define TT_USE_BYTECODE_INTERPRETER #endif @@ -898,7 +845,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTOPTION_H__ */ +#endif /* FTOPTION_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/config/ftstdlib.h b/reactos/lib/3rdparty/freetype/include/freetype/config/ftstdlib.h index 4b471d4d15d..9daea56f7fc 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/config/ftstdlib.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/config/ftstdlib.h @@ -5,7 +5,7 @@ /* ANSI-specific library and header configuration file (specification */ /* only). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -23,14 +23,13 @@ /* FreeType normally requires. It also defines macros to rename the */ /* standard functions within the FreeType source code. */ /* */ - /* Load a file which defines __FTSTDLIB_H__ before this one to override */ - /* it. */ + /* Load a file which defines FTSTDLIB_H_ before this one to override it. */ /* */ /*************************************************************************/ -#ifndef __FTSTDLIB_H__ -#define __FTSTDLIB_H__ +#ifndef FTSTDLIB_H_ +#define FTSTDLIB_H_ #include @@ -168,7 +167,7 @@ #include -#endif /* __FTSTDLIB_H__ */ +#endif /* FTSTDLIB_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/freetype.h b/reactos/lib/3rdparty/freetype/include/freetype/freetype.h index 41379ea1843..4666d489361 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/freetype.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/freetype.h @@ -4,7 +4,7 @@ /* */ /* FreeType high-level API and common types (specification only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FREETYPE_H__ -#define __FREETYPE_H__ +#ifndef FREETYPE_H_ +#define FREETYPE_H_ #ifndef FT_FREETYPE_H @@ -141,7 +141,6 @@ FT_BEGIN_HEADER /* FT_FACE_FLAG_GLYPH_NAMES */ /* FT_FACE_FLAG_EXTERNAL_STREAM */ /* FT_FACE_FLAG_HINTER */ - /* FT_FACE_FLAG_TRICKY */ /* */ /* FT_HAS_HORIZONTAL */ /* FT_HAS_VERTICAL */ @@ -3015,6 +3014,22 @@ FT_BEGIN_HEADER /* the glyph image format, finding the relevant renderer, and */ /* invoking it. */ /* */ + /* */ + /* slot :: A handle to the glyph slot containing the image to */ + /* convert. */ + /* */ + /* */ + /* render_mode :: This is the render mode used to render the glyph */ + /* image into a bitmap. See @FT_Render_Mode for a */ + /* list of possible values. */ + /* */ + /* */ + /* FreeType error code. 0~means success. */ + /* */ + /* */ + /* To get meaningful results, font scaling values must be set with */ + /* functions like @FT_Set_Char_Size before calling FT_Render_Glyph. */ + /* */ /* When FreeType outputs a bitmap of a glyph, it really outputs an */ /* alpha coverage map. If a pixel is completely covered by a */ /* filled-in outline, the bitmap contains 0xFF at that pixel, meaning */ @@ -3092,22 +3107,6 @@ FT_BEGIN_HEADER /* linear blending is done 3~times per pixel: red foreground subpixel */ /* to red background subpixel and so on for green and blue. */ /* */ - /* */ - /* slot :: A handle to the glyph slot containing the image to */ - /* convert. */ - /* */ - /* */ - /* render_mode :: This is the render mode used to render the glyph */ - /* image into a bitmap. See @FT_Render_Mode for a */ - /* list of possible values. */ - /* */ - /* */ - /* FreeType error code. 0~means success. */ - /* */ - /* */ - /* To get meaningful results, font scaling values must be set with */ - /* functions like @FT_Set_Char_Size before calling FT_Render_Glyph. */ - /* */ FT_EXPORT( FT_Error ) FT_Render_Glyph( FT_GlyphSlot slot, FT_Render_Mode render_mode ); @@ -4173,7 +4172,7 @@ FT_BEGIN_HEADER */ #define FREETYPE_MAJOR 2 #define FREETYPE_MINOR 6 -#define FREETYPE_PATCH 2 +#define FREETYPE_PATCH 3 /*************************************************************************/ @@ -4218,20 +4217,13 @@ FT_BEGIN_HEADER /* FT_Face_CheckTrueTypePatents */ /* */ /* */ - /* Parse all bytecode instructions of a TrueType font file to check */ - /* whether any of the patented opcodes are used. This is only useful */ - /* if you want to be able to use the unpatented hinter with */ - /* fonts that do *not* use these opcodes. */ - /* */ - /* Note that this function parses *all* glyph instructions in the */ - /* font file, which may be slow. */ + /* Deprecated, does nothing. */ /* */ /* */ /* face :: A face handle. */ /* */ /* */ - /* 1~if this is a TrueType font that uses one of the patented */ - /* opcodes, 0~otherwise. */ + /* Always returns false. */ /* */ /* */ /* Since May 2010, TrueType hinting is no longer patented. */ @@ -4249,9 +4241,7 @@ FT_BEGIN_HEADER /* FT_Face_SetUnpatentedHinting */ /* */ /* */ - /* Enable or disable the unpatented hinter for a given face. */ - /* Only enable it if you have determined that the face doesn't */ - /* use any patented opcodes (see @FT_Face_CheckTrueTypePatents). */ + /* Deprecated, does nothing. */ /* */ /* */ /* face :: A face handle. */ @@ -4259,9 +4249,7 @@ FT_BEGIN_HEADER /* value :: New boolean setting. */ /* */ /* */ - /* The old setting value. This will always be false if this is not */ - /* an SFNT font, or if the unpatented hinter is not compiled in this */ - /* instance of the library. */ + /* Always returns false. */ /* */ /* */ /* Since May 2010, TrueType hinting is no longer patented. */ @@ -4278,7 +4266,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FREETYPE_H__ */ +#endif /* FREETYPE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftadvanc.h b/reactos/lib/3rdparty/freetype/include/freetype/ftadvanc.h index b4d2aed5677..023dd84b7a3 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftadvanc.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftadvanc.h @@ -4,7 +4,7 @@ /* */ /* Quick computation of advance widths (specification only). */ /* */ -/* Copyright 2008-2015 by */ +/* Copyright 2008-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTADVANC_H__ -#define __FTADVANC_H__ +#ifndef FTADVANC_H_ +#define FTADVANC_H_ #include @@ -181,7 +181,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTADVANC_H__ */ +#endif /* FTADVANC_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftautoh.h b/reactos/lib/3rdparty/freetype/include/freetype/ftautoh.h index d0f6445ed1f..8052dd23dc4 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftautoh.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftautoh.h @@ -4,7 +4,7 @@ /* */ /* FreeType API for controlling the auto-hinter (specification only). */ /* */ -/* Copyright 2012-2015 by */ +/* Copyright 2012-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTAUTOH_H__ -#define __FTAUTOH_H__ +#ifndef FTAUTOH_H_ +#define FTAUTOH_H_ #include #include FT_FREETYPE_H @@ -497,7 +497,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTAUTOH_H__ */ +#endif /* FTAUTOH_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftbbox.h b/reactos/lib/3rdparty/freetype/include/freetype/ftbbox.h index 9d9d0407676..2a4d214416d 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftbbox.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftbbox.h @@ -4,7 +4,7 @@ /* */ /* FreeType exact bbox computation (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -27,8 +27,8 @@ /*************************************************************************/ -#ifndef __FTBBOX_H__ -#define __FTBBOX_H__ +#ifndef FTBBOX_H_ +#define FTBBOX_H_ #include @@ -90,7 +90,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTBBOX_H__ */ +#endif /* FTBBOX_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftbdf.h b/reactos/lib/3rdparty/freetype/include/freetype/ftbdf.h index 0bdabf481cb..016dba086df 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftbdf.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftbdf.h @@ -4,7 +4,7 @@ /* */ /* FreeType API for accessing BDF-specific strings (specification). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTBDF_H__ -#define __FTBDF_H__ +#ifndef FTBDF_H_ +#define FTBDF_H_ #include #include FT_FREETYPE_H @@ -204,7 +204,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTBDF_H__ */ +#endif /* FTBDF_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftbitmap.h b/reactos/lib/3rdparty/freetype/include/freetype/ftbitmap.h index 46cc47b7d1e..0eac7b9d7db 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftbitmap.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftbitmap.h @@ -4,7 +4,7 @@ /* */ /* FreeType utility functions for bitmaps (specification). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTBITMAP_H__ -#define __FTBITMAP_H__ +#ifndef FTBITMAP_H_ +#define FTBITMAP_H_ #include @@ -234,7 +234,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTBITMAP_H__ */ +#endif /* FTBITMAP_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftbzip2.h b/reactos/lib/3rdparty/freetype/include/freetype/ftbzip2.h index c25f9469dff..b7f2eee87df 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftbzip2.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftbzip2.h @@ -4,7 +4,7 @@ /* */ /* Bzip2-compressed stream support. */ /* */ -/* Copyright 2010-2015 by */ +/* Copyright 2010-2016 by */ /* Joel Klinghed. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTBZIP2_H__ -#define __FTBZIP2_H__ +#ifndef FTBZIP2_H_ +#define FTBZIP2_H_ #include #include FT_FREETYPE_H @@ -96,7 +96,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTBZIP2_H__ */ +#endif /* FTBZIP2_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftcache.h b/reactos/lib/3rdparty/freetype/include/freetype/ftcache.h index 68525bb8294..6c9f2c42b0a 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftcache.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftcache.h @@ -4,7 +4,7 @@ /* */ /* FreeType Cache subsystem (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTCACHE_H__ -#define __FTCACHE_H__ +#ifndef FTCACHE_H_ +#define FTCACHE_H_ #include @@ -1051,7 +1051,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTCACHE_H__ */ +#endif /* FTCACHE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftcffdrv.h b/reactos/lib/3rdparty/freetype/include/freetype/ftcffdrv.h index 8500346c877..9dea980ab6d 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftcffdrv.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftcffdrv.h @@ -4,7 +4,7 @@ /* */ /* FreeType API for controlling the CFF driver (specification only). */ /* */ -/* Copyright 2013-2015 by */ +/* Copyright 2013-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTCFFDRV_H__ -#define __FTCFFDRV_H__ +#ifndef FTCFFDRV_H_ +#define FTCFFDRV_H_ #include #include FT_FREETYPE_H @@ -256,7 +256,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTCFFDRV_H__ */ +#endif /* FTCFFDRV_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftcid.h b/reactos/lib/3rdparty/freetype/include/freetype/ftcid.h index 05741c85b7a..140f2f87f76 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftcid.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftcid.h @@ -4,7 +4,7 @@ /* */ /* FreeType API for accessing CID font information (specification). */ /* */ -/* Copyright 2007-2015 by */ +/* Copyright 2007-2016 by */ /* Dereg Clegg and Michael Toftdal. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTCID_H__ -#define __FTCID_H__ +#ifndef FTCID_H_ +#define FTCID_H_ #include #include FT_FREETYPE_H @@ -162,7 +162,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTCID_H__ */ +#endif /* FTCID_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/fterrdef.h b/reactos/lib/3rdparty/freetype/include/freetype/fterrdef.h index 3bf4e63b569..3f53dd58200 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/fterrdef.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/fterrdef.h @@ -4,7 +4,7 @@ /* */ /* FreeType error codes (specification). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/fterrors.h b/reactos/lib/3rdparty/freetype/include/freetype/fterrors.h index 0507b9ad7dc..e15bfb001ed 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/fterrors.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/fterrors.h @@ -4,7 +4,7 @@ /* */ /* FreeType error code handling (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -72,13 +72,13 @@ /* */ /* This macro ends the list. */ /* */ - /* Additionally, you have to undefine `__FTERRORS_H__' before */ - /* #including this file. */ + /* Additionally, you have to undefine `FTERRORS_H_' before #including */ + /* this file. */ /* */ /* Here is a simple example. */ /* */ /* { */ - /* #undef __FTERRORS_H__ */ + /* #undef FTERRORS_H_ */ /* #define FT_ERRORDEF( e, v, s ) { e, s }, */ /* #define FT_ERROR_START_LIST { */ /* #define FT_ERROR_END_LIST { 0, NULL } }; */ @@ -99,7 +99,17 @@ /* */ -#ifndef __FTERRORS_H__ + /* In previous FreeType versions we used `__FTERRORS_H__'. However, */ + /* using two successive underscores in a non-system symbol name */ + /* violates the C (and C++) standard, so it was changed to the */ + /* current form. In spite of this, we have to make */ + /* */ + /* #undefine __FTERRORS_H__ */ + /* */ + /* work for backwards compatibility. */ + /* */ +#if !( defined( FTERRORS_H_ ) && defined ( __FTERRORS_H__ ) ) +#define FTERRORS_H_ #define __FTERRORS_H__ @@ -210,7 +220,7 @@ #undef FT_ERR_PREFIX #endif -#endif /* __FTERRORS_H__ */ +#endif /* !(FTERRORS_H_ && __FTERRORS_H__) */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftfntfmt.h b/reactos/lib/3rdparty/freetype/include/freetype/ftfntfmt.h index 1f8ff28f104..bd423247bb6 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftfntfmt.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftfntfmt.h @@ -4,7 +4,7 @@ /* */ /* Support functions for font formats. */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTFNTFMT_H__ -#define __FTFNTFMT_H__ +#ifndef FTFNTFMT_H_ +#define FTFNTFMT_H_ #include #include FT_FREETYPE_H @@ -89,4 +89,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTFNTFMT_H__ */ +#endif /* FTFNTFMT_H_ */ + + +/* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftgasp.h b/reactos/lib/3rdparty/freetype/include/freetype/ftgasp.h index 9a9b6321b32..3f5b3bc6954 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftgasp.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftgasp.h @@ -4,7 +4,7 @@ /* */ /* Access of TrueType's `gasp' table (specification). */ /* */ -/* Copyright 2007-2015 by */ +/* Copyright 2007-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef _FT_GASP_H_ -#define _FT_GASP_H_ +#ifndef FTGASP_H_ +#define FTGASP_H_ #include #include FT_FREETYPE_H @@ -123,7 +123,7 @@ /* */ -#endif /* _FT_GASP_H_ */ +#endif /* FTGASP_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftglyph.h b/reactos/lib/3rdparty/freetype/include/freetype/ftglyph.h index 803ad396219..d9840a81fc0 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftglyph.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftglyph.h @@ -4,7 +4,7 @@ /* */ /* FreeType convenience functions to handle glyphs (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -29,8 +29,8 @@ /*************************************************************************/ -#ifndef __FTGLYPH_H__ -#define __FTGLYPH_H__ +#ifndef FTGLYPH_H_ +#define FTGLYPH_H_ #include @@ -594,7 +594,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTGLYPH_H__ */ +#endif /* FTGLYPH_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftgxval.h b/reactos/lib/3rdparty/freetype/include/freetype/ftgxval.h index 0e9ac1dad31..a58e86a0404 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftgxval.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftgxval.h @@ -4,7 +4,7 @@ /* */ /* FreeType API for validating TrueTypeGX/AAT tables (specification). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* Masatake YAMATO, Redhat K.K, */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ @@ -25,8 +25,8 @@ /***************************************************************************/ -#ifndef __FTGXVAL_H__ -#define __FTGXVAL_H__ +#ifndef FTGXVAL_H_ +#define FTGXVAL_H_ #include #include FT_FREETYPE_H @@ -351,7 +351,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTGXVAL_H__ */ +#endif /* FTGXVAL_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftgzip.h b/reactos/lib/3rdparty/freetype/include/freetype/ftgzip.h index b3a532d5e15..9e658b0df16 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftgzip.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftgzip.h @@ -4,7 +4,7 @@ /* */ /* Gzip-compressed stream support. */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTGZIP_H__ -#define __FTGZIP_H__ +#ifndef FTGZIP_H_ +#define FTGZIP_H_ #include #include FT_FREETYPE_H @@ -142,7 +142,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTGZIP_H__ */ +#endif /* FTGZIP_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftimage.h b/reactos/lib/3rdparty/freetype/include/freetype/ftimage.h index 82f284c4f98..1d557c93f53 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftimage.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftimage.h @@ -5,7 +5,7 @@ /* FreeType glyph image formats and default raster interface */ /* (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -24,12 +24,12 @@ /*************************************************************************/ -#ifndef __FTIMAGE_H__ -#define __FTIMAGE_H__ +#ifndef FTIMAGE_H_ +#define FTIMAGE_H_ - /* _STANDALONE_ is from ftgrays.c */ -#ifndef _STANDALONE_ + /* STANDALONE_ is from ftgrays.c */ +#ifndef STANDALONE_ #include #endif @@ -1203,7 +1203,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTIMAGE_H__ */ +#endif /* FTIMAGE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftincrem.h b/reactos/lib/3rdparty/freetype/include/freetype/ftincrem.h index 840af25b059..46b58b79175 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftincrem.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftincrem.h @@ -4,7 +4,7 @@ /* */ /* FreeType incremental loading (specification). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTINCREM_H__ -#define __FTINCREM_H__ +#ifndef FTINCREM_H_ +#define FTINCREM_H_ #include #include FT_FREETYPE_H @@ -348,7 +348,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTINCREM_H__ */ +#endif /* FTINCREM_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftlcdfil.h b/reactos/lib/3rdparty/freetype/include/freetype/ftlcdfil.h index 653ed3669ee..e06a8957f51 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftlcdfil.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftlcdfil.h @@ -5,7 +5,7 @@ /* FreeType API for color filtering of subpixel bitmap glyphs */ /* (specification). */ /* */ -/* Copyright 2006-2015 by */ +/* Copyright 2006-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,8 +17,8 @@ /***************************************************************************/ -#ifndef __FT_LCD_FILTER_H__ -#define __FT_LCD_FILTER_H__ +#ifndef FTLCDFIL_H_ +#define FTLCDFIL_H_ #include #include FT_FREETYPE_H @@ -57,7 +57,8 @@ FT_BEGIN_HEADER * Note that no filter is active by default, and that this function is * *not* implemented in default builds of the library. You need to * #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING in your `ftoption.h' file - * in order to activate it. + * in order to activate it and explicitly call @FT_Library_SetLcdFilter + * to enable it. * * A filter should have two properties: * @@ -102,6 +103,18 @@ FT_BEGIN_HEADER * - [0x08 0x4D 0x56 0x4D 0x08] is beveled, normalized and, almost * balanced. * + * The filter affects glyph bitmaps rendered through @FT_Render_Glyph, + * @FT_Load_Glyph, and @FT_Load_Char. It does _not_ affect the output + * of @FT_Outline_Render and @FT_Outline_Get_Bitmap. + * + * If this feature is activated, the dimensions of LCD glyph bitmaps are + * either wider or taller than the dimensions of the corresponding + * outline with regard to the pixel grid. For example, for + * @FT_RENDER_MODE_LCD, the filter adds 3~subpixels to the left, and + * 3~subpixels to the right. The bitmap offset values are adjusted + * accordingly, so clients shouldn't need to modify their layout and + * glyph positioning code when enabling the filter. + * * It is important to understand that linear alpha blending and gamma * correction is critical for correctly rendering glyphs onto surfaces * without artifacts and even more critical when subpixel rendering is @@ -137,7 +150,8 @@ FT_BEGIN_HEADER * that is more forgiving to screens with non-ideal gamma curves and * viewing angles. Note that while color-fringing is reduced, it can * only be minimized by using linear alpha blending and gamma - * correction to render glyphs onto surfaces. + * correction to render glyphs onto surfaces. The default filter + * weights are [0x08 0x4D 0x56 0x4D 0x08]. * * FT_LCD_FILTER_LIGHT :: * The light filter is a variant that is sharper at the cost of @@ -147,7 +161,8 @@ FT_BEGIN_HEADER * is less forgiving to screens with non-ideal gamma curves and * viewing angles. This filter works best when the rendering system * uses linear alpha blending and gamma correction to render glyphs - * onto surfaces. + * onto surfaces. The light filter weights are + * [0x00 0x55 0x56 0x55 0x00]. * * FT_LCD_FILTER_LEGACY :: * This filter corresponds to the original libXft color filter. It @@ -218,22 +233,6 @@ FT_BEGIN_HEADER * defined in your build of the library, which should correspond to all * default builds of FreeType. * - * The filter affects glyph bitmaps rendered through @FT_Render_Glyph, - * @FT_Outline_Get_Bitmap, @FT_Load_Glyph, and @FT_Load_Char. - * - * It does _not_ affect the output of @FT_Outline_Render and - * @FT_Outline_Get_Bitmap. - * - * If this feature is activated, the dimensions of LCD glyph bitmaps are - * either larger or taller than the dimensions of the corresponding - * outline with regards to the pixel grid. For example, for - * @FT_RENDER_MODE_LCD, the filter adds up to 3~pixels to the left, and - * up to 3~pixels to the right. - * - * The bitmap offset values are adjusted correctly, so clients shouldn't - * need to modify their layout and glyph positioning code when enabling - * the filter. - * * @since: * 2.3.0 */ @@ -248,11 +247,8 @@ FT_BEGIN_HEADER * FT_Library_SetLcdFilterWeights * * @description: - * Use this function to override the filter weights selected by - * @FT_Library_SetLcdFilter. By default, FreeType uses the quintuple - * (0x00, 0x55, 0x56, 0x55, 0x00) for FT_LCD_FILTER_LIGHT, and (0x10, - * 0x40, 0x70, 0x40, 0x10) for FT_LCD_FILTER_DEFAULT and - * FT_LCD_FILTER_LEGACY. + * This function can be used to enable LCD filter with custom weights, + * instead of using presets in @FT_Library_SetLcdFilter. * * @input: * library :: @@ -272,9 +268,6 @@ FT_BEGIN_HEADER * defined in your build of the library, which should correspond to all * default builds of FreeType. * - * This function must be called after @FT_Library_SetLcdFilter to have - * any effect. - * * @since: * 2.4.0 */ @@ -287,7 +280,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FT_LCD_FILTER_H__ */ +#endif /* FTLCDFIL_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftlist.h b/reactos/lib/3rdparty/freetype/include/freetype/ftlist.h index 12b48c78f70..82f437ac611 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftlist.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftlist.h @@ -4,7 +4,7 @@ /* */ /* Generic list support for FreeType (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -24,8 +24,8 @@ /*************************************************************************/ -#ifndef __FTLIST_H__ -#define __FTLIST_H__ +#ifndef FTLIST_H_ +#define FTLIST_H_ #include @@ -270,7 +270,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTLIST_H__ */ +#endif /* FTLIST_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftlzw.h b/reactos/lib/3rdparty/freetype/include/freetype/ftlzw.h index d3ec28e554f..582e2c1465a 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftlzw.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftlzw.h @@ -4,7 +4,7 @@ /* */ /* LZW-compressed stream support. */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTLZW_H__ -#define __FTLZW_H__ +#ifndef FTLZW_H_ +#define FTLZW_H_ #include #include FT_FREETYPE_H @@ -93,7 +93,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTLZW_H__ */ +#endif /* FTLZW_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftmac.h b/reactos/lib/3rdparty/freetype/include/freetype/ftmac.h index 14c55cfe2b7..adb15cadf37 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftmac.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftmac.h @@ -4,7 +4,7 @@ /* */ /* Additional Mac-specific API. */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -25,8 +25,8 @@ /***************************************************************************/ -#ifndef __FTMAC_H__ -#define __FTMAC_H__ +#ifndef FTMAC_H_ +#define FTMAC_H_ #include @@ -268,7 +268,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTMAC_H__ */ +#endif /* FTMAC_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftmm.h b/reactos/lib/3rdparty/freetype/include/freetype/ftmm.h index 96dd66e1452..6c05f0c3909 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftmm.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftmm.h @@ -4,7 +4,7 @@ /* */ /* FreeType Multiple Master font interface (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTMM_H__ -#define __FTMM_H__ +#ifndef FTMM_H_ +#define FTMM_H_ #include @@ -378,7 +378,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTMM_H__ */ +#endif /* FTMM_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftmodapi.h b/reactos/lib/3rdparty/freetype/include/freetype/ftmodapi.h index 89d9347e5b7..b4d2758efa6 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftmodapi.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftmodapi.h @@ -4,7 +4,7 @@ /* */ /* FreeType modules public interface (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTMODAPI_H__ -#define __FTMODAPI_H__ +#ifndef FTMODAPI_H_ +#define FTMODAPI_H_ #include @@ -613,12 +613,7 @@ FT_BEGIN_HEADER * The library doesn't implement any kind of bytecode interpreter. * * FT_TRUETYPE_ENGINE_TYPE_UNPATENTED :: - * The library implements a bytecode interpreter that doesn't - * support the patented operations of the TrueType virtual machine. - * - * Its main use is to load certain Asian fonts that position and - * scale glyph components with bytecode instructions. It produces - * bad output for most other fonts. + * Deprecated and removed. * * FT_TRUETYPE_ENGINE_TYPE_PATENTED :: * The library implements a bytecode interpreter that covers @@ -666,7 +661,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTMODAPI_H__ */ +#endif /* FTMODAPI_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftmoderr.h b/reactos/lib/3rdparty/freetype/include/freetype/ftmoderr.h index 9d7f9814091..2a7671c816a 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftmoderr.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftmoderr.h @@ -4,7 +4,7 @@ /* */ /* FreeType module error offsets (specification). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -74,7 +74,7 @@ /* with something like */ /* */ /* { */ - /* #undef __FTMODERR_H__ */ + /* #undef FTMODERR_H_ */ /* #define FT_MODERRDEF( e, v, s ) { FT_Mod_Err_ ## e, s }, */ /* #define FT_MODERR_START_LIST { */ /* #define FT_MODERR_END_LIST { 0, 0 } }; */ @@ -91,8 +91,8 @@ /*************************************************************************/ -#ifndef __FTMODERR_H__ -#define __FTMODERR_H__ +#ifndef FTMODERR_H_ +#define FTMODERR_H_ /*******************************************************************/ @@ -188,7 +188,7 @@ #undef FT_NEED_EXTERN_C -#endif /* __FTMODERR_H__ */ +#endif /* FTMODERR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftotval.h b/reactos/lib/3rdparty/freetype/include/freetype/ftotval.h index e744b713fbe..c678ef34477 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftotval.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftotval.h @@ -4,7 +4,7 @@ /* */ /* FreeType API for validating OpenType tables (specification). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -27,8 +27,8 @@ /***************************************************************************/ -#ifndef __FTOTVAL_H__ -#define __FTOTVAL_H__ +#ifndef FTOTVAL_H_ +#define FTOTVAL_H_ #include #include FT_FREETYPE_H @@ -198,7 +198,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTOTVAL_H__ */ +#endif /* FTOTVAL_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftoutln.h b/reactos/lib/3rdparty/freetype/include/freetype/ftoutln.h index b6ec70de8cf..6a6451207c5 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftoutln.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftoutln.h @@ -5,7 +5,7 @@ /* Support for the FT_Outline type used to store glyph shapes of */ /* most scalable font formats (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,8 +17,8 @@ /***************************************************************************/ -#ifndef __FTOUTLN_H__ -#define __FTOUTLN_H__ +#ifndef FTOUTLN_H_ +#define FTOUTLN_H_ #include @@ -563,7 +563,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTOUTLN_H__ */ +#endif /* FTOUTLN_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftpfr.h b/reactos/lib/3rdparty/freetype/include/freetype/ftpfr.h index a1c02a2f5ee..2e1bff2f67e 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftpfr.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftpfr.h @@ -4,7 +4,7 @@ /* */ /* FreeType API for accessing PFR-specific data (specification only). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTPFR_H__ -#define __FTPFR_H__ +#ifndef FTPFR_H_ +#define FTPFR_H_ #include #include FT_FREETYPE_H @@ -166,7 +166,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTPFR_H__ */ +#endif /* FTPFR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftrender.h b/reactos/lib/3rdparty/freetype/include/freetype/ftrender.h index ec8da700b14..9f7ed9e9d96 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftrender.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftrender.h @@ -4,7 +4,7 @@ /* */ /* FreeType renderer modules public interface (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTRENDER_H__ -#define __FTRENDER_H__ +#ifndef FTRENDER_H_ +#define FTRENDER_H_ #include @@ -226,7 +226,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTRENDER_H__ */ +#endif /* FTRENDER_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftsizes.h b/reactos/lib/3rdparty/freetype/include/freetype/ftsizes.h index bef8424715f..55e0d5ccfd2 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftsizes.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftsizes.h @@ -4,7 +4,7 @@ /* */ /* FreeType size objects management (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -25,8 +25,8 @@ /*************************************************************************/ -#ifndef __FTSIZES_H__ -#define __FTSIZES_H__ +#ifndef FTSIZES_H_ +#define FTSIZES_H_ #include @@ -153,7 +153,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTSIZES_H__ */ +#endif /* FTSIZES_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftsnames.h b/reactos/lib/3rdparty/freetype/include/freetype/ftsnames.h index 0f7fbe17445..a7b51c2cbac 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftsnames.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftsnames.h @@ -7,7 +7,7 @@ /* */ /* This is _not_ used to retrieve glyph names! */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -19,8 +19,8 @@ /***************************************************************************/ -#ifndef __FT_SFNT_NAMES_H__ -#define __FT_SFNT_NAMES_H__ +#ifndef FTSNAMES_H_ +#define FTSNAMES_H_ #include @@ -194,7 +194,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FT_SFNT_NAMES_H__ */ +#endif /* FTSNAMES_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftstroke.h b/reactos/lib/3rdparty/freetype/include/freetype/ftstroke.h index 7ebb1e7404e..b3b9922dada 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftstroke.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftstroke.h @@ -4,7 +4,7 @@ /* */ /* FreeType path stroker (specification). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FT_STROKE_H__ -#define __FT_STROKE_H__ +#ifndef FTSTROKE_H_ +#define FTSTROKE_H_ #include #include FT_OUTLINE_H @@ -774,7 +774,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FT_STROKE_H__ */ +#endif /* FTSTROKE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftsynth.h b/reactos/lib/3rdparty/freetype/include/freetype/ftsynth.h index fbcbad871a9..fdfcb6912b6 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftsynth.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftsynth.h @@ -5,7 +5,7 @@ /* FreeType synthesizing code for emboldening and slanting */ /* (specification). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -41,8 +41,8 @@ /* adapted to the particular needs. */ -#ifndef __FTSYNTH_H__ -#define __FTSYNTH_H__ +#ifndef FTSYNTH_H_ +#define FTSYNTH_H_ #include @@ -78,7 +78,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTSYNTH_H__ */ +#endif /* FTSYNTH_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftsystem.h b/reactos/lib/3rdparty/freetype/include/freetype/ftsystem.h index 2bc999910b4..908ae07f0b7 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftsystem.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftsystem.h @@ -4,7 +4,7 @@ /* */ /* FreeType low-level system interface definition (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTSYSTEM_H__ -#define __FTSYSTEM_H__ +#ifndef FTSYSTEM_H_ +#define FTSYSTEM_H_ #include @@ -349,7 +349,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTSYSTEM_H__ */ +#endif /* FTSYSTEM_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/fttrigon.h b/reactos/lib/3rdparty/freetype/include/freetype/fttrigon.h index 485ec515874..f789b524cb8 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/fttrigon.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/fttrigon.h @@ -4,7 +4,7 @@ /* */ /* FreeType trigonometric functions (specification). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTTRIGON_H__ -#define __FTTRIGON_H__ +#ifndef FTTRIGON_H_ +#define FTTRIGON_H_ #include FT_FREETYPE_H @@ -344,7 +344,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTTRIGON_H__ */ +#endif /* FTTRIGON_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftttdrv.h b/reactos/lib/3rdparty/freetype/include/freetype/ftttdrv.h index dc0081a0b96..6c02e6576d4 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftttdrv.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftttdrv.h @@ -5,7 +5,7 @@ /* FreeType API for controlling the TrueType driver */ /* (specification only). */ /* */ -/* Copyright 2013-2015 by */ +/* Copyright 2013-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,8 +17,8 @@ /***************************************************************************/ -#ifndef __FTTTDRV_H__ -#define __FTTTDRV_H__ +#ifndef FTTTDRV_H_ +#define FTTTDRV_H_ #include #include FT_FREETYPE_H @@ -304,7 +304,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTTTDRV_H__ */ +#endif /* FTTTDRV_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/fttypes.h b/reactos/lib/3rdparty/freetype/include/freetype/fttypes.h index 706a1be4ef9..2673e79c3c0 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/fttypes.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/fttypes.h @@ -4,7 +4,7 @@ /* */ /* FreeType simple types definitions (specification only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTTYPES_H__ -#define __FTTYPES_H__ +#ifndef FTTYPES_H_ +#define FTTYPES_H_ #include @@ -596,7 +596,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTTYPES_H__ */ +#endif /* FTTYPES_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftwinfnt.h b/reactos/lib/3rdparty/freetype/include/freetype/ftwinfnt.h index caedaa1cc76..a1a715baa1a 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ftwinfnt.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ftwinfnt.h @@ -4,7 +4,7 @@ /* */ /* FreeType API for accessing Windows fnt-specific data. */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTWINFNT_H__ -#define __FTWINFNT_H__ +#ifndef FTWINFNT_H_ +#define FTWINFNT_H_ #include #include FT_FREETYPE_H @@ -264,7 +264,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTWINFNT_H__ */ +#endif /* FTWINFNT_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/autohint.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/autohint.h index 8d5a9773cb5..7ef82b8f3c0 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/autohint.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/autohint.h @@ -4,7 +4,7 @@ /* */ /* High-level `autohint' module-specific interface (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -24,8 +24,8 @@ /*************************************************************************/ -#ifndef __AUTOHINT_H__ -#define __AUTOHINT_H__ +#ifndef AUTOHINT_H_ +#define AUTOHINT_H_ /*************************************************************************/ @@ -238,7 +238,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __AUTOHINT_H__ */ +#endif /* AUTOHINT_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftcalc.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftcalc.h index a76682b0c04..8a884f680a4 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftcalc.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftcalc.h @@ -4,7 +4,7 @@ /* */ /* Arithmetic computations (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTCALC_H__ -#define __FTCALC_H__ +#ifndef FTCALC_H_ +#define FTCALC_H_ #include @@ -412,7 +412,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTCALC_H__ */ +#endif /* FTCALC_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftdebug.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftdebug.h index 216c73031eb..d110457157e 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftdebug.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftdebug.h @@ -4,7 +4,7 @@ /* */ /* Debugging and logging component (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -21,8 +21,8 @@ /***************************************************************************/ -#ifndef __FTDEBUG_H__ -#define __FTDEBUG_H__ +#ifndef FTDEBUG_H_ +#define FTDEBUG_H_ #include @@ -249,7 +249,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTDEBUG_H__ */ +#endif /* FTDEBUG_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftdriver.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftdriver.h index 16856d3df83..4b28e6a4764 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftdriver.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftdriver.h @@ -4,7 +4,7 @@ /* */ /* FreeType font driver interface (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTDRIVER_H__ -#define __FTDRIVER_H__ +#ifndef FTDRIVER_H_ +#define FTDRIVER_H_ #include @@ -403,7 +403,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTDRIVER_H__ */ +#endif /* FTDRIVER_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftgloadr.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftgloadr.h index 970dd70cc3e..bebf5dbba26 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftgloadr.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftgloadr.h @@ -4,7 +4,7 @@ /* */ /* The FreeType glyph loader (specification). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTGLOADR_H__ -#define __FTGLOADR_H__ +#ifndef FTGLOADR_H_ +#define FTGLOADR_H_ #include @@ -36,24 +36,6 @@ FT_BEGIN_HEADER /* The glyph loader is an internal object used to load several glyphs */ /* together (for example, in the case of composites). */ /* */ - /* */ - /* The glyph loader implementation is not part of the high-level API, */ - /* hence the forward structure declaration. */ - /* */ - typedef struct FT_GlyphLoaderRec_* FT_GlyphLoader ; - - -#if 0 /* moved to freetype.h in version 2.2 */ -#define FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS 1 -#define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES 2 -#define FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID 4 -#define FT_SUBGLYPH_FLAG_SCALE 8 -#define FT_SUBGLYPH_FLAG_XY_SCALE 0x40 -#define FT_SUBGLYPH_FLAG_2X2 0x80 -#define FT_SUBGLYPH_FLAG_USE_MY_METRICS 0x200 -#endif - - typedef struct FT_SubGlyphRec_ { FT_Int index; @@ -89,7 +71,7 @@ FT_BEGIN_HEADER void* other; /* for possible future extension? */ - } FT_GlyphLoaderRec; + } FT_GlyphLoaderRec, *FT_GlyphLoader; /* create new empty glyph loader */ @@ -166,7 +148,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTGLOADR_H__ */ +#endif /* FTGLOADR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/fthash.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/fthash.h new file mode 100644 index 00000000000..f22f9d5d390 --- /dev/null +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/fthash.h @@ -0,0 +1,136 @@ +/***************************************************************************/ +/* */ +/* fthash.h */ +/* */ +/* Hashing functions (specification). */ +/* */ +/***************************************************************************/ + +/* + * Copyright 2000 Computing Research Labs, New Mexico State University + * Copyright 2001-2015 + * Francesco Zappa Nardelli + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT + * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + /*************************************************************************/ + /* */ + /* This file is based on code from bdf.c,v 1.22 2000/03/16 20:08:50 */ + /* */ + /* taken from Mark Leisher's xmbdfed package */ + /* */ + /*************************************************************************/ + + +#ifndef FTHASH_H_ +#define FTHASH_H_ + + +#include +#include FT_FREETYPE_H + + +FT_BEGIN_HEADER + + + typedef union FT_Hashkey_ + { + FT_Int num; + const char* str; + + } FT_Hashkey; + + + typedef struct FT_HashnodeRec_ + { + FT_Hashkey key; + size_t data; + + } FT_HashnodeRec; + + typedef struct FT_HashnodeRec_ *FT_Hashnode; + + + typedef FT_ULong + (*FT_Hash_LookupFunc)( FT_Hashkey* key ); + + typedef FT_Bool + (*FT_Hash_CompareFunc)( FT_Hashkey* a, + FT_Hashkey* b ); + + + typedef struct FT_HashRec_ + { + FT_UInt limit; + FT_UInt size; + FT_UInt used; + + FT_Hash_LookupFunc lookup; + FT_Hash_CompareFunc compare; + + FT_Hashnode* table; + + } FT_HashRec; + + typedef struct FT_HashRec_ *FT_Hash; + + + FT_Error + ft_hash_str_init( FT_Hash hash, + FT_Memory memory ); + + FT_Error + ft_hash_num_init( FT_Hash hash, + FT_Memory memory ); + + void + ft_hash_str_free( FT_Hash hash, + FT_Memory memory ); + +#define ft_hash_num_free ft_hash_str_free + + FT_Error + ft_hash_str_insert( const char* key, + size_t data, + FT_Hash hash, + FT_Memory memory ); + + FT_Error + ft_hash_num_insert( FT_Int num, + size_t data, + FT_Hash hash, + FT_Memory memory ); + + size_t* + ft_hash_str_lookup( const char* key, + FT_Hash hash ); + + size_t* + ft_hash_num_lookup( FT_Int num, + FT_Hash hash ); + + +FT_END_HEADER + + +#endif /* FTHASH_H_ */ + + +/* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftmemory.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftmemory.h index c0c553b4fc9..3157dafa6e2 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftmemory.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftmemory.h @@ -4,7 +4,7 @@ /* */ /* The FreeType memory management macros (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTMEMORY_H__ -#define __FTMEMORY_H__ +#ifndef FTMEMORY_H_ +#define FTMEMORY_H_ #include @@ -380,7 +380,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTMEMORY_H__ */ +#endif /* FTMEMORY_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftobjs.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftobjs.h index 9a333fc1dee..c37c07e7a4b 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftobjs.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftobjs.h @@ -4,7 +4,7 @@ /* */ /* The FreeType private base classes (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -23,8 +23,8 @@ /*************************************************************************/ -#ifndef __FTOBJS_H__ -#define __FTOBJS_H__ +#ifndef FTOBJS_H_ +#define FTOBJS_H_ #include #include FT_RENDER_H @@ -341,12 +341,6 @@ FT_BEGIN_HEADER /* this data when first opened. This field exists only if */ /* @FT_CONFIG_OPTION_INCREMENTAL is defined. */ /* */ - /* ignore_unpatented_hinter :: */ - /* This boolean flag instructs the glyph loader to ignore the */ - /* native font hinter, if one is found. This is exclusively used */ - /* in the case when the unpatented hinter is compiled within the */ - /* library. */ - /* */ /* refcount :: */ /* A counter initialized to~1 at the time an @FT_Face structure is */ /* created. @FT_Reference_Face increments this counter, and */ @@ -365,7 +359,6 @@ FT_BEGIN_HEADER FT_Incremental_InterfaceRec* incremental_interface; #endif - FT_Bool ignore_unpatented_hinter; FT_Int refcount; } FT_Face_InternalRec; @@ -775,13 +768,6 @@ FT_BEGIN_HEADER #define FT_DEBUG_HOOK_TRUETYPE 0 - /* Set this debug hook to a non-null pointer to force unpatented hinting */ - /* for all faces when both TT_USE_BYTECODE_INTERPRETER and */ - /* TT_CONFIG_OPTION_UNPATENTED_HINTING are defined. This is only used */ - /* during debugging. */ -#define FT_DEBUG_HOOK_UNPATENTED_HINTING 1 - - typedef void (*FT_Bitmap_LcdFilterFunc)( FT_Bitmap* bitmap, FT_Render_Mode render_mode, FT_Library library ); @@ -1568,7 +1554,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTOBJS_H__ */ +#endif /* FTOBJS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftpic.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftpic.h index 7f9154f419e..6d800a08a16 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftpic.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftpic.h @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services (declaration). */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -23,8 +23,8 @@ /*************************************************************************/ -#ifndef __FTPIC_H__ -#define __FTPIC_H__ +#ifndef FTPIC_H_ +#define FTPIC_H_ FT_BEGIN_HEADER @@ -65,7 +65,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTPIC_H__ */ +#endif /* FTPIC_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftrfork.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftrfork.h index da61ca75b53..13a68fe5ba3 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftrfork.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftrfork.h @@ -4,7 +4,7 @@ /* */ /* Embedded resource forks accessor (specification). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* Masatake YAMATO and Redhat K.K. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -21,8 +21,8 @@ /***************************************************************************/ -#ifndef __FTRFORK_H__ -#define __FTRFORK_H__ +#ifndef FTRFORK_H_ +#define FTRFORK_H_ #include @@ -260,7 +260,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTRFORK_H__ */ +#endif /* FTRFORK_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftserv.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftserv.h index 11a0c7f3de5..91897177ba0 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftserv.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftserv.h @@ -4,7 +4,7 @@ /* */ /* The FreeType services (specification only). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -28,8 +28,8 @@ /*************************************************************************/ -#ifndef __FTSERV_H__ -#define __FTSERV_H__ +#ifndef FTSERV_H_ +#define FTSERV_H_ FT_BEGIN_HEADER @@ -757,7 +757,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTSERV_H__ */ +#endif /* FTSERV_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftstream.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftstream.h index 384e5df305c..6d048756577 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftstream.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftstream.h @@ -4,7 +4,7 @@ /* */ /* Stream handling (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTSTREAM_H__ -#define __FTSTREAM_H__ +#ifndef FTSTREAM_H_ +#define FTSTREAM_H_ #include @@ -530,7 +530,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTSTREAM_H__ */ +#endif /* FTSTREAM_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/fttrace.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/fttrace.h index 9d28d214d62..efb33559547 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/fttrace.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/fttrace.h @@ -4,7 +4,7 @@ /* */ /* Tracing handling (specification only). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -148,7 +148,7 @@ FT_TRACE_DEF( afcjk ) FT_TRACE_DEF( aflatin ) FT_TRACE_DEF( aflatin2 ) FT_TRACE_DEF( afwarp ) -FT_TRACE_DEF( afharfbuzz ) +FT_TRACE_DEF( afshaper ) FT_TRACE_DEF( afglobal ) /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftvalid.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftvalid.h index 9cda6eef5f6..aac92c9af88 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftvalid.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/ftvalid.h @@ -4,7 +4,7 @@ /* */ /* FreeType validation support (specification). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTVALID_H__ -#define __FTVALID_H__ +#ifndef FTVALID_H_ +#define FTVALID_H_ #include #include FT_CONFIG_STANDARD_LIBRARY_H /* for ft_setjmp and ft_longjmp */ @@ -153,7 +153,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTVALID_H__ */ +#endif /* FTVALID_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/internal.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/internal.h index 809ce59c92f..689afa9fc48 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/internal.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/internal.h @@ -4,7 +4,7 @@ /* */ /* Internal header files (specification only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -30,6 +30,7 @@ #define FT_INTERNAL_MEMORY_H #define FT_INTERNAL_DEBUG_H #define FT_INTERNAL_CALC_H +#define FT_INTERNAL_HASH_H #define FT_INTERNAL_DRIVER_H #define FT_INTERNAL_TRACE_H #define FT_INTERNAL_GLYPH_LOADER_H diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/psaux.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/psaux.h index 1c5f784f52c..15dedfd28e3 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/psaux.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/psaux.h @@ -5,7 +5,7 @@ /* Auxiliary functions and data structures related to PostScript fonts */ /* (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,13 +17,14 @@ /***************************************************************************/ -#ifndef __PSAUX_H__ -#define __PSAUX_H__ +#ifndef PSAUX_H_ +#define PSAUX_H_ #include #include FT_INTERNAL_OBJECTS_H #include FT_INTERNAL_TYPE1_TYPES_H +#include FT_INTERNAL_HASH_H #include FT_SERVICE_POSTSCRIPT_CMAPS_H @@ -678,6 +679,7 @@ FT_BEGIN_HEADER FT_Int num_subrs; FT_Byte** subrs; FT_UInt* subrs_len; /* array of subrs length (optional) */ + FT_Hash subrs_hash; /* used if `num_subrs' was massaged */ FT_Matrix font_matrix; FT_Vector font_offset; @@ -871,7 +873,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PSAUX_H__ */ +#endif /* PSAUX_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/pshints.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/pshints.h index 12aaabacd43..e60dc9cd558 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/pshints.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/pshints.h @@ -6,7 +6,7 @@ /* recorders (specification only). These are used to support native */ /* T1/T2 hints in the `type1', `cid', and `cff' font drivers. */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -18,8 +18,8 @@ /***************************************************************************/ -#ifndef __PSHINTS_H__ -#define __PSHINTS_H__ +#ifndef PSHINTS_H_ +#define PSHINTS_H_ #include @@ -716,7 +716,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PSHINTS_H__ */ +#endif /* PSHINTS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svbdf.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svbdf.h index 865b53687d0..c24475fc206 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svbdf.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svbdf.h @@ -4,7 +4,7 @@ /* */ /* The FreeType BDF services (specification). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SVBDF_H__ -#define __SVBDF_H__ +#ifndef SVBDF_H_ +#define SVBDF_H_ #include FT_BDF_H #include FT_INTERNAL_SERVICE_H @@ -76,7 +76,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVBDF_H__ */ +#endif /* SVBDF_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svcid.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svcid.h index 4a535a6f424..dbbe6044a49 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svcid.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svcid.h @@ -4,7 +4,7 @@ /* */ /* The FreeType CID font services (specification). */ /* */ -/* Copyright 2007-2015 by */ +/* Copyright 2007-2016 by */ /* Derek Clegg and Michael Toftdal. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SVCID_H__ -#define __SVCID_H__ +#ifndef SVCID_H_ +#define SVCID_H_ #include FT_INTERNAL_SERVICE_H @@ -84,7 +84,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVCID_H__ */ +#endif /* SVCID_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svfntfmt.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svfntfmt.h index f8b3617364c..bd295c9c6b4 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svfntfmt.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svfntfmt.h @@ -4,7 +4,7 @@ /* */ /* The FreeType font format service (specification only). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SVFNTFMT_H__ -#define __SVFNTFMT_H__ +#ifndef SVFNTFMT_H_ +#define SVFNTFMT_H_ #include FT_INTERNAL_SERVICE_H @@ -49,7 +49,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVFNTFMT_H__ */ +#endif /* SVFNTFMT_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svgldict.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svgldict.h index f78bca5d776..fff29bc40cf 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svgldict.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svgldict.h @@ -4,7 +4,7 @@ /* */ /* The FreeType glyph dictionary services (specification). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SVGLDICT_H__ -#define __SVGLDICT_H__ +#ifndef SVGLDICT_H_ +#define SVGLDICT_H_ #include FT_INTERNAL_SERVICE_H @@ -85,4 +85,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVGLDICT_H__ */ +#endif /* SVGLDICT_H_ */ + + +/* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svgxval.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svgxval.h index 59cc3b70489..fb8ffba83cb 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svgxval.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svgxval.h @@ -4,7 +4,7 @@ /* */ /* FreeType API for validating TrueTypeGX/AAT tables (specification). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ @@ -25,8 +25,8 @@ /***************************************************************************/ -#ifndef __SVGXVAL_H__ -#define __SVGXVAL_H__ +#ifndef SVGXVAL_H_ +#define SVGXVAL_H_ #include FT_GX_VALIDATE_H #include FT_INTERNAL_VALIDATE_H @@ -66,7 +66,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVGXVAL_H__ */ +#endif /* SVGXVAL_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svkern.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svkern.h index bc26f15941c..a636f1af1c2 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svkern.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svkern.h @@ -4,7 +4,7 @@ /* */ /* The FreeType Kerning service (specification). */ /* */ -/* Copyright 2006-2015 by */ +/* Copyright 2006-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SVKERN_H__ -#define __SVKERN_H__ +#ifndef SVKERN_H_ +#define SVKERN_H_ #include FT_INTERNAL_SERVICE_H #include FT_TRUETYPE_TABLES_H @@ -45,7 +45,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVKERN_H__ */ +#endif /* SVKERN_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svmm.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svmm.h index f2cecfbb3bc..b78a19f8e0d 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svmm.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svmm.h @@ -4,7 +4,7 @@ /* */ /* The FreeType Multiple Masters and GX var services (specification). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SVMM_H__ -#define __SVMM_H__ +#ifndef SVMM_H_ +#define SVMM_H_ #include FT_INTERNAL_SERVICE_H @@ -107,7 +107,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVMM_H__ */ +#endif /* SVMM_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svotval.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svotval.h index a82a6420fd7..bc929d4bd97 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svotval.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svotval.h @@ -4,7 +4,7 @@ /* */ /* The FreeType OpenType validation service (specification). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SVOTVAL_H__ -#define __SVOTVAL_H__ +#ifndef SVOTVAL_H_ +#define SVOTVAL_H_ #include FT_OPENTYPE_VALIDATE_H #include FT_INTERNAL_VALIDATE_H @@ -49,7 +49,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVOTVAL_H__ */ +#endif /* SVOTVAL_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpfr.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpfr.h index d4eb1693d0c..d0f7c4df95a 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpfr.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpfr.h @@ -4,7 +4,7 @@ /* */ /* Internal PFR service functions (specification). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SVPFR_H__ -#define __SVPFR_H__ +#ifndef SVPFR_H_ +#define SVPFR_H_ #include FT_PFR_H #include FT_INTERNAL_SERVICE_H @@ -60,7 +60,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVPFR_H__ */ +#endif /* SVPFR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpostnm.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpostnm.h index a89f79e4796..f124380050c 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpostnm.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpostnm.h @@ -4,7 +4,7 @@ /* */ /* The FreeType PostScript name services (specification). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SVPOSTNM_H__ -#define __SVPOSTNM_H__ +#ifndef SVPOSTNM_H_ +#define SVPOSTNM_H_ #include FT_INTERNAL_SERVICE_H @@ -75,7 +75,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVPOSTNM_H__ */ +#endif /* SVPOSTNM_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svprop.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svprop.h index c9f07ce33ac..870e90ed7cf 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svprop.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svprop.h @@ -4,7 +4,7 @@ /* */ /* The FreeType property service (specification). */ /* */ -/* Copyright 2012-2015 by */ +/* Copyright 2012-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SVPROP_H__ -#define __SVPROP_H__ +#ifndef SVPROP_H_ +#define SVPROP_H_ FT_BEGIN_HEADER @@ -75,7 +75,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVPROP_H__ */ +#endif /* SVPROP_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpscmap.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpscmap.h index 66da6e10438..9acc21690f3 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpscmap.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpscmap.h @@ -4,7 +4,7 @@ /* */ /* The FreeType PostScript charmap service (specification). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SVPSCMAP_H__ -#define __SVPSCMAP_H__ +#ifndef SVPSCMAP_H_ +#define SVPSCMAP_H_ #include FT_INTERNAL_OBJECTS_H @@ -171,7 +171,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVPSCMAP_H__ */ +#endif /* SVPSCMAP_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpsinfo.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpsinfo.h index 752a2660258..f2c8060440e 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpsinfo.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpsinfo.h @@ -4,7 +4,7 @@ /* */ /* The FreeType PostScript info service (specification). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SVPSINFO_H__ -#define __SVPSINFO_H__ +#ifndef SVPSINFO_H_ +#define SVPSINFO_H_ #include FT_INTERNAL_SERVICE_H #include FT_INTERNAL_TYPE1_TYPES_H @@ -105,7 +105,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVPSINFO_H__ */ +#endif /* SVPSINFO_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svsfnt.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svsfnt.h index 252ae1cf5eb..0f38cf195f0 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svsfnt.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svsfnt.h @@ -4,7 +4,7 @@ /* */ /* The FreeType SFNT table loading service (specification). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SVSFNT_H__ -#define __SVSFNT_H__ +#ifndef SVSFNT_H_ +#define SVSFNT_H_ #include FT_INTERNAL_SERVICE_H #include FT_TRUETYPE_TABLES_H @@ -97,7 +97,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVSFNT_H__ */ +#endif /* SVSFNT_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svttcmap.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svttcmap.h index cd95b9ab81f..772c72189e2 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svttcmap.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svttcmap.h @@ -4,7 +4,7 @@ /* */ /* The FreeType TrueType/sfnt cmap extra information service. */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* Masatake YAMATO, Redhat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ @@ -19,8 +19,8 @@ /* Development of this service is support of Information-technology Promotion Agency, Japan. */ -#ifndef __SVTTCMAP_H__ -#define __SVTTCMAP_H__ +#ifndef SVTTCMAP_H_ +#define SVTTCMAP_H_ #include FT_INTERNAL_SERVICE_H #include FT_TRUETYPE_TABLES_H @@ -100,7 +100,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVTTCMAP_H__ */ +#endif /* SVTTCMAP_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svtteng.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svtteng.h index 272ee8c0553..c55061a034b 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svtteng.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svtteng.h @@ -4,7 +4,7 @@ /* */ /* The FreeType TrueType engine query service (specification). */ /* */ -/* Copyright 2006-2015 by */ +/* Copyright 2006-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SVTTENG_H__ -#define __SVTTENG_H__ +#ifndef SVTTENG_H_ +#define SVTTENG_H_ #include FT_INTERNAL_SERVICE_H #include FT_MODULE_H @@ -47,7 +47,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVTTENG_H__ */ +#endif /* SVTTENG_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svttglyf.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svttglyf.h index f5cb76a9f85..c33edd46dee 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svttglyf.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svttglyf.h @@ -4,7 +4,7 @@ /* */ /* The FreeType TrueType glyph service. */ /* */ -/* Copyright 2007-2015 by */ +/* Copyright 2007-2016 by */ /* David Turner. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -15,8 +15,8 @@ /* */ /***************************************************************************/ -#ifndef __SVTTGLYF_H__ -#define __SVTTGLYF_H__ +#ifndef SVTTGLYF_H_ +#define SVTTGLYF_H_ #include FT_INTERNAL_SERVICE_H #include FT_TRUETYPE_TABLES_H @@ -63,7 +63,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVTTGLYF_H__ */ +#endif /* SVTTGLYF_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svwinfnt.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svwinfnt.h index 0036929b2f8..c2f6d4c6d39 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svwinfnt.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svwinfnt.h @@ -4,7 +4,7 @@ /* */ /* The FreeType Windows FNT/FONT service (specification). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SVWINFNT_H__ -#define __SVWINFNT_H__ +#ifndef SVWINFNT_H_ +#define SVWINFNT_H_ #include FT_INTERNAL_SERVICE_H #include FT_WINFONTS_H @@ -44,7 +44,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVWINFNT_H__ */ +#endif /* SVWINFNT_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/sfnt.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/sfnt.h index 30f53bf09ce..e139315a1ff 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/sfnt.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/sfnt.h @@ -4,7 +4,7 @@ /* */ /* High-level `sfnt' driver interface (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SFNT_H__ -#define __SFNT_H__ +#ifndef SFNT_H_ +#define SFNT_H_ #include @@ -742,7 +742,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SFNT_H__ */ +#endif /* SFNT_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/t1types.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/t1types.h index 029acc40093..494c011fc79 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/t1types.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/t1types.h @@ -5,7 +5,7 @@ /* Basic Type1/Type2 type definitions and interface (specification */ /* only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,14 +17,15 @@ /***************************************************************************/ -#ifndef __T1TYPES_H__ -#define __T1TYPES_H__ +#ifndef T1TYPES_H_ +#define T1TYPES_H_ #include #include FT_TYPE1_TABLES_H #include FT_INTERNAL_POSTSCRIPT_HINTS_H #include FT_INTERNAL_SERVICE_H +#include FT_INTERNAL_HASH_H #include FT_SERVICE_POSTSCRIPT_CMAPS_H @@ -107,6 +108,7 @@ FT_BEGIN_HEADER FT_Int num_subrs; FT_Byte** subrs; FT_UInt* subrs_len; + FT_Hash subrs_hash; FT_Int num_glyphs; FT_String** glyph_names; /* array of glyph names */ @@ -249,7 +251,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __T1TYPES_H__ */ +#endif /* T1TYPES_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/tttypes.h b/reactos/lib/3rdparty/freetype/include/freetype/internal/tttypes.h index 000c5a85977..8643775066b 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/internal/tttypes.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/internal/tttypes.h @@ -5,7 +5,7 @@ /* Basic SFNT/TrueType type definitions and interface (specification */ /* only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,8 +17,8 @@ /***************************************************************************/ -#ifndef __TTTYPES_H__ -#define __TTTYPES_H__ +#ifndef TTTYPES_H_ +#define TTTYPES_H_ #include @@ -1233,9 +1233,6 @@ FT_BEGIN_HEADER /* interpreters field is also used to hook */ /* the debugger in `ttdebug'. */ /* */ - /* unpatented_hinting :: If true, use only unpatented methods in */ - /* the bytecode interpreter. */ - /* */ /* doblend :: A boolean which is set if the font should */ /* be blended (this is for GX var). */ /* */ @@ -1334,10 +1331,6 @@ FT_BEGIN_HEADER /* used to hook the debugger for the `ttdebug' utility. */ TT_Interpreter interpreter; -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - /* Use unpatented hinting only. */ - FT_Bool unpatented_hinting; -#endif /***********************************************************************/ /* */ @@ -1523,7 +1516,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTTYPES_H__ */ +#endif /* TTTYPES_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/t1tables.h b/reactos/lib/3rdparty/freetype/include/freetype/t1tables.h index a6ea415af58..e272324ba29 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/t1tables.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/t1tables.h @@ -5,7 +5,7 @@ /* Basic Type 1/Type 2 tables definitions and interface (specification */ /* only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,8 +17,8 @@ /***************************************************************************/ -#ifndef __T1TABLES_H__ -#define __T1TABLES_H__ +#ifndef T1TABLES_H_ +#define T1TABLES_H_ #include @@ -755,7 +755,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __T1TABLES_H__ */ +#endif /* T1TABLES_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ttnameid.h b/reactos/lib/3rdparty/freetype/include/freetype/ttnameid.h index c9585f24137..ce707f1645b 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ttnameid.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ttnameid.h @@ -4,7 +4,7 @@ /* */ /* TrueType name ID definitions (specification only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __TTNAMEID_H__ -#define __TTNAMEID_H__ +#ifndef TTNAMEID_H_ +#define TTNAMEID_H_ #include @@ -1231,7 +1231,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTNAMEID_H__ */ +#endif /* TTNAMEID_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/tttables.h b/reactos/lib/3rdparty/freetype/include/freetype/tttables.h index 1568f403647..dfe3bcb1c80 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/tttables.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/tttables.h @@ -5,7 +5,7 @@ /* Basic SFNT/TrueType tables definitions and interface */ /* (specification only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,8 +17,8 @@ /***************************************************************************/ -#ifndef __TTTABLES_H__ -#define __TTTABLES_H__ +#ifndef TTTABLES_H_ +#define TTTABLES_H_ #include @@ -823,7 +823,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTTABLES_H__ */ +#endif /* TTTABLES_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/tttags.h b/reactos/lib/3rdparty/freetype/include/freetype/tttags.h index 3836c7bbfd5..f3c9aa5fc74 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/tttags.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/tttags.h @@ -4,7 +4,7 @@ /* */ /* Tags for TrueType and OpenType tables (specification only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __TTAGS_H__ -#define __TTAGS_H__ +#ifndef TTAGS_H_ +#define TTAGS_H_ #include @@ -105,7 +105,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTAGS_H__ */ +#endif /* TTAGS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ttunpat.h b/reactos/lib/3rdparty/freetype/include/freetype/ttunpat.h index 8ea556895c1..ca4676baf87 100644 --- a/reactos/lib/3rdparty/freetype/include/freetype/ttunpat.h +++ b/reactos/lib/3rdparty/freetype/include/freetype/ttunpat.h @@ -2,9 +2,10 @@ /* */ /* ttunpat.h */ /* */ -/* Definitions for the unpatented TrueType hinting system */ +/* Definitions for the unpatented TrueType hinting system. */ +/* Obsolete, retained for backwards compatibility. */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* Written by Graham Asher */ @@ -18,8 +19,8 @@ /***************************************************************************/ -#ifndef __TTUNPAT_H__ -#define __TTUNPAT_H__ +#ifndef TTUNPAT_H_ +#define TTUNPAT_H_ #include @@ -41,9 +42,11 @@ FT_BEGIN_HEADER * FT_PARAM_TAG_UNPATENTED_HINTING * * @description: - * A constant used as the tag of an @FT_Parameter structure to indicate - * that unpatented methods only should be used by the TrueType bytecode - * interpreter for a typeface opened by @FT_Open_Face. + * Deprecated. + * + * Previously: A constant used as the tag of an @FT_Parameter structure to + * indicate that unpatented methods only should be used by the TrueType + * bytecode interpreter for a typeface opened by @FT_Open_Face. * */ #define FT_PARAM_TAG_UNPATENTED_HINTING FT_MAKE_TAG( 'u', 'n', 'p', 'a' ) @@ -54,7 +57,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTUNPAT_H__ */ +#endif /* TTUNPAT_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/include/ft2build.h b/reactos/lib/3rdparty/freetype/include/ft2build.h index 419b80ae44d..c89cb469e97 100644 --- a/reactos/lib/3rdparty/freetype/include/ft2build.h +++ b/reactos/lib/3rdparty/freetype/include/ft2build.h @@ -4,7 +4,7 @@ /* */ /* FreeType 2 build and setup macros. */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -31,12 +31,12 @@ /*************************************************************************/ -#ifndef __FT2BUILD_H__ -#define __FT2BUILD_H__ +#ifndef FT2BUILD_H_ +#define FT2BUILD_H_ #include -#endif /* __FT2BUILD_H__ */ +#endif /* FT2BUILD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/modules.cfg b/reactos/lib/3rdparty/freetype/modules.cfg index 2984e512442..d677565a2bc 100644 --- a/reactos/lib/3rdparty/freetype/modules.cfg +++ b/reactos/lib/3rdparty/freetype/modules.cfg @@ -1,6 +1,6 @@ # modules.cfg # -# Copyright 2005-2015 by +# Copyright 2005-2016 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afangles.c b/reactos/lib/3rdparty/freetype/src/autofit/afangles.c index 1b1eb31fe7b..b856e57a8bb 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afangles.c +++ b/reactos/lib/3rdparty/freetype/src/autofit/afangles.c @@ -5,7 +5,7 @@ /* Routines used to compute vector angles with limited accuracy */ /* and very high speed. It also contains sorting routines (body). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afblue.c b/reactos/lib/3rdparty/freetype/src/autofit/afblue.c index b871e0c651e..7d9646c3af3 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afblue.c +++ b/reactos/lib/3rdparty/freetype/src/autofit/afblue.c @@ -7,7 +7,7 @@ /* */ /* Auto-fitter data for blue strings (body). */ /* */ -/* Copyright 2013-2015 by */ +/* Copyright 2013-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -26,139 +26,171 @@ af_blue_strings[] = { /* */ - '\xD8', '\xA7', '\xD8', '\xA5', '\xD9', '\x84', '\xD9', '\x83', '\xD8', '\xB7', '\xD8', '\xB8', /* ا Ø¥ ل ك Ø· ظ */ + '\xD8', '\xA7', ' ', '\xD8', '\xA5', ' ', '\xD9', '\x84', ' ', '\xD9', '\x83', ' ', '\xD8', '\xB7', ' ', '\xD8', '\xB8', /* ا Ø¥ ل ك Ø· ظ */ '\0', - '\xD8', '\xAA', '\xD8', '\xAB', '\xD8', '\xB7', '\xD8', '\xB8', '\xD9', '\x83', /* ت Ø« Ø· ظ ك */ + '\xD8', '\xAA', ' ', '\xD8', '\xAB', ' ', '\xD8', '\xB7', ' ', '\xD8', '\xB8', ' ', '\xD9', '\x83', /* ت Ø« Ø· ظ ك */ '\0', '\xD9', '\x80', /* ـ */ '\0', - '\xD0', '\x91', '\xD0', '\x92', '\xD0', '\x95', '\xD0', '\x9F', '\xD0', '\x97', '\xD0', '\x9E', '\xD0', '\xA1', '\xD0', '\xAD', /* БВЕПЗОСЭ */ + '\xE0', '\xA6', '\x85', ' ', '\xE0', '\xA6', '\xA1', ' ', '\xE0', '\xA6', '\xA4', ' ', '\xE0', '\xA6', '\xA8', ' ', '\xE0', '\xA6', '\xAC', ' ', '\xE0', '\xA6', '\xAD', ' ', '\xE0', '\xA6', '\xB2', ' ', '\xE0', '\xA6', '\x95', /* অ ড ত ন ব ভ ল ক */ '\0', - '\xD0', '\x91', '\xD0', '\x92', '\xD0', '\x95', '\xD0', '\xA8', '\xD0', '\x97', '\xD0', '\x9E', '\xD0', '\xA1', '\xD0', '\xAD', /* БВЕШЗОСЭ */ + '\xE0', '\xA6', '\x87', ' ', '\xE0', '\xA6', '\x9F', ' ', '\xE0', '\xA6', '\xA0', ' ', '\xE0', '\xA6', '\xBF', ' ', '\xE0', '\xA7', '\x80', ' ', '\xE0', '\xA7', '\x88', ' ', '\xE0', '\xA7', '\x97', /* ই ট ঠ ি ী ৈ ৗ */ '\0', - '\xD1', '\x85', '\xD0', '\xBF', '\xD0', '\xBD', '\xD1', '\x88', '\xD0', '\xB5', '\xD0', '\xB7', '\xD0', '\xBE', '\xD1', '\x81', /* хпншезос */ + '\xE0', '\xA6', '\x93', ' ', '\xE0', '\xA6', '\x8F', ' ', '\xE0', '\xA6', '\xA1', ' ', '\xE0', '\xA6', '\xA4', ' ', '\xE0', '\xA6', '\xA8', ' ', '\xE0', '\xA6', '\xAC', ' ', '\xE0', '\xA6', '\xB2', ' ', '\xE0', '\xA6', '\x95', /* ও এ ড ত ন ব ল ক */ '\0', - '\xD1', '\x80', '\xD1', '\x83', '\xD1', '\x84', /* руф */ + '\xD0', '\x91', ' ', '\xD0', '\x92', ' ', '\xD0', '\x95', ' ', '\xD0', '\x9F', ' ', '\xD0', '\x97', ' ', '\xD0', '\x9E', ' ', '\xD0', '\xA1', ' ', '\xD0', '\xAD', /* Б В Е П З О С Э */ '\0', - '\xE0', '\xA4', '\x95', '\xE0', '\xA4', '\xAE', '\xE0', '\xA4', '\x85', '\xE0', '\xA4', '\x86', '\xE0', '\xA4', '\xA5', '\xE0', '\xA4', '\xA7', '\xE0', '\xA4', '\xAD', '\xE0', '\xA4', '\xB6', /* क म अ आ थ ध भ श */ + '\xD0', '\x91', ' ', '\xD0', '\x92', ' ', '\xD0', '\x95', ' ', '\xD0', '\xA8', ' ', '\xD0', '\x97', ' ', '\xD0', '\x9E', ' ', '\xD0', '\xA1', ' ', '\xD0', '\xAD', /* Б В Е Ш З О С Э */ '\0', - '\xE0', '\xA4', '\x88', '\xE0', '\xA4', '\x90', '\xE0', '\xA4', '\x93', '\xE0', '\xA4', '\x94', '\xE0', '\xA4', '\xBF', '\xE0', '\xA5', '\x80', '\xE0', '\xA5', '\x8B', '\xE0', '\xA5', '\x8C', /* ई ऐ ओ औ ि ी ो ौ */ + '\xD1', '\x85', ' ', '\xD0', '\xBF', ' ', '\xD0', '\xBD', ' ', '\xD1', '\x88', ' ', '\xD0', '\xB5', ' ', '\xD0', '\xB7', ' ', '\xD0', '\xBE', ' ', '\xD1', '\x81', /* х п н ш е з о с */ '\0', - '\xE0', '\xA4', '\x95', '\xE0', '\xA4', '\xAE', '\xE0', '\xA4', '\x85', '\xE0', '\xA4', '\x86', '\xE0', '\xA4', '\xA5', '\xE0', '\xA4', '\xA7', '\xE0', '\xA4', '\xAD', '\xE0', '\xA4', '\xB6', /* क म अ आ थ ध भ श */ + '\xD1', '\x80', ' ', '\xD1', '\x83', ' ', '\xD1', '\x84', /* р у ф */ '\0', - '\xE0', '\xA5', '\x81', '\xE0', '\xA5', '\x83', /* ु ृ */ + '\xE0', '\xA4', '\x95', ' ', '\xE0', '\xA4', '\xAE', ' ', '\xE0', '\xA4', '\x85', ' ', '\xE0', '\xA4', '\x86', ' ', '\xE0', '\xA4', '\xA5', ' ', '\xE0', '\xA4', '\xA7', ' ', '\xE0', '\xA4', '\xAD', ' ', '\xE0', '\xA4', '\xB6', /* क म अ आ थ ध भ श */ '\0', - '\xCE', '\x93', '\xCE', '\x92', '\xCE', '\x95', '\xCE', '\x96', '\xCE', '\x98', '\xCE', '\x9F', '\xCE', '\xA9', /* ΓΒΕΖΘΟΩ */ + '\xE0', '\xA4', '\x88', ' ', '\xE0', '\xA4', '\x90', ' ', '\xE0', '\xA4', '\x93', ' ', '\xE0', '\xA4', '\x94', ' ', '\xE0', '\xA4', '\xBF', ' ', '\xE0', '\xA5', '\x80', ' ', '\xE0', '\xA5', '\x8B', ' ', '\xE0', '\xA5', '\x8C', /* ई ऐ ओ औ ि ी ो ौ */ '\0', - '\xCE', '\x92', '\xCE', '\x94', '\xCE', '\x96', '\xCE', '\x9E', '\xCE', '\x98', '\xCE', '\x9F', /* ΒΔΖΞΘΟ */ + '\xE0', '\xA4', '\x95', ' ', '\xE0', '\xA4', '\xAE', ' ', '\xE0', '\xA4', '\x85', ' ', '\xE0', '\xA4', '\x86', ' ', '\xE0', '\xA4', '\xA5', ' ', '\xE0', '\xA4', '\xA7', ' ', '\xE0', '\xA4', '\xAD', ' ', '\xE0', '\xA4', '\xB6', /* क म अ आ थ ध भ श */ '\0', - '\xCE', '\xB2', '\xCE', '\xB8', '\xCE', '\xB4', '\xCE', '\xB6', '\xCE', '\xBB', '\xCE', '\xBE', /* βθδζλξ */ + '\xE0', '\xA5', '\x81', ' ', '\xE0', '\xA5', '\x83', /* ु ृ */ '\0', - '\xCE', '\xB1', '\xCE', '\xB5', '\xCE', '\xB9', '\xCE', '\xBF', '\xCF', '\x80', '\xCF', '\x83', '\xCF', '\x84', '\xCF', '\x89', /* αειοπστω */ + '\xCE', '\x93', ' ', '\xCE', '\x92', ' ', '\xCE', '\x95', ' ', '\xCE', '\x96', ' ', '\xCE', '\x98', ' ', '\xCE', '\x9F', ' ', '\xCE', '\xA9', /* Γ Β Ε Ζ Θ Ο Ω */ '\0', - '\xCE', '\xB2', '\xCE', '\xB3', '\xCE', '\xB7', '\xCE', '\xBC', '\xCF', '\x81', '\xCF', '\x86', '\xCF', '\x87', '\xCF', '\x88', /* βγημρφχψ */ + '\xCE', '\x92', ' ', '\xCE', '\x94', ' ', '\xCE', '\x96', ' ', '\xCE', '\x9E', ' ', '\xCE', '\x98', ' ', '\xCE', '\x9F', /* Β Δ Ζ Ξ Θ Ο */ '\0', - '\xD7', '\x91', '\xD7', '\x93', '\xD7', '\x94', '\xD7', '\x97', '\xD7', '\x9A', '\xD7', '\x9B', '\xD7', '\x9D', '\xD7', '\xA1', /* בדהחךכםס */ + '\xCE', '\xB2', ' ', '\xCE', '\xB8', ' ', '\xCE', '\xB4', ' ', '\xCE', '\xB6', ' ', '\xCE', '\xBB', ' ', '\xCE', '\xBE', /* β θ δ ζ λ ξ */ '\0', - '\xD7', '\x91', '\xD7', '\x98', '\xD7', '\x9B', '\xD7', '\x9D', '\xD7', '\xA1', '\xD7', '\xA6', /* בטכםסצ */ + '\xCE', '\xB1', ' ', '\xCE', '\xB5', ' ', '\xCE', '\xB9', ' ', '\xCE', '\xBF', ' ', '\xCF', '\x80', ' ', '\xCF', '\x83', ' ', '\xCF', '\x84', ' ', '\xCF', '\x89', /* α ε ι ο π σ τ ω */ '\0', - '\xD7', '\xA7', '\xD7', '\x9A', '\xD7', '\x9F', '\xD7', '\xA3', '\xD7', '\xA5', /* קךןףץ */ + '\xCE', '\xB2', ' ', '\xCE', '\xB3', ' ', '\xCE', '\xB7', ' ', '\xCE', '\xBC', ' ', '\xCF', '\x81', ' ', '\xCF', '\x86', ' ', '\xCF', '\x87', ' ', '\xCF', '\x88', /* β γ η μ ρ φ χ ψ */ '\0', - '\xE0', '\xBA', '\xB2', '\xE0', '\xBA', '\x94', '\xE0', '\xBA', '\xAD', '\xE0', '\xBA', '\xA1', '\xE0', '\xBA', '\xA5', '\xE0', '\xBA', '\xA7', '\xE0', '\xBA', '\xA3', '\xE0', '\xBA', '\x87', /* າ ດ ອ ມ ລ ວ ຣ ງ */ + '\xD7', '\x91', ' ', '\xD7', '\x93', ' ', '\xD7', '\x94', ' ', '\xD7', '\x97', ' ', '\xD7', '\x9A', ' ', '\xD7', '\x9B', ' ', '\xD7', '\x9D', ' ', '\xD7', '\xA1', /* ב ד ה ח ך כ ם ס */ '\0', - '\xE0', '\xBA', '\xB2', '\xE0', '\xBA', '\xAD', '\xE0', '\xBA', '\x9A', '\xE0', '\xBA', '\x8D', '\xE0', '\xBA', '\xA3', '\xE0', '\xBA', '\xAE', '\xE0', '\xBA', '\xA7', '\xE0', '\xBA', '\xA2', /* າ ອ ບ ຍ ຣ ຮ ວ ຢ */ + '\xD7', '\x91', ' ', '\xD7', '\x98', ' ', '\xD7', '\x9B', ' ', '\xD7', '\x9D', ' ', '\xD7', '\xA1', ' ', '\xD7', '\xA6', /* ב ט כ ם ס צ */ '\0', - '\xE0', '\xBA', '\x9B', '\xE0', '\xBA', '\xA2', '\xE0', '\xBA', '\x9F', '\xE0', '\xBA', '\x9D', /* ປ ຢ ຟ ຝ */ + '\xD7', '\xA7', ' ', '\xD7', '\x9A', ' ', '\xD7', '\x9F', ' ', '\xD7', '\xA3', ' ', '\xD7', '\xA5', /* ק ך ן ×£ ×¥ */ '\0', - '\xE0', '\xBB', '\x82', '\xE0', '\xBB', '\x84', '\xE0', '\xBB', '\x83', /* ໂ ໄ ໃ */ + '\xE0', '\xB2', '\x87', ' ', '\xE0', '\xB2', '\x8A', ' ', '\xE0', '\xB2', '\x90', ' ', '\xE0', '\xB2', '\xA3', ' ', '\xE0', '\xB2', '\xB8', '\xE0', '\xB2', '\xBE', ' ', '\xE0', '\xB2', '\xA8', '\xE0', '\xB2', '\xBE', ' ', '\xE0', '\xB2', '\xA6', '\xE0', '\xB2', '\xBE', ' ', '\xE0', '\xB2', '\xB0', '\xE0', '\xB2', '\xBE', /* ಇ ಊ ಐ ಣ ಸಾ ನಾ ದಾ ರಾ */ '\0', - '\xE0', '\xBA', '\x87', '\xE0', '\xBA', '\x8A', '\xE0', '\xBA', '\x96', '\xE0', '\xBA', '\xBD', '\xE0', '\xBB', '\x86', '\xE0', '\xBA', '\xAF', /* ງ ຊ ຖ ຽ ໆ ຯ */ + '\xE0', '\xB2', '\x85', ' ', '\xE0', '\xB2', '\x89', ' ', '\xE0', '\xB2', '\x8E', ' ', '\xE0', '\xB2', '\xB2', ' ', '\xE0', '\xB3', '\xA6', ' ', '\xE0', '\xB3', '\xA8', ' ', '\xE0', '\xB3', '\xAC', ' ', '\xE0', '\xB3', '\xAD', /* ಅ ಉ ಎ ಲ ೦ ೨ ೬ à³­ */ '\0', - 'T', 'H', 'E', 'Z', 'O', 'C', 'Q', 'S', /* THEZOCQS */ + '\xE1', '\x9E', '\x81', ' ', '\xE1', '\x9E', '\x91', ' ', '\xE1', '\x9E', '\x93', ' ', '\xE1', '\x9E', '\xA7', ' ', '\xE1', '\x9E', '\xA9', ' ', '\xE1', '\x9E', '\xB6', /* ខ ទ ន ឧ ឩ ា */ '\0', - 'H', 'E', 'Z', 'L', 'O', 'C', 'U', 'S', /* HEZLOCUS */ + '\xE1', '\x9E', '\x80', '\xE1', '\x9F', '\x92', '\xE1', '\x9E', '\x80', ' ', '\xE1', '\x9E', '\x80', '\xE1', '\x9F', '\x92', '\xE1', '\x9E', '\x81', ' ', '\xE1', '\x9E', '\x80', '\xE1', '\x9F', '\x92', '\xE1', '\x9E', '\x82', ' ', '\xE1', '\x9E', '\x80', '\xE1', '\x9F', '\x92', '\xE1', '\x9E', '\x90', /* ក្ក ក្ខ ក្គ ក្ថ */ '\0', - 'f', 'i', 'j', 'k', 'd', 'b', 'h', /* fijkdbh */ + '\xE1', '\x9E', '\x81', ' ', '\xE1', '\x9E', '\x83', ' ', '\xE1', '\x9E', '\x85', ' ', '\xE1', '\x9E', '\x8B', ' ', '\xE1', '\x9E', '\x94', ' ', '\xE1', '\x9E', '\x98', ' ', '\xE1', '\x9E', '\x99', ' ', '\xE1', '\x9E', '\xB2', /* ខ ឃ ច ឋ ប ម យ ឲ */ '\0', - 'x', 'z', 'r', 'o', 'e', 's', 'c', /* xzroesc */ + '\xE1', '\x9E', '\x8F', '\xE1', '\x9F', '\x92', '\xE1', '\x9E', '\x9A', ' ', '\xE1', '\x9E', '\x9A', '\xE1', '\x9F', '\x80', ' ', '\xE1', '\x9E', '\xB2', '\xE1', '\x9F', '\x92', '\xE1', '\x9E', '\x99', ' ', '\xE1', '\x9E', '\xA2', '\xE1', '\x9E', '\xBF', /* ត្រ រៀ ឲ្យ អឿ */ '\0', - 'p', 'q', 'g', 'j', 'y', /* pqgjy */ + '\xE1', '\x9E', '\x93', '\xE1', '\x9F', '\x92', '\xE1', '\x9E', '\x8F', '\xE1', '\x9F', '\x92', '\xE1', '\x9E', '\x9A', '\xE1', '\x9F', '\x83', ' ', '\xE1', '\x9E', '\x84', '\xE1', '\x9F', '\x92', '\xE1', '\x9E', '\x81', '\xE1', '\x9F', '\x92', '\xE1', '\x9E', '\x99', ' ', '\xE1', '\x9E', '\x80', '\xE1', '\x9F', '\x92', '\xE1', '\x9E', '\x94', '\xE1', '\x9F', '\x80', ' ', '\xE1', '\x9E', '\x85', '\xE1', '\x9F', '\x92', '\xE1', '\x9E', '\x9A', '\xE1', '\x9F', '\x80', ' ', '\xE1', '\x9E', '\x93', '\xE1', '\x9F', '\x92', '\xE1', '\x9E', '\x8F', '\xE1', '\x9E', '\xBF', ' ', '\xE1', '\x9E', '\x9B', '\xE1', '\x9F', '\x92', '\xE1', '\x9E', '\x94', '\xE1', '\x9E', '\xBF', /* ន្ត្រៃ ង្ខ្យ ក្បៀ ច្រៀ ន្តឿ ល្បឿ */ '\0', - '\xE2', '\x82', '\x80', '\xE2', '\x82', '\x83', '\xE2', '\x82', '\x85', '\xE2', '\x82', '\x87', '\xE2', '\x82', '\x88', /* ₀₃₅₇₈ */ + '\xE1', '\xA7', '\xA0', ' ', '\xE1', '\xA7', '\xA1', /* ᧠ ᧡ */ '\0', - '\xE2', '\x82', '\x80', '\xE2', '\x82', '\x81', '\xE2', '\x82', '\x82', '\xE2', '\x82', '\x83', '\xE2', '\x82', '\x88', /* ₀₁₂₃₈ */ + '\xE1', '\xA7', '\xB6', ' ', '\xE1', '\xA7', '\xB9', /* ᧶ ᧹ */ '\0', - '\xE1', '\xB5', '\xA2', '\xE2', '\xB1', '\xBC', '\xE2', '\x82', '\x95', '\xE2', '\x82', '\x96', '\xE2', '\x82', '\x97', /* ᵢⱼₕₖₗ */ + '\xE0', '\xBA', '\xB2', ' ', '\xE0', '\xBA', '\x94', ' ', '\xE0', '\xBA', '\xAD', ' ', '\xE0', '\xBA', '\xA1', ' ', '\xE0', '\xBA', '\xA5', ' ', '\xE0', '\xBA', '\xA7', ' ', '\xE0', '\xBA', '\xA3', ' ', '\xE0', '\xBA', '\x87', /* າ ດ ອ ມ ລ ວ ຣ ງ */ '\0', - '\xE2', '\x82', '\x90', '\xE2', '\x82', '\x91', '\xE2', '\x82', '\x92', '\xE2', '\x82', '\x93', '\xE2', '\x82', '\x99', '\xE2', '\x82', '\x9B', '\xE1', '\xB5', '\xA5', '\xE1', '\xB5', '\xA4', '\xE1', '\xB5', '\xA3', /* ₐₑₒₓₙₛᵥᵤᵣ */ + '\xE0', '\xBA', '\xB2', ' ', '\xE0', '\xBA', '\xAD', ' ', '\xE0', '\xBA', '\x9A', ' ', '\xE0', '\xBA', '\x8D', ' ', '\xE0', '\xBA', '\xA3', ' ', '\xE0', '\xBA', '\xAE', ' ', '\xE0', '\xBA', '\xA7', ' ', '\xE0', '\xBA', '\xA2', /* າ ອ ບ ຍ ຣ ຮ ວ ຢ */ '\0', - '\xE1', '\xB5', '\xA6', '\xE1', '\xB5', '\xA7', '\xE1', '\xB5', '\xA8', '\xE1', '\xB5', '\xA9', '\xE2', '\x82', '\x9A', /* ᵦᵧᵨᵩₚ */ + '\xE0', '\xBA', '\x9B', ' ', '\xE0', '\xBA', '\xA2', ' ', '\xE0', '\xBA', '\x9F', ' ', '\xE0', '\xBA', '\x9D', /* ປ ຢ ຟ ຝ */ '\0', - '\xE2', '\x81', '\xB0', '\xC2', '\xB3', '\xE2', '\x81', '\xB5', '\xE2', '\x81', '\xB7', '\xE1', '\xB5', '\x80', '\xE1', '\xB4', '\xB4', '\xE1', '\xB4', '\xB1', '\xE1', '\xB4', '\xBC', /* ⁰³⁵⁷ᵀᴴᴱᴼ */ + '\xE0', '\xBB', '\x82', ' ', '\xE0', '\xBB', '\x84', ' ', '\xE0', '\xBB', '\x83', /* ໂ ໄ ໃ */ '\0', - '\xE2', '\x81', '\xB0', '\xC2', '\xB9', '\xC2', '\xB2', '\xC2', '\xB3', '\xE1', '\xB4', '\xB1', '\xE1', '\xB4', '\xB8', '\xE1', '\xB4', '\xBC', '\xE1', '\xB5', '\x81', /* ⁰¹²³ᴱᴸᴼᵁ */ + '\xE0', '\xBA', '\x87', ' ', '\xE0', '\xBA', '\x8A', ' ', '\xE0', '\xBA', '\x96', ' ', '\xE0', '\xBA', '\xBD', ' ', '\xE0', '\xBB', '\x86', ' ', '\xE0', '\xBA', '\xAF', /* ງ ຊ ຖ ຽ ໆ ຯ */ '\0', - '\xE1', '\xB5', '\x87', '\xE1', '\xB5', '\x88', '\xE1', '\xB5', '\x8F', '\xCA', '\xB0', '\xCA', '\xB2', '\xE1', '\xB6', '\xA0', '\xE2', '\x81', '\xB1', /* ᵇᵈᵏʰʲᶠⁱ */ + 'T', ' ', 'H', ' ', 'E', ' ', 'Z', ' ', 'O', ' ', 'C', ' ', 'Q', ' ', 'S', /* T H E Z O C Q S */ '\0', - '\xE1', '\xB5', '\x89', '\xE1', '\xB5', '\x92', '\xCA', '\xB3', '\xCB', '\xA2', '\xCB', '\xA3', '\xE1', '\xB6', '\x9C', '\xE1', '\xB6', '\xBB', /* ᵉᵒʳˢˣᶜᶻ */ + 'H', ' ', 'E', ' ', 'Z', ' ', 'L', ' ', 'O', ' ', 'C', ' ', 'U', ' ', 'S', /* H E Z L O C U S */ '\0', - '\xE1', '\xB5', '\x96', '\xCA', '\xB8', '\xE1', '\xB5', '\x8D', /* ᵖʸᵍ */ + 'f', ' ', 'i', ' ', 'j', ' ', 'k', ' ', 'd', ' ', 'b', ' ', 'h', /* f i j k d b h */ '\0', - '\xE0', '\xB0', '\x87', '\xE0', '\xB0', '\x8C', '\xE0', '\xB0', '\x99', '\xE0', '\xB0', '\x9E', '\xE0', '\xB0', '\xA3', '\xE0', '\xB0', '\xB1', '\xE0', '\xB1', '\xAF', /* ఇ ఌ ఙ ఞ à°£ à°± ౯ */ + 'x', ' ', 'z', ' ', 'r', ' ', 'o', ' ', 'e', ' ', 's', ' ', 'c', /* x z r o e s c */ '\0', - '\xE0', '\xB0', '\x85', '\xE0', '\xB0', '\x95', '\xE0', '\xB0', '\x9A', '\xE0', '\xB0', '\xB0', '\xE0', '\xB0', '\xBD', '\xE0', '\xB1', '\xA8', '\xE0', '\xB1', '\xAC', /* అ క చ à°° à°½ ౨ ౬ */ + 'p', ' ', 'q', ' ', 'g', ' ', 'j', ' ', 'y', /* p q g j y */ '\0', - '\xE0', '\xB8', '\x9A', '\xE0', '\xB9', '\x80', '\xE0', '\xB9', '\x81', '\xE0', '\xB8', '\xAD', '\xE0', '\xB8', '\x81', '\xE0', '\xB8', '\xB2', /* บ เ แ อ ก า */ + '\xE2', '\x82', '\x80', ' ', '\xE2', '\x82', '\x83', ' ', '\xE2', '\x82', '\x85', ' ', '\xE2', '\x82', '\x87', ' ', '\xE2', '\x82', '\x88', /* ₀ ₃ ₅ ₇ ₈ */ '\0', - '\xE0', '\xB8', '\x9A', '\xE0', '\xB8', '\x9B', '\xE0', '\xB8', '\xA9', '\xE0', '\xB8', '\xAF', '\xE0', '\xB8', '\xAD', '\xE0', '\xB8', '\xA2', '\xE0', '\xB8', '\xAE', /* บ ป ษ ฯ อ ย ฮ */ + '\xE2', '\x82', '\x80', ' ', '\xE2', '\x82', '\x81', ' ', '\xE2', '\x82', '\x82', ' ', '\xE2', '\x82', '\x83', ' ', '\xE2', '\x82', '\x88', /* ₀ ₁ ₂ ₃ ₈ */ '\0', - '\xE0', '\xB8', '\x9B', '\xE0', '\xB8', '\x9D', '\xE0', '\xB8', '\x9F', /* ป ฝ ฟ */ + '\xE1', '\xB5', '\xA2', ' ', '\xE2', '\xB1', '\xBC', ' ', '\xE2', '\x82', '\x95', ' ', '\xE2', '\x82', '\x96', ' ', '\xE2', '\x82', '\x97', /* áµ¢ â±¼ ₕ ₖ ₗ */ '\0', - '\xE0', '\xB9', '\x82', '\xE0', '\xB9', '\x83', '\xE0', '\xB9', '\x84', /* โ ใ ไ */ + '\xE2', '\x82', '\x90', ' ', '\xE2', '\x82', '\x91', ' ', '\xE2', '\x82', '\x92', ' ', '\xE2', '\x82', '\x93', ' ', '\xE2', '\x82', '\x99', ' ', '\xE2', '\x82', '\x9B', ' ', '\xE1', '\xB5', '\xA5', ' ', '\xE1', '\xB5', '\xA4', ' ', '\xE1', '\xB5', '\xA3', /* ₐ ₑ ₒ ₓ ₙ ₛ áµ¥ ᵤ áµ£ */ '\0', - '\xE0', '\xB8', '\x8E', '\xE0', '\xB8', '\x8F', '\xE0', '\xB8', '\xA4', '\xE0', '\xB8', '\xA6', /* ฎ ฏ ฤ ฦ */ + '\xE1', '\xB5', '\xA6', ' ', '\xE1', '\xB5', '\xA7', ' ', '\xE1', '\xB5', '\xA8', ' ', '\xE1', '\xB5', '\xA9', ' ', '\xE2', '\x82', '\x9A', /* ᵦ ᵧ ᵨ ᵩ ₚ */ '\0', - '\xE0', '\xB8', '\x8D', '\xE0', '\xB8', '\x90', /* ญ ฐ */ + '\xE2', '\x81', '\xB0', ' ', '\xC2', '\xB3', ' ', '\xE2', '\x81', '\xB5', ' ', '\xE2', '\x81', '\xB7', ' ', '\xE1', '\xB5', '\x80', ' ', '\xE1', '\xB4', '\xB4', ' ', '\xE1', '\xB4', '\xB1', ' ', '\xE1', '\xB4', '\xBC', /* ⁰ ³ ⁵ ⁷ ᵀ á´´ á´± á´¼ */ '\0', - '\xE0', '\xB9', '\x90', '\xE0', '\xB9', '\x91', '\xE0', '\xB9', '\x93', /* ๐ ๑ ๓ */ + '\xE2', '\x81', '\xB0', ' ', '\xC2', '\xB9', ' ', '\xC2', '\xB2', ' ', '\xC2', '\xB3', ' ', '\xE1', '\xB4', '\xB1', ' ', '\xE1', '\xB4', '\xB8', ' ', '\xE1', '\xB4', '\xBC', ' ', '\xE1', '\xB5', '\x81', /* ⁰ ¹ ² ³ á´± á´¸ á´¼ ᵁ */ + '\0', + '\xE1', '\xB5', '\x87', ' ', '\xE1', '\xB5', '\x88', ' ', '\xE1', '\xB5', '\x8F', ' ', '\xCA', '\xB0', ' ', '\xCA', '\xB2', ' ', '\xE1', '\xB6', '\xA0', ' ', '\xE2', '\x81', '\xB1', /* ᵇ ᵈ ᵏ Ê° ʲ ᶠ ⁱ */ + '\0', + '\xE1', '\xB5', '\x89', ' ', '\xE1', '\xB5', '\x92', ' ', '\xCA', '\xB3', ' ', '\xCB', '\xA2', ' ', '\xCB', '\xA3', ' ', '\xE1', '\xB6', '\x9C', ' ', '\xE1', '\xB6', '\xBB', /* ᵉ ᵒ ʳ Ë¢ Ë£ ᶜ ᶻ */ + '\0', + '\xE1', '\xB5', '\x96', ' ', '\xCA', '\xB8', ' ', '\xE1', '\xB5', '\x8D', /* ᵖ ʸ ᵍ */ + '\0', + '\xE1', '\x80', '\x81', ' ', '\xE1', '\x80', '\x82', ' ', '\xE1', '\x80', '\x84', ' ', '\xE1', '\x80', '\x92', ' ', '\xE1', '\x80', '\x9D', ' ', '\xE1', '\x81', '\xA5', ' ', '\xE1', '\x81', '\x8A', ' ', '\xE1', '\x81', '\x8B', /* ခ ဂ င ဒ ဝ ၥ ၊ ။ */ + '\0', + '\xE1', '\x80', '\x84', ' ', '\xE1', '\x80', '\x8E', ' ', '\xE1', '\x80', '\x92', ' ', '\xE1', '\x80', '\x95', ' ', '\xE1', '\x80', '\x97', ' ', '\xE1', '\x80', '\x9D', ' ', '\xE1', '\x81', '\x8A', ' ', '\xE1', '\x81', '\x8B', /* င ဎ ဒ ပ ဗ ဝ ၊ ။ */ + '\0', + '\xE1', '\x80', '\xA9', ' ', '\xE1', '\x80', '\xBC', ' ', '\xE1', '\x81', '\x8D', ' ', '\xE1', '\x81', '\x8F', ' ', '\xE1', '\x81', '\x86', ' ', '\xE1', '\x80', '\xAB', ' ', '\xE1', '\x80', '\xAD', /* ဩ ြ ၍ ၏ ၆ ါ ိ */ + '\0', + '\xE1', '\x80', '\x89', ' ', '\xE1', '\x80', '\x8A', ' ', '\xE1', '\x80', '\xA5', ' ', '\xE1', '\x80', '\xA9', ' ', '\xE1', '\x80', '\xA8', ' ', '\xE1', '\x81', '\x82', ' ', '\xE1', '\x81', '\x85', ' ', '\xE1', '\x81', '\x89', /* ဉ ည ဥ ဩ ဨ ၂ ၅ ၉ */ + '\0', + '\xE0', '\xB0', '\x87', ' ', '\xE0', '\xB0', '\x8C', ' ', '\xE0', '\xB0', '\x99', ' ', '\xE0', '\xB0', '\x9E', ' ', '\xE0', '\xB0', '\xA3', ' ', '\xE0', '\xB0', '\xB1', ' ', '\xE0', '\xB1', '\xAF', /* ఇ ఌ ఙ ఞ à°£ à°± ౯ */ + '\0', + '\xE0', '\xB0', '\x85', ' ', '\xE0', '\xB0', '\x95', ' ', '\xE0', '\xB0', '\x9A', ' ', '\xE0', '\xB0', '\xB0', ' ', '\xE0', '\xB0', '\xBD', ' ', '\xE0', '\xB1', '\xA8', ' ', '\xE0', '\xB1', '\xAC', /* అ క చ à°° à°½ ౨ ౬ */ + '\0', + '\xE0', '\xB8', '\x9A', ' ', '\xE0', '\xB9', '\x80', ' ', '\xE0', '\xB9', '\x81', ' ', '\xE0', '\xB8', '\xAD', ' ', '\xE0', '\xB8', '\x81', ' ', '\xE0', '\xB8', '\xB2', /* บ เ แ อ ก า */ + '\0', + '\xE0', '\xB8', '\x9A', ' ', '\xE0', '\xB8', '\x9B', ' ', '\xE0', '\xB8', '\xA9', ' ', '\xE0', '\xB8', '\xAF', ' ', '\xE0', '\xB8', '\xAD', ' ', '\xE0', '\xB8', '\xA2', ' ', '\xE0', '\xB8', '\xAE', /* บ ป ษ ฯ อ ย ฮ */ + '\0', + '\xE0', '\xB8', '\x9B', ' ', '\xE0', '\xB8', '\x9D', ' ', '\xE0', '\xB8', '\x9F', /* ป ฝ ฟ */ + '\0', + '\xE0', '\xB9', '\x82', ' ', '\xE0', '\xB9', '\x83', ' ', '\xE0', '\xB9', '\x84', /* โ ใ ไ */ + '\0', + '\xE0', '\xB8', '\x8E', ' ', '\xE0', '\xB8', '\x8F', ' ', '\xE0', '\xB8', '\xA4', ' ', '\xE0', '\xB8', '\xA6', /* ฎ ฏ ฤ ฦ */ + '\0', + '\xE0', '\xB8', '\x8D', ' ', '\xE0', '\xB8', '\x90', /* ญ ฐ */ + '\0', + '\xE0', '\xB9', '\x90', ' ', '\xE0', '\xB9', '\x91', ' ', '\xE0', '\xB9', '\x93', /* ๐ ๑ ๓ */ #ifdef AF_CONFIG_OPTION_CJK '\0', - '\xE4', '\xBB', '\x96', '\xE4', '\xBB', '\xAC', '\xE4', '\xBD', '\xA0', '\xE4', '\xBE', '\x86', '\xE5', '\x80', '\x91', '\xE5', '\x88', '\xB0', '\xE5', '\x92', '\x8C', '\xE5', '\x9C', '\xB0', /* 他们你來們到和地 */ - '\xE5', '\xAF', '\xB9', '\xE5', '\xB0', '\x8D', '\xE5', '\xB0', '\xB1', '\xE5', '\xB8', '\xAD', '\xE6', '\x88', '\x91', '\xE6', '\x97', '\xB6', '\xE6', '\x99', '\x82', '\xE6', '\x9C', '\x83', /* 对對就席我时時會 */ - '\xE6', '\x9D', '\xA5', '\xE7', '\x82', '\xBA', '\xE8', '\x83', '\xBD', '\xE8', '\x88', '\xB0', '\xE8', '\xAA', '\xAA', '\xE8', '\xAF', '\xB4', '\xE8', '\xBF', '\x99', '\xE9', '\x80', '\x99', /* 来為能舰說说这這 */ - '\xE9', '\xBD', '\x8A', '|', /* 齊 | */ - '\xE5', '\x86', '\x9B', '\xE5', '\x90', '\x8C', '\xE5', '\xB7', '\xB2', '\xE6', '\x84', '\xBF', '\xE6', '\x97', '\xA2', '\xE6', '\x98', '\x9F', '\xE6', '\x98', '\xAF', '\xE6', '\x99', '\xAF', /* 军同已愿既星是景 */ - '\xE6', '\xB0', '\x91', '\xE7', '\x85', '\xA7', '\xE7', '\x8E', '\xB0', '\xE7', '\x8F', '\xBE', '\xE7', '\x90', '\x86', '\xE7', '\x94', '\xA8', '\xE7', '\xBD', '\xAE', '\xE8', '\xA6', '\x81', /* 民照现現理用置要 */ - '\xE8', '\xBB', '\x8D', '\xE9', '\x82', '\xA3', '\xE9', '\x85', '\x8D', '\xE9', '\x87', '\x8C', '\xE9', '\x96', '\x8B', '\xE9', '\x9B', '\xB7', '\xE9', '\x9C', '\xB2', '\xE9', '\x9D', '\xA2', /* 軍那配里開雷露面 */ - '\xE9', '\xA1', '\xBE', /* 顾 */ - '\0', - '\xE4', '\xB8', '\xAA', '\xE4', '\xB8', '\xBA', '\xE4', '\xBA', '\xBA', '\xE4', '\xBB', '\x96', '\xE4', '\xBB', '\xA5', '\xE4', '\xBB', '\xAC', '\xE4', '\xBD', '\xA0', '\xE4', '\xBE', '\x86', /* 个为人他以们你來 */ - '\xE5', '\x80', '\x8B', '\xE5', '\x80', '\x91', '\xE5', '\x88', '\xB0', '\xE5', '\x92', '\x8C', '\xE5', '\xA4', '\xA7', '\xE5', '\xAF', '\xB9', '\xE5', '\xB0', '\x8D', '\xE5', '\xB0', '\xB1', /* 個們到和大对對就 */ - '\xE6', '\x88', '\x91', '\xE6', '\x97', '\xB6', '\xE6', '\x99', '\x82', '\xE6', '\x9C', '\x89', '\xE6', '\x9D', '\xA5', '\xE7', '\x82', '\xBA', '\xE8', '\xA6', '\x81', '\xE8', '\xAA', '\xAA', /* 我时時有来為要說 */ - '\xE8', '\xAF', '\xB4', '|', /* 说 | */ - '\xE4', '\xB8', '\xBB', '\xE4', '\xBA', '\x9B', '\xE5', '\x9B', '\xA0', '\xE5', '\xAE', '\x83', '\xE6', '\x83', '\xB3', '\xE6', '\x84', '\x8F', '\xE7', '\x90', '\x86', '\xE7', '\x94', '\x9F', /* 主些因它想意理生 */ - '\xE7', '\x95', '\xB6', '\xE7', '\x9C', '\x8B', '\xE7', '\x9D', '\x80', '\xE7', '\xBD', '\xAE', '\xE8', '\x80', '\x85', '\xE8', '\x87', '\xAA', '\xE8', '\x91', '\x97', '\xE8', '\xA3', '\xA1', /* 當看着置者自著裡 */ - '\xE8', '\xBF', '\x87', '\xE8', '\xBF', '\x98', '\xE8', '\xBF', '\x9B', '\xE9', '\x80', '\xB2', '\xE9', '\x81', '\x8E', '\xE9', '\x81', '\x93', '\xE9', '\x82', '\x84', '\xE9', '\x87', '\x8C', /* 过还进進過道還里 */ - '\xE9', '\x9D', '\xA2', /* 面 */ + '\xE4', '\xBB', '\x96', ' ', '\xE4', '\xBB', '\xAC', ' ', '\xE4', '\xBD', '\xA0', ' ', '\xE4', '\xBE', '\x86', ' ', '\xE5', '\x80', '\x91', ' ', '\xE5', '\x88', '\xB0', ' ', '\xE5', '\x92', '\x8C', ' ', '\xE5', '\x9C', '\xB0', /* 他 们 ä½  來 們 到 和 地 */ + ' ', '\xE5', '\xAF', '\xB9', ' ', '\xE5', '\xB0', '\x8D', ' ', '\xE5', '\xB0', '\xB1', ' ', '\xE5', '\xB8', '\xAD', ' ', '\xE6', '\x88', '\x91', ' ', '\xE6', '\x97', '\xB6', ' ', '\xE6', '\x99', '\x82', ' ', '\xE6', '\x9C', '\x83', /* 对 對 å°± 席 我 时 時 會 */ + ' ', '\xE6', '\x9D', '\xA5', ' ', '\xE7', '\x82', '\xBA', ' ', '\xE8', '\x83', '\xBD', ' ', '\xE8', '\x88', '\xB0', ' ', '\xE8', '\xAA', '\xAA', ' ', '\xE8', '\xAF', '\xB4', ' ', '\xE8', '\xBF', '\x99', ' ', '\xE9', '\x80', '\x99', /* 来 為 能 舰 說 说 这 這 */ + ' ', '\xE9', '\xBD', '\x8A', ' ', '|', /* 齊 | */ + ' ', '\xE5', '\x86', '\x9B', ' ', '\xE5', '\x90', '\x8C', ' ', '\xE5', '\xB7', '\xB2', ' ', '\xE6', '\x84', '\xBF', ' ', '\xE6', '\x97', '\xA2', ' ', '\xE6', '\x98', '\x9F', ' ', '\xE6', '\x98', '\xAF', ' ', '\xE6', '\x99', '\xAF', /* 军 同 å·² 愿 既 星 是 景 */ + ' ', '\xE6', '\xB0', '\x91', ' ', '\xE7', '\x85', '\xA7', ' ', '\xE7', '\x8E', '\xB0', ' ', '\xE7', '\x8F', '\xBE', ' ', '\xE7', '\x90', '\x86', ' ', '\xE7', '\x94', '\xA8', ' ', '\xE7', '\xBD', '\xAE', ' ', '\xE8', '\xA6', '\x81', /* 民 照 现 現 理 用 ç½® 要 */ + ' ', '\xE8', '\xBB', '\x8D', ' ', '\xE9', '\x82', '\xA3', ' ', '\xE9', '\x85', '\x8D', ' ', '\xE9', '\x87', '\x8C', ' ', '\xE9', '\x96', '\x8B', ' ', '\xE9', '\x9B', '\xB7', ' ', '\xE9', '\x9C', '\xB2', ' ', '\xE9', '\x9D', '\xA2', /* 軍 那 配 里 開 雷 露 面 */ + ' ', '\xE9', '\xA1', '\xBE', /* 顾 */ + '\0', + '\xE4', '\xB8', '\xAA', ' ', '\xE4', '\xB8', '\xBA', ' ', '\xE4', '\xBA', '\xBA', ' ', '\xE4', '\xBB', '\x96', ' ', '\xE4', '\xBB', '\xA5', ' ', '\xE4', '\xBB', '\xAC', ' ', '\xE4', '\xBD', '\xA0', ' ', '\xE4', '\xBE', '\x86', /* 个 为 人 他 以 们 ä½  來 */ + ' ', '\xE5', '\x80', '\x8B', ' ', '\xE5', '\x80', '\x91', ' ', '\xE5', '\x88', '\xB0', ' ', '\xE5', '\x92', '\x8C', ' ', '\xE5', '\xA4', '\xA7', ' ', '\xE5', '\xAF', '\xB9', ' ', '\xE5', '\xB0', '\x8D', ' ', '\xE5', '\xB0', '\xB1', /* 個 們 到 和 大 对 對 å°± */ + ' ', '\xE6', '\x88', '\x91', ' ', '\xE6', '\x97', '\xB6', ' ', '\xE6', '\x99', '\x82', ' ', '\xE6', '\x9C', '\x89', ' ', '\xE6', '\x9D', '\xA5', ' ', '\xE7', '\x82', '\xBA', ' ', '\xE8', '\xA6', '\x81', ' ', '\xE8', '\xAA', '\xAA', /* 我 时 時 有 来 為 要 說 */ + ' ', '\xE8', '\xAF', '\xB4', ' ', '|', /* 说 | */ + ' ', '\xE4', '\xB8', '\xBB', ' ', '\xE4', '\xBA', '\x9B', ' ', '\xE5', '\x9B', '\xA0', ' ', '\xE5', '\xAE', '\x83', ' ', '\xE6', '\x83', '\xB3', ' ', '\xE6', '\x84', '\x8F', ' ', '\xE7', '\x90', '\x86', ' ', '\xE7', '\x94', '\x9F', /* 主 些 因 它 想 意 理 生 */ + ' ', '\xE7', '\x95', '\xB6', ' ', '\xE7', '\x9C', '\x8B', ' ', '\xE7', '\x9D', '\x80', ' ', '\xE7', '\xBD', '\xAE', ' ', '\xE8', '\x80', '\x85', ' ', '\xE8', '\x87', '\xAA', ' ', '\xE8', '\x91', '\x97', ' ', '\xE8', '\xA3', '\xA1', /* 當 看 着 ç½® 者 自 著 裡 */ + ' ', '\xE8', '\xBF', '\x87', ' ', '\xE8', '\xBF', '\x98', ' ', '\xE8', '\xBF', '\x9B', ' ', '\xE9', '\x80', '\xB2', ' ', '\xE9', '\x81', '\x8E', ' ', '\xE9', '\x81', '\x93', ' ', '\xE9', '\x82', '\x84', ' ', '\xE9', '\x87', '\x8C', /* 过 还 进 進 過 道 還 里 */ + ' ', '\xE9', '\x9D', '\xA2', /* 面 */ #ifdef AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT '\0', - '\xE4', '\xBA', '\x9B', '\xE4', '\xBB', '\xAC', '\xE4', '\xBD', '\xA0', '\xE4', '\xBE', '\x86', '\xE5', '\x80', '\x91', '\xE5', '\x88', '\xB0', '\xE5', '\x92', '\x8C', '\xE5', '\x9C', '\xB0', /* 些们你來們到和地 */ - '\xE5', '\xA5', '\xB9', '\xE5', '\xB0', '\x86', '\xE5', '\xB0', '\x87', '\xE5', '\xB0', '\xB1', '\xE5', '\xB9', '\xB4', '\xE5', '\xBE', '\x97', '\xE6', '\x83', '\x85', '\xE6', '\x9C', '\x80', /* 她将將就年得情最 */ - '\xE6', '\xA0', '\xB7', '\xE6', '\xA8', '\xA3', '\xE7', '\x90', '\x86', '\xE8', '\x83', '\xBD', '\xE8', '\xAA', '\xAA', '\xE8', '\xAF', '\xB4', '\xE8', '\xBF', '\x99', '\xE9', '\x80', '\x99', /* 样樣理能說说这這 */ - '\xE9', '\x80', '\x9A', '|', /* 通 | */ - '\xE5', '\x8D', '\xB3', '\xE5', '\x90', '\x97', '\xE5', '\x90', '\xA7', '\xE5', '\x90', '\xAC', '\xE5', '\x91', '\xA2', '\xE5', '\x93', '\x81', '\xE5', '\x93', '\x8D', '\xE5', '\x97', '\x8E', /* 即吗吧听呢品响嗎 */ - '\xE5', '\xB8', '\x88', '\xE5', '\xB8', '\xAB', '\xE6', '\x94', '\xB6', '\xE6', '\x96', '\xAD', '\xE6', '\x96', '\xB7', '\xE6', '\x98', '\x8E', '\xE7', '\x9C', '\xBC', '\xE9', '\x96', '\x93', /* 师師收断斷明眼間 */ - '\xE9', '\x97', '\xB4', '\xE9', '\x99', '\x85', '\xE9', '\x99', '\x88', '\xE9', '\x99', '\x90', '\xE9', '\x99', '\xA4', '\xE9', '\x99', '\xB3', '\xE9', '\x9A', '\x8F', '\xE9', '\x9A', '\x9B', /* 间际陈限除陳随際 */ - '\xE9', '\x9A', '\xA8', /* 隨 */ - '\0', - '\xE4', '\xBA', '\x8B', '\xE5', '\x89', '\x8D', '\xE5', '\xAD', '\xB8', '\xE5', '\xB0', '\x86', '\xE5', '\xB0', '\x87', '\xE6', '\x83', '\x85', '\xE6', '\x83', '\xB3', '\xE6', '\x88', '\x96', /* 事前學将將情想或 */ - '\xE6', '\x94', '\xBF', '\xE6', '\x96', '\xAF', '\xE6', '\x96', '\xB0', '\xE6', '\xA0', '\xB7', '\xE6', '\xA8', '\xA3', '\xE6', '\xB0', '\x91', '\xE6', '\xB2', '\x92', '\xE6', '\xB2', '\xA1', /* 政斯新样樣民沒没 */ - '\xE7', '\x84', '\xB6', '\xE7', '\x89', '\xB9', '\xE7', '\x8E', '\xB0', '\xE7', '\x8F', '\xBE', '\xE7', '\x90', '\x83', '\xE7', '\xAC', '\xAC', '\xE7', '\xB6', '\x93', '\xE8', '\xB0', '\x81', /* 然特现現球第經谁 */ - '\xE8', '\xB5', '\xB7', '|', /* èµ· | */ - '\xE4', '\xBE', '\x8B', '\xE5', '\x88', '\xA5', '\xE5', '\x88', '\xAB', '\xE5', '\x88', '\xB6', '\xE5', '\x8A', '\xA8', '\xE5', '\x8B', '\x95', '\xE5', '\x90', '\x97', '\xE5', '\x97', '\x8E', /* 例別别制动動吗嗎 */ - '\xE5', '\xA2', '\x9E', '\xE6', '\x8C', '\x87', '\xE6', '\x98', '\x8E', '\xE6', '\x9C', '\x9D', '\xE6', '\x9C', '\x9F', '\xE6', '\x9E', '\x84', '\xE7', '\x89', '\xA9', '\xE7', '\xA1', '\xAE', /* 增指明朝期构物确 */ - '\xE7', '\xA7', '\x8D', '\xE8', '\xAA', '\xBF', '\xE8', '\xB0', '\x83', '\xE8', '\xB2', '\xBB', '\xE8', '\xB4', '\xB9', '\xE9', '\x82', '\xA3', '\xE9', '\x83', '\xBD', '\xE9', '\x96', '\x93', /* 种調调費费那都間 */ - '\xE9', '\x97', '\xB4', /* 间 */ + ' ', '\xE4', '\xBA', '\x9B', ' ', '\xE4', '\xBB', '\xAC', ' ', '\xE4', '\xBD', '\xA0', ' ', '\xE4', '\xBE', '\x86', ' ', '\xE5', '\x80', '\x91', ' ', '\xE5', '\x88', '\xB0', ' ', '\xE5', '\x92', '\x8C', ' ', '\xE5', '\x9C', '\xB0', /* 些 们 ä½  來 們 到 和 地 */ + ' ', '\xE5', '\xA5', '\xB9', ' ', '\xE5', '\xB0', '\x86', ' ', '\xE5', '\xB0', '\x87', ' ', '\xE5', '\xB0', '\xB1', ' ', '\xE5', '\xB9', '\xB4', ' ', '\xE5', '\xBE', '\x97', ' ', '\xE6', '\x83', '\x85', ' ', '\xE6', '\x9C', '\x80', /* 她 将 將 å°± å¹´ 得 情 最 */ + ' ', '\xE6', '\xA0', '\xB7', ' ', '\xE6', '\xA8', '\xA3', ' ', '\xE7', '\x90', '\x86', ' ', '\xE8', '\x83', '\xBD', ' ', '\xE8', '\xAA', '\xAA', ' ', '\xE8', '\xAF', '\xB4', ' ', '\xE8', '\xBF', '\x99', ' ', '\xE9', '\x80', '\x99', /* æ · 樣 理 能 說 说 这 這 */ + ' ', '\xE9', '\x80', '\x9A', ' ', '|', /* 通 | */ + ' ', '\xE5', '\x8D', '\xB3', ' ', '\xE5', '\x90', '\x97', ' ', '\xE5', '\x90', '\xA7', ' ', '\xE5', '\x90', '\xAC', ' ', '\xE5', '\x91', '\xA2', ' ', '\xE5', '\x93', '\x81', ' ', '\xE5', '\x93', '\x8D', ' ', '\xE5', '\x97', '\x8E', /* 即 吗 吧 听 呢 品 响 嗎 */ + ' ', '\xE5', '\xB8', '\x88', ' ', '\xE5', '\xB8', '\xAB', ' ', '\xE6', '\x94', '\xB6', ' ', '\xE6', '\x96', '\xAD', ' ', '\xE6', '\x96', '\xB7', ' ', '\xE6', '\x98', '\x8E', ' ', '\xE7', '\x9C', '\xBC', ' ', '\xE9', '\x96', '\x93', /* 师 師 收 断 斷 明 眼 間 */ + ' ', '\xE9', '\x97', '\xB4', ' ', '\xE9', '\x99', '\x85', ' ', '\xE9', '\x99', '\x88', ' ', '\xE9', '\x99', '\x90', ' ', '\xE9', '\x99', '\xA4', ' ', '\xE9', '\x99', '\xB3', ' ', '\xE9', '\x9A', '\x8F', ' ', '\xE9', '\x9A', '\x9B', /* 间 际 陈 限 除 陳 随 際 */ + ' ', '\xE9', '\x9A', '\xA8', /* 隨 */ + '\0', + '\xE4', '\xBA', '\x8B', ' ', '\xE5', '\x89', '\x8D', ' ', '\xE5', '\xAD', '\xB8', ' ', '\xE5', '\xB0', '\x86', ' ', '\xE5', '\xB0', '\x87', ' ', '\xE6', '\x83', '\x85', ' ', '\xE6', '\x83', '\xB3', ' ', '\xE6', '\x88', '\x96', /* 事 前 å­¸ 将 將 情 想 或 */ + ' ', '\xE6', '\x94', '\xBF', ' ', '\xE6', '\x96', '\xAF', ' ', '\xE6', '\x96', '\xB0', ' ', '\xE6', '\xA0', '\xB7', ' ', '\xE6', '\xA8', '\xA3', ' ', '\xE6', '\xB0', '\x91', ' ', '\xE6', '\xB2', '\x92', ' ', '\xE6', '\xB2', '\xA1', /* 政 斯 新 æ · 樣 民 沒 没 */ + ' ', '\xE7', '\x84', '\xB6', ' ', '\xE7', '\x89', '\xB9', ' ', '\xE7', '\x8E', '\xB0', ' ', '\xE7', '\x8F', '\xBE', ' ', '\xE7', '\x90', '\x83', ' ', '\xE7', '\xAC', '\xAC', ' ', '\xE7', '\xB6', '\x93', ' ', '\xE8', '\xB0', '\x81', /* 然 特 现 現 球 第 經 谁 */ + ' ', '\xE8', '\xB5', '\xB7', ' ', '|', /* èµ· | */ + ' ', '\xE4', '\xBE', '\x8B', ' ', '\xE5', '\x88', '\xA5', ' ', '\xE5', '\x88', '\xAB', ' ', '\xE5', '\x88', '\xB6', ' ', '\xE5', '\x8A', '\xA8', ' ', '\xE5', '\x8B', '\x95', ' ', '\xE5', '\x90', '\x97', ' ', '\xE5', '\x97', '\x8E', /* 例 別 别 制 动 動 吗 嗎 */ + ' ', '\xE5', '\xA2', '\x9E', ' ', '\xE6', '\x8C', '\x87', ' ', '\xE6', '\x98', '\x8E', ' ', '\xE6', '\x9C', '\x9D', ' ', '\xE6', '\x9C', '\x9F', ' ', '\xE6', '\x9E', '\x84', ' ', '\xE7', '\x89', '\xA9', ' ', '\xE7', '\xA1', '\xAE', /* 增 指 明 朝 期 构 物 ç¡® */ + ' ', '\xE7', '\xA7', '\x8D', ' ', '\xE8', '\xAA', '\xBF', ' ', '\xE8', '\xB0', '\x83', ' ', '\xE8', '\xB2', '\xBB', ' ', '\xE8', '\xB4', '\xB9', ' ', '\xE9', '\x82', '\xA3', ' ', '\xE9', '\x83', '\xBD', ' ', '\xE9', '\x96', '\x93', /* 种 調 调 è²» è´¹ 那 都 間 */ + ' ', '\xE9', '\x97', '\xB4', /* 间 */ #endif /* AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT */ #endif /* AF_CONFIG_OPTION_CJK */ '\0', @@ -175,6 +207,13 @@ { AF_BLUE_STRING_ARABIC_BOTTOM, 0 }, { AF_BLUE_STRING_ARABIC_JOIN, AF_BLUE_PROPERTY_LATIN_NEUTRAL }, { AF_BLUE_STRING_MAX, 0 }, + { AF_BLUE_STRING_BENGALI_TOP, AF_BLUE_PROPERTY_LATIN_TOP }, + { AF_BLUE_STRING_BENGALI_HEAD, AF_BLUE_PROPERTY_LATIN_TOP }, + { AF_BLUE_STRING_BENGALI_BASE, AF_BLUE_PROPERTY_LATIN_TOP | + AF_BLUE_PROPERTY_LATIN_NEUTRAL | + AF_BLUE_PROPERTY_LATIN_X_HEIGHT }, + { AF_BLUE_STRING_BENGALI_BASE, 0 }, + { AF_BLUE_STRING_MAX, 0 }, { AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }, { AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM, 0 }, { AF_BLUE_STRING_CYRILLIC_SMALL, AF_BLUE_PROPERTY_LATIN_TOP | @@ -203,6 +242,20 @@ { AF_BLUE_STRING_HEBREW_BOTTOM, 0 }, { AF_BLUE_STRING_HEBREW_DESCENDER, 0 }, { AF_BLUE_STRING_MAX, 0 }, + { AF_BLUE_STRING_KANNADA_TOP, AF_BLUE_PROPERTY_LATIN_TOP }, + { AF_BLUE_STRING_KANNADA_BOTTOM, 0 }, + { AF_BLUE_STRING_MAX, 0 }, + { AF_BLUE_STRING_KHMER_TOP, AF_BLUE_PROPERTY_LATIN_TOP | + AF_BLUE_PROPERTY_LATIN_X_HEIGHT }, + { AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP, AF_BLUE_PROPERTY_LATIN_SUB_TOP }, + { AF_BLUE_STRING_KHMER_BOTTOM, 0 }, + { AF_BLUE_STRING_KHMER_DESCENDER, 0 }, + { AF_BLUE_STRING_KHMER_LARGE_DESCENDER, 0 }, + { AF_BLUE_STRING_MAX, 0 }, + { AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP, AF_BLUE_PROPERTY_LATIN_TOP | + AF_BLUE_PROPERTY_LATIN_X_HEIGHT }, + { AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM, 0 }, + { AF_BLUE_STRING_MAX, 0 }, { AF_BLUE_STRING_LAO_TOP, AF_BLUE_PROPERTY_LATIN_TOP | AF_BLUE_PROPERTY_LATIN_X_HEIGHT }, { AF_BLUE_STRING_LAO_BOTTOM, 0 }, @@ -234,6 +287,12 @@ { AF_BLUE_STRING_LATIN_SUPS_SMALL, 0 }, { AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER, 0 }, { AF_BLUE_STRING_MAX, 0 }, + { AF_BLUE_STRING_MYANMAR_TOP, AF_BLUE_PROPERTY_LATIN_TOP | + AF_BLUE_PROPERTY_LATIN_X_HEIGHT }, + { AF_BLUE_STRING_MYANMAR_BOTTOM, 0 }, + { AF_BLUE_STRING_MYANMAR_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }, + { AF_BLUE_STRING_MYANMAR_DESCENDER, 0 }, + { AF_BLUE_STRING_MAX, 0 }, { AF_BLUE_STRING_TELUGU_TOP, AF_BLUE_PROPERTY_LATIN_TOP }, { AF_BLUE_STRING_TELUGU_BOTTOM, 0 }, { AF_BLUE_STRING_MAX, 0 }, diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afblue.cin b/reactos/lib/3rdparty/freetype/src/autofit/afblue.cin index b303a4b2b01..0c3cae818fb 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afblue.cin +++ b/reactos/lib/3rdparty/freetype/src/autofit/afblue.cin @@ -4,7 +4,7 @@ /* */ /* Auto-fitter data for blue strings (body). */ /* */ -/* Copyright 2013-2015 by */ +/* Copyright 2013-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afblue.dat b/reactos/lib/3rdparty/freetype/src/autofit/afblue.dat index 1b52378ed3e..9a7757c22c0 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afblue.dat +++ b/reactos/lib/3rdparty/freetype/src/autofit/afblue.dat @@ -2,7 +2,7 @@ // // Auto-fitter data for blue strings. // -// Copyright 2013-2015 by +// Copyright 2013-2016 by // David Turner, Robert Wilhelm, and Werner Lemberg. // // This file is part of the FreeType project, and may only be used, @@ -20,9 +20,8 @@ // labels separated by whitespace and followed by a colon (everything in a // single line); the first label gives the name of the enumeration template, // the second the name of the array template, and the third the name of the -// `maximum' template, holding the size of the largest array element. The -// script then fills the corresponding templates (indicated by `@' -// characters around the name). +// `maximum' template. The script then fills the corresponding templates +// (indicated by `@' characters around the name). // // A section contains one or more data records. Each data record consists // of two or more lines. The first line holds the enumeration name, and the @@ -30,15 +29,20 @@ // // There are two possible representations for array data. // -// - A string of characters in UTF-8 encoding enclosed in double quotes, -// using C syntax. There can be only one string per line, thus the -// starting and ending double quote must be the first and last character -// in the line, respectively, ignoring whitespace before and after the -// string. Space characters within the string are ignored too. If there -// are multiple strings (in multiple lines), they are concatenated to a -// single string. In the output, a string gets represented as a series of -// singles bytes, followed by a zero byte. The enumeration values simply -// hold byte offsets to the start of the corresponding strings. +// - A string of characters or character clusters (for example, representing +// Aksharas, Devanagari syllables) in UTF-8 encoding enclosed in double +// quotes, using C syntax, where the elements are separated by spaces. +// There can be only one string per line, thus the starting and ending +// double quote must be the first and last character in the line, +// respectively, ignoring whitespace before and after the string. If +// there are multiple strings (in multiple lines), they are concatenated +// to a single string. In the output, a string gets represented as a +// series of singles bytes, followed by a zero byte. The enumeration +// values simply hold byte offsets to the start of the corresponding +// strings. +// +// For strings, the `maximum' template holds the maximum number of +// non-space characters in all strings. // // - Data blocks enclosed in balanced braces, which get copied verbatim and // which can span multiple lines. The opening brace of a block must be @@ -47,6 +51,9 @@ // character after each block and counts the number of blocks to set the // enumeration values. // +// For data blocks, the `maximum' template holds the maximum number of +// array elements. +// // A section can contain either strings only or data blocks only. // // A comment line starts with `//'; it gets removed. A preprocessor @@ -79,17 +86,22 @@ AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN: AF_BLUE_STRING_ARABIC_JOIN "ـ" + AF_BLUE_STRING_BENGALI_BASE + "অ ড ত ন ব ভ ল ক" + AF_BLUE_STRING_BENGALI_TOP + "ই ট ঠ ি ী ৈ ৗ" + AF_BLUE_STRING_BENGALI_HEAD + "ও এ ড ত ন ব ল ক" + AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP - "БВЕПЗОСЭ" + "Б В Е П З О С Э" AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM - "БВЕШЗОСЭ" + "Б В Е Ш З О С Э" AF_BLUE_STRING_CYRILLIC_SMALL - "хпншезос" + "х п н ш е з о с" AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER - "руф" + "р у ф" - // we separate the letters with spaces to avoid ligatures; - // this is just for convenience to simplify reading AF_BLUE_STRING_DEVANAGARI_BASE "क म अ आ थ ध भ श" AF_BLUE_STRING_DEVANAGARI_TOP @@ -103,22 +115,43 @@ AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN: "ु ृ" AF_BLUE_STRING_GREEK_CAPITAL_TOP - "ΓΒΕΖΘΟΩ" + "Γ Β Ε Ζ Θ Ο Ω" AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM - "ΒΔΖΞΘΟ" + "Β Δ Ζ Ξ Θ Ο" AF_BLUE_STRING_GREEK_SMALL_BETA_TOP - "βθδζλξ" + "β θ δ ζ λ ξ" AF_BLUE_STRING_GREEK_SMALL - "αειοπστω" + "α ε ι ο π σ τ ω" AF_BLUE_STRING_GREEK_SMALL_DESCENDER - "βγημρφχψ" + "β γ η μ ρ φ χ ψ" AF_BLUE_STRING_HEBREW_TOP - "בדהחךכםס" + "ב ד ה ח ך כ ם ס" AF_BLUE_STRING_HEBREW_BOTTOM - "בטכםסצ" + "ב ט כ ם ס צ" AF_BLUE_STRING_HEBREW_DESCENDER - "קךןףץ" + "ק ך ן ×£ ×¥" + + AF_BLUE_STRING_KANNADA_TOP + "ಇ ಊ ಐ ಣ ಸಾ ನಾ ದಾ ರಾ" + AF_BLUE_STRING_KANNADA_BOTTOM + "ಅ ಉ ಎ ಲ ೦ ೨ ೬ à³­" + + AF_BLUE_STRING_KHMER_TOP + "ខ ទ ន ឧ ឩ ា" + AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP + "ក្ក ក្ខ ក្គ ក្ថ" + AF_BLUE_STRING_KHMER_BOTTOM + "ខ ឃ ច ឋ ប ម យ ឲ" + AF_BLUE_STRING_KHMER_DESCENDER + "ត្រ រៀ ឲ្យ អឿ" + AF_BLUE_STRING_KHMER_LARGE_DESCENDER + "ន្ត្រៃ ង្ខ្យ ក្បៀ ច្រៀ ន្តឿ ល្បឿ" + + AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP + "᧠ ᧡" + AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM + "᧶ ᧹" AF_BLUE_STRING_LAO_TOP "າ ດ ອ ມ ລ ວ ຣ ງ" @@ -132,43 +165,50 @@ AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN: "ງ ຊ ຖ ຽ ໆ ຯ" AF_BLUE_STRING_LATIN_CAPITAL_TOP - "THEZOCQS" + "T H E Z O C Q S" AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM - "HEZLOCUS" + "H E Z L O C U S" AF_BLUE_STRING_LATIN_SMALL_F_TOP - "fijkdbh" + "f i j k d b h" AF_BLUE_STRING_LATIN_SMALL - "xzroesc" + "x z r o e s c" AF_BLUE_STRING_LATIN_SMALL_DESCENDER - "pqgjy" + "p q g j y" // we assume that both the subscript and superscript ranges // don't contain oldstyle digits (actually, most fonts probably // have digits only in those ranges) AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP - "₀₃₅₇₈" + "₀ ₃ ₅ ₇ ₈" AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM - "₀₁₂₃₈" + "₀ ₁ ₂ ₃ ₈" AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP - "ᵢⱼₕₖₗ" + "áµ¢ â±¼ ₕ ₖ ₗ" AF_BLUE_STRING_LATIN_SUBS_SMALL - "ₐₑₒₓₙₛᵥᵤᵣ" + "ₐ ₑ ₒ ₓ ₙ ₛ áµ¥ ᵤ áµ£" AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER - "ᵦᵧᵨᵩₚ" + "ᵦ ᵧ ᵨ ᵩ ₚ" AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP - "⁰³⁵⁷ᵀᴴᴱᴼ" + "⁰ ³ ⁵ ⁷ ᵀ á´´ á´± á´¼" AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM - "⁰¹²³ᴱᴸᴼᵁ" + "⁰ ¹ ² ³ á´± á´¸ á´¼ ᵁ" AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP - "ᵇᵈᵏʰʲᶠⁱ" + "ᵇ ᵈ ᵏ Ê° ʲ ᶠ ⁱ" AF_BLUE_STRING_LATIN_SUPS_SMALL - "ᵉᵒʳˢˣᶜᶻ" + "ᵉ ᵒ ʳ Ë¢ Ë£ ᶜ ᶻ" AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER - "ᵖʸᵍ" + "ᵖ ʸ ᵍ" + + AF_BLUE_STRING_MYANMAR_TOP + "ခ ဂ င ဒ ဝ ၥ ၊ ။" + AF_BLUE_STRING_MYANMAR_BOTTOM + "င ဎ ဒ ပ ဗ ဝ ၊ ။" + AF_BLUE_STRING_MYANMAR_ASCENDER + "ဩ ြ ၍ ၏ ၆ ါ ိ" + AF_BLUE_STRING_MYANMAR_DESCENDER + "ဉ ည ဥ ဩ ဨ ၂ ၅ ၉" - // we separate the letters with spaces to avoid ligatures; - // this is just for convenience to simplify reading AF_BLUE_STRING_TELUGU_TOP "ఇ ఌ ఙ ఞ à°£ à°± ౯" AF_BLUE_STRING_TELUGU_BOTTOM @@ -193,44 +233,44 @@ AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN: #ifdef AF_CONFIG_OPTION_CJK AF_BLUE_STRING_CJK_TOP - "他们你來們到和地" - "对對就席我时時會" - "来為能舰說说这這" - "齊 |" - "军同已愿既星是景" - "民照现現理用置要" - "軍那配里開雷露面" - "顾" + "他 们 ä½  來 們 到 和 地" + " 对 對 å°± 席 我 时 時 會" + " 来 為 能 舰 說 说 这 這" + " 齊 |" + " 军 同 å·² 愿 既 星 是 景" + " 民 照 现 現 理 用 ç½® 要" + " 軍 那 配 里 開 雷 露 面" + " 顾" AF_BLUE_STRING_CJK_BOTTOM - "个为人他以们你來" - "個們到和大对對就" - "我时時有来為要說" - "说 |" - "主些因它想意理生" - "當看着置者自著裡" - "过还进進過道還里" - "面" + "个 为 人 他 以 们 ä½  來" + " 個 們 到 和 大 对 對 å°±" + " 我 时 時 有 来 為 要 說" + " 说 |" + " 主 些 因 它 想 意 理 生" + " 當 看 着 ç½® 者 自 著 裡" + " 过 还 进 進 過 道 還 里" + " 面" #ifdef AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT AF_BLUE_STRING_CJK_LEFT - "些们你來們到和地" - "她将將就年得情最" - "样樣理能說说这這" - "通 |" - "即吗吧听呢品响嗎" - "师師收断斷明眼間" - "间际陈限除陳随際" - "隨" + " 些 们 ä½  來 們 到 和 地" + " 她 将 將 å°± å¹´ 得 情 最" + " æ · 樣 理 能 說 说 这 這" + " 通 |" + " 即 吗 吧 听 呢 品 响 嗎" + " 师 師 收 断 斷 明 眼 間" + " 间 际 陈 限 除 陳 随 際" + " 隨" AF_BLUE_STRING_CJK_RIGHT - "事前學将將情想或" - "政斯新样樣民沒没" - "然特现現球第經谁" - "èµ· |" - "例別别制动動吗嗎" - "增指明朝期构物确" - "种調调費费那都間" - "间" + "事 前 å­¸ 将 將 情 想 或" + " 政 斯 新 æ · 樣 民 沒 没" + " 然 特 现 現 球 第 經 谁" + " èµ· |" + " 例 別 别 制 动 動 吗 嗎" + " 增 指 明 朝 期 构 物 ç¡®" + " 种 調 调 è²» è´¹ 那 都 間" + " 间" #endif /* AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT */ @@ -262,6 +302,14 @@ AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN: // respectively. Only horizontal blue zones (i.e., adjusting vertical // coordinate values) are supported. // +// Some scripts like Khmer need character composition to get all necessary +// blue zones, since Unicode only provides an abstract data model that +// doesn't represent all possible glyph shapes. For such character +// clusters, the HarfBuzz library is used to convert them into the +// corresponding glyphs. The largest glyph element (where `largest' can be +// either `largest ascender' or `largest descender') then defines the +// corresponding flat or round extremum. +// // For the latin auto-hinter, the overshoot should be larger than the // reference for top zones, and vice versa for bottom zones. // @@ -272,6 +320,21 @@ AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN: // // If not set, take the minimum values. // +// Mutually exclusive with `LATIN_SUB_TOP'. +// +// LATIN_SUB_TOP +// For all glyphs of a character cluster, compute the maximum flat +// and round coordinate values of each component, then take the +// smallest of the maximum values. The idea is to get the top of +// subscript glyphs, as used in Khmer, for example. Note that +// this mechanism doesn't work for ordinary ligatures. +// +// This flags indicates a secondary blue zone: It gets removed if +// there is a non-LATIN_SUB_TOP blue zone at the same coordinate +// value (after scaling). +// +// Mutually exclusive with `LATIN_TOP'. +// // LATIN_NEUTRAL // Ignore round extrema and define the blue zone with flat values only. // Both top and bottom of contours can match. This is useful for @@ -307,11 +370,11 @@ AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN: // // Characters in a blue string are *not* automatically classified. Instead, // first come the characters used for the overshoot value, then the -// character `|', then the characters used for the reference value. The -// blue zone is then set up by the mean values of all reference values and -// all overshoot values, respectively. Both horizontal and vertical blue -// zones (i.e., adjusting vertical and horizontal coordinate values, -// respectively) are supported. +// character `|', then the characters used for the reference value +// (everything separated by space characters). The blue zone is then set up +// by the mean values of all reference values and all overshoot values, +// respectively. Both horizontal and vertical blue zones (i.e., adjusting +// vertical and horizontal coordinate values, respectively) are supported. // // For the cjk auto-hinter, the overshoot should be smaller than the // reference for top zones, and vice versa for bottom zones. @@ -337,6 +400,15 @@ AF_BLUE_STRINGSET_ENUM AF_BLUE_STRINGSETS_ARRAY AF_BLUE_STRINGSET_MAX_LEN: { AF_BLUE_STRING_ARABIC_JOIN, AF_BLUE_PROPERTY_LATIN_NEUTRAL } { AF_BLUE_STRING_MAX, 0 } + AF_BLUE_STRINGSET_BENG + { AF_BLUE_STRING_BENGALI_TOP, AF_BLUE_PROPERTY_LATIN_TOP } + { AF_BLUE_STRING_BENGALI_HEAD, AF_BLUE_PROPERTY_LATIN_TOP } + { AF_BLUE_STRING_BENGALI_BASE, AF_BLUE_PROPERTY_LATIN_TOP | + AF_BLUE_PROPERTY_LATIN_NEUTRAL | + AF_BLUE_PROPERTY_LATIN_X_HEIGHT } + { AF_BLUE_STRING_BENGALI_BASE, 0 } + { AF_BLUE_STRING_MAX, 0 } + AF_BLUE_STRINGSET_CYRL { AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP } { AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM, 0 } @@ -373,6 +445,26 @@ AF_BLUE_STRINGSET_ENUM AF_BLUE_STRINGSETS_ARRAY AF_BLUE_STRINGSET_MAX_LEN: { AF_BLUE_STRING_HEBREW_DESCENDER, 0 } { AF_BLUE_STRING_MAX, 0 } + AF_BLUE_STRINGSET_KNDA + { AF_BLUE_STRING_KANNADA_TOP, AF_BLUE_PROPERTY_LATIN_TOP } + { AF_BLUE_STRING_KANNADA_BOTTOM, 0 } + { AF_BLUE_STRING_MAX, 0 } + + AF_BLUE_STRINGSET_KHMR + { AF_BLUE_STRING_KHMER_TOP, AF_BLUE_PROPERTY_LATIN_TOP | + AF_BLUE_PROPERTY_LATIN_X_HEIGHT } + { AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP, AF_BLUE_PROPERTY_LATIN_SUB_TOP } + { AF_BLUE_STRING_KHMER_BOTTOM, 0 } + { AF_BLUE_STRING_KHMER_DESCENDER, 0 } + { AF_BLUE_STRING_KHMER_LARGE_DESCENDER, 0 } + { AF_BLUE_STRING_MAX, 0 } + + AF_BLUE_STRINGSET_KHMS + { AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP, AF_BLUE_PROPERTY_LATIN_TOP | + AF_BLUE_PROPERTY_LATIN_X_HEIGHT } + { AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM, 0 } + { AF_BLUE_STRING_MAX, 0 } + AF_BLUE_STRINGSET_LAO { AF_BLUE_STRING_LAO_TOP, AF_BLUE_PROPERTY_LATIN_TOP | AF_BLUE_PROPERTY_LATIN_X_HEIGHT } @@ -412,6 +504,14 @@ AF_BLUE_STRINGSET_ENUM AF_BLUE_STRINGSETS_ARRAY AF_BLUE_STRINGSET_MAX_LEN: { AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER, 0 } { AF_BLUE_STRING_MAX, 0 } + AF_BLUE_STRINGSET_MYMR + { AF_BLUE_STRING_MYANMAR_TOP, AF_BLUE_PROPERTY_LATIN_TOP | + AF_BLUE_PROPERTY_LATIN_X_HEIGHT } + { AF_BLUE_STRING_MYANMAR_BOTTOM, 0 } + { AF_BLUE_STRING_MYANMAR_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP } + { AF_BLUE_STRING_MYANMAR_DESCENDER, 0 } + { AF_BLUE_STRING_MAX, 0 } + AF_BLUE_STRINGSET_TELU { AF_BLUE_STRING_TELUGU_TOP, AF_BLUE_PROPERTY_LATIN_TOP } { AF_BLUE_STRING_TELUGU_BOTTOM, 0 } diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afblue.h b/reactos/lib/3rdparty/freetype/src/autofit/afblue.h index c26a9c792b0..75cd6c3fa0c 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afblue.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/afblue.h @@ -7,7 +7,7 @@ /* */ /* Auto-fitter data for blue strings (specification). */ /* */ -/* Copyright 2013-2015 by */ +/* Copyright 2013-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -19,8 +19,8 @@ /***************************************************************************/ -#ifndef __AFBLUE_H__ -#define __AFBLUE_H__ +#ifndef AFBLUE_H_ +#define AFBLUE_H_ FT_BEGIN_HEADER @@ -28,32 +28,35 @@ FT_BEGIN_HEADER /* an auxiliary macro to decode a UTF-8 character -- since we only use */ /* hard-coded, self-converted data, no error checking is performed */ -#define GET_UTF8_CHAR( ch, p ) \ - ch = (unsigned char)*p++; \ - if ( ch >= 0x80 ) \ - { \ - FT_UInt len; \ - \ - \ - if ( ch < 0xE0 ) \ - { \ - len = 1; \ - ch &= 0x1F; \ - } \ - else if ( ch < 0xF0 ) \ - { \ - len = 2; \ - ch &= 0x0F; \ - } \ - else \ - { \ - len = 3; \ - ch &= 0x07; \ - } \ - \ - for ( ; len > 0; len-- ) \ - ch = ( ch << 6 ) | ( *p++ & 0x3F ); \ - } +#define GET_UTF8_CHAR( ch, p ) \ + do \ + { \ + ch = (unsigned char)*p++; \ + if ( ch >= 0x80 ) \ + { \ + FT_UInt len_; \ + \ + \ + if ( ch < 0xE0 ) \ + { \ + len_ = 1; \ + ch &= 0x1F; \ + } \ + else if ( ch < 0xF0 ) \ + { \ + len_ = 2; \ + ch &= 0x0F; \ + } \ + else \ + { \ + len_ = 3; \ + ch &= 0x07; \ + } \ + \ + for ( ; len_ > 0; len_-- ) \ + ch = ( ch << 6 ) | ( *p++ & 0x3F ); \ + } \ + } while ( 0 ) /*************************************************************************/ @@ -75,62 +78,78 @@ FT_BEGIN_HEADER typedef enum AF_Blue_String_ { AF_BLUE_STRING_ARABIC_TOP = 0, - AF_BLUE_STRING_ARABIC_BOTTOM = 13, - AF_BLUE_STRING_ARABIC_JOIN = 24, - AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP = 27, - AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM = 44, - AF_BLUE_STRING_CYRILLIC_SMALL = 61, - AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER = 78, - AF_BLUE_STRING_DEVANAGARI_BASE = 85, - AF_BLUE_STRING_DEVANAGARI_TOP = 110, - AF_BLUE_STRING_DEVANAGARI_HEAD = 135, - AF_BLUE_STRING_DEVANAGARI_BOTTOM = 160, - AF_BLUE_STRING_GREEK_CAPITAL_TOP = 167, - AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM = 182, - AF_BLUE_STRING_GREEK_SMALL_BETA_TOP = 195, - AF_BLUE_STRING_GREEK_SMALL = 208, - AF_BLUE_STRING_GREEK_SMALL_DESCENDER = 225, - AF_BLUE_STRING_HEBREW_TOP = 242, - AF_BLUE_STRING_HEBREW_BOTTOM = 259, - AF_BLUE_STRING_HEBREW_DESCENDER = 272, - AF_BLUE_STRING_LAO_TOP = 283, - AF_BLUE_STRING_LAO_BOTTOM = 308, - AF_BLUE_STRING_LAO_ASCENDER = 333, - AF_BLUE_STRING_LAO_LARGE_ASCENDER = 346, - AF_BLUE_STRING_LAO_DESCENDER = 356, - AF_BLUE_STRING_LATIN_CAPITAL_TOP = 375, - AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM = 384, - AF_BLUE_STRING_LATIN_SMALL_F_TOP = 393, - AF_BLUE_STRING_LATIN_SMALL = 401, - AF_BLUE_STRING_LATIN_SMALL_DESCENDER = 409, - AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP = 415, - AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM = 431, - AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP = 447, - AF_BLUE_STRING_LATIN_SUBS_SMALL = 463, - AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER = 491, - AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP = 507, - AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM = 531, - AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP = 553, - AF_BLUE_STRING_LATIN_SUPS_SMALL = 573, - AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER = 592, - AF_BLUE_STRING_TELUGU_TOP = 601, - AF_BLUE_STRING_TELUGU_BOTTOM = 623, - AF_BLUE_STRING_THAI_TOP = 645, - AF_BLUE_STRING_THAI_BOTTOM = 664, - AF_BLUE_STRING_THAI_ASCENDER = 686, - AF_BLUE_STRING_THAI_LARGE_ASCENDER = 696, - AF_BLUE_STRING_THAI_DESCENDER = 706, - AF_BLUE_STRING_THAI_LARGE_DESCENDER = 719, - AF_BLUE_STRING_THAI_DIGIT_TOP = 726, - af_blue_1_1 = 735, + AF_BLUE_STRING_ARABIC_BOTTOM = 18, + AF_BLUE_STRING_ARABIC_JOIN = 33, + AF_BLUE_STRING_BENGALI_BASE = 36, + AF_BLUE_STRING_BENGALI_TOP = 68, + AF_BLUE_STRING_BENGALI_HEAD = 96, + AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP = 128, + AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM = 152, + AF_BLUE_STRING_CYRILLIC_SMALL = 176, + AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER = 200, + AF_BLUE_STRING_DEVANAGARI_BASE = 209, + AF_BLUE_STRING_DEVANAGARI_TOP = 241, + AF_BLUE_STRING_DEVANAGARI_HEAD = 273, + AF_BLUE_STRING_DEVANAGARI_BOTTOM = 305, + AF_BLUE_STRING_GREEK_CAPITAL_TOP = 313, + AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM = 334, + AF_BLUE_STRING_GREEK_SMALL_BETA_TOP = 352, + AF_BLUE_STRING_GREEK_SMALL = 370, + AF_BLUE_STRING_GREEK_SMALL_DESCENDER = 394, + AF_BLUE_STRING_HEBREW_TOP = 418, + AF_BLUE_STRING_HEBREW_BOTTOM = 442, + AF_BLUE_STRING_HEBREW_DESCENDER = 460, + AF_BLUE_STRING_KANNADA_TOP = 475, + AF_BLUE_STRING_KANNADA_BOTTOM = 519, + AF_BLUE_STRING_KHMER_TOP = 551, + AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP = 575, + AF_BLUE_STRING_KHMER_BOTTOM = 615, + AF_BLUE_STRING_KHMER_DESCENDER = 647, + AF_BLUE_STRING_KHMER_LARGE_DESCENDER = 681, + AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP = 768, + AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM = 776, + AF_BLUE_STRING_LAO_TOP = 784, + AF_BLUE_STRING_LAO_BOTTOM = 816, + AF_BLUE_STRING_LAO_ASCENDER = 848, + AF_BLUE_STRING_LAO_LARGE_ASCENDER = 864, + AF_BLUE_STRING_LAO_DESCENDER = 876, + AF_BLUE_STRING_LATIN_CAPITAL_TOP = 900, + AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM = 916, + AF_BLUE_STRING_LATIN_SMALL_F_TOP = 932, + AF_BLUE_STRING_LATIN_SMALL = 946, + AF_BLUE_STRING_LATIN_SMALL_DESCENDER = 960, + AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP = 970, + AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM = 990, + AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP = 1010, + AF_BLUE_STRING_LATIN_SUBS_SMALL = 1030, + AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER = 1066, + AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP = 1086, + AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM = 1117, + AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP = 1146, + AF_BLUE_STRING_LATIN_SUPS_SMALL = 1172, + AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER = 1197, + AF_BLUE_STRING_MYANMAR_TOP = 1208, + AF_BLUE_STRING_MYANMAR_BOTTOM = 1240, + AF_BLUE_STRING_MYANMAR_ASCENDER = 1272, + AF_BLUE_STRING_MYANMAR_DESCENDER = 1300, + AF_BLUE_STRING_TELUGU_TOP = 1332, + AF_BLUE_STRING_TELUGU_BOTTOM = 1360, + AF_BLUE_STRING_THAI_TOP = 1388, + AF_BLUE_STRING_THAI_BOTTOM = 1412, + AF_BLUE_STRING_THAI_ASCENDER = 1440, + AF_BLUE_STRING_THAI_LARGE_ASCENDER = 1452, + AF_BLUE_STRING_THAI_DESCENDER = 1464, + AF_BLUE_STRING_THAI_LARGE_DESCENDER = 1480, + AF_BLUE_STRING_THAI_DIGIT_TOP = 1488, + af_blue_1_1 = 1499, #ifdef AF_CONFIG_OPTION_CJK AF_BLUE_STRING_CJK_TOP = af_blue_1_1 + 1, - AF_BLUE_STRING_CJK_BOTTOM = af_blue_1_1 + 153, - af_blue_1_1_1 = af_blue_1_1 + 304, + AF_BLUE_STRING_CJK_BOTTOM = af_blue_1_1 + 203, + af_blue_1_1_1 = af_blue_1_1 + 404, #ifdef AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT AF_BLUE_STRING_CJK_LEFT = af_blue_1_1_1 + 1, - AF_BLUE_STRING_CJK_RIGHT = af_blue_1_1_1 + 153, - af_blue_1_1_2 = af_blue_1_1_1 + 304, + AF_BLUE_STRING_CJK_RIGHT = af_blue_1_1_1 + 204, + af_blue_1_1_2 = af_blue_1_1_1 + 405, #else af_blue_1_1_2 = af_blue_1_1_1 + 0, #endif /* AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT */ @@ -164,9 +183,10 @@ FT_BEGIN_HEADER /* blue string can't be used in more than a single writing system, which */ /* is a safe bet. */ #define AF_BLUE_PROPERTY_LATIN_TOP ( 1U << 0 ) /* must have value 1 */ -#define AF_BLUE_PROPERTY_LATIN_NEUTRAL ( 1U << 1 ) -#define AF_BLUE_PROPERTY_LATIN_X_HEIGHT ( 1U << 2 ) -#define AF_BLUE_PROPERTY_LATIN_LONG ( 1U << 3 ) +#define AF_BLUE_PROPERTY_LATIN_SUB_TOP ( 1U << 1 ) +#define AF_BLUE_PROPERTY_LATIN_NEUTRAL ( 1U << 2 ) +#define AF_BLUE_PROPERTY_LATIN_X_HEIGHT ( 1U << 3 ) +#define AF_BLUE_PROPERTY_LATIN_LONG ( 1U << 4 ) #define AF_BLUE_PROPERTY_CJK_TOP ( 1U << 0 ) /* must have value 1 */ #define AF_BLUE_PROPERTY_CJK_HORIZ ( 1U << 1 ) /* must have value 2 */ @@ -181,17 +201,22 @@ FT_BEGIN_HEADER typedef enum AF_Blue_Stringset_ { AF_BLUE_STRINGSET_ARAB = 0, - AF_BLUE_STRINGSET_CYRL = 4, - AF_BLUE_STRINGSET_DEVA = 10, - AF_BLUE_STRINGSET_GREK = 16, - AF_BLUE_STRINGSET_HEBR = 23, - AF_BLUE_STRINGSET_LAO = 27, - AF_BLUE_STRINGSET_LATN = 33, - AF_BLUE_STRINGSET_LATB = 40, - AF_BLUE_STRINGSET_LATP = 47, - AF_BLUE_STRINGSET_TELU = 54, - AF_BLUE_STRINGSET_THAI = 57, - af_blue_2_1 = 65, + AF_BLUE_STRINGSET_BENG = 4, + AF_BLUE_STRINGSET_CYRL = 9, + AF_BLUE_STRINGSET_DEVA = 15, + AF_BLUE_STRINGSET_GREK = 21, + AF_BLUE_STRINGSET_HEBR = 28, + AF_BLUE_STRINGSET_KNDA = 32, + AF_BLUE_STRINGSET_KHMR = 35, + AF_BLUE_STRINGSET_KHMS = 41, + AF_BLUE_STRINGSET_LAO = 44, + AF_BLUE_STRINGSET_LATN = 50, + AF_BLUE_STRINGSET_LATB = 57, + AF_BLUE_STRINGSET_LATP = 64, + AF_BLUE_STRINGSET_MYMR = 71, + AF_BLUE_STRINGSET_TELU = 76, + AF_BLUE_STRINGSET_THAI = 79, + af_blue_2_1 = 87, #ifdef AF_CONFIG_OPTION_CJK AF_BLUE_STRINGSET_HANI = af_blue_2_1 + 0, af_blue_2_1_1 = af_blue_2_1 + 2, @@ -227,7 +252,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __AFBLUE_H__ */ +#endif /* AFBLUE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afblue.hin b/reactos/lib/3rdparty/freetype/src/autofit/afblue.hin index ad43fe6cef0..dd44e772541 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afblue.hin +++ b/reactos/lib/3rdparty/freetype/src/autofit/afblue.hin @@ -4,7 +4,7 @@ /* */ /* Auto-fitter data for blue strings (specification). */ /* */ -/* Copyright 2013-2015 by */ +/* Copyright 2013-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __AFBLUE_H__ -#define __AFBLUE_H__ +#ifndef AFBLUE_H_ +#define AFBLUE_H_ FT_BEGIN_HEADER @@ -25,32 +25,35 @@ FT_BEGIN_HEADER /* an auxiliary macro to decode a UTF-8 character -- since we only use */ /* hard-coded, self-converted data, no error checking is performed */ -#define GET_UTF8_CHAR( ch, p ) \ - ch = (unsigned char)*p++; \ - if ( ch >= 0x80 ) \ - { \ - FT_UInt len; \ - \ - \ - if ( ch < 0xE0 ) \ - { \ - len = 1; \ - ch &= 0x1F; \ - } \ - else if ( ch < 0xF0 ) \ - { \ - len = 2; \ - ch &= 0x0F; \ - } \ - else \ - { \ - len = 3; \ - ch &= 0x07; \ - } \ - \ - for ( ; len > 0; len-- ) \ - ch = ( ch << 6 ) | ( *p++ & 0x3F ); \ - } +#define GET_UTF8_CHAR( ch, p ) \ + do \ + { \ + ch = (unsigned char)*p++; \ + if ( ch >= 0x80 ) \ + { \ + FT_UInt len_; \ + \ + \ + if ( ch < 0xE0 ) \ + { \ + len_ = 1; \ + ch &= 0x1F; \ + } \ + else if ( ch < 0xF0 ) \ + { \ + len_ = 2; \ + ch &= 0x0F; \ + } \ + else \ + { \ + len_ = 3; \ + ch &= 0x07; \ + } \ + \ + for ( ; len_ > 0; len_-- ) \ + ch = ( ch << 6 ) | ( *p++ & 0x3F ); \ + } \ + } while ( 0 ) /*************************************************************************/ @@ -97,9 +100,10 @@ FT_BEGIN_HEADER /* blue string can't be used in more than a single writing system, which */ /* is a safe bet. */ #define AF_BLUE_PROPERTY_LATIN_TOP ( 1U << 0 ) /* must have value 1 */ -#define AF_BLUE_PROPERTY_LATIN_NEUTRAL ( 1U << 1 ) -#define AF_BLUE_PROPERTY_LATIN_X_HEIGHT ( 1U << 2 ) -#define AF_BLUE_PROPERTY_LATIN_LONG ( 1U << 3 ) +#define AF_BLUE_PROPERTY_LATIN_SUB_TOP ( 1U << 1 ) +#define AF_BLUE_PROPERTY_LATIN_NEUTRAL ( 1U << 2 ) +#define AF_BLUE_PROPERTY_LATIN_X_HEIGHT ( 1U << 3 ) +#define AF_BLUE_PROPERTY_LATIN_LONG ( 1U << 4 ) #define AF_BLUE_PROPERTY_CJK_TOP ( 1U << 0 ) /* must have value 1 */ #define AF_BLUE_PROPERTY_CJK_HORIZ ( 1U << 1 ) /* must have value 2 */ @@ -136,7 +140,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __AFBLUE_H__ */ +#endif /* AFBLUE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afcjk.c b/reactos/lib/3rdparty/freetype/src/autofit/afcjk.c index 7b1efe217d0..e813777cc9b 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afcjk.c +++ b/reactos/lib/3rdparty/freetype/src/autofit/afcjk.c @@ -4,7 +4,7 @@ /* */ /* Auto-fitter hinting routines for CJK writing system (body). */ /* */ -/* Copyright 2006-2015 by */ +/* Copyright 2006-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -92,7 +92,6 @@ { FT_Error error; FT_ULong glyph_index; - FT_Long y_offset; int dim; #ifdef __REACTOS__ AF_CJKMetricsRec *dummy = malloc(sizeof(AF_CJKMetricsRec)); @@ -109,45 +108,61 @@ AF_ScriptClass script_class = AF_SCRIPT_CLASSES_GET [style_class->script]; - FT_UInt32 standard_char; + void* shaper_buf; + const char* p; +#ifdef FT_DEBUG_LEVEL_TRACE + FT_ULong ch = 0; +#endif - standard_char = script_class->standard_char1; - af_get_char_index( &metrics->root, - standard_char, - &glyph_index, - &y_offset ); - if ( !glyph_index ) + p = script_class->standard_charstring; + shaper_buf = af_shaper_buf_create( face ); + + /* We check a list of standard characters. The first match wins. */ + + glyph_index = 0; + while ( *p ) { - if ( script_class->standard_char2 ) - { - standard_char = script_class->standard_char2; - af_get_char_index( &metrics->root, - standard_char, - &glyph_index, - &y_offset ); - if ( !glyph_index ) - { - if ( script_class->standard_char3 ) - { - standard_char = script_class->standard_char3; - af_get_char_index( &metrics->root, - standard_char, - &glyph_index, - &y_offset ); - if ( !glyph_index ) - goto Exit; - } - else - goto Exit; - } - } - else - goto Exit; + unsigned int num_idx; + +#ifdef FT_DEBUG_LEVEL_TRACE + const char* p_old; +#endif + + + while ( *p == ' ' ) + p++; + +#ifdef FT_DEBUG_LEVEL_TRACE + p_old = p; + GET_UTF8_CHAR( ch, p_old ); +#endif + + /* reject input that maps to more than a single glyph */ + p = af_shaper_get_cluster( p, &metrics->root, shaper_buf, &num_idx ); + if ( num_idx > 1 ) + continue; + + /* otherwise exit loop if we have a result */ + glyph_index = af_shaper_get_elem( &metrics->root, + shaper_buf, + 0, + NULL, + NULL ); + if ( glyph_index ) + break; } + af_shaper_buf_destroy( face, shaper_buf ); + + if ( !glyph_index ) + goto Exit; + + if ( !glyph_index ) + goto Exit; + FT_TRACE5(( "standard character: U+%04lX (glyph index %d)\n", - standard_char, glyph_index )); + ch, glyph_index )); error = FT_Load_Glyph( face, glyph_index, FT_LOAD_NO_SCALE ); if ( error || face->glyph->outline.n_points <= 0 ) @@ -185,6 +200,12 @@ if ( error ) goto Exit; + /* + * We assume that the glyphs selected for the stem width + * computation are `featureless' enough so that the linking + * algorithm works fine without adjustments of its scoring + * function. + */ af_latin_hints_link_segments( hints, 0, NULL, @@ -290,6 +311,8 @@ AF_Blue_Stringset bss = sc->blue_stringset; const AF_Blue_StringRec* bs = &af_blue_stringsets[bss]; + void* shaper_buf; + /* we walk over the blue character strings as specified in the */ /* style's entry in the `af_blue_stringset' array, computing its */ @@ -299,6 +322,8 @@ "==========================\n" "\n" )); + shaper_buf = af_shaper_buf_create( face ); + for ( ; bs->string != AF_BLUE_STRING_MAX; bs++ ) { const char* p = &af_blue_strings[bs->string]; @@ -337,26 +362,47 @@ while ( *p ) { - FT_ULong ch; FT_ULong glyph_index; - FT_Long y_offset; FT_Pos best_pos; /* same as points.y or points.x, resp. */ FT_Int best_point; FT_Vector* points; + unsigned int num_idx; + +#ifdef FT_DEBUG_LEVEL_TRACE + const char* p_old; + FT_ULong ch; +#endif + + + while ( *p == ' ' ) + p++; - GET_UTF8_CHAR( ch, p ); +#ifdef FT_DEBUG_LEVEL_TRACE + p_old = p; + GET_UTF8_CHAR( ch, p_old ); +#endif /* switch to characters that define flat values */ - if ( ch == '|' ) + if ( *p == '|' ) { fill = 0; FT_TRACE5(( " [reference values]\n" )); + p++; continue; } + /* reject input that maps to more than a single glyph */ + p = af_shaper_get_cluster( p, &metrics->root, shaper_buf, &num_idx ); + if ( num_idx > 1 ) + continue; + /* load the character in the face -- skip unknown or empty ones */ - af_get_char_index( &metrics->root, ch, &glyph_index, &y_offset ); + glyph_index = af_shaper_get_elem( &metrics->root, + shaper_buf, + 0, + NULL, + NULL ); if ( glyph_index == 0 ) { FT_TRACE5(( " U+%04lX unavailable\n", ch )); @@ -365,9 +411,9 @@ error = FT_Load_Glyph( face, glyph_index, FT_LOAD_NO_SCALE ); outline = face->glyph->outline; - if ( error || outline.n_points <= 0 ) + if ( error || outline.n_points <= 2 ) { - FT_TRACE5(( " U+%04lX contains no outlines\n", ch )); + FT_TRACE5(( " U+%04lX contains no (usable) outlines\n", ch )); continue; } @@ -446,7 +492,8 @@ fills[num_fills++] = best_pos; else flats[num_flats++] = best_pos; - } + + } /* end while loop */ if ( num_flats == 0 && num_fills == 0 ) { @@ -513,7 +560,10 @@ FT_TRACE5(( " -> reference = %ld\n" " overshoot = %ld\n", *blue_ref, *blue_shoot )); - } + + } /* end for loop */ + + af_shaper_buf_destroy( face, shaper_buf ); FT_TRACE5(( "\n" )); @@ -527,27 +577,36 @@ af_cjk_metrics_check_digits( AF_CJKMetrics metrics, FT_Face face ) { - FT_UInt i; FT_Bool started = 0, same_width = 1; FT_Fixed advance, old_advance = 0; + void* shaper_buf; + + /* in all supported charmaps, digits have character codes 0x30-0x39 */ + const char digits[] = "0 1 2 3 4 5 6 7 8 9"; + const char* p; + - /* digit `0' is 0x30 in all supported charmaps */ - for ( i = 0x30; i <= 0x39; i++ ) + p = digits; + shaper_buf = af_shaper_buf_create( face ); + + while ( *p ) { - FT_ULong glyph_index; - FT_Long y_offset; + FT_ULong glyph_index; + unsigned int num_idx; - af_get_char_index( &metrics->root, i, &glyph_index, &y_offset ); - if ( glyph_index == 0 ) + /* reject input that maps to more than a single glyph */ + p = af_shaper_get_cluster( p, &metrics->root, shaper_buf, &num_idx ); + if ( num_idx > 1 ) continue; - if ( FT_Get_Advance( face, glyph_index, - FT_LOAD_NO_SCALE | - FT_LOAD_NO_HINTING | - FT_LOAD_IGNORE_TRANSFORM, - &advance ) ) + glyph_index = af_shaper_get_elem( &metrics->root, + shaper_buf, + 0, + &advance, + NULL ); + if ( !glyph_index ) continue; if ( started ) @@ -565,6 +624,8 @@ } } + af_shaper_buf_destroy( face, shaper_buf ); + metrics->root.digits_have_same_width = same_width; } @@ -1045,7 +1106,7 @@ /* insert a new edge in the list and */ /* sort according to the position */ error = af_axis_hints_new_edge( axis, seg->pos, - (AF_Direction)seg->dir, + (AF_Direction)seg->dir, 0, memory, &edge ); if ( error ) goto Exit; diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afcjk.h b/reactos/lib/3rdparty/freetype/src/autofit/afcjk.h index e395e74a012..40d11843864 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afcjk.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/afcjk.h @@ -4,7 +4,7 @@ /* */ /* Auto-fitter hinting routines for CJK writing system (specification). */ /* */ -/* Copyright 2006-2015 by */ +/* Copyright 2006-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __AFCJK_H__ -#define __AFCJK_H__ +#ifndef AFCJK_H_ +#define AFCJK_H_ #include "afhints.h" #include "aflatin.h" @@ -135,7 +135,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __AFCJK_H__ */ +#endif /* AFCJK_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afcover.h b/reactos/lib/3rdparty/freetype/src/autofit/afcover.h index 520e8a4ae0b..1c39a707ef3 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afcover.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/afcover.h @@ -4,7 +4,7 @@ /* */ /* Auto-fitter coverages (specification only). */ /* */ -/* Copyright 2013-2015 by */ +/* Copyright 2013-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afdummy.c b/reactos/lib/3rdparty/freetype/src/autofit/afdummy.c index 9142c78c21c..f3960c85fd7 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afdummy.c +++ b/reactos/lib/3rdparty/freetype/src/autofit/afdummy.c @@ -5,7 +5,7 @@ /* Auto-fitter dummy routines to be used if no hinting should be */ /* performed (body). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afdummy.h b/reactos/lib/3rdparty/freetype/src/autofit/afdummy.h index b4fdc78e39a..7e58d1a9a5f 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afdummy.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/afdummy.h @@ -5,7 +5,7 @@ /* Auto-fitter dummy routines to be used if no hinting should be */ /* performed (specification). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,8 +17,8 @@ /***************************************************************************/ -#ifndef __AFDUMMY_H__ -#define __AFDUMMY_H__ +#ifndef AFDUMMY_H_ +#define AFDUMMY_H_ #include "aftypes.h" @@ -34,7 +34,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __AFDUMMY_H__ */ +#endif /* AFDUMMY_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/aferrors.h b/reactos/lib/3rdparty/freetype/src/autofit/aferrors.h index 7b416e470da..53c01f64dda 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/aferrors.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/aferrors.h @@ -4,7 +4,7 @@ /* */ /* Autofitter error codes (specification only). */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -23,12 +23,12 @@ /* */ /*************************************************************************/ -#ifndef __AFERRORS_H__ -#define __AFERRORS_H__ +#ifndef AFERRORS_H_ +#define AFERRORS_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX AF_Err_ @@ -36,6 +36,7 @@ #include FT_ERRORS_H -#endif /* __AFERRORS_H__ */ +#endif /* AFERRORS_H_ */ + /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afglobal.c b/reactos/lib/3rdparty/freetype/src/autofit/afglobal.c index f5a39574fbf..ac6dcafc0f2 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afglobal.c +++ b/reactos/lib/3rdparty/freetype/src/autofit/afglobal.c @@ -4,7 +4,7 @@ /* */ /* Auto-fitter routines to compute global hinting values (body). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -18,7 +18,7 @@ #include "afglobal.h" #include "afranges.h" -#include "hbshim.h" +#include "afshaper.h" #include FT_INTERNAL_DEBUG_H @@ -42,13 +42,14 @@ #undef SCRIPT -#define SCRIPT( s, S, d, h, sc1, sc2, sc3 ) \ +#define SCRIPT( s, S, d, h, H, ss ) \ AF_DEFINE_SCRIPT_CLASS( \ af_ ## s ## _script_class, \ AF_SCRIPT_ ## S, \ af_ ## s ## _uniranges, \ af_ ## s ## _nonbase_uniranges, \ - sc1, sc2, sc3 ) + AF_ ## H, \ + ss ) #include "afscript.h" @@ -83,7 +84,7 @@ #undef SCRIPT -#define SCRIPT( s, S, d, h, sc1, sc2, sc3 ) \ +#define SCRIPT( s, S, d, h, H, ss ) \ &af_ ## s ## _script_class, FT_LOCAL_ARRAY_DEF( AF_ScriptClass ) @@ -240,23 +241,23 @@ else { /* get glyphs not directly addressable by cmap */ - af_get_coverage( globals, style_class, gstyles ); + af_shaper_get_coverage( globals, style_class, gstyles, 0 ); } } - /* handle the default OpenType features of the default script ... */ - af_get_coverage( globals, AF_STYLE_CLASSES_GET[dflt], gstyles ); - - /* ... and the remaining default OpenType features */ + /* handle the remaining default OpenType features ... */ for ( ss = 0; AF_STYLE_CLASSES_GET[ss]; ss++ ) { AF_StyleClass style_class = AF_STYLE_CLASSES_GET[ss]; - if ( ss != dflt && style_class->coverage == AF_COVERAGE_DEFAULT ) - af_get_coverage( globals, style_class, gstyles ); + if ( style_class->coverage == AF_COVERAGE_DEFAULT ) + af_shaper_get_coverage( globals, style_class, gstyles, 0 ); } + /* ... and finally the default OpenType features of the default script */ + af_shaper_get_coverage( globals, AF_STYLE_CLASSES_GET[dflt], gstyles, 1 ); + /* mark ASCII digits */ for ( i = 0x30; i <= 0x39; i++ ) { @@ -364,6 +365,7 @@ #ifdef FT_CONFIG_OPTION_USE_HARFBUZZ globals->hb_font = hb_ft_font_create( face, NULL ); + globals->hb_buf = hb_buffer_create(); #endif error = af_face_globals_compute_style_coverage( globals ); @@ -410,6 +412,9 @@ #ifdef FT_CONFIG_OPTION_USE_HARFBUZZ hb_font_destroy( globals->hb_font ); globals->hb_font = NULL; + + hb_buffer_destroy( globals->hb_buf ); + globals->hb_buf = NULL; #endif globals->glyph_count = 0; diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afglobal.h b/reactos/lib/3rdparty/freetype/src/autofit/afglobal.h index a3112de2c5d..ce6b9e8f266 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afglobal.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/afglobal.h @@ -5,7 +5,7 @@ /* Auto-fitter routines to compute global hinting values */ /* (specification). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,13 +17,13 @@ /***************************************************************************/ -#ifndef __AFGLOBAL_H__ -#define __AFGLOBAL_H__ +#ifndef AFGLOBAL_H_ +#define AFGLOBAL_H_ #include "aftypes.h" #include "afmodule.h" -#include "hbshim.h" +#include "afshaper.h" FT_BEGIN_HEADER @@ -34,7 +34,7 @@ FT_BEGIN_HEADER #undef SCRIPT -#define SCRIPT( s, S, d, h, sc1, sc2, sc3 ) \ +#define SCRIPT( s, S, d, h, H, ss ) \ AF_DECLARE_SCRIPT_CLASS( af_ ## s ## _script_class ) #include "afscript.h" @@ -110,6 +110,7 @@ FT_BEGIN_HEADER #ifdef FT_CONFIG_OPTION_USE_HARFBUZZ hb_font_t* hb_font; + hb_buffer_t* hb_buf; /* for feature comparison */ #endif /* per-face auto-hinter properties */ @@ -166,7 +167,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __AFGLOBAL_H__ */ +#endif /* AFGLOBAL_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afhints.c b/reactos/lib/3rdparty/freetype/src/autofit/afhints.c index 56c82200051..9ed058f6430 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afhints.c +++ b/reactos/lib/3rdparty/freetype/src/autofit/afhints.c @@ -4,7 +4,7 @@ /* */ /* Auto-fitter hinting routines (body). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -99,6 +99,7 @@ af_axis_hints_new_edge( AF_AxisHints axis, FT_Int fpos, AF_Direction dir, + FT_Bool top_to_bottom_hinting, FT_Memory memory, AF_Edge *anedge ) { @@ -153,7 +154,8 @@ while ( edge > edges ) { - if ( edge[-1].fpos < fpos ) + if ( top_to_bottom_hinting ? ( edge[-1].fpos > fpos ) + : ( edge[-1].fpos < fpos ) ) break; /* we want the edge with same position and minor direction */ @@ -302,16 +304,18 @@ af_glyph_hints_dump_points( AF_GlyphHints hints, FT_Bool to_stdout ) { - AF_Point points = hints->points; - AF_Point limit = points + hints->num_points; - AF_Point point; + AF_Point points = hints->points; + AF_Point limit = points + hints->num_points; + AF_Point* contour = hints->contours; + AF_Point* climit = contour + hints->num_contours; + AF_Point point; AF_DUMP(( "Table of points:\n" )); if ( hints->num_points ) AF_DUMP(( " index hedge hseg vedge vseg flags" - " xorg yorg xscale yscale xfit yfit\n" )); + " xorg yorg xscale yscale xfit yfit" )); else AF_DUMP(( " (none)\n" )); @@ -324,6 +328,13 @@ char buf1[16], buf2[16], buf3[16], buf4[16]; + /* insert extra newline at the beginning of a contour */ + if ( contour < climit && *contour == point ) + { + AF_DUMP(( "\n" )); + contour++; + } + AF_DUMP(( " %5d %5s %5s %5s %5s %s " " %5d %5d %7.2f %7.2f %7.2f %7.2f\n", point_idx, diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afhints.h b/reactos/lib/3rdparty/freetype/src/autofit/afhints.h index a64c7a4b111..45635652dbf 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afhints.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/afhints.h @@ -4,7 +4,7 @@ /* */ /* Auto-fitter hinting routines (specification). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __AFHINTS_H__ -#define __AFHINTS_H__ +#ifndef AFHINTS_H_ +#define AFHINTS_H_ #include "aftypes.h" @@ -419,6 +419,7 @@ FT_BEGIN_HEADER af_axis_hints_new_edge( AF_AxisHints axis, FT_Int fpos, AF_Direction dir, + FT_Bool top_to_bottom_hinting, FT_Memory memory, AF_Edge *edge ); @@ -472,7 +473,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __AFHINTS_H__ */ +#endif /* AFHINTS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afindic.c b/reactos/lib/3rdparty/freetype/src/autofit/afindic.c index 59b14d7e098..097a2b29955 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afindic.c +++ b/reactos/lib/3rdparty/freetype/src/autofit/afindic.c @@ -4,7 +4,7 @@ /* */ /* Auto-fitter hinting routines for Indic writing system (body). */ /* */ -/* Copyright 2007-2015 by */ +/* Copyright 2007-2016 by */ /* Rahul Bhalerao , . */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afindic.h b/reactos/lib/3rdparty/freetype/src/autofit/afindic.h index 4c36908ada2..0772e07a291 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afindic.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/afindic.h @@ -5,7 +5,7 @@ /* Auto-fitter hinting routines for Indic writing system */ /* (specification). */ /* */ -/* Copyright 2007-2015 by */ +/* Copyright 2007-2016 by */ /* Rahul Bhalerao , . */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,8 +17,8 @@ /***************************************************************************/ -#ifndef __AFINDIC_H__ -#define __AFINDIC_H__ +#ifndef AFINDIC_H_ +#define AFINDIC_H_ #include "afhints.h" @@ -35,7 +35,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __AFINDIC_H__ */ +#endif /* AFINDIC_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/aflatin.c b/reactos/lib/3rdparty/freetype/src/autofit/aflatin.c index b4acd6885c2..40646e37816 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/aflatin.c +++ b/reactos/lib/3rdparty/freetype/src/autofit/aflatin.c @@ -4,7 +4,7 @@ /* */ /* Auto-fitter hinting routines for latin writing system (body). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -83,7 +83,6 @@ { FT_Error error; FT_ULong glyph_index; - FT_Long y_offset; int dim; #ifdef __REACTOS__ AF_LatinMetricsRec *dummy = malloc(sizeof(AF_LatinMetricsRec)); @@ -100,52 +99,63 @@ AF_ScriptClass script_class = AF_SCRIPT_CLASSES_GET [style_class->script]; - FT_UInt32 standard_char; + void* shaper_buf; + const char* p; +#ifdef FT_DEBUG_LEVEL_TRACE + FT_ULong ch = 0; +#endif + + p = script_class->standard_charstring; + shaper_buf = af_shaper_buf_create( face ); /* - * We check more than a single standard character to catch features - * like `c2sc' (small caps from caps) that don't contain lowercase - * letters by definition, or other features that mainly operate on - * numerals. + * We check a list of standard characters to catch features like + * `c2sc' (small caps from caps) that don't contain lowercase letters + * by definition, or other features that mainly operate on numerals. + * The first match wins. */ - standard_char = script_class->standard_char1; - af_get_char_index( &metrics->root, - standard_char, - &glyph_index, - &y_offset ); - if ( !glyph_index ) + glyph_index = 0; + while ( *p ) { - if ( script_class->standard_char2 ) - { - standard_char = script_class->standard_char2; - af_get_char_index( &metrics->root, - standard_char, - &glyph_index, - &y_offset ); - if ( !glyph_index ) - { - if ( script_class->standard_char3 ) - { - standard_char = script_class->standard_char3; - af_get_char_index( &metrics->root, - standard_char, - &glyph_index, - &y_offset ); - if ( !glyph_index ) - goto Exit; - } - else - goto Exit; - } - } - else - goto Exit; + unsigned int num_idx; + +#ifdef FT_DEBUG_LEVEL_TRACE + const char* p_old; +#endif + + + while ( *p == ' ' ) + p++; + +#ifdef FT_DEBUG_LEVEL_TRACE + p_old = p; + GET_UTF8_CHAR( ch, p_old ); +#endif + + /* reject input that maps to more than a single glyph */ + p = af_shaper_get_cluster( p, &metrics->root, shaper_buf, &num_idx ); + if ( num_idx > 1 ) + continue; + + /* otherwise exit loop if we have a result */ + glyph_index = af_shaper_get_elem( &metrics->root, + shaper_buf, + 0, + NULL, + NULL ); + if ( glyph_index ) + break; } + af_shaper_buf_destroy( face, shaper_buf ); + + if ( !glyph_index ) + goto Exit; + FT_TRACE5(( "standard character: U+%04lX (glyph index %d)\n", - standard_char, glyph_index )); + ch, glyph_index )); error = FT_Load_Glyph( face, glyph_index, FT_LOAD_NO_SCALE ); if ( error || face->glyph->outline.n_points <= 0 ) @@ -296,6 +306,8 @@ FT_Pos flat_threshold = FLAT_THRESHOLD( metrics->units_per_em ); + void* shaper_buf; + /* we walk over the blue character strings as specified in the */ /* style's entry in the `af_blue_stringset' array */ @@ -304,6 +316,8 @@ "============================\n" "\n" )); + shaper_buf = af_shaper_buf_create( face ); + for ( ; bs->string != AF_BLUE_STRING_MAX; bs++ ) { const char* p = &af_blue_strings[bs->string]; @@ -329,6 +343,11 @@ FT_TRACE5(( "top" )); have_flag = 1; } + else if ( AF_LATIN_IS_SUB_TOP_BLUE( bs ) ) + { + FT_TRACE5(( "sub top" )); + have_flag = 1; + } if ( AF_LATIN_IS_NEUTRAL_BLUE( bs ) ) { @@ -367,401 +386,477 @@ while ( *p ) { - FT_ULong ch; FT_ULong glyph_index; FT_Long y_offset; - FT_Pos best_y; /* same as points.y */ FT_Int best_point, best_contour_first, best_contour_last; FT_Vector* points; - FT_Bool round = 0; + FT_Pos best_y_extremum; /* same as points.y */ + FT_Bool best_round = 0; - GET_UTF8_CHAR( ch, p ); + unsigned int i, num_idx; + +#ifdef FT_DEBUG_LEVEL_TRACE + const char* p_old; + FT_ULong ch; +#endif - /* load the character in the face -- skip unknown or empty ones */ - af_get_char_index( &metrics->root, ch, &glyph_index, &y_offset ); - if ( glyph_index == 0 ) - { - FT_TRACE5(( " U+%04lX unavailable\n", ch )); - continue; - } - error = FT_Load_Glyph( face, glyph_index, FT_LOAD_NO_SCALE ); - outline = face->glyph->outline; - /* reject glyphs that don't produce any rendering */ - if ( error || outline.n_points <= 2 ) + while ( *p == ' ' ) + p++; + +#ifdef FT_DEBUG_LEVEL_TRACE + p_old = p; + GET_UTF8_CHAR( ch, p_old ); +#endif + + p = af_shaper_get_cluster( p, &metrics->root, shaper_buf, &num_idx ); + + if ( !num_idx ) { - FT_TRACE5(( " U+%04lX contains no (usable) outlines\n", ch )); + FT_TRACE5(( " U+%04lX unavailable\n", ch )); continue; } - /* now compute min or max point indices and coordinates */ - points = outline.points; - best_point = -1; - best_y = 0; /* make compiler happy */ - best_contour_first = 0; /* ditto */ - best_contour_last = 0; /* ditto */ + if ( AF_LATIN_IS_TOP_BLUE( bs ) ) + best_y_extremum = FT_INT_MIN; + else + best_y_extremum = FT_INT_MAX; + /* iterate over all glyph elements of the character cluster */ + /* and get the data of the `biggest' one */ + for ( i = 0; i < num_idx; i++ ) { - FT_Int nn; - FT_Int first = 0; - FT_Int last = -1; + FT_Pos best_y; + FT_Bool round = 0; - for ( nn = 0; nn < outline.n_contours; first = last + 1, nn++ ) + /* load the character in the face -- skip unknown or empty ones */ + glyph_index = af_shaper_get_elem( &metrics->root, + shaper_buf, + i, + NULL, + &y_offset ); + if ( glyph_index == 0 ) { - FT_Int old_best_point = best_point; - FT_Int pp; + FT_TRACE5(( " U+%04lX unavailable\n", ch )); + continue; + } + error = FT_Load_Glyph( face, glyph_index, FT_LOAD_NO_SCALE ); + outline = face->glyph->outline; + /* reject glyphs that don't produce any rendering */ + if ( error || outline.n_points <= 2 ) + { +#ifdef FT_DEBUG_LEVEL_TRACE + if ( num_idx == 1 ) + FT_TRACE5(( " U+%04lX contains no (usable) outlines\n", ch )); + else + FT_TRACE5(( " component %d of cluster starting with U+%04lX" + " contains no (usable) outlines\n", i, ch )); +#endif + continue; + } - last = outline.contours[nn]; + /* now compute min or max point indices and coordinates */ + points = outline.points; + best_point = -1; + best_y = 0; /* make compiler happy */ + best_contour_first = 0; /* ditto */ + best_contour_last = 0; /* ditto */ - /* Avoid single-point contours since they are never rasterized. */ - /* In some fonts, they correspond to mark attachment points */ - /* that are way outside of the glyph's real outline. */ - if ( last <= first ) - continue; + { + FT_Int nn; + FT_Int first = 0; + FT_Int last = -1; - if ( AF_LATIN_IS_TOP_BLUE( bs ) ) + + for ( nn = 0; nn < outline.n_contours; first = last + 1, nn++ ) { - for ( pp = first; pp <= last; pp++ ) + FT_Int old_best_point = best_point; + FT_Int pp; + + + last = outline.contours[nn]; + + /* Avoid single-point contours since they are never */ + /* rasterized. In some fonts, they correspond to mark */ + /* attachment points that are way outside of the glyph's */ + /* real outline. */ + if ( last <= first ) + continue; + + if ( AF_LATIN_IS_TOP_BLUE( bs ) || + AF_LATIN_IS_SUB_TOP_BLUE( bs ) ) { - if ( best_point < 0 || points[pp].y > best_y ) + for ( pp = first; pp <= last; pp++ ) { - best_point = pp; - best_y = points[pp].y; - ascender = FT_MAX( ascender, best_y + y_offset ); + if ( best_point < 0 || points[pp].y > best_y ) + { + best_point = pp; + best_y = points[pp].y; + ascender = FT_MAX( ascender, best_y + y_offset ); + } + else + descender = FT_MIN( descender, points[pp].y + y_offset ); } - else - descender = FT_MIN( descender, points[pp].y + y_offset ); } - } - else - { - for ( pp = first; pp <= last; pp++ ) + else { - if ( best_point < 0 || points[pp].y < best_y ) + for ( pp = first; pp <= last; pp++ ) { - best_point = pp; - best_y = points[pp].y; - descender = FT_MIN( descender, best_y + y_offset ); + if ( best_point < 0 || points[pp].y < best_y ) + { + best_point = pp; + best_y = points[pp].y; + descender = FT_MIN( descender, best_y + y_offset ); + } + else + ascender = FT_MAX( ascender, points[pp].y + y_offset ); } - else - ascender = FT_MAX( ascender, points[pp].y + y_offset ); } - } - if ( best_point != old_best_point ) - { - best_contour_first = first; - best_contour_last = last; + if ( best_point != old_best_point ) + { + best_contour_first = first; + best_contour_last = last; + } } } - } - - /* now check whether the point belongs to a straight or round */ - /* segment; we first need to find in which contour the extremum */ - /* lies, then inspect its previous and next points */ - if ( best_point >= 0 ) - { - FT_Pos best_x = points[best_point].x; - FT_Int prev, next; - FT_Int best_segment_first, best_segment_last; - FT_Int best_on_point_first, best_on_point_last; - FT_Pos dist; - - - best_segment_first = best_point; - best_segment_last = best_point; - if ( FT_CURVE_TAG( outline.tags[best_point] ) == FT_CURVE_TAG_ON ) - { - best_on_point_first = best_point; - best_on_point_last = best_point; - } - else + /* now check whether the point belongs to a straight or round */ + /* segment; we first need to find in which contour the extremum */ + /* lies, then inspect its previous and next points */ + if ( best_point >= 0 ) { - best_on_point_first = -1; - best_on_point_last = -1; - } + FT_Pos best_x = points[best_point].x; + FT_Int prev, next; + FT_Int best_segment_first, best_segment_last; + FT_Int best_on_point_first, best_on_point_last; + FT_Pos dist; - /* look for the previous and next points on the contour */ - /* that are not on the same Y coordinate, then threshold */ - /* the `closeness'... */ - prev = best_point; - next = prev; - do - { - if ( prev > best_contour_first ) - prev--; - else - prev = best_contour_last; + best_segment_first = best_point; + best_segment_last = best_point; - dist = FT_ABS( points[prev].y - best_y ); - /* accept a small distance or a small angle (both values are */ - /* heuristic; value 20 corresponds to approx. 2.9 degrees) */ - if ( dist > 5 ) - if ( FT_ABS( points[prev].x - best_x ) <= 20 * dist ) - break; + if ( FT_CURVE_TAG( outline.tags[best_point] ) == FT_CURVE_TAG_ON ) + { + best_on_point_first = best_point; + best_on_point_last = best_point; + } + else + { + best_on_point_first = -1; + best_on_point_last = -1; + } - best_segment_first = prev; + /* look for the previous and next points on the contour */ + /* that are not on the same Y coordinate, then threshold */ + /* the `closeness'... */ + prev = best_point; + next = prev; - if ( FT_CURVE_TAG( outline.tags[prev] ) == FT_CURVE_TAG_ON ) + do { - best_on_point_first = prev; - if ( best_on_point_last < 0 ) - best_on_point_last = prev; - } + if ( prev > best_contour_first ) + prev--; + else + prev = best_contour_last; - } while ( prev != best_point ); + dist = FT_ABS( points[prev].y - best_y ); + /* accept a small distance or a small angle (both values are */ + /* heuristic; value 20 corresponds to approx. 2.9 degrees) */ + if ( dist > 5 ) + if ( FT_ABS( points[prev].x - best_x ) <= 20 * dist ) + break; - do - { - if ( next < best_contour_last ) - next++; - else - next = best_contour_first; + best_segment_first = prev; - dist = FT_ABS( points[next].y - best_y ); - if ( dist > 5 ) - if ( FT_ABS( points[next].x - best_x ) <= 20 * dist ) - break; + if ( FT_CURVE_TAG( outline.tags[prev] ) == FT_CURVE_TAG_ON ) + { + best_on_point_first = prev; + if ( best_on_point_last < 0 ) + best_on_point_last = prev; + } - best_segment_last = next; + } while ( prev != best_point ); - if ( FT_CURVE_TAG( outline.tags[next] ) == FT_CURVE_TAG_ON ) + do { - best_on_point_last = next; - if ( best_on_point_first < 0 ) - best_on_point_first = next; - } + if ( next < best_contour_last ) + next++; + else + next = best_contour_first; - } while ( next != best_point ); + dist = FT_ABS( points[next].y - best_y ); + if ( dist > 5 ) + if ( FT_ABS( points[next].x - best_x ) <= 20 * dist ) + break; - if ( AF_LATIN_IS_LONG_BLUE( bs ) ) - { - /* If this flag is set, we have an additional constraint to */ - /* get the blue zone distance: Find a segment of the topmost */ - /* (or bottommost) contour that is longer than a heuristic */ - /* threshold. This ensures that small bumps in the outline */ - /* are ignored (for example, the `vertical serifs' found in */ - /* many Hebrew glyph designs). */ - - /* If this segment is long enough, we are done. Otherwise, */ - /* search the segment next to the extremum that is long */ - /* enough, has the same direction, and a not too large */ - /* vertical distance from the extremum. Note that the */ - /* algorithm doesn't check whether the found segment is */ - /* actually the one (vertically) nearest to the extremum. */ - - /* heuristic threshold value */ - FT_Pos length_threshold = metrics->units_per_em / 25; - - - dist = FT_ABS( points[best_segment_last].x - - points[best_segment_first].x ); - - if ( dist < length_threshold && - best_segment_last - best_segment_first + 2 <= - best_contour_last - best_contour_first ) + best_segment_last = next; + + if ( FT_CURVE_TAG( outline.tags[next] ) == FT_CURVE_TAG_ON ) + { + best_on_point_last = next; + if ( best_on_point_first < 0 ) + best_on_point_first = next; + } + + } while ( next != best_point ); + + if ( AF_LATIN_IS_LONG_BLUE( bs ) ) { + /* If this flag is set, we have an additional constraint to */ + /* get the blue zone distance: Find a segment of the topmost */ + /* (or bottommost) contour that is longer than a heuristic */ + /* threshold. This ensures that small bumps in the outline */ + /* are ignored (for example, the `vertical serifs' found in */ + /* many Hebrew glyph designs). */ + + /* If this segment is long enough, we are done. Otherwise, */ + /* search the segment next to the extremum that is long */ + /* enough, has the same direction, and a not too large */ + /* vertical distance from the extremum. Note that the */ + /* algorithm doesn't check whether the found segment is */ + /* actually the one (vertically) nearest to the extremum. */ + /* heuristic threshold value */ - FT_Pos height_threshold = metrics->units_per_em / 4; + FT_Pos length_threshold = metrics->units_per_em / 25; - FT_Int first; - FT_Int last; - FT_Bool hit; - /* we intentionally declare these two variables */ - /* outside of the loop since various compilers emit */ - /* incorrect warning messages otherwise, talking about */ - /* `possibly uninitialized variables' */ - FT_Int p_first = 0; /* make compiler happy */ - FT_Int p_last = 0; + dist = FT_ABS( points[best_segment_last].x - + points[best_segment_first].x ); - FT_Bool left2right; + if ( dist < length_threshold && + best_segment_last - best_segment_first + 2 <= + best_contour_last - best_contour_first ) + { + /* heuristic threshold value */ + FT_Pos height_threshold = metrics->units_per_em / 4; + FT_Int first; + FT_Int last; + FT_Bool hit; - /* compute direction */ - prev = best_point; + /* we intentionally declare these two variables */ + /* outside of the loop since various compilers emit */ + /* incorrect warning messages otherwise, talking about */ + /* `possibly uninitialized variables' */ + FT_Int p_first = 0; /* make compiler happy */ + FT_Int p_last = 0; - do - { - if ( prev > best_contour_first ) - prev--; - else - prev = best_contour_last; + FT_Bool left2right; - if ( points[prev].x != best_x ) - break; - } while ( prev != best_point ); + /* compute direction */ + prev = best_point; - /* skip glyph for the degenerate case */ - if ( prev == best_point ) - continue; + do + { + if ( prev > best_contour_first ) + prev--; + else + prev = best_contour_last; - left2right = FT_BOOL( points[prev].x < points[best_point].x ); + if ( points[prev].x != best_x ) + break; - first = best_segment_last; - last = first; - hit = 0; + } while ( prev != best_point ); - do - { - FT_Bool l2r; - FT_Pos d; + /* skip glyph for the degenerate case */ + if ( prev == best_point ) + continue; + left2right = FT_BOOL( points[prev].x < points[best_point].x ); - if ( !hit ) + first = best_segment_last; + last = first; + hit = 0; + + do { - /* no hit; adjust first point */ - first = last; + FT_Bool l2r; + FT_Pos d; - /* also adjust first and last on point */ - if ( FT_CURVE_TAG( outline.tags[first] ) == - FT_CURVE_TAG_ON ) - { - p_first = first; - p_last = first; - } - else + + if ( !hit ) { - p_first = -1; - p_last = -1; - } + /* no hit; adjust first point */ + first = last; - hit = 1; - } + /* also adjust first and last on point */ + if ( FT_CURVE_TAG( outline.tags[first] ) == + FT_CURVE_TAG_ON ) + { + p_first = first; + p_last = first; + } + else + { + p_first = -1; + p_last = -1; + } - if ( last < best_contour_last ) - last++; - else - last = best_contour_first; + hit = 1; + } - if ( FT_ABS( best_y - points[first].y ) > height_threshold ) - { - /* vertical distance too large */ - hit = 0; - continue; - } + if ( last < best_contour_last ) + last++; + else + last = best_contour_first; - /* same test as above */ - dist = FT_ABS( points[last].y - points[first].y ); - if ( dist > 5 ) - if ( FT_ABS( points[last].x - points[first].x ) <= - 20 * dist ) + if ( FT_ABS( best_y - points[first].y ) > height_threshold ) { + /* vertical distance too large */ hit = 0; continue; } - if ( FT_CURVE_TAG( outline.tags[last] ) == FT_CURVE_TAG_ON ) - { - p_last = last; - if ( p_first < 0 ) - p_first = last; - } + /* same test as above */ + dist = FT_ABS( points[last].y - points[first].y ); + if ( dist > 5 ) + if ( FT_ABS( points[last].x - points[first].x ) <= + 20 * dist ) + { + hit = 0; + continue; + } - l2r = FT_BOOL( points[first].x < points[last].x ); - d = FT_ABS( points[last].x - points[first].x ); + if ( FT_CURVE_TAG( outline.tags[last] ) == FT_CURVE_TAG_ON ) + { + p_last = last; + if ( p_first < 0 ) + p_first = last; + } - if ( l2r == left2right && - d >= length_threshold ) - { - /* all constraints are met; update segment after finding */ - /* its end */ - do + l2r = FT_BOOL( points[first].x < points[last].x ); + d = FT_ABS( points[last].x - points[first].x ); + + if ( l2r == left2right && + d >= length_threshold ) { - if ( last < best_contour_last ) - last++; - else - last = best_contour_first; + /* all constraints are met; update segment after */ + /* finding its end */ + do + { + if ( last < best_contour_last ) + last++; + else + last = best_contour_first; + + d = FT_ABS( points[last].y - points[first].y ); + if ( d > 5 ) + if ( FT_ABS( points[next].x - points[first].x ) <= + 20 * dist ) + { + if ( last > best_contour_first ) + last--; + else + last = best_contour_last; + break; + } - d = FT_ABS( points[last].y - points[first].y ); - if ( d > 5 ) - if ( FT_ABS( points[next].x - points[first].x ) <= - 20 * dist ) + p_last = last; + + if ( FT_CURVE_TAG( outline.tags[last] ) == + FT_CURVE_TAG_ON ) { - if ( last > best_contour_first ) - last--; - else - last = best_contour_last; - break; + p_last = last; + if ( p_first < 0 ) + p_first = last; } - p_last = last; + } while ( last != best_segment_first ); - if ( FT_CURVE_TAG( outline.tags[last] ) == - FT_CURVE_TAG_ON ) - { - p_last = last; - if ( p_first < 0 ) - p_first = last; - } + best_y = points[first].y; - } while ( last != best_segment_first ); + best_segment_first = first; + best_segment_last = last; - best_y = points[first].y; + best_on_point_first = p_first; + best_on_point_last = p_last; - best_segment_first = first; - best_segment_last = last; + break; + } - best_on_point_first = p_first; - best_on_point_last = p_last; + } while ( last != best_segment_first ); + } + } - break; - } + /* for computing blue zones, we add the y offset as returned */ + /* by the currently used OpenType feature -- for example, */ + /* superscript glyphs might be identical to subscript glyphs */ + /* with a vertical shift */ + best_y += y_offset; + +#ifdef FT_DEBUG_LEVEL_TRACE + if ( num_idx == 1 ) + FT_TRACE5(( " U+%04lX: best_y = %5ld", ch, best_y )); + else + FT_TRACE5(( " component %d of cluster starting with U+%04lX:" + " best_y = %5ld", i, ch, best_y )); +#endif + + /* now set the `round' flag depending on the segment's kind: */ + /* */ + /* - if the horizontal distance between the first and last */ + /* `on' point is larger than a heuristic threshold */ + /* we have a flat segment */ + /* - if either the first or the last point of the segment is */ + /* an `off' point, the segment is round, otherwise it is */ + /* flat */ + if ( best_on_point_first >= 0 && + best_on_point_last >= 0 && + ( FT_ABS( points[best_on_point_last].x - + points[best_on_point_first].x ) ) > + flat_threshold ) + round = 0; + else + round = FT_BOOL( + FT_CURVE_TAG( outline.tags[best_segment_first] ) != + FT_CURVE_TAG_ON || + FT_CURVE_TAG( outline.tags[best_segment_last] ) != + FT_CURVE_TAG_ON ); - } while ( last != best_segment_first ); + if ( round && AF_LATIN_IS_NEUTRAL_BLUE( bs ) ) + { + /* only use flat segments for a neutral blue zone */ + FT_TRACE5(( " (round, skipped)\n" )); + continue; } + + FT_TRACE5(( " (%s)\n", round ? "round" : "flat" )); } - /* for computing blue zones, we add the y offset as returned */ - /* by the currently used OpenType feature -- for example, */ - /* superscript glyphs might be identical to subscript glyphs */ - /* with a vertical shift */ - best_y += y_offset; - - FT_TRACE5(( " U+%04lX: best_y = %5ld", ch, best_y )); - - /* now set the `round' flag depending on the segment's kind: */ - /* */ - /* - if the horizontal distance between the first and last */ - /* `on' point is larger than a heuristic threshold */ - /* we have a flat segment */ - /* - if either the first or the last point of the segment is */ - /* an `off' point, the segment is round, otherwise it is */ - /* flat */ - if ( best_on_point_first >= 0 && - best_on_point_last >= 0 && - ( FT_ABS( points[best_on_point_last].x - - points[best_on_point_first].x ) ) > - flat_threshold ) - round = 0; + if ( AF_LATIN_IS_TOP_BLUE( bs ) ) + { + if ( best_y > best_y_extremum ) + { + best_y_extremum = best_y; + best_round = round; + } + } else - round = FT_BOOL( - FT_CURVE_TAG( outline.tags[best_segment_first] ) != - FT_CURVE_TAG_ON || - FT_CURVE_TAG( outline.tags[best_segment_last] ) != - FT_CURVE_TAG_ON ); - - if ( round && AF_LATIN_IS_NEUTRAL_BLUE( bs ) ) { - /* only use flat segments for a neutral blue zone */ - FT_TRACE5(( " (round, skipped)\n" )); - continue; + if ( best_y < best_y_extremum ) + { + best_y_extremum = best_y; + best_round = round; + } } - FT_TRACE5(( " (%s)\n", round ? "round" : "flat" )); + } /* end for loop */ + + if ( !( best_y_extremum == FT_INT_MIN || + best_y_extremum == FT_INT_MAX ) ) + { + if ( best_round ) + rounds[num_rounds++] = best_y_extremum; + else + flats[num_flats++] = best_y_extremum; } - if ( round ) - rounds[num_rounds++] = best_y; - else - flats[num_flats++] = best_y; - } + } /* end while loop */ if ( num_flats == 0 && num_rounds == 0 ) { @@ -811,7 +906,8 @@ FT_Bool over_ref = FT_BOOL( shoot > ref ); - if ( AF_LATIN_IS_TOP_BLUE( bs ) ^ over_ref ) + if ( ( AF_LATIN_IS_TOP_BLUE( bs ) || + AF_LATIN_IS_SUB_TOP_BLUE( bs) ) ^ over_ref ) { *blue_ref = *blue_shoot = ( shoot + ref ) / 2; @@ -827,6 +923,8 @@ blue->flags = 0; if ( AF_LATIN_IS_TOP_BLUE( bs ) ) blue->flags |= AF_LATIN_BLUE_TOP; + if ( AF_LATIN_IS_SUB_TOP_BLUE( bs ) ) + blue->flags |= AF_LATIN_BLUE_SUB_TOP; if ( AF_LATIN_IS_NEUTRAL_BLUE( bs ) ) blue->flags |= AF_LATIN_BLUE_NEUTRAL; @@ -841,7 +939,10 @@ FT_TRACE5(( " -> reference = %ld\n" " overshoot = %ld\n", *blue_ref, *blue_shoot )); - } + + } /* end for loop */ + + af_shaper_buf_destroy( face, shaper_buf ); FT_TRACE5(( "\n" )); @@ -855,27 +956,36 @@ af_latin_metrics_check_digits( AF_LatinMetrics metrics, FT_Face face ) { - FT_UInt i; FT_Bool started = 0, same_width = 1; FT_Fixed advance, old_advance = 0; + void* shaper_buf; + + /* in all supported charmaps, digits have character codes 0x30-0x39 */ + const char digits[] = "0 1 2 3 4 5 6 7 8 9"; + const char* p; + + + p = digits; + shaper_buf = af_shaper_buf_create( face ); - /* digit `0' is 0x30 in all supported charmaps */ - for ( i = 0x30; i <= 0x39; i++ ) + while ( *p ) { - FT_ULong glyph_index; - FT_Long y_offset; + FT_ULong glyph_index; + unsigned int num_idx; - af_get_char_index( &metrics->root, i, &glyph_index, &y_offset ); - if ( glyph_index == 0 ) + /* reject input that maps to more than a single glyph */ + p = af_shaper_get_cluster( p, &metrics->root, shaper_buf, &num_idx ); + if ( num_idx > 1 ) continue; - if ( FT_Get_Advance( face, glyph_index, - FT_LOAD_NO_SCALE | - FT_LOAD_NO_HINTING | - FT_LOAD_IGNORE_TRANSFORM, - &advance ) ) + glyph_index = af_shaper_get_elem( &metrics->root, + shaper_buf, + 0, + &advance, + NULL ); + if ( !glyph_index ) continue; if ( started ) @@ -893,6 +1003,8 @@ } } + af_shaper_buf_destroy( face, shaper_buf ); + metrics->root.digits_have_same_width = same_width; } @@ -1182,21 +1294,63 @@ #endif blue->flags |= AF_LATIN_BLUE_ACTIVE; + } + } + + /* use sub-top blue zone only if it doesn't overlap with */ + /* another (non-sup-top) blue zone; otherwise, the */ + /* effect would be similar to a neutral blue zone, which */ + /* is not desired here */ + for ( nn = 0; nn < axis->blue_count; nn++ ) + { + AF_LatinBlue blue = &axis->blues[nn]; + FT_UInt i; + + + if ( !( blue->flags & AF_LATIN_BLUE_SUB_TOP ) ) + continue; + if ( !( blue->flags & AF_LATIN_BLUE_ACTIVE ) ) + continue; + + for ( i = 0; i < axis->blue_count; i++ ) + { + AF_LatinBlue b = &axis->blues[i]; + - FT_TRACE5(( " reference %d: %d scaled to %.2f%s\n" - " overshoot %d: %d scaled to %.2f%s\n", - nn, - blue->ref.org, - blue->ref.fit / 64.0, - blue->flags & AF_LATIN_BLUE_ACTIVE ? "" - : " (inactive)", - nn, - blue->shoot.org, - blue->shoot.fit / 64.0, - blue->flags & AF_LATIN_BLUE_ACTIVE ? "" - : " (inactive)" )); + if ( b->flags & AF_LATIN_BLUE_SUB_TOP ) + continue; + if ( !( b->flags & AF_LATIN_BLUE_ACTIVE ) ) + continue; + + if ( b->ref.fit <= blue->shoot.fit && + b->shoot.fit >= blue->ref.fit ) + { + blue->flags &= ~AF_LATIN_BLUE_ACTIVE; + break; + } } } + +#ifdef FT_DEBUG_LEVEL_TRACE + for ( nn = 0; nn < axis->blue_count; nn++ ) + { + AF_LatinBlue blue = &axis->blues[nn]; + + + FT_TRACE5(( " reference %d: %d scaled to %.2f%s\n" + " overshoot %d: %d scaled to %.2f%s\n", + nn, + blue->ref.org, + blue->ref.fit / 64.0, + blue->flags & AF_LATIN_BLUE_ACTIVE ? "" + : " (inactive)", + nn, + blue->shoot.org, + blue->shoot.fit / 64.0, + blue->flags & AF_LATIN_BLUE_ACTIVE ? "" + : " (inactive)" )); + } +#endif } } @@ -1635,6 +1789,12 @@ FT_Memory memory = hints->memory; AF_LatinAxis laxis = &((AF_LatinMetrics)hints->metrics)->axis[dim]; + AF_StyleClass style_class = hints->metrics->style_class; + AF_ScriptClass script_class = AF_SCRIPT_CLASSES_GET + [style_class->script]; + + FT_Bool top_to_bottom_hinting = 0; + AF_Segment segments = axis->segments; AF_Segment segment_limit = segments + axis->num_segments; AF_Segment seg; @@ -1657,6 +1817,9 @@ : AF_DIR_RIGHT; #endif + if ( dim == AF_DIMENSION_VERT ) + top_to_bottom_hinting = script_class->top_to_bottom_hinting; + /* * We ignore all segments that are less than 1 pixel in length * to avoid many problems with serif fonts. We compute the @@ -1734,6 +1897,7 @@ /* sort according to the position */ error = af_axis_hints_new_edge( axis, seg->pos, (AF_Direction)seg->dir, + top_to_bottom_hinting, memory, &edge ); if ( error ) goto Exit; @@ -1989,7 +2153,8 @@ /* the major direction) -- this assumes the TrueType convention */ /* for the orientation of contours */ is_top_blue = - (FT_Byte)( ( blue->flags & AF_LATIN_BLUE_TOP ) != 0 ); + (FT_Byte)( ( blue->flags & ( AF_LATIN_BLUE_TOP | + AF_LATIN_BLUE_SUB_TOP ) ) != 0 ); is_neutral_blue = (FT_Byte)( ( blue->flags & AF_LATIN_BLUE_NEUTRAL ) != 0); is_major_dir = @@ -2419,8 +2584,14 @@ AF_Edge anchor = NULL; FT_Int has_serifs = 0; + AF_StyleClass style_class = hints->metrics->style_class; + AF_ScriptClass script_class = AF_SCRIPT_CLASSES_GET + [style_class->script]; + + FT_Bool top_to_bottom_hinting = 0; + #ifdef FT_DEBUG_LEVEL_TRACE - FT_UInt num_actions = 0; + FT_UInt num_actions = 0; #endif @@ -2428,6 +2599,9 @@ dim == AF_DIMENSION_VERT ? "horizontal" : "vertical", af_style_names[hints->metrics->style_class->style] )); + if ( dim == AF_DIMENSION_VERT ) + top_to_bottom_hinting = script_class->top_to_bottom_hinting; + /* we begin by aligning all stems relative to the blue zone */ /* if needed -- that's only for horizontal edges */ @@ -2723,7 +2897,9 @@ edge->flags |= AF_EDGE_DONE; edge2->flags |= AF_EDGE_DONE; - if ( edge > edges && edge->pos < edge[-1].pos ) + if ( edge > edges && + ( top_to_bottom_hinting ? ( edge->pos > edge[-1].pos ) + : ( edge->pos < edge[-1].pos ) ) ) { #ifdef FT_DEBUG_LEVEL_TRACE FT_TRACE5(( " BOUND: edge %d (pos=%.2f) moved to %.2f\n", @@ -2884,7 +3060,9 @@ #endif edge->flags |= AF_EDGE_DONE; - if ( edge > edges && edge->pos < edge[-1].pos ) + if ( edge > edges && + ( top_to_bottom_hinting ? ( edge->pos > edge[-1].pos ) + : ( edge->pos < edge[-1].pos ) ) ) { #ifdef FT_DEBUG_LEVEL_TRACE FT_TRACE5(( " BOUND: edge %d (pos=%.2f) moved to %.2f\n", @@ -2895,9 +3073,10 @@ edge->pos = edge[-1].pos; } - if ( edge + 1 < edge_limit && - edge[1].flags & AF_EDGE_DONE && - edge->pos > edge[1].pos ) + if ( edge + 1 < edge_limit && + edge[1].flags & AF_EDGE_DONE && + ( top_to_bottom_hinting ? ( edge->pos < edge[1].pos ) + : ( edge->pos > edge[1].pos ) ) ) { #ifdef FT_DEBUG_LEVEL_TRACE FT_TRACE5(( " BOUND: edge %d (pos=%.2f) moved to %.2f\n", diff --git a/reactos/lib/3rdparty/freetype/src/autofit/aflatin.h b/reactos/lib/3rdparty/freetype/src/autofit/aflatin.h index dd75ef34172..fe6bbd801a8 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/aflatin.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/aflatin.h @@ -5,7 +5,7 @@ /* Auto-fitter hinting routines for latin writing system */ /* (specification). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,8 +17,8 @@ /***************************************************************************/ -#ifndef __AFLATIN_H__ -#define __AFLATIN_H__ +#ifndef AFLATIN_H_ +#define AFLATIN_H_ #include "afhints.h" @@ -53,6 +53,8 @@ FT_BEGIN_HEADER #define AF_LATIN_IS_TOP_BLUE( b ) \ ( (b)->properties & AF_BLUE_PROPERTY_LATIN_TOP ) +#define AF_LATIN_IS_SUB_TOP_BLUE( b ) \ + ( (b)->properties & AF_BLUE_PROPERTY_LATIN_SUB_TOP ) #define AF_LATIN_IS_NEUTRAL_BLUE( b ) \ ( (b)->properties & AF_BLUE_PROPERTY_LATIN_NEUTRAL ) #define AF_LATIN_IS_X_HEIGHT_BLUE( b ) \ @@ -65,8 +67,10 @@ FT_BEGIN_HEADER #define AF_LATIN_BLUE_ACTIVE ( 1U << 0 ) /* zone height is <= 3/4px */ #define AF_LATIN_BLUE_TOP ( 1U << 1 ) /* we have a top blue zone */ -#define AF_LATIN_BLUE_NEUTRAL ( 1U << 2 ) /* we have neutral blue zone */ -#define AF_LATIN_BLUE_ADJUSTMENT ( 1U << 3 ) /* used for scale adjustment */ +#define AF_LATIN_BLUE_SUB_TOP ( 1U << 2 ) /* we have a subscript top */ + /* blue zone */ +#define AF_LATIN_BLUE_NEUTRAL ( 1U << 3 ) /* we have neutral blue zone */ +#define AF_LATIN_BLUE_ADJUSTMENT ( 1U << 4 ) /* used for scale adjustment */ /* optimization */ @@ -184,7 +188,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __AFLATIN_H__ */ +#endif /* AFLATIN_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/aflatin2.c b/reactos/lib/3rdparty/freetype/src/autofit/aflatin2.c index 2fb7d1d3588..1fab85e8d0f 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/aflatin2.c +++ b/reactos/lib/3rdparty/freetype/src/autofit/aflatin2.c @@ -4,7 +4,7 @@ /* */ /* Auto-fitter hinting routines for latin writing system (body). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -1195,7 +1195,7 @@ /* insert a new edge in the list and */ /* sort according to the position */ - error = af_axis_hints_new_edge( axis, seg->pos, seg->dir, + error = af_axis_hints_new_edge( axis, seg->pos, seg->dir, 0, memory, &edge ); if ( error ) goto Exit; diff --git a/reactos/lib/3rdparty/freetype/src/autofit/aflatin2.h b/reactos/lib/3rdparty/freetype/src/autofit/aflatin2.h index 9326753130c..c17a6a2a34e 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/aflatin2.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/aflatin2.h @@ -5,7 +5,7 @@ /* Auto-fitter hinting routines for latin writing system */ /* (specification). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,8 +17,8 @@ /***************************************************************************/ -#ifndef __AFLATIN2_H__ -#define __AFLATIN2_H__ +#ifndef AFLATIN2_H_ +#define AFLATIN2_H_ #include "afhints.h" @@ -35,7 +35,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __AFLATIN_H__ */ +#endif /* AFLATIN_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afloader.c b/reactos/lib/3rdparty/freetype/src/autofit/afloader.c index aa5b8fdcbc4..26bba065bb5 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afloader.c +++ b/reactos/lib/3rdparty/freetype/src/autofit/afloader.c @@ -4,7 +4,7 @@ /* */ /* Auto-fitter glyph loading routines (body). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afloader.h b/reactos/lib/3rdparty/freetype/src/autofit/afloader.h index 4c4affcd2ce..0062eb9b079 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afloader.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/afloader.h @@ -4,7 +4,7 @@ /* */ /* Auto-fitter glyph loading routines (specification). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __AFLOADER_H__ -#define __AFLOADER_H__ +#ifndef AFLOADER_H_ +#define AFLOADER_H_ #include "afhints.h" #include "afmodule.h" @@ -85,7 +85,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __AFLOADER_H__ */ +#endif /* AFLOADER_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afmodule.c b/reactos/lib/3rdparty/freetype/src/autofit/afmodule.c index 9a48e153d41..7b91f5ef6fa 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afmodule.c +++ b/reactos/lib/3rdparty/freetype/src/autofit/afmodule.c @@ -4,7 +4,7 @@ /* */ /* Auto-fitter module implementation (body). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afmodule.h b/reactos/lib/3rdparty/freetype/src/autofit/afmodule.h index 3c61d895674..e65db5f5cb0 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afmodule.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/afmodule.h @@ -4,7 +4,7 @@ /* */ /* Auto-fitter module implementation (specification). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __AFMODULE_H__ -#define __AFMODULE_H__ +#ifndef AFMODULE_H_ +#define AFMODULE_H_ #include #include FT_INTERNAL_OBJECTS_H @@ -52,7 +52,7 @@ FT_DECLARE_MODULE( autofit_module_class ) FT_END_HEADER -#endif /* __AFMODULE_H__ */ +#endif /* AFMODULE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afpic.c b/reactos/lib/3rdparty/freetype/src/autofit/afpic.c index 5589e612cfe..3cbd9168e3f 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afpic.c +++ b/reactos/lib/3rdparty/freetype/src/autofit/afpic.c @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for autofit module. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -122,7 +122,7 @@ #include "afwrtsys.h" #undef SCRIPT -#define SCRIPT( s, S, d, h, sc1, sc2, sc3 ) \ +#define SCRIPT( s, S, d, h, H, sss ) \ FT_Init_Class_af_ ## s ## _script_class( \ &container->af_script_classes_rec[ss++] ); diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afpic.h b/reactos/lib/3rdparty/freetype/src/autofit/afpic.h index 9b45069f5d0..98a45a26ba5 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afpic.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/afpic.h @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for autofit module. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __AFPIC_H__ -#define __AFPIC_H__ +#ifndef AFPIC_H_ +#define AFPIC_H_ #include FT_INTERNAL_PIC_H @@ -99,7 +99,7 @@ FT_END_HEADER /* */ -#endif /* __AFPIC_H__ */ +#endif /* AFPIC_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afranges.c b/reactos/lib/3rdparty/freetype/src/autofit/afranges.c index 13c221364cf..4e81e782856 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afranges.c +++ b/reactos/lib/3rdparty/freetype/src/autofit/afranges.c @@ -4,7 +4,7 @@ /* */ /* Auto-fitter Unicode script ranges (body). */ /* */ -/* Copyright 2013-2015 by */ +/* Copyright 2013-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -91,6 +91,23 @@ }; + const AF_Script_UniRangeRec af_beng_uniranges[] = + { + AF_UNIRANGE_REC( 0x0980UL, 0x09FFUL ), /* Bengali */ + AF_UNIRANGE_REC( 0UL, 0UL ) + }; + + const AF_Script_UniRangeRec af_beng_nonbase_uniranges[] = + { + AF_UNIRANGE_REC( 0x0981UL, 0x0981UL ), + AF_UNIRANGE_REC( 0x09BCUL, 0x09BCUL ), + AF_UNIRANGE_REC( 0x09C1UL, 0x09C4UL ), + AF_UNIRANGE_REC( 0x09CDUL, 0x09CDUL ), + AF_UNIRANGE_REC( 0x09E2UL, 0x09E3UL ), + AF_UNIRANGE_REC( 0UL, 0UL ) + }; + + const AF_Script_UniRangeRec af_cyrl_uniranges[] = { AF_UNIRANGE_REC( 0x0400UL, 0x04FFUL ), /* Cyrillic */ @@ -179,6 +196,52 @@ }; + const AF_Script_UniRangeRec af_knda_uniranges[] = + { + AF_UNIRANGE_REC( 0x0C80UL, 0x0CFFUL ), /* Kannada */ + AF_UNIRANGE_REC( 0UL, 0UL ) + }; + + const AF_Script_UniRangeRec af_knda_nonbase_uniranges[] = + { + AF_UNIRANGE_REC( 0x0C81UL, 0x0C81UL ), + AF_UNIRANGE_REC( 0x0CBCUL, 0x0CBCUL ), + AF_UNIRANGE_REC( 0x0CBFUL, 0x0CBFUL ), + AF_UNIRANGE_REC( 0x0CC6UL, 0x0CC6UL ), + AF_UNIRANGE_REC( 0x0CCCUL, 0x0CCDUL ), + AF_UNIRANGE_REC( 0x0CE2UL, 0x0CE3UL ), + AF_UNIRANGE_REC( 0UL, 0UL ) + }; + + + const AF_Script_UniRangeRec af_khmr_uniranges[] = + { + AF_UNIRANGE_REC( 0x1780UL, 0x17FFUL ), /* Khmer */ + AF_UNIRANGE_REC( 0UL, 0UL ) + }; + + const AF_Script_UniRangeRec af_khmr_nonbase_uniranges[] = + { + AF_UNIRANGE_REC( 0x17B7UL, 0x17BDUL ), + AF_UNIRANGE_REC( 0x17C6UL, 0x17C6UL ), + AF_UNIRANGE_REC( 0x17C9UL, 0x17D3UL ), + AF_UNIRANGE_REC( 0x17DDUL, 0x17DDUL ), + AF_UNIRANGE_REC( 0UL, 0UL ) + }; + + + const AF_Script_UniRangeRec af_khms_uniranges[] = + { + AF_UNIRANGE_REC( 0x19E0UL, 0x19FFUL ), /* Khmer Symbols */ + AF_UNIRANGE_REC( 0UL, 0UL ) + }; + + const AF_Script_UniRangeRec af_khms_nonbase_uniranges[] = + { + AF_UNIRANGE_REC( 0UL, 0UL ) + }; + + const AF_Script_UniRangeRec af_lao_uniranges[] = { AF_UNIRANGE_REC( 0x0E80UL, 0x0EFFUL ), /* Lao */ @@ -253,7 +316,7 @@ }; - const AF_Script_UniRangeRec af_latb_uniranges[] = + const AF_Script_UniRangeRec af_latb_uniranges[] = { AF_UNIRANGE_REC( 0x1D62UL, 0x1D6AUL ), /* some small subscript letters */ AF_UNIRANGE_REC( 0x2080UL, 0x209CUL ), /* subscript digits and letters */ @@ -261,13 +324,13 @@ AF_UNIRANGE_REC( 0UL, 0UL ) }; - const AF_Script_UniRangeRec af_latb_nonbase_uniranges[] = + const AF_Script_UniRangeRec af_latb_nonbase_uniranges[] = { AF_UNIRANGE_REC( 0UL, 0UL ) }; - const AF_Script_UniRangeRec af_latp_uniranges[] = + const AF_Script_UniRangeRec af_latp_uniranges[] = { AF_UNIRANGE_REC( 0x00AAUL, 0x00AAUL ), /* feminine ordinal indicator */ AF_UNIRANGE_REC( 0x00B2UL, 0x00B3UL ), /* superscript two and three */ @@ -285,12 +348,38 @@ AF_UNIRANGE_REC( 0UL, 0UL ) }; - const AF_Script_UniRangeRec af_latp_nonbase_uniranges[] = + const AF_Script_UniRangeRec af_latp_nonbase_uniranges[] = { AF_UNIRANGE_REC( 0UL, 0UL ) }; + const AF_Script_UniRangeRec af_mymr_uniranges[] = + { + AF_UNIRANGE_REC( 0x1000UL, 0x109FUL ), /* Myanmar */ + AF_UNIRANGE_REC( 0xA9E0UL, 0xA9FFUL ), /* Myanmar Extended-B */ + AF_UNIRANGE_REC( 0xAA60UL, 0xAA7FUL ), /* Myanmar Extended-A */ + AF_UNIRANGE_REC( 0UL, 0UL ) + }; + + const AF_Script_UniRangeRec af_mymr_nonbase_uniranges[] = + { + AF_UNIRANGE_REC( 0x102DUL, 0x1030UL ), + AF_UNIRANGE_REC( 0x1032UL, 0x1037UL ), + AF_UNIRANGE_REC( 0x103AUL, 0x103AUL ), + AF_UNIRANGE_REC( 0x103DUL, 0x103EUL ), + AF_UNIRANGE_REC( 0x1058UL, 0x1059UL ), + AF_UNIRANGE_REC( 0x105EUL, 0x1060UL ), + AF_UNIRANGE_REC( 0x1071UL, 0x1074UL ), + AF_UNIRANGE_REC( 0x1082UL, 0x1082UL ), + AF_UNIRANGE_REC( 0x1085UL, 0x1086UL ), + AF_UNIRANGE_REC( 0x108DUL, 0x108DUL ), + AF_UNIRANGE_REC( 0xA9E5UL, 0xA9E5UL ), + AF_UNIRANGE_REC( 0xAA7CUL, 0xAA7CUL ), + AF_UNIRANGE_REC( 0UL, 0UL ) + }; + + const AF_Script_UniRangeRec af_none_uniranges[] = { AF_UNIRANGE_REC( 0UL, 0UL ) @@ -335,23 +424,6 @@ #ifdef AF_CONFIG_OPTION_INDIC - const AF_Script_UniRangeRec af_beng_uniranges[] = - { - AF_UNIRANGE_REC( 0x0980UL, 0x09FFUL ), /* Bengali */ - AF_UNIRANGE_REC( 0UL, 0UL ) - }; - - const AF_Script_UniRangeRec af_beng_nonbase_uniranges[] = - { - AF_UNIRANGE_REC( 0x0981UL, 0x0981UL ), - AF_UNIRANGE_REC( 0x09BCUL, 0x09BCUL ), - AF_UNIRANGE_REC( 0x09C1UL, 0x09C4UL ), - AF_UNIRANGE_REC( 0x09CDUL, 0x09CDUL ), - AF_UNIRANGE_REC( 0x09E2UL, 0x09E3UL ), - AF_UNIRANGE_REC( 0UL, 0UL ) - }; - - const AF_Script_UniRangeRec af_gujr_uniranges[] = { AF_UNIRANGE_REC( 0x0A80UL, 0x0AFFUL ), /* Gujarati */ @@ -386,24 +458,6 @@ }; - const AF_Script_UniRangeRec af_knda_uniranges[] = - { - AF_UNIRANGE_REC( 0x0C80UL, 0x0CFFUL ), /* Kannada */ - AF_UNIRANGE_REC( 0UL, 0UL ) - }; - - const AF_Script_UniRangeRec af_knda_nonbase_uniranges[] = - { - AF_UNIRANGE_REC( 0x0C81UL, 0x0C81UL ), - AF_UNIRANGE_REC( 0x0CBCUL, 0x0CBCUL ), - AF_UNIRANGE_REC( 0x0CBFUL, 0x0CBFUL ), - AF_UNIRANGE_REC( 0x0CC6UL, 0x0CC6UL ), - AF_UNIRANGE_REC( 0x0CCCUL, 0x0CCDUL ), - AF_UNIRANGE_REC( 0x0CE2UL, 0x0CE3UL ), - AF_UNIRANGE_REC( 0UL, 0UL ) - }; - - const AF_Script_UniRangeRec af_limb_uniranges[] = { AF_UNIRANGE_REC( 0x1900UL, 0x194FUL ), /* Limbu */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afranges.h b/reactos/lib/3rdparty/freetype/src/autofit/afranges.h index b080873e77a..1a0e4b15359 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afranges.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/afranges.h @@ -4,7 +4,7 @@ /* */ /* Auto-fitter Unicode script ranges (specification). */ /* */ -/* Copyright 2013-2015 by */ +/* Copyright 2013-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __AFRANGES_H__ -#define __AFRANGES_H__ +#ifndef AFRANGES_H_ +#define AFRANGES_H_ #include "aftypes.h" @@ -26,13 +26,13 @@ FT_BEGIN_HEADER #undef SCRIPT -#define SCRIPT( s, S, d, h, sc1, sc2, sc3 ) \ +#define SCRIPT( s, S, d, h, H, ss ) \ extern const AF_Script_UniRangeRec af_ ## s ## _uniranges[]; #include "afscript.h" #undef SCRIPT -#define SCRIPT( s, S, d, h, sc1, sc2, sc3 ) \ +#define SCRIPT( s, S, d, h, H, ss ) \ extern const AF_Script_UniRangeRec af_ ## s ## _nonbase_uniranges[]; #include "afscript.h" @@ -41,7 +41,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __AFRANGES_H__ */ +#endif /* AFRANGES_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afscript.h b/reactos/lib/3rdparty/freetype/src/autofit/afscript.h index b92e84f5ff0..9bbb6f3b4f5 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afscript.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/afscript.h @@ -4,7 +4,7 @@ /* */ /* Auto-fitter scripts (specification only). */ /* */ -/* Copyright 2013-2015 by */ +/* Copyright 2013-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -33,126 +33,170 @@ SCRIPT( arab, ARAB, "Arabic", HB_SCRIPT_ARABIC, - 0x644, 0x62D, 0x640 ) /* ل Ø­ ـ */ + HINTING_BOTTOM_TO_TOP, + "\xD9\x84 \xD8\xAD \xD9\x80" ) /* ل Ø­ ـ */ + + /* there are no simple forms for letters; we thus use two digit shapes */ + SCRIPT( beng, BENG, + "Bengali", + HB_SCRIPT_BENGALI, + HINTING_TOP_TO_BOTTOM, + "\xE0\xA7\xA6 \xE0\xA7\xAA" ) /* ০ ৪*/ SCRIPT( cyrl, CYRL, "Cyrillic", HB_SCRIPT_CYRILLIC, - 0x43E, 0x41E, 0x0 ) /* о О */ + HINTING_BOTTOM_TO_TOP, + "\xD0\xBE \xD0\x9E" ) /* о О */ SCRIPT( deva, DEVA, "Devanagari", HB_SCRIPT_DEVANAGARI, - 0x920, 0x935, 0x91F ) /* ठ व ट */ + HINTING_TOP_TO_BOTTOM, + "\xE0\xA4\xA0 \xE0\xA4\xB5 \xE0\xA4\x9F" ) /* ठ व ट */ SCRIPT( grek, GREK, "Greek", HB_SCRIPT_GREEK, - 0x3BF, 0x39F, 0x0 ) /* ο Ο */ + HINTING_BOTTOM_TO_TOP, + "\xCE\xBF \xCE\x9F" ) /* ο Ο */ SCRIPT( hebr, HEBR, "Hebrew", HB_SCRIPT_HEBREW, - 0x5DD, 0x0, 0x0 ) /* ם */ + HINTING_BOTTOM_TO_TOP, + "\xD7\x9D" ) /* ם */ + + SCRIPT( knda, KNDA, + "Kannada", + HB_SCRIPT_KANNADA, + HINTING_BOTTOM_TO_TOP, + "\xE0\xB3\xA6 \xE0\xB2\xAC" ) /* ೦ ಬ */ + + /* only digit zero has a simple shape in the Khmer script */ + SCRIPT( khmr, KHMR, + "Khmer", + HB_SCRIPT_KHMER, + HINTING_BOTTOM_TO_TOP, + "\xE1\x9F\xA0" ) /* ០ */ + + SCRIPT( khms, KHMS, + "Khmer Symbols", + HB_SCRIPT_INVALID, + HINTING_BOTTOM_TO_TOP, + "\xE1\xA7\xA1 \xE1\xA7\xAA" ) /* ᧡ ᧪ */ /* only digit zero has a simple shape in the Lao script */ SCRIPT( lao, LAO, "Lao", HB_SCRIPT_LAO, - 0xED0, 0x0, 0x0 ) /* ໐ */ + HINTING_BOTTOM_TO_TOP, + "\xE0\xBB\x90" ) /* ໐ */ SCRIPT( latn, LATN, "Latin", HB_SCRIPT_LATIN, - 'o', 'O', '0' ) + HINTING_BOTTOM_TO_TOP, + "o O 0" ) SCRIPT( latb, LATB, "Latin Subscript Fallback", HB_SCRIPT_INVALID, - 0x2092, 0x2080, 0x0 ) /* ₒ ₀ */ + HINTING_BOTTOM_TO_TOP, + "\xE2\x82\x92 \xE2\x82\x80" ) /* ₒ ₀ */ SCRIPT( latp, LATP, "Latin Superscript Fallback", HB_SCRIPT_INVALID, - 0x1D52, 0x1D3C, 0x2070 ) /* ᵒ á´¼ ⁰ */ + HINTING_BOTTOM_TO_TOP, + "\xE1\xB5\x92 \xE1\xB4\xBC \xE2\x81\xB0" ) /* ᵒ á´¼ ⁰ */ + + SCRIPT( mymr, MYMR, + "Myanmar", + HB_SCRIPT_MYANMAR, + HINTING_BOTTOM_TO_TOP, + "\xE1\x80\x9D \xE1\x80\x84 \xE1\x80\x82" ) /* ဝ င ဂ */ SCRIPT( none, NONE, "no script", HB_SCRIPT_INVALID, - 0x0, 0x0, 0x0 ) + HINTING_BOTTOM_TO_TOP, + "" ) /* there are no simple forms for letters; we thus use two digit shapes */ SCRIPT( telu, TELU, "Telugu", HB_SCRIPT_TELUGU, - 0xC66, 0xC67, 0x0 ) /* ౦ ౧ */ + HINTING_BOTTOM_TO_TOP, + "\xE0\xB1\xA6 \xE0\xB1\xA7" ) /* ౦ ౧ */ SCRIPT( thai, THAI, "Thai", HB_SCRIPT_THAI, - 0xE32, 0xE45, 0xE50 ) /* า ๅ ๐ */ + HINTING_BOTTOM_TO_TOP, + "\xE0\xB8\xB2 \xE0\xB9\x85 \xE0\xB9\x90" ) /* า ๅ ๐ */ #ifdef AF_CONFIG_OPTION_INDIC - SCRIPT( beng, BENG, - "Bengali", - HB_SCRIPT_BENGALI, - 'o', 0x0, 0x0 ) /* XXX */ - SCRIPT( gujr, GUJR, "Gujarati", HB_SCRIPT_GUJARATI, - 'o', 0x0, 0x0 ) /* XXX */ + HINTING_BOTTOM_TO_TOP, + "o" ) /* XXX */ SCRIPT( guru, GURU, "Gurmukhi", HB_SCRIPT_GURMUKHI, - 'o', 0x0, 0x0 ) /* XXX */ - - SCRIPT( knda, KNDA, - "Kannada", - HB_SCRIPT_KANNADA, - 'o', 0x0, 0x0 ) /* XXX */ + HINTING_BOTTOM_TO_TOP, + "o" ) /* XXX */ SCRIPT( limb, LIMB, "Limbu", HB_SCRIPT_LIMBU, - 'o', 0x0, 0x0 ) /* XXX */ + HINTING_BOTTOM_TO_TOP, + "o" ) /* XXX */ SCRIPT( mlym, MLYM, "Malayalam", HB_SCRIPT_MALAYALAM, - 'o', 0x0, 0x0 ) /* XXX */ + HINTING_BOTTOM_TO_TOP, + "o" ) /* XXX */ SCRIPT( orya, ORYA, "Oriya", HB_SCRIPT_ORIYA, - 'o', 0x0, 0x0 ) /* XXX */ + HINTING_BOTTOM_TO_TOP, + "o" ) /* XXX */ SCRIPT( sinh, SINH, "Sinhala", HB_SCRIPT_SINHALA, - 'o', 0x0, 0x0 ) /* XXX */ + HINTING_BOTTOM_TO_TOP, + "o" ) /* XXX */ SCRIPT( sund, SUND, "Sundanese", HB_SCRIPT_SUNDANESE, - 'o', 0x0, 0x0 ) /* XXX */ + HINTING_BOTTOM_TO_TOP, + "o" ) /* XXX */ SCRIPT( sylo, SYLO, "Syloti Nagri", HB_SCRIPT_SYLOTI_NAGRI, - 'o', 0x0, 0x0 ) /* XXX */ + HINTING_BOTTOM_TO_TOP, + "o" ) /* XXX */ SCRIPT( taml, TAML, "Tamil", HB_SCRIPT_TAMIL, - 'o', 0x0, 0x0 ) /* XXX */ + HINTING_BOTTOM_TO_TOP, + "o" ) /* XXX */ SCRIPT( tibt, TIBT, "Tibetan", HB_SCRIPT_TIBETAN, - 'o', 0x0, 0x0 ) /* XXX */ + HINTING_BOTTOM_TO_TOP, + "o" ) /* XXX */ #endif /* AF_CONFIG_OPTION_INDIC */ @@ -161,7 +205,8 @@ SCRIPT( hani, HANI, "CJKV ideographs", HB_SCRIPT_HAN, - 0x7530, 0x56D7, 0x0 ) /* 田囗 */ + HINTING_BOTTOM_TO_TOP, + "\xE7\x94\xB0 \xE5\x9B\x97" ) /* 田 囗 */ #endif /* AF_CONFIG_OPTION_CJK */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/hbshim.c b/reactos/lib/3rdparty/freetype/src/autofit/afshaper.c similarity index 69% rename from reactos/lib/3rdparty/freetype/src/autofit/hbshim.c rename to reactos/lib/3rdparty/freetype/src/autofit/afshaper.c index 7a45059c390..6d13b658590 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/hbshim.c +++ b/reactos/lib/3rdparty/freetype/src/autofit/afshaper.c @@ -1,10 +1,10 @@ /***************************************************************************/ /* */ -/* hbshim.c */ +/* afshaper.c */ /* */ /* HarfBuzz interface for accessing OpenType features (body). */ /* */ -/* Copyright 2013-2015 by */ +/* Copyright 2013-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -20,7 +20,7 @@ #include FT_FREETYPE_H #include "afglobal.h" #include "aftypes.h" -#include "hbshim.h" +#include "afshaper.h" #ifdef FT_CONFIG_OPTION_USE_HARFBUZZ @@ -32,7 +32,7 @@ /* messages during execution. */ /* */ #undef FT_COMPONENT -#define FT_COMPONENT trace_afharfbuzz +#define FT_COMPONENT trace_afshaper /* @@ -86,7 +86,7 @@ /* load HarfBuzz script tags */ #undef SCRIPT -#define SCRIPT( s, S, d, h, sc1, sc2, sc3 ) h, +#define SCRIPT( s, S, d, h, H, ss ) h, static const hb_script_t scripts[] = @@ -96,9 +96,10 @@ FT_Error - af_get_coverage( AF_FaceGlobals globals, - AF_StyleClass style_class, - FT_UShort* gstyles ) + af_shaper_get_coverage( AF_FaceGlobals globals, + AF_StyleClass style_class, + FT_UShort* gstyles, + FT_Bool default_script ) { hb_face_t* face; @@ -143,8 +144,7 @@ /* `hb_ot_tags_from_script' usually returns HB_OT_TAG_DEFAULT_SCRIPT */ /* as the second tag. We change that to HB_TAG_NONE except for the */ /* default script. */ - if ( style_class->script == globals->module->default_script && - style_class->coverage == AF_COVERAGE_DEFAULT ) + if ( default_script ) { if ( script_tags[0] == HB_TAG_NONE ) script_tags[0] = HB_OT_TAG_DEFAULT_SCRIPT; @@ -158,6 +158,11 @@ } else { + /* we use non-standard tags like `khms' for special purposes; */ + /* HarfBuzz maps them to `DFLT', which we don't want to handle here */ + if ( script_tags[0] == HB_OT_TAG_DEFAULT_SCRIPT ) + goto Exit; + if ( script_tags[1] == HB_OT_TAG_DEFAULT_SCRIPT ) script_tags[1] = HB_TAG_NONE; } @@ -418,88 +423,150 @@ }; - FT_Error - af_get_char_index( AF_StyleMetrics metrics, - FT_ULong charcode, - FT_ULong *codepoint, - FT_Long *y_offset ) + void* + af_shaper_buf_create( FT_Face face ) { - AF_StyleClass style_class; + FT_UNUSED( face ); - const hb_feature_t* feature; + return (void*)hb_buffer_create(); + } - FT_ULong in_idx, out_idx; + void + af_shaper_buf_destroy( FT_Face face, + void* buf ) + { + FT_UNUSED( face ); - if ( !metrics ) - return FT_THROW( Invalid_Argument ); + hb_buffer_destroy( (hb_buffer_t*)buf ); + } - in_idx = FT_Get_Char_Index( metrics->globals->face, charcode ); + const char* + af_shaper_get_cluster( const char* p, + AF_StyleMetrics metrics, + void* buf_, + unsigned int* count ) + { + AF_StyleClass style_class; + const hb_feature_t* feature; + FT_Int upem; + const char* q; + int len; + + hb_buffer_t* buf = (hb_buffer_t*)buf_; + hb_font_t* font; + hb_codepoint_t dummy; + + + upem = (FT_Int)metrics->globals->face->units_per_EM; style_class = metrics->style_class; + feature = features[style_class->coverage]; - feature = features[style_class->coverage]; + font = metrics->globals->hb_font; - if ( feature ) - { - FT_Int upem = (FT_Int)metrics->globals->face->units_per_EM; + /* we shape at a size of units per EM; this means font units */ + hb_font_set_scale( font, upem, upem ); - hb_font_t* font = metrics->globals->hb_font; - hb_buffer_t* buf = hb_buffer_create(); + while ( *p == ' ' ) + p++; - uint32_t c = (uint32_t)charcode; + /* count bytes up to next space (or end of buffer) */ + q = p; + while ( !( *q == ' ' || *q == '\0' ) ) + GET_UTF8_CHAR( dummy, q ); + len = (int)( q - p ); - hb_glyph_info_t* ginfo; - hb_glyph_position_t* gpos; - unsigned int gcount; + /* feed character(s) to the HarfBuzz buffer */ + hb_buffer_clear_contents( buf ); + hb_buffer_add_utf8( buf, p, len, 0, len ); + /* we let HarfBuzz guess the script and writing direction */ + hb_buffer_guess_segment_properties( buf ); - /* we shape at a size of units per EM; this means font units */ - hb_font_set_scale( font, upem, upem ); + /* shape buffer, which means conversion from character codes to */ + /* glyph indices, possibly applying a feature */ + hb_shape( font, buf, feature, feature ? 1 : 0 ); - /* XXX: is this sufficient for a single character of any script? */ - hb_buffer_set_direction( buf, HB_DIRECTION_LTR ); - hb_buffer_set_script( buf, scripts[style_class->script] ); + if ( feature ) + { + hb_buffer_t* hb_buf = metrics->globals->hb_buf; - /* we add one character to `buf' ... */ - hb_buffer_add_utf32( buf, &c, 1, 0, 1 ); + unsigned int gcount; + hb_glyph_info_t* ginfo; - /* ... and apply one feature */ - hb_shape( font, buf, feature, 1 ); + unsigned int hb_gcount; + hb_glyph_info_t* hb_ginfo; - ginfo = hb_buffer_get_glyph_infos( buf, &gcount ); - gpos = hb_buffer_get_glyph_positions( buf, &gcount ); - out_idx = ginfo[0].codepoint; + /* we have to check whether applying a feature does actually change */ + /* glyph indices; otherwise the affected glyph or glyphs aren't */ + /* available at all in the feature */ - /* getting the same index indicates no substitution, */ - /* which means that the glyph isn't available in the feature */ - if ( in_idx == out_idx ) - { - *codepoint = 0; - *y_offset = 0; - } - else + hb_buffer_clear_contents( hb_buf ); + hb_buffer_add_utf8( hb_buf, p, len, 0, len ); + hb_buffer_guess_segment_properties( hb_buf ); + hb_shape( font, hb_buf, NULL, 0 ); + + ginfo = hb_buffer_get_glyph_infos( buf, &gcount ); + hb_ginfo = hb_buffer_get_glyph_infos( hb_buf, &hb_gcount ); + + if ( gcount == hb_gcount ) { - *codepoint = out_idx; - *y_offset = gpos[0].y_offset; + unsigned int i; + + + for (i = 0; i < gcount; i++ ) + if ( ginfo[i].codepoint != hb_ginfo[i].codepoint ) + break; + + if ( i == gcount ) + { + /* both buffers have identical glyph indices */ + hb_buffer_clear_contents( buf ); + } } + } - hb_buffer_destroy( buf ); + *count = hb_buffer_get_length( buf ); #ifdef FT_DEBUG_LEVEL_TRACE - if ( gcount > 1 ) - FT_TRACE1(( "af_get_char_index:" - " input character mapped to multiple glyphs\n" )); + if ( feature && *count > 1 ) + FT_TRACE1(( "af_shaper_get_cluster:" + " input character mapped to multiple glyphs\n" )); #endif - } - else - { - *codepoint = in_idx; - *y_offset = 0; - } - return FT_Err_Ok; + return q; + } + + + FT_ULong + af_shaper_get_elem( AF_StyleMetrics metrics, + void* buf_, + unsigned int idx, + FT_Long* advance, + FT_Long* y_offset ) + { + hb_buffer_t* buf = (hb_buffer_t*)buf_; + hb_glyph_info_t* ginfo; + hb_glyph_position_t* gpos; + unsigned int gcount; + + FT_UNUSED( metrics ); + + + ginfo = hb_buffer_get_glyph_infos( buf, &gcount ); + gpos = hb_buffer_get_glyph_positions( buf, &gcount ); + + if ( idx >= gcount ) + return 0; + + if ( advance ) + *advance = gpos[idx].x_advance; + if ( y_offset ) + *y_offset = gpos[idx].y_offset; + + return ginfo[idx].codepoint; } @@ -507,36 +574,106 @@ FT_Error - af_get_coverage( AF_FaceGlobals globals, - AF_StyleClass style_class, - FT_UShort* gstyles ) + af_shaper_get_coverage( AF_FaceGlobals globals, + AF_StyleClass style_class, + FT_UShort* gstyles, + FT_Bool default_script ) { FT_UNUSED( globals ); FT_UNUSED( style_class ); FT_UNUSED( gstyles ); + FT_UNUSED( default_script ); return FT_Err_Ok; } - FT_Error - af_get_char_index( AF_StyleMetrics metrics, - FT_ULong charcode, - FT_ULong *codepoint, - FT_Long *y_offset ) + void* + af_shaper_buf_create( FT_Face face ) { - FT_Face face; + FT_Error error; + FT_Memory memory = face->memory; + FT_ULong* buf; - if ( !metrics ) - return FT_THROW( Invalid_Argument ); + FT_MEM_ALLOC( buf, sizeof ( FT_ULong ) ); - face = metrics->globals->face; + return (void*)buf; + } - *codepoint = FT_Get_Char_Index( face, charcode ); - *y_offset = 0; - return FT_Err_Ok; + void + af_shaper_buf_destroy( FT_Face face, + void* buf ) + { + FT_Memory memory = face->memory; + + + FT_FREE( buf ); + } + + + const char* + af_shaper_get_cluster( const char* p, + AF_StyleMetrics metrics, + void* buf_, + unsigned int* count ) + { + FT_Face face = metrics->globals->face; + FT_ULong ch, dummy = 0; + FT_ULong* buf = (FT_ULong*)buf_; + + + while ( *p == ' ' ) + p++; + + GET_UTF8_CHAR( ch, p ); + + /* since we don't have an engine to handle clusters, */ + /* we scan the characters but return zero */ + while ( !( *p == ' ' || *p == '\0' ) ) + GET_UTF8_CHAR( dummy, p ); + + if ( dummy ) + { + *buf = 0; + *count = 0; + } + else + { + *buf = FT_Get_Char_Index( face, ch ); + *count = 1; + } + + return p; + } + + + FT_ULong + af_shaper_get_elem( AF_StyleMetrics metrics, + void* buf_, + unsigned int idx, + FT_Long* advance, + FT_Long* y_offset ) + { + FT_Face face = metrics->globals->face; + FT_ULong glyph_index = *(FT_ULong*)buf_; + + FT_UNUSED( idx ); + + + if ( advance ) + FT_Get_Advance( face, + glyph_index, + FT_LOAD_NO_SCALE | + FT_LOAD_NO_HINTING | + FT_LOAD_IGNORE_TRANSFORM, + advance ); + + if ( y_offset ) + *y_offset = 0; + + return glyph_index; } diff --git a/reactos/lib/3rdparty/freetype/src/autofit/hbshim.h b/reactos/lib/3rdparty/freetype/src/autofit/afshaper.h similarity index 57% rename from reactos/lib/3rdparty/freetype/src/autofit/hbshim.h rename to reactos/lib/3rdparty/freetype/src/autofit/afshaper.h index 3824941ca2a..0d41f787626 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/hbshim.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/afshaper.h @@ -1,10 +1,10 @@ /***************************************************************************/ /* */ -/* hbshim.h */ +/* afshaper.h */ /* */ /* HarfBuzz interface for accessing OpenType features (specification). */ /* */ -/* Copyright 2013-2015 by */ +/* Copyright 2013-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __HBSHIM_H__ -#define __HBSHIM_H__ +#ifndef AFSHAPER_H_ +#define AFSHAPER_H_ #include @@ -36,21 +36,37 @@ FT_BEGIN_HEADER FT_Error - af_get_coverage( AF_FaceGlobals globals, - AF_StyleClass style_class, - FT_UShort* gstyles ); + af_shaper_get_coverage( AF_FaceGlobals globals, + AF_StyleClass style_class, + FT_UShort* gstyles, + FT_Bool default_script ); - FT_Error - af_get_char_index( AF_StyleMetrics metrics, - FT_ULong charcode, - FT_ULong *codepoint, - FT_Long *y_offset ); + + void* + af_shaper_buf_create( FT_Face face ); + + void + af_shaper_buf_destroy( FT_Face face, + void* buf ); + + const char* + af_shaper_get_cluster( const char* p, + AF_StyleMetrics metrics, + void* buf_, + unsigned int* count ); + + FT_ULong + af_shaper_get_elem( AF_StyleMetrics metrics, + void* buf_, + unsigned int idx, + FT_Long* x_advance, + FT_Long* y_offset ); /* */ FT_END_HEADER -#endif /* __HBSHIM_H__ */ +#endif /* AFSHAPER_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afstyles.h b/reactos/lib/3rdparty/freetype/src/autofit/afstyles.h index 87663c9ee7e..9c57258475e 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afstyles.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/afstyles.h @@ -4,7 +4,7 @@ /* */ /* Auto-fitter styles (specification only). */ /* */ -/* Copyright 2013-2015 by */ +/* Copyright 2013-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -90,6 +90,13 @@ AF_BLUE_STRINGSET_ARAB, AF_COVERAGE_DEFAULT ) + STYLE( beng_dflt, BENG_DFLT, + "Bengali default style", + AF_WRITING_SYSTEM_LATIN, + AF_SCRIPT_BENG, + AF_BLUE_STRINGSET_BENG, + AF_COVERAGE_DEFAULT ) + META_STYLE_LATIN( cyrl, CYRL, "Cyrillic" ) STYLE( deva_dflt, DEVA_DFLT, @@ -108,6 +115,27 @@ AF_BLUE_STRINGSET_HEBR, AF_COVERAGE_DEFAULT ) + STYLE( knda_dflt, KNDA_DFLT, + "Kannada default style", + AF_WRITING_SYSTEM_LATIN, + AF_SCRIPT_KNDA, + AF_BLUE_STRINGSET_KNDA, + AF_COVERAGE_DEFAULT ) + + STYLE( khmr_dflt, KHMR_DFLT, + "Khmer default style", + AF_WRITING_SYSTEM_LATIN, + AF_SCRIPT_KHMR, + AF_BLUE_STRINGSET_KHMR, + AF_COVERAGE_DEFAULT ) + + STYLE( khms_dflt, KHMS_DFLT, + "Khmer Symbols default style", + AF_WRITING_SYSTEM_LATIN, + AF_SCRIPT_KHMS, + AF_BLUE_STRINGSET_KHMS, + AF_COVERAGE_DEFAULT ) + STYLE( lao_dflt, LAO_DFLT, "Lao default style", AF_WRITING_SYSTEM_LATIN, @@ -140,6 +168,13 @@ AF_COVERAGE_DEFAULT ) #endif + STYLE( mymr_dflt, MYMR_DFLT, + "Myanmar default style", + AF_WRITING_SYSTEM_LATIN, + AF_SCRIPT_MYMR, + AF_BLUE_STRINGSET_MYMR, + AF_COVERAGE_DEFAULT ) + STYLE( none_dflt, NONE_DFLT, "no style", AF_WRITING_SYSTEM_DUMMY, @@ -173,10 +208,8 @@ (AF_Blue_Stringset)0, \ AF_COVERAGE_DEFAULT ) - STYLE_DEFAULT_INDIC( beng, BENG, "Bengali" ) STYLE_DEFAULT_INDIC( gujr, GUJR, "Gujarati" ) STYLE_DEFAULT_INDIC( guru, GURU, "Gurmukhi" ) - STYLE_DEFAULT_INDIC( knda, KNDA, "Kannada" ) STYLE_DEFAULT_INDIC( limb, LIMB, "Limbu" ) STYLE_DEFAULT_INDIC( mlym, MLYM, "Malayalam" ) STYLE_DEFAULT_INDIC( orya, ORYA, "Oriya" ) diff --git a/reactos/lib/3rdparty/freetype/src/autofit/aftypes.h b/reactos/lib/3rdparty/freetype/src/autofit/aftypes.h index cbe8bc23b1b..eae6e11783c 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/aftypes.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/aftypes.h @@ -4,7 +4,7 @@ /* */ /* Auto-fitter types (specification only). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -29,8 +29,8 @@ *************************************************************************/ -#ifndef __AFTYPES_H__ -#define __AFTYPES_H__ +#ifndef AFTYPES_H_ +#define AFTYPES_H_ #include @@ -255,7 +255,7 @@ extern void* _af_debug_hints; * outline according to the results of the glyph analyzer. */ -#define __AFWRTSYS_H__ /* don't load header files */ +#define AFWRTSYS_H_ /* don't load header files */ #undef WRITING_SYSTEM #define WRITING_SYSTEM( ws, WS ) \ AF_WRITING_SYSTEM_ ## WS, @@ -270,7 +270,7 @@ extern void* _af_debug_hints; } AF_WritingSystem; -#undef __AFWRTSYS_H__ +#undef AFWRTSYS_H_ typedef struct AF_WritingSystemClassRec_ @@ -309,7 +309,7 @@ extern void* _af_debug_hints; */ #undef SCRIPT -#define SCRIPT( s, S, d, h, sc1, sc2, sc3 ) \ +#define SCRIPT( s, S, d, h, H, ss ) \ AF_SCRIPT_ ## S, /* The list of known scripts. */ @@ -343,9 +343,9 @@ extern void* _af_debug_hints; AF_Script_UniRange script_uni_ranges; AF_Script_UniRange script_uni_nonbase_ranges; - FT_UInt32 standard_char1; /* for default width and height */ - FT_UInt32 standard_char2; /* ditto */ - FT_UInt32 standard_char3; /* ditto */ + FT_Bool top_to_bottom_hinting; + + const char* standard_charstring; /* for default width and height */ } AF_ScriptClassRec; @@ -481,6 +481,10 @@ extern void* _af_debug_hints; } AF_StyleMetricsRec; +#define AF_HINTING_BOTTOM_TO_TOP 0 +#define AF_HINTING_TOP_TO_BOTTOM 1 + + /* Declare and define vtables for classes */ #ifndef FT_CONFIG_OPTION_PIC @@ -524,18 +528,16 @@ extern void* _af_debug_hints; script, \ ranges, \ nonbase_ranges, \ - std_char1, \ - std_char2, \ - std_char3 ) \ + top_to_bottom, \ + std_charstring ) \ FT_CALLBACK_TABLE_DEF \ const AF_ScriptClassRec script_class = \ { \ script, \ ranges, \ nonbase_ranges, \ - std_char1, \ - std_char2, \ - std_char3 \ + top_to_bottom, \ + std_charstring, \ }; @@ -601,18 +603,16 @@ extern void* _af_debug_hints; script_, \ ranges, \ nonbase_ranges, \ - std_char1, \ - std_char2, \ - std_char3 ) \ + top_to_bottom, \ + std_charstring ) \ FT_LOCAL_DEF( void ) \ FT_Init_Class_ ## script_class( AF_ScriptClassRec* ac ) \ { \ ac->script = script_; \ ac->script_uni_ranges = ranges; \ ac->script_uni_nonbase_ranges = nonbase_ranges; \ - ac->standard_char1 = std_char1; \ - ac->standard_char2 = std_char2; \ - ac->standard_char3 = std_char3; \ + ac->top_to_bottom_hinting = top_to_bottom; \ + ac->standard_charstring = std_charstring; \ } @@ -644,7 +644,7 @@ extern void* _af_debug_hints; FT_END_HEADER -#endif /* __AFTYPES_H__ */ +#endif /* AFTYPES_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afwarp.c b/reactos/lib/3rdparty/freetype/src/autofit/afwarp.c index 59af4f02bda..ce1806c9d3c 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afwarp.c +++ b/reactos/lib/3rdparty/freetype/src/autofit/afwarp.c @@ -4,7 +4,7 @@ /* */ /* Auto-fitter warping algorithm (body). */ /* */ -/* Copyright 2006-2015 by */ +/* Copyright 2006-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -193,7 +193,7 @@ warper->best_scale = org_scale; warper->best_delta = org_delta; - warper->best_score = INT_MIN; + warper->best_score = FT_INT_MIN; warper->best_distort = 0; axis = &hints->axis[dim]; diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afwarp.h b/reactos/lib/3rdparty/freetype/src/autofit/afwarp.h index 6069b6b277b..6d96f86d735 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afwarp.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/afwarp.h @@ -4,7 +4,7 @@ /* */ /* Auto-fitter warping algorithm (specification). */ /* */ -/* Copyright 2006-2015 by */ +/* Copyright 2006-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __AFWARP_H__ -#define __AFWARP_H__ +#ifndef AFWARP_H_ +#define AFWARP_H_ #include "afhints.h" @@ -58,7 +58,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __AFWARP_H__ */ +#endif /* AFWARP_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afwrtsys.h b/reactos/lib/3rdparty/freetype/src/autofit/afwrtsys.h index 4aa89d2356a..842f4921a4e 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/afwrtsys.h +++ b/reactos/lib/3rdparty/freetype/src/autofit/afwrtsys.h @@ -4,7 +4,7 @@ /* */ /* Auto-fitter writing systems (specification only). */ /* */ -/* Copyright 2013-2015 by */ +/* Copyright 2013-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __AFWRTSYS_H__ -#define __AFWRTSYS_H__ +#ifndef AFWRTSYS_H_ +#define AFWRTSYS_H_ /* Since preprocessor directives can't create other preprocessor */ /* directives, we have to include the header files manually. */ @@ -30,7 +30,7 @@ #include "aflatin2.h" #endif -#endif /* __AFWRTSYS_H__ */ +#endif /* AFWRTSYS_H_ */ /* The following part can be included multiple times. */ diff --git a/reactos/lib/3rdparty/freetype/src/autofit/autofit.c b/reactos/lib/3rdparty/freetype/src/autofit/autofit.c index b6ed4a0ff1c..dda9aeb6d79 100644 --- a/reactos/lib/3rdparty/freetype/src/autofit/autofit.c +++ b/reactos/lib/3rdparty/freetype/src/autofit/autofit.c @@ -4,7 +4,7 @@ /* */ /* Auto-fitter module (body). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -34,7 +34,7 @@ #include "afcjk.c" #include "afindic.c" -#include "hbshim.c" +#include "afshaper.c" #include "afloader.c" #include "afmodule.c" diff --git a/reactos/lib/3rdparty/freetype/src/base/basepic.c b/reactos/lib/3rdparty/freetype/src/base/basepic.c index 9850ed96a42..f2cea90d7cd 100644 --- a/reactos/lib/3rdparty/freetype/src/base/basepic.c +++ b/reactos/lib/3rdparty/freetype/src/base/basepic.c @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for base. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/basepic.h b/reactos/lib/3rdparty/freetype/src/base/basepic.h index c5d7cbf5ab7..a1a75a0bade 100644 --- a/reactos/lib/3rdparty/freetype/src/base/basepic.h +++ b/reactos/lib/3rdparty/freetype/src/base/basepic.h @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for base. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __BASEPIC_H__ -#define __BASEPIC_H__ +#ifndef BASEPIC_H_ +#define BASEPIC_H_ #include FT_INTERNAL_PIC_H @@ -85,7 +85,7 @@ FT_END_HEADER /* */ -#endif /* __BASEPIC_H__ */ +#endif /* BASEPIC_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftadvanc.c b/reactos/lib/3rdparty/freetype/src/base/ftadvanc.c index f12908f5181..2bfbe8a237f 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftadvanc.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftadvanc.c @@ -4,7 +4,7 @@ /* */ /* Quick computation of advance widths (body). */ /* */ -/* Copyright 2008-2015 by */ +/* Copyright 2008-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -60,10 +60,12 @@ /* - unscaled load */ /* - unhinted load */ /* - light-hinted load */ + /* - neither a MM nor a GX font */ -#define LOAD_ADVANCE_FAST_CHECK( flags ) \ - ( flags & ( FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING ) || \ - FT_LOAD_TARGET_MODE( flags ) == FT_RENDER_MODE_LIGHT ) +#define LOAD_ADVANCE_FAST_CHECK( face, flags ) \ + ( ( flags & ( FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING ) || \ + FT_LOAD_TARGET_MODE( flags ) == FT_RENDER_MODE_LIGHT ) && \ + !FT_HAS_MULTIPLE_MASTERS( face ) ) /* documentation is in ftadvanc.h */ @@ -87,7 +89,7 @@ return FT_THROW( Invalid_Glyph_Index ); func = face->driver->clazz->get_advances; - if ( func && LOAD_ADVANCE_FAST_CHECK( flags ) ) + if ( func && LOAD_ADVANCE_FAST_CHECK( face, flags ) ) { FT_Error error; @@ -133,7 +135,7 @@ return FT_Err_Ok; func = face->driver->clazz->get_advances; - if ( func && LOAD_ADVANCE_FAST_CHECK( flags ) ) + if ( func && LOAD_ADVANCE_FAST_CHECK( face, flags ) ) { error = func( face, start, count, flags, padvances ); if ( !error ) diff --git a/reactos/lib/3rdparty/freetype/src/base/ftapi.c b/reactos/lib/3rdparty/freetype/src/base/ftapi.c index f22a181b59b..b94c3eb9fb3 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftapi.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftapi.c @@ -4,7 +4,7 @@ /* */ /* The FreeType compatibility functions (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftbase.c b/reactos/lib/3rdparty/freetype/src/base/ftbase.c index 253dfb72369..ab1af6f9f3a 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftbase.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftbase.c @@ -4,7 +4,7 @@ /* */ /* Single object library component (body only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -26,6 +26,7 @@ #include "ftcalc.c" #include "ftdbgmem.c" #include "ftgloadr.c" +#include "fthash.c" #include "ftobjs.c" #include "ftoutln.c" #include "ftrfork.c" diff --git a/reactos/lib/3rdparty/freetype/src/base/ftbase.h b/reactos/lib/3rdparty/freetype/src/base/ftbase.h index e37fefa411f..717fdaae242 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftbase.h +++ b/reactos/lib/3rdparty/freetype/src/base/ftbase.h @@ -4,7 +4,7 @@ /* */ /* The FreeType private functions used in base module (specification). */ /* */ -/* Copyright 2008-2015 by */ +/* Copyright 2008-2016 by */ /* David Turner, Robert Wilhelm, Werner Lemberg, and suzuki toshiya. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTBASE_H__ -#define __FTBASE_H__ +#ifndef FTBASE_H_ +#define FTBASE_H_ #include @@ -68,7 +68,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTBASE_H__ */ +#endif /* FTBASE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftbbox.c b/reactos/lib/3rdparty/freetype/src/base/ftbbox.c index 10df98de6ad..d3e45ffa0d4 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftbbox.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftbbox.c @@ -4,7 +4,7 @@ /* */ /* FreeType bbox computation (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftbdf.c b/reactos/lib/3rdparty/freetype/src/base/ftbdf.c index aa72ddcdf9d..4aafc2b98e9 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftbdf.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftbdf.c @@ -4,7 +4,7 @@ /* */ /* FreeType API for accessing BDF-specific strings (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftbitmap.c b/reactos/lib/3rdparty/freetype/src/base/ftbitmap.c index 87cba608021..7f0d9a6e5be 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftbitmap.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftbitmap.c @@ -4,7 +4,7 @@ /* */ /* FreeType utility functions for bitmaps (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftcalc.c b/reactos/lib/3rdparty/freetype/src/base/ftcalc.c index 619a08b3a0c..67549d0c43e 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftcalc.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftcalc.c @@ -4,7 +4,7 @@ /* */ /* Arithmetic computations (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -233,7 +233,7 @@ { #ifdef FT_MULFIX_ASSEMBLER - return FT_MULFIX_ASSEMBLER( a_, b_ ); + return FT_MULFIX_ASSEMBLER( (FT_Int32)a_, (FT_Int32)b_ ); #else diff --git a/reactos/lib/3rdparty/freetype/src/base/ftcid.c b/reactos/lib/3rdparty/freetype/src/base/ftcid.c index 0734881b719..251bbd009ac 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftcid.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftcid.c @@ -4,7 +4,7 @@ /* */ /* FreeType API for accessing CID font information. */ /* */ -/* Copyright 2007-2015 by */ +/* Copyright 2007-2016 by */ /* Derek Clegg and Michael Toftdal. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftdbgmem.c b/reactos/lib/3rdparty/freetype/src/base/ftdbgmem.c index 02eeb01d669..6ab50727482 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftdbgmem.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftdbgmem.c @@ -4,7 +4,7 @@ /* */ /* Memory debugger (body). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -367,7 +367,8 @@ { printf( "leaked memory block at address %p, size %8ld in (%s:%ld)\n", - node->address, node->size, + (void*)node->address, + node->size, FT_FILENAME( node->source->file_name ), node->source->line_no ); diff --git a/reactos/lib/3rdparty/freetype/src/base/ftdebug.c b/reactos/lib/3rdparty/freetype/src/base/ftdebug.c index 03e18a86999..40925d14a0f 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftdebug.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftdebug.c @@ -4,7 +4,7 @@ /* */ /* Debugging and logging component (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftfntfmt.c b/reactos/lib/3rdparty/freetype/src/base/ftfntfmt.c index 98e7431a2b9..c6eb3190c64 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftfntfmt.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftfntfmt.c @@ -4,7 +4,7 @@ /* */ /* FreeType utility file for font formats (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftfstype.c b/reactos/lib/3rdparty/freetype/src/base/ftfstype.c index cd3458f73e1..ae56c8fc8dd 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftfstype.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftfstype.c @@ -4,7 +4,7 @@ /* */ /* FreeType utility file to access FSType data (body). */ /* */ -/* Copyright 2008-2015 by */ +/* Copyright 2008-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftgasp.c b/reactos/lib/3rdparty/freetype/src/base/ftgasp.c index bbd257c4795..e38e55b6c0d 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftgasp.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftgasp.c @@ -4,7 +4,7 @@ /* */ /* Access of TrueType's `gasp' table (body). */ /* */ -/* Copyright 2007-2015 by */ +/* Copyright 2007-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftgloadr.c b/reactos/lib/3rdparty/freetype/src/base/ftgloadr.c index 7e28638b27f..c4f0ff70f4c 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftgloadr.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftgloadr.c @@ -4,7 +4,7 @@ /* */ /* The FreeType glyph loader (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftglyph.c b/reactos/lib/3rdparty/freetype/src/base/ftglyph.c index 2778743aeff..c2376dd03af 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftglyph.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftglyph.c @@ -4,7 +4,7 @@ /* */ /* FreeType convenience functions to handle glyphs (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftgxval.c b/reactos/lib/3rdparty/freetype/src/base/ftgxval.c index 58868f2e86b..6667b371a17 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftgxval.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftgxval.c @@ -4,7 +4,7 @@ /* */ /* FreeType API for validating TrueTyepGX/AAT tables (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* Masatake YAMATO, Redhat K.K, */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/base/fthash.c b/reactos/lib/3rdparty/freetype/src/base/fthash.c new file mode 100644 index 00000000000..21bc8dd5b42 --- /dev/null +++ b/reactos/lib/3rdparty/freetype/src/base/fthash.c @@ -0,0 +1,339 @@ +/***************************************************************************/ +/* */ +/* fthash.c */ +/* */ +/* Hashing functions (body). */ +/* */ +/***************************************************************************/ + +/* + * Copyright 2000 Computing Research Labs, New Mexico State University + * Copyright 2001-2015 + * Francesco Zappa Nardelli + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT + * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + /*************************************************************************/ + /* */ + /* This file is based on code from bdf.c,v 1.22 2000/03/16 20:08:50 */ + /* */ + /* taken from Mark Leisher's xmbdfed package */ + /* */ + /*************************************************************************/ + + +#include +#include FT_INTERNAL_HASH_H +#include FT_INTERNAL_MEMORY_H + + +#define INITIAL_HT_SIZE 241 + + + static FT_ULong + hash_str_lookup( FT_Hashkey* key ) + { + const char* kp = key->str; + FT_ULong res = 0; + + + /* Mocklisp hash function. */ + while ( *kp ) + res = ( res << 5 ) - res + (FT_ULong)*kp++; + + return res; + } + + + static FT_ULong + hash_num_lookup( FT_Hashkey* key ) + { + FT_ULong num = (FT_ULong)key->num; + FT_ULong res; + + + /* Mocklisp hash function. */ + res = num & 0xFF; + res = ( res << 5 ) - res + ( ( num >> 8 ) & 0xFF ); + res = ( res << 5 ) - res + ( ( num >> 16 ) & 0xFF ); + res = ( res << 5 ) - res + ( ( num >> 24 ) & 0xFF ); + + return res; + } + + + static FT_Bool + hash_str_compare( FT_Hashkey* a, + FT_Hashkey* b ) + { + if ( a->str[0] == b->str[0] && + ft_strcmp( a->str, b->str ) == 0 ) + return 1; + + return 0; + } + + + static FT_Bool + hash_num_compare( FT_Hashkey* a, + FT_Hashkey* b ) + { + if ( a->num == b->num ) + return 1; + + return 0; + } + + + static FT_Hashnode* + hash_bucket( FT_Hashkey key, + FT_Hash hash ) + { + FT_ULong res = 0; + FT_Hashnode* bp = hash->table; + FT_Hashnode* ndp; + + + res = (hash->lookup)( &key ); + + ndp = bp + ( res % hash->size ); + while ( *ndp ) + { + if ( (hash->compare)( &(*ndp)->key, &key ) ) + break; + + ndp--; + if ( ndp < bp ) + ndp = bp + ( hash->size - 1 ); + } + + return ndp; + } + + + static FT_Error + hash_rehash( FT_Hash hash, + FT_Memory memory ) + { + FT_Hashnode* obp = hash->table; + FT_Hashnode* bp; + FT_Hashnode* nbp; + + FT_UInt i, sz = hash->size; + FT_Error error = FT_Err_Ok; + + + hash->size <<= 1; + hash->limit = hash->size / 3; + + if ( FT_NEW_ARRAY( hash->table, hash->size ) ) + goto Exit; + + for ( i = 0, bp = obp; i < sz; i++, bp++ ) + { + if ( *bp ) + { + nbp = hash_bucket( (*bp)->key, hash ); + *nbp = *bp; + } + } + + FT_FREE( obp ); + + Exit: + return error; + } + + + static FT_Error + hash_init( FT_Hash hash, + FT_Bool is_num, + FT_Memory memory ) + { + FT_UInt sz = INITIAL_HT_SIZE; + FT_Error error; + + + hash->size = sz; + hash->limit = sz / 3; + hash->used = 0; + + if ( is_num ) + { + hash->lookup = hash_num_lookup; + hash->compare = hash_num_compare; + } + else + { + hash->lookup = hash_str_lookup; + hash->compare = hash_str_compare; + } + + FT_MEM_NEW_ARRAY( hash->table, sz ); + + return error; + } + + + FT_Error + ft_hash_str_init( FT_Hash hash, + FT_Memory memory ) + { + return hash_init( hash, 0, memory ); + } + + + FT_Error + ft_hash_num_init( FT_Hash hash, + FT_Memory memory ) + { + return hash_init( hash, 1, memory ); + } + + + void + ft_hash_str_free( FT_Hash hash, + FT_Memory memory ) + { + if ( hash ) + { + FT_UInt sz = hash->size; + FT_Hashnode* bp = hash->table; + FT_UInt i; + + + for ( i = 0; i < sz; i++, bp++ ) + FT_FREE( *bp ); + + FT_FREE( hash->table ); + } + } + + + /* `ft_hash_num_free' is the same as `ft_hash_str_free' */ + + + static FT_Error + hash_insert( FT_Hashkey key, + size_t data, + FT_Hash hash, + FT_Memory memory ) + { + FT_Hashnode nn; + FT_Hashnode* bp = hash_bucket( key, hash ); + FT_Error error = FT_Err_Ok; + + + nn = *bp; + if ( !nn ) + { + if ( FT_NEW( nn ) ) + goto Exit; + *bp = nn; + + nn->key = key; + nn->data = data; + + if ( hash->used >= hash->limit ) + { + error = hash_rehash( hash, memory ); + if ( error ) + goto Exit; + } + + hash->used++; + } + else + nn->data = data; + + Exit: + return error; + } + + + FT_Error + ft_hash_str_insert( const char* key, + size_t data, + FT_Hash hash, + FT_Memory memory ) + { + FT_Hashkey hk; + + + hk.str = key; + + return hash_insert( hk, data, hash, memory ); + } + + + FT_Error + ft_hash_num_insert( FT_Int num, + size_t data, + FT_Hash hash, + FT_Memory memory ) + { + FT_Hashkey hk; + + + hk.num = num; + + return hash_insert( hk, data, hash, memory ); + } + + + static size_t* + hash_lookup( FT_Hashkey key, + FT_Hash hash ) + { + FT_Hashnode* np = hash_bucket( key, hash ); + + + return (*np) ? &(*np)->data + : NULL; + } + + + size_t* + ft_hash_str_lookup( const char* key, + FT_Hash hash ) + { + FT_Hashkey hk; + + + hk.str = key; + + return hash_lookup( hk, hash ); + } + + + size_t* + ft_hash_num_lookup( FT_Int num, + FT_Hash hash ) + { + FT_Hashkey hk; + + + hk.num = num; + + return hash_lookup( hk, hash ); + } + + +/* END */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftinit.c b/reactos/lib/3rdparty/freetype/src/base/ftinit.c index b65a91d06c6..c2dd0a7b372 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftinit.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftinit.c @@ -4,7 +4,7 @@ /* */ /* FreeType initialization layer (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftlcdfil.c b/reactos/lib/3rdparty/freetype/src/base/ftlcdfil.c index 5ee7e0aa2bb..8bcbed7aab3 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftlcdfil.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftlcdfil.c @@ -4,7 +4,7 @@ /* */ /* FreeType API for color filtering of subpixel bitmap glyphs (body). */ /* */ -/* Copyright 2006-2015 by */ +/* Copyright 2006-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -296,6 +296,8 @@ return FT_THROW( Invalid_Argument ); ft_memcpy( library->lcd_weights, weights, 5 ); + library->lcd_filter_func = _ft_lcd_filter_fir; + library->lcd_extra = 2; return FT_Err_Ok; } @@ -322,25 +324,9 @@ break; case FT_LCD_FILTER_DEFAULT: -#if defined( FT_FORCE_LEGACY_LCD_FILTER ) - - library->lcd_filter_func = _ft_lcd_filter_legacy; - library->lcd_extra = 0; - -#elif defined( FT_FORCE_LIGHT_LCD_FILTER ) - - ft_memcpy( library->lcd_weights, light_filter, 5 ); - library->lcd_filter_func = _ft_lcd_filter_fir; - library->lcd_extra = 2; - -#else - ft_memcpy( library->lcd_weights, default_filter, 5 ); library->lcd_filter_func = _ft_lcd_filter_fir; library->lcd_extra = 2; - -#endif - break; case FT_LCD_FILTER_LIGHT: diff --git a/reactos/lib/3rdparty/freetype/src/base/ftmac.c b/reactos/lib/3rdparty/freetype/src/base/ftmac.c index 114bbb63919..5cfa012e716 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftmac.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftmac.c @@ -8,7 +8,7 @@ /* This file is for Mac OS X only; see builds/mac/ftoldmac.c for */ /* classic platforms built by MPW. */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftmm.c b/reactos/lib/3rdparty/freetype/src/base/ftmm.c index 7c012aa4386..6b759ca4674 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftmm.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftmm.c @@ -4,7 +4,7 @@ /* */ /* Multiple Master font support (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftobjs.c b/reactos/lib/3rdparty/freetype/src/base/ftobjs.c index ea40396413e..fa053471b9c 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftobjs.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftobjs.c @@ -4,7 +4,7 @@ /* */ /* The FreeType private base classes (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -688,7 +688,6 @@ /* both `fpgm' and `prep' tables are missing */ if ( ( mode == FT_RENDER_MODE_LIGHT && !FT_DRIVER_HINTS_LIGHTLY( driver ) ) || - face->internal->ignore_unpatented_hinter || ( FT_IS_SFNT( face ) && ttface->num_locations && ttface->max_profile.maxSizeOfInstructions == 0 && @@ -1521,7 +1520,8 @@ if ( error ) goto Exit; - if ( FT_Stream_Seek( stream, pos + offset ) ) + error = FT_Stream_Seek( stream, pos + offset ); + if ( error ) goto Exit; if ( FT_ALLOC( sfnt_ps, (FT_Long)length ) ) @@ -1802,7 +1802,8 @@ goto Exit; /* rewind sfnt stream before open_face_PS_from_sfnt_stream() */ - if ( FT_Stream_Seek( stream, flag_offset + 4 ) ) + error = FT_Stream_Seek( stream, flag_offset + 4 ); + if ( error ) goto Exit; if ( FT_ALLOC( sfnt_data, rlen ) ) @@ -2183,7 +2184,8 @@ FT_ERR_EQ( error, Table_Missing ) ) { /* TrueType but essential tables are missing */ - if ( FT_Stream_Seek( stream, 0 ) ) + error = FT_Stream_Seek( stream, 0 ); + if ( error ) break; error = open_face_PS_from_sfnt_stream( library, @@ -4199,7 +4201,8 @@ MD5_Init( &ctx ); - MD5_Update( &ctx, bitmap.buffer, rows * pitch ); + if ( bitmap.buffer ) + MD5_Update( &ctx, bitmap.buffer, rows * pitch ); MD5_Final( md5, &ctx ); FT_TRACE3(( "MD5 checksum for %dx%d bitmap:\n" diff --git a/reactos/lib/3rdparty/freetype/src/base/ftotval.c b/reactos/lib/3rdparty/freetype/src/base/ftotval.c index 786457ba2af..fe54e0228ae 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftotval.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftotval.c @@ -4,7 +4,7 @@ /* */ /* FreeType API for validating OpenType tables (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftoutln.c b/reactos/lib/3rdparty/freetype/src/base/ftoutln.c index 201ceabc681..fa2d2cf6504 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftoutln.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftoutln.c @@ -4,7 +4,7 @@ /* */ /* FreeType outline management (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -415,11 +415,14 @@ if ( source == target ) return FT_Err_Ok; - FT_ARRAY_COPY( target->points, source->points, source->n_points ); - - FT_ARRAY_COPY( target->tags, source->tags, source->n_points ); + if ( source->n_points ) + { + FT_ARRAY_COPY( target->points, source->points, source->n_points ); + FT_ARRAY_COPY( target->tags, source->tags, source->n_points ); + } - FT_ARRAY_COPY( target->contours, source->contours, source->n_contours ); + if ( source->n_contours ) + FT_ARRAY_COPY( target->contours, source->contours, source->n_contours ); /* copy all flags, except the `FT_OUTLINE_OWNER' one */ is_owner = target->flags & FT_OUTLINE_OWNER; diff --git a/reactos/lib/3rdparty/freetype/src/base/ftpatent.c b/reactos/lib/3rdparty/freetype/src/base/ftpatent.c index bf2b0855c97..4861be130ea 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftpatent.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftpatent.c @@ -3,9 +3,9 @@ /* ftpatent.c */ /* */ /* FreeType API for checking patented TrueType bytecode instructions */ -/* (body). */ +/* (body). Obsolete, retained for backwards compatibility. */ /* */ -/* Copyright 2007-2015 by */ +/* Copyright 2007-2016 by */ /* David Turner. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -25,238 +25,14 @@ #include FT_SERVICE_TRUETYPE_GLYF_H - static FT_Bool - _tt_check_patents_in_range( FT_Stream stream, - FT_ULong size ) - { - FT_Bool result = FALSE; - FT_Error error; - FT_Bytes p, end; - - - if ( FT_FRAME_ENTER( size ) ) - return 0; - - p = stream->cursor; - end = p + size; - - while ( p < end ) - { - switch (p[0]) - { - case 0x06: /* SPvTL // */ - case 0x07: /* SPvTL + */ - case 0x08: /* SFvTL // */ - case 0x09: /* SFvTL + */ - case 0x0A: /* SPvFS */ - case 0x0B: /* SFvFS */ - result = TRUE; - goto Exit; - - case 0x40: - if ( p + 1 >= end ) - goto Exit; - - p += p[1] + 2; - break; - - case 0x41: - if ( p + 1 >= end ) - goto Exit; - - p += p[1] * 2 + 2; - break; - - case 0x71: /* DELTAP2 */ - case 0x72: /* DELTAP3 */ - case 0x73: /* DELTAC0 */ - case 0x74: /* DELTAC1 */ - case 0x75: /* DELTAC2 */ - result = TRUE; - goto Exit; - - case 0xB0: - case 0xB1: - case 0xB2: - case 0xB3: - case 0xB4: - case 0xB5: - case 0xB6: - case 0xB7: - p += ( p[0] - 0xB0 ) + 2; - break; - - case 0xB8: - case 0xB9: - case 0xBA: - case 0xBB: - case 0xBC: - case 0xBD: - case 0xBE: - case 0xBF: - p += ( p[0] - 0xB8 ) * 2 + 3; - break; - - default: - p += 1; - break; - } - } - - Exit: - FT_UNUSED( error ); - FT_FRAME_EXIT(); - return result; - } - - - static FT_Bool - _tt_check_patents_in_table( FT_Face face, - FT_ULong tag ) - { - FT_Stream stream = face->stream; - FT_Error error = FT_Err_Ok; - FT_Service_SFNT_Table service; - FT_Bool result = FALSE; - - - FT_FACE_FIND_SERVICE( face, service, SFNT_TABLE ); - - if ( service ) - { - FT_UInt i = 0; - FT_ULong tag_i = 0, offset_i = 0, length_i = 0; - - - for ( i = 0; !error && tag_i != tag ; i++ ) - error = service->table_info( face, i, - &tag_i, &offset_i, &length_i ); - - if ( error || - FT_STREAM_SEEK( offset_i ) ) - goto Exit; - - result = _tt_check_patents_in_range( stream, length_i ); - } - - Exit: - return result; - } - - - static FT_Bool - _tt_face_check_patents( FT_Face face ) - { - FT_Stream stream = face->stream; - FT_UInt gindex; - FT_Error error; - FT_Bool result; - - FT_Service_TTGlyf service; - - - result = _tt_check_patents_in_table( face, TTAG_fpgm ); - if ( result ) - goto Exit; - - result = _tt_check_patents_in_table( face, TTAG_prep ); - if ( result ) - goto Exit; - - FT_FACE_FIND_SERVICE( face, service, TT_GLYF ); - if ( service == NULL ) - goto Exit; - - for ( gindex = 0; gindex < (FT_UInt)face->num_glyphs; gindex++ ) - { - FT_ULong offset, num_ins, size; - FT_Int num_contours; - - - offset = service->get_location( face, gindex, &size ); - if ( size == 0 ) - continue; - - if ( FT_STREAM_SEEK( offset ) || - FT_READ_SHORT( num_contours ) ) - continue; - - if ( num_contours >= 0 ) /* simple glyph */ - { - if ( FT_STREAM_SKIP( 8 + num_contours * 2 ) ) - continue; - } - else /* compound glyph */ - { - FT_Bool has_instr = 0; - - - if ( FT_STREAM_SKIP( 8 ) ) - continue; - - /* now read each component */ - for (;;) - { - FT_UInt flags, toskip; - - - if( FT_READ_USHORT( flags ) ) - break; - - toskip = 2 + 1 + 1; - - if ( ( flags & ( 1 << 0 ) ) != 0 ) /* ARGS_ARE_WORDS */ - toskip += 2; - - if ( ( flags & ( 1 << 3 ) ) != 0 ) /* WE_HAVE_A_SCALE */ - toskip += 2; - else if ( ( flags & ( 1 << 6 ) ) != 0 ) /* WE_HAVE_X_Y_SCALE */ - toskip += 4; - else if ( ( flags & ( 1 << 7 ) ) != 0 ) /* WE_HAVE_A_2x2 */ - toskip += 8; - - if ( ( flags & ( 1 << 8 ) ) != 0 ) /* WE_HAVE_INSTRUCTIONS */ - has_instr = 1; - - if ( FT_STREAM_SKIP( toskip ) ) - goto NextGlyph; - - if ( ( flags & ( 1 << 5 ) ) == 0 ) /* MORE_COMPONENTS */ - break; - } - - if ( !has_instr ) - goto NextGlyph; - } - - if ( FT_READ_USHORT( num_ins ) ) - continue; - - result = _tt_check_patents_in_range( stream, num_ins ); - if ( result ) - goto Exit; - - NextGlyph: - ; - } - - Exit: - return result; - } - - /* documentation is in freetype.h */ FT_EXPORT_DEF( FT_Bool ) FT_Face_CheckTrueTypePatents( FT_Face face ) { - FT_Bool result = FALSE; - - - if ( face && FT_IS_SFNT( face ) ) - result = _tt_face_check_patents( face ); + FT_UNUSED( face ); - return result; + return FALSE; } @@ -266,22 +42,10 @@ FT_Face_SetUnpatentedHinting( FT_Face face, FT_Bool value ) { - FT_Bool result = FALSE; - - -#if defined( TT_CONFIG_OPTION_UNPATENTED_HINTING ) && \ - !defined( TT_CONFIG_OPTION_BYTECODE_INTERPRETER ) - if ( face && FT_IS_SFNT( face ) ) - { - result = !face->internal->ignore_unpatented_hinter; - face->internal->ignore_unpatented_hinter = !value; - } -#else FT_UNUSED( face ); FT_UNUSED( value ); -#endif - return result; + return FALSE; } /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftpfr.c b/reactos/lib/3rdparty/freetype/src/base/ftpfr.c index 39f089e3e9d..81faa529c37 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftpfr.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftpfr.c @@ -4,7 +4,7 @@ /* */ /* FreeType API for accessing PFR-specific data (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftpic.c b/reactos/lib/3rdparty/freetype/src/base/ftpic.c index 6c4b1cd4e62..03769dba223 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftpic.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftpic.c @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services (body). */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftrfork.c b/reactos/lib/3rdparty/freetype/src/base/ftrfork.c index c30c76678e6..4d3de46a37c 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftrfork.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftrfork.c @@ -4,7 +4,7 @@ /* */ /* Embedded resource forks accessor (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* Masatake YAMATO and Redhat K.K. */ /* */ /* FT_Raccess_Get_HeaderInfo() and raccess_guess_darwin_hfsplus() are */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftsnames.c b/reactos/lib/3rdparty/freetype/src/base/ftsnames.c index 80304e5c859..ce7964118cf 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftsnames.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftsnames.c @@ -7,7 +7,7 @@ /* */ /* This is _not_ used to retrieve glyph names! */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftstream.c b/reactos/lib/3rdparty/freetype/src/base/ftstream.c index b68f3f82d27..8b5bad8f609 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftstream.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftstream.c @@ -4,7 +4,7 @@ /* */ /* I/O stream support (body). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftstroke.c b/reactos/lib/3rdparty/freetype/src/base/ftstroke.c index fecb3cc25c0..4f3c4937b50 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftstroke.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftstroke.c @@ -4,7 +4,7 @@ /* */ /* FreeType path stroker (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -712,9 +712,10 @@ FT_Outline* outline ) { /* copy point locations */ - FT_ARRAY_COPY( outline->points + outline->n_points, - border->points, - border->num_points ); + if ( border->num_points ) + FT_ARRAY_COPY( outline->points + outline->n_points, + border->points, + border->num_points ); /* copy tags */ { diff --git a/reactos/lib/3rdparty/freetype/src/base/ftsynth.c b/reactos/lib/3rdparty/freetype/src/base/ftsynth.c index cd685339573..4b66a33c3fc 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftsynth.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftsynth.c @@ -4,7 +4,7 @@ /* */ /* FreeType synthesizing code for emboldening and slanting (body). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftsystem.c b/reactos/lib/3rdparty/freetype/src/base/ftsystem.c index 1938fd8917c..ac1f01c8bca 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftsystem.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftsystem.c @@ -4,7 +4,7 @@ /* */ /* ANSI-specific FreeType low-level system interface (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/fttrigon.c b/reactos/lib/3rdparty/freetype/src/base/fttrigon.c index 5b24304c2fc..7b582c8a3d2 100644 --- a/reactos/lib/3rdparty/freetype/src/base/fttrigon.c +++ b/reactos/lib/3rdparty/freetype/src/base/fttrigon.c @@ -4,7 +4,7 @@ /* */ /* FreeType trigonometric functions (body). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -71,7 +71,8 @@ /* 0x40000000 comes from regression analysis between true */ /* and CORDIC hypotenuse, so it minimizes the error */ - val = (FT_Fixed)( ( (FT_Int64)val * FT_TRIG_SCALE + 0x40000000UL ) >> 32 ); + val = (FT_Fixed)( + ( (FT_UInt64)val * FT_TRIG_SCALE + 0x40000000UL ) >> 32 ); return s < 0 ? -val : val; } diff --git a/reactos/lib/3rdparty/freetype/src/base/fttype1.c b/reactos/lib/3rdparty/freetype/src/base/fttype1.c index c549382afdb..5c0fce86863 100644 --- a/reactos/lib/3rdparty/freetype/src/base/fttype1.c +++ b/reactos/lib/3rdparty/freetype/src/base/fttype1.c @@ -4,7 +4,7 @@ /* */ /* FreeType utility file for PS names support (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftutil.c b/reactos/lib/3rdparty/freetype/src/base/ftutil.c index f5b72db7083..fad7d1a5fb3 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftutil.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftutil.c @@ -4,7 +4,7 @@ /* */ /* FreeType utility file for memory and list management (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/base/ftwinfnt.c b/reactos/lib/3rdparty/freetype/src/base/ftwinfnt.c index 76a19af983a..89e91550986 100644 --- a/reactos/lib/3rdparty/freetype/src/base/ftwinfnt.c +++ b/reactos/lib/3rdparty/freetype/src/base/ftwinfnt.c @@ -4,7 +4,7 @@ /* */ /* FreeType API for accessing Windows FNT specific info (body). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/bdf/bdf.h b/reactos/lib/3rdparty/freetype/src/bdf/bdf.h index f24d925d8f4..9012727c7ec 100644 --- a/reactos/lib/3rdparty/freetype/src/bdf/bdf.h +++ b/reactos/lib/3rdparty/freetype/src/bdf/bdf.h @@ -22,8 +22,8 @@ */ -#ifndef __BDF_H__ -#define __BDF_H__ +#ifndef BDF_H_ +#define BDF_H_ /* @@ -33,6 +33,7 @@ #include #include FT_INTERNAL_OBJECTS_H #include FT_INTERNAL_STREAM_H +#include FT_INTERNAL_HASH_H FT_BEGIN_HEADER @@ -157,24 +158,6 @@ FT_BEGIN_HEADER } bdf_glyph_t; - typedef struct _hashnode_ - { - const char* key; - size_t data; - - } _hashnode, *hashnode; - - - typedef struct hashtable_ - { - unsigned int limit; - unsigned int size; - unsigned int used; - hashnode* table; - - } hashtable; - - typedef struct bdf_glyphlist_t_ { unsigned short pad; /* Pad to 4-byte boundary. */ @@ -238,7 +221,7 @@ FT_BEGIN_HEADER bdf_property_t* user_props; unsigned long nuser_props; - hashtable proptbl; + FT_HashRec proptbl; } bdf_font_t; @@ -291,7 +274,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __BDF_H__ */ +#endif /* BDF_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/bdf/bdfdrivr.h b/reactos/lib/3rdparty/freetype/src/bdf/bdfdrivr.h index 3c61d644f4e..94550818c11 100644 --- a/reactos/lib/3rdparty/freetype/src/bdf/bdfdrivr.h +++ b/reactos/lib/3rdparty/freetype/src/bdf/bdfdrivr.h @@ -25,8 +25,8 @@ THE SOFTWARE. */ -#ifndef __BDFDRIVR_H__ -#define __BDFDRIVR_H__ +#ifndef BDFDRIVR_H_ +#define BDFDRIVR_H_ #include #include FT_INTERNAL_DRIVER_H @@ -74,7 +74,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __BDFDRIVR_H__ */ +#endif /* BDFDRIVR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/bdf/bdferror.h b/reactos/lib/3rdparty/freetype/src/bdf/bdferror.h index ea545aca06c..b462c7d3b5c 100644 --- a/reactos/lib/3rdparty/freetype/src/bdf/bdferror.h +++ b/reactos/lib/3rdparty/freetype/src/bdf/bdferror.h @@ -26,12 +26,12 @@ /* */ /*************************************************************************/ -#ifndef __BDFERROR_H__ -#define __BDFERROR_H__ +#ifndef BDFERROR_H_ +#define BDFERROR_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX BDF_Err_ @@ -39,7 +39,7 @@ #include FT_ERRORS_H -#endif /* __BDFERROR_H__ */ +#endif /* BDFERROR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/bdf/bdflib.c b/reactos/lib/3rdparty/freetype/src/bdf/bdflib.c index 7b40f42ff77..4baa9ca918c 100644 --- a/reactos/lib/3rdparty/freetype/src/bdf/bdflib.c +++ b/reactos/lib/3rdparty/freetype/src/bdf/bdflib.c @@ -219,164 +219,6 @@ #define DBGMSG2 " (0x%lX)\n" - /*************************************************************************/ - /* */ - /* Hash table utilities for the properties. */ - /* */ - /*************************************************************************/ - - /* XXX: Replace this with FreeType's hash functions */ - - -#define INITIAL_HT_SIZE 241 - - typedef void - (*hash_free_func)( hashnode node ); - - static hashnode* - hash_bucket( const char* key, - hashtable* ht ) - { - const char* kp = key; - unsigned long res = 0; - hashnode* bp = ht->table, *ndp; - - - /* Mocklisp hash function. */ - while ( *kp ) - res = ( res << 5 ) - res + (unsigned long)*kp++; - - ndp = bp + ( res % ht->size ); - while ( *ndp ) - { - kp = (*ndp)->key; - if ( kp[0] == key[0] && ft_strcmp( kp, key ) == 0 ) - break; - ndp--; - if ( ndp < bp ) - ndp = bp + ( ht->size - 1 ); - } - - return ndp; - } - - - static FT_Error - hash_rehash( hashtable* ht, - FT_Memory memory ) - { - hashnode* obp = ht->table, *bp, *nbp; - unsigned int i, sz = ht->size; - FT_Error error = FT_Err_Ok; - - - ht->size <<= 1; - ht->limit = ht->size / 3; - - if ( FT_NEW_ARRAY( ht->table, ht->size ) ) - goto Exit; - - for ( i = 0, bp = obp; i < sz; i++, bp++ ) - { - if ( *bp ) - { - nbp = hash_bucket( (*bp)->key, ht ); - *nbp = *bp; - } - } - FT_FREE( obp ); - - Exit: - return error; - } - - - static FT_Error - hash_init( hashtable* ht, - FT_Memory memory ) - { - unsigned int sz = INITIAL_HT_SIZE; - FT_Error error = FT_Err_Ok; - - - ht->size = sz; - ht->limit = sz / 3; - ht->used = 0; - - if ( FT_NEW_ARRAY( ht->table, sz ) ) - goto Exit; - - Exit: - return error; - } - - - static void - hash_free( hashtable* ht, - FT_Memory memory ) - { - if ( ht != 0 ) - { - unsigned int i, sz = ht->size; - hashnode* bp = ht->table; - - - for ( i = 0; i < sz; i++, bp++ ) - FT_FREE( *bp ); - - FT_FREE( ht->table ); - } - } - - - static FT_Error - hash_insert( char* key, - size_t data, - hashtable* ht, - FT_Memory memory ) - { - hashnode nn; - hashnode* bp = hash_bucket( key, ht ); - FT_Error error = FT_Err_Ok; - - - nn = *bp; - if ( !nn ) - { - if ( FT_NEW( nn ) ) - goto Exit; - *bp = nn; - - nn->key = key; - nn->data = data; - - if ( ht->used >= ht->limit ) - { - error = hash_rehash( ht, memory ); - if ( error ) - goto Exit; - } - ht->used++; - } - else - nn->data = data; - - Exit: - return error; - } - - - static hashnode - hash_lookup( const char* key, - hashtable* ht ) - { - hashnode *np = hash_bucket( key, ht ); - - - return *np; - } - - /*************************************************************************/ /* */ /* Utility types and functions. */ @@ -834,14 +676,6 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - static const unsigned char odigits[32] = - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }; - static const unsigned char ddigits[32] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, @@ -859,81 +693,33 @@ }; - /* Routine to convert an ASCII string into an unsigned long integer. */ + /* Routine to convert a decimal ASCII string to an unsigned long integer. */ static unsigned long - _bdf_atoul( char* s, - char** end, - unsigned int base ) + _bdf_atoul( char* s ) { - unsigned long v; - const unsigned char* dmap; + unsigned long v; if ( s == 0 || *s == 0 ) return 0; - /* Make sure the radix is something recognizable. Default to 10. */ - switch ( base ) - { - case 8: - dmap = odigits; - break; - case 16: - dmap = hdigits; - break; - default: - base = 10; - dmap = ddigits; - break; - } - - /* Check for the special hex prefix. */ - if ( *s == '0' && - ( *( s + 1 ) == 'x' || *( s + 1 ) == 'X' ) ) - { - base = 16; - dmap = hdigits; - s += 2; - } - - for ( v = 0; sbitset( dmap, *s ); s++ ) - v = v * base + a2i[(int)*s]; - - if ( end != 0 ) - *end = s; + for ( v = 0; sbitset( ddigits, *s ); s++ ) + v = v * 10 + a2i[(int)*s]; return v; } - /* Routine to convert an ASCII string into a signed long integer. */ + /* Routine to convert a decimal ASCII string to a signed long integer. */ static long - _bdf_atol( char* s, - char** end, - int base ) + _bdf_atol( char* s ) { - long v, neg; - const unsigned char* dmap; + long v, neg; if ( s == 0 || *s == 0 ) return 0; - /* Make sure the radix is something recognizable. Default to 10. */ - switch ( base ) - { - case 8: - dmap = odigits; - break; - case 16: - dmap = hdigits; - break; - default: - base = 10; - dmap = ddigits; - break; - } - /* Check for a minus sign. */ neg = 0; if ( *s == '-' ) @@ -942,100 +728,40 @@ neg = 1; } - /* Check for the special hex prefix. */ - if ( *s == '0' && - ( *( s + 1 ) == 'x' || *( s + 1 ) == 'X' ) ) - { - base = 16; - dmap = hdigits; - s += 2; - } - - for ( v = 0; sbitset( dmap, *s ); s++ ) - v = v * base + a2i[(int)*s]; - - if ( end != 0 ) - *end = s; + for ( v = 0; sbitset( ddigits, *s ); s++ ) + v = v * 10 + a2i[(int)*s]; return ( !neg ) ? v : -v; } - /* Routine to convert an ASCII string into an unsigned short integer. */ + /* Routine to convert a decimal ASCII string to an unsigned short integer. */ static unsigned short - _bdf_atous( char* s, - char** end, - unsigned int base ) + _bdf_atous( char* s ) { - unsigned short v; - const unsigned char* dmap; + unsigned short v; if ( s == 0 || *s == 0 ) return 0; - /* Make sure the radix is something recognizable. Default to 10. */ - switch ( base ) - { - case 8: - dmap = odigits; - break; - case 16: - dmap = hdigits; - break; - default: - base = 10; - dmap = ddigits; - break; - } - - /* Check for the special hex prefix. */ - if ( *s == '0' && - ( *( s + 1 ) == 'x' || *( s + 1 ) == 'X' ) ) - { - base = 16; - dmap = hdigits; - s += 2; - } - - for ( v = 0; sbitset( dmap, *s ); s++ ) - v = (unsigned short)( v * base + a2i[(int)*s] ); - - if ( end != 0 ) - *end = s; + for ( v = 0; sbitset( ddigits, *s ); s++ ) + v = (unsigned short)( v * 10 + a2i[(int)*s] ); return v; } - /* Routine to convert an ASCII string into a signed short integer. */ + /* Routine to convert a decimal ASCII string to a signed short integer. */ static short - _bdf_atos( char* s, - char** end, - int base ) + _bdf_atos( char* s ) { - short v, neg; - const unsigned char* dmap; + short v, neg; if ( s == 0 || *s == 0 ) return 0; - /* Make sure the radix is something recognizable. Default to 10. */ - switch ( base ) - { - case 8: - dmap = odigits; - break; - case 16: - dmap = hdigits; - break; - default: - base = 10; - dmap = ddigits; - break; - } - /* Check for a minus. */ neg = 0; if ( *s == '-' ) @@ -1044,20 +770,8 @@ neg = 1; } - /* Check for the special hex prefix. */ - if ( *s == '0' && - ( *( s + 1 ) == 'x' || *( s + 1 ) == 'X' ) ) - { - base = 16; - dmap = hdigits; - s += 2; - } - - for ( v = 0; sbitset( dmap, *s ); s++ ) - v = (short)( v * base + a2i[(int)*s] ); - - if ( end != 0 ) - *end = s; + for ( v = 0; sbitset( ddigits, *s ); s++ ) + v = (short)( v * 10 + a2i[(int)*s] ); return (short)( ( !neg ) ? v : -v ); } @@ -1098,7 +812,7 @@ /* First check whether the property has */ /* already been added or not. If it has, then */ /* simply ignore it. */ - if ( hash_lookup( name, &(font->proptbl) ) ) + if ( ft_hash_str_lookup( name, &(font->proptbl) ) ) goto Exit; if ( FT_RENEW_ARRAY( font->user_props, @@ -1123,7 +837,7 @@ n = _num_bdf_properties + font->nuser_props; - error = hash_insert( p->name, n, &(font->proptbl), memory ); + error = ft_hash_str_insert( p->name, n, &(font->proptbl), memory ); if ( error ) goto Exit; @@ -1134,25 +848,23 @@ } - FT_LOCAL_DEF( bdf_property_t * ) + FT_LOCAL_DEF( bdf_property_t* ) bdf_get_property( char* name, bdf_font_t* font ) { - hashnode hn; - size_t propid; + size_t* propid; if ( name == 0 || *name == 0 ) return 0; - if ( ( hn = hash_lookup( name, &(font->proptbl) ) ) == 0 ) + if ( ( propid = ft_hash_str_lookup( name, &(font->proptbl) ) ) == NULL ) return 0; - propid = hn->data; - if ( propid >= _num_bdf_properties ) - return font->user_props + ( propid - _num_bdf_properties ); + if ( *propid >= _num_bdf_properties ) + return font->user_props + ( *propid - _num_bdf_properties ); - return (bdf_property_t*)_bdf_properties + propid; + return (bdf_property_t*)_bdf_properties + *propid; } @@ -1165,30 +877,30 @@ /* Parse flags. */ -#define _BDF_START 0x0001U -#define _BDF_FONT_NAME 0x0002U -#define _BDF_SIZE 0x0004U -#define _BDF_FONT_BBX 0x0008U -#define _BDF_PROPS 0x0010U -#define _BDF_GLYPHS 0x0020U -#define _BDF_GLYPH 0x0040U -#define _BDF_ENCODING 0x0080U -#define _BDF_SWIDTH 0x0100U -#define _BDF_DWIDTH 0x0200U -#define _BDF_BBX 0x0400U -#define _BDF_BITMAP 0x0800U +#define BDF_START_ 0x0001U +#define BDF_FONT_NAME_ 0x0002U +#define BDF_SIZE_ 0x0004U +#define BDF_FONT_BBX_ 0x0008U +#define BDF_PROPS_ 0x0010U +#define BDF_GLYPHS_ 0x0020U +#define BDF_GLYPH_ 0x0040U +#define BDF_ENCODING_ 0x0080U +#define BDF_SWIDTH_ 0x0100U +#define BDF_DWIDTH_ 0x0200U +#define BDF_BBX_ 0x0400U +#define BDF_BITMAP_ 0x0800U -#define _BDF_SWIDTH_ADJ 0x1000U +#define BDF_SWIDTH_ADJ_ 0x1000U -#define _BDF_GLYPH_BITS ( _BDF_GLYPH | \ - _BDF_ENCODING | \ - _BDF_SWIDTH | \ - _BDF_DWIDTH | \ - _BDF_BBX | \ - _BDF_BITMAP ) +#define BDF_GLYPH_BITS_ ( BDF_GLYPH_ | \ + BDF_ENCODING_ | \ + BDF_SWIDTH_ | \ + BDF_DWIDTH_ | \ + BDF_BBX_ | \ + BDF_BITMAP_ ) -#define _BDF_GLYPH_WIDTH_CHECK 0x40000000UL -#define _BDF_GLYPH_HEIGHT_CHECK 0x80000000UL +#define BDF_GLYPH_WIDTH_CHECK_ 0x40000000UL +#define BDF_GLYPH_HEIGHT_CHECK_ 0x80000000UL static FT_Error @@ -1360,8 +1072,7 @@ char* value, unsigned long lineno ) { - size_t propid; - hashnode hn; + size_t* propid; bdf_property_t *prop, *fp; FT_Memory memory = font->memory; FT_Error error = FT_Err_Ok; @@ -1370,11 +1081,12 @@ /* First, check whether the property already exists in the font. */ - if ( ( hn = hash_lookup( name, (hashtable *)font->internal ) ) != 0 ) + if ( ( propid = ft_hash_str_lookup( name, + (FT_Hash)font->internal ) ) != NULL ) { /* The property already exists in the font, so simply replace */ /* the value of the property with the current value. */ - fp = font->props + hn->data; + fp = font->props + *propid; switch ( fp->format ) { @@ -1390,11 +1102,11 @@ break; case BDF_INTEGER: - fp->value.l = _bdf_atol( value, 0, 10 ); + fp->value.l = _bdf_atol( value ); break; case BDF_CARDINAL: - fp->value.ul = _bdf_atoul( value, 0, 10 ); + fp->value.ul = _bdf_atoul( value ); break; default: @@ -1406,13 +1118,13 @@ /* See whether this property type exists yet or not. */ /* If not, create it. */ - hn = hash_lookup( name, &(font->proptbl) ); - if ( hn == 0 ) + propid = ft_hash_str_lookup( name, &(font->proptbl) ); + if ( propid == NULL ) { error = bdf_create_property( name, BDF_ATOM, font ); if ( error ) goto Exit; - hn = hash_lookup( name, &(font->proptbl) ); + propid = ft_hash_str_lookup( name, &(font->proptbl) ); } /* Allocate another property if this is overflow. */ @@ -1436,11 +1148,10 @@ font->props_size++; } - propid = hn->data; - if ( propid >= _num_bdf_properties ) - prop = font->user_props + ( propid - _num_bdf_properties ); + if ( *propid >= _num_bdf_properties ) + prop = font->user_props + ( *propid - _num_bdf_properties ); else - prop = (bdf_property_t*)_bdf_properties + propid; + prop = (bdf_property_t*)_bdf_properties + *propid; fp = font->props + font->props_used; @@ -1460,11 +1171,11 @@ break; case BDF_INTEGER: - fp->value.l = _bdf_atol( value, 0, 10 ); + fp->value.l = _bdf_atol( value ); break; case BDF_CARDINAL: - fp->value.ul = _bdf_atoul( value, 0, 10 ); + fp->value.ul = _bdf_atoul( value ); break; } @@ -1473,10 +1184,10 @@ if ( _bdf_strncmp( name, "COMMENT", 7 ) != 0 ) { /* Add the property to the font property table. */ - error = hash_insert( fp->name, - font->props_used, - (hashtable *)font->internal, - memory ); + error = ft_hash_str_insert( fp->name, + font->props_used, + (FT_Hash)font->internal, + memory ); if ( error ) goto Exit; } @@ -1567,7 +1278,7 @@ } /* The very first thing expected is the number of glyphs. */ - if ( !( p->flags & _BDF_GLYPHS ) ) + if ( !( p->flags & BDF_GLYPHS_ ) ) { if ( _bdf_strncmp( line, "CHARS", 5 ) != 0 ) { @@ -1579,7 +1290,7 @@ error = _bdf_list_split( &p->list, (char *)" +", line, linelen ); if ( error ) goto Exit; - p->cnt = font->glyphs_size = _bdf_atoul( p->list.field[1], 0, 10 ); + p->cnt = font->glyphs_size = _bdf_atoul( p->list.field[1] ); /* We need at least 20 bytes per glyph. */ if ( p->cnt > p->size / 20 ) @@ -1604,7 +1315,7 @@ if ( FT_NEW_ARRAY( font->glyphs, font->glyphs_size ) ) goto Exit; - p->flags |= _BDF_GLYPHS; + p->flags |= BDF_GLYPHS_; goto Exit; } @@ -1612,7 +1323,7 @@ /* Check for the ENDFONT field. */ if ( _bdf_strncmp( line, "ENDFONT", 7 ) == 0 ) { - if ( p->flags & _BDF_GLYPH_BITS ) + if ( p->flags & BDF_GLYPH_BITS_ ) { /* Missing ENDCHAR field. */ FT_ERROR(( "_bdf_parse_glyphs: " ERRMSG1, lineno, "ENDCHAR" )); @@ -1626,7 +1337,7 @@ sizeof ( bdf_glyph_t ), by_encoding ); - p->flags &= ~_BDF_START; + p->flags &= ~BDF_START_; goto Exit; } @@ -1635,14 +1346,14 @@ if ( _bdf_strncmp( line, "ENDCHAR", 7 ) == 0 ) { p->glyph_enc = 0; - p->flags &= ~_BDF_GLYPH_BITS; + p->flags &= ~BDF_GLYPH_BITS_; goto Exit; } /* Check whether a glyph is being scanned but should be */ /* ignored because it is an unencoded glyph. */ - if ( ( p->flags & _BDF_GLYPH ) && + if ( ( p->flags & BDF_GLYPH_ ) && p->glyph_enc == -1 && p->opts->keep_unencoded == 0 ) goto Exit; @@ -1650,7 +1361,7 @@ /* Check for the STARTCHAR field. */ if ( _bdf_strncmp( line, "STARTCHAR", 9 ) == 0 ) { - if ( p->flags & _BDF_GLYPH_BITS ) + if ( p->flags & BDF_GLYPH_BITS_ ) { /* Missing ENDCHAR field. */ FT_ERROR(( "_bdf_parse_glyphs: " ERRMSG1, lineno, "ENDCHAR" )); @@ -1682,7 +1393,7 @@ FT_MEM_COPY( p->glyph_name, s, slen + 1 ); - p->flags |= _BDF_GLYPH; + p->flags |= BDF_GLYPH_; FT_TRACE4(( DBGMSG1, lineno, s )); @@ -1692,7 +1403,7 @@ /* Check for the ENCODING field. */ if ( _bdf_strncmp( line, "ENCODING", 8 ) == 0 ) { - if ( !( p->flags & _BDF_GLYPH ) ) + if ( !( p->flags & BDF_GLYPH_ ) ) { /* Missing STARTCHAR field. */ FT_ERROR(( "_bdf_parse_glyphs: " ERRMSG1, lineno, "STARTCHAR" )); @@ -1704,7 +1415,7 @@ if ( error ) goto Exit; - p->glyph_enc = _bdf_atol( p->list.field[1], 0, 10 ); + p->glyph_enc = _bdf_atol( p->list.field[1] ); /* Normalize negative encoding values. The specification only */ /* allows -1, but we can be more generous here. */ @@ -1713,7 +1424,7 @@ /* Check for alternative encoding format. */ if ( p->glyph_enc == -1 && p->list.used > 2 ) - p->glyph_enc = _bdf_atol( p->list.field[2], 0, 10 ); + p->glyph_enc = _bdf_atol( p->list.field[2] ); if ( p->glyph_enc < -1 ) p->glyph_enc = -1; @@ -1806,9 +1517,9 @@ /* Clear the flags that might be added when width and height are */ /* checked for consistency. */ - p->flags &= ~( _BDF_GLYPH_WIDTH_CHECK | _BDF_GLYPH_HEIGHT_CHECK ); + p->flags &= ~( BDF_GLYPH_WIDTH_CHECK_ | BDF_GLYPH_HEIGHT_CHECK_ ); - p->flags |= _BDF_ENCODING; + p->flags |= BDF_ENCODING_; goto Exit; } @@ -1820,16 +1531,16 @@ glyph = font->glyphs + ( font->glyphs_used - 1 ); /* Check whether a bitmap is being constructed. */ - if ( p->flags & _BDF_BITMAP ) + if ( p->flags & BDF_BITMAP_ ) { /* If there are more rows than are specified in the glyph metrics, */ /* ignore the remaining lines. */ if ( p->row >= (unsigned long)glyph->bbx.height ) { - if ( !( p->flags & _BDF_GLYPH_HEIGHT_CHECK ) ) + if ( !( p->flags & BDF_GLYPH_HEIGHT_CHECK_ ) ) { FT_TRACE2(( "_bdf_parse_glyphs: " ACMSG13, glyph->encoding )); - p->flags |= _BDF_GLYPH_HEIGHT_CHECK; + p->flags |= BDF_GLYPH_HEIGHT_CHECK_; font->modified = 1; } @@ -1854,10 +1565,10 @@ /* If any line has not enough columns, */ /* indicate they have been padded with zero bits. */ if ( i < nibbles && - !( p->flags & _BDF_GLYPH_WIDTH_CHECK ) ) + !( p->flags & BDF_GLYPH_WIDTH_CHECK_ ) ) { FT_TRACE2(( "_bdf_parse_glyphs: " ACMSG16, glyph->encoding )); - p->flags |= _BDF_GLYPH_WIDTH_CHECK; + p->flags |= BDF_GLYPH_WIDTH_CHECK_; font->modified = 1; } @@ -1869,10 +1580,10 @@ /* If any line has extra columns, indicate they have been removed. */ if ( i == nibbles && sbitset( hdigits, line[nibbles] ) && - !( p->flags & _BDF_GLYPH_WIDTH_CHECK ) ) + !( p->flags & BDF_GLYPH_WIDTH_CHECK_ ) ) { FT_TRACE2(( "_bdf_parse_glyphs: " ACMSG14, glyph->encoding )); - p->flags |= _BDF_GLYPH_WIDTH_CHECK; + p->flags |= BDF_GLYPH_WIDTH_CHECK_; font->modified = 1; } @@ -1883,15 +1594,15 @@ /* Expect the SWIDTH (scalable width) field next. */ if ( _bdf_strncmp( line, "SWIDTH", 6 ) == 0 ) { - if ( !( p->flags & _BDF_ENCODING ) ) + if ( !( p->flags & BDF_ENCODING_ ) ) goto Missing_Encoding; error = _bdf_list_split( &p->list, (char *)" +", line, linelen ); if ( error ) goto Exit; - glyph->swidth = (unsigned short)_bdf_atoul( p->list.field[1], 0, 10 ); - p->flags |= _BDF_SWIDTH; + glyph->swidth = (unsigned short)_bdf_atoul( p->list.field[1] ); + p->flags |= BDF_SWIDTH_; goto Exit; } @@ -1899,16 +1610,16 @@ /* Expect the DWIDTH (scalable width) field next. */ if ( _bdf_strncmp( line, "DWIDTH", 6 ) == 0 ) { - if ( !( p->flags & _BDF_ENCODING ) ) + if ( !( p->flags & BDF_ENCODING_ ) ) goto Missing_Encoding; error = _bdf_list_split( &p->list, (char *)" +", line, linelen ); if ( error ) goto Exit; - glyph->dwidth = (unsigned short)_bdf_atoul( p->list.field[1], 0, 10 ); + glyph->dwidth = (unsigned short)_bdf_atoul( p->list.field[1] ); - if ( !( p->flags & _BDF_SWIDTH ) ) + if ( !( p->flags & BDF_SWIDTH_ ) ) { /* Missing SWIDTH field. Emit an auto correction message and set */ /* the scalable width from the device width. */ @@ -1920,24 +1631,24 @@ font->resolution_x ) ); } - p->flags |= _BDF_DWIDTH; + p->flags |= BDF_DWIDTH_; goto Exit; } /* Expect the BBX field next. */ if ( _bdf_strncmp( line, "BBX", 3 ) == 0 ) { - if ( !( p->flags & _BDF_ENCODING ) ) + if ( !( p->flags & BDF_ENCODING_ ) ) goto Missing_Encoding; error = _bdf_list_split( &p->list, (char *)" +", line, linelen ); if ( error ) goto Exit; - glyph->bbx.width = _bdf_atous( p->list.field[1], 0, 10 ); - glyph->bbx.height = _bdf_atous( p->list.field[2], 0, 10 ); - glyph->bbx.x_offset = _bdf_atos( p->list.field[3], 0, 10 ); - glyph->bbx.y_offset = _bdf_atos( p->list.field[4], 0, 10 ); + glyph->bbx.width = _bdf_atous( p->list.field[1] ); + glyph->bbx.height = _bdf_atous( p->list.field[2] ); + glyph->bbx.x_offset = _bdf_atos( p->list.field[3] ); + glyph->bbx.y_offset = _bdf_atos( p->list.field[4] ); /* Generate the ascent and descent of the character. */ glyph->bbx.ascent = (short)( glyph->bbx.height + glyph->bbx.y_offset ); @@ -1954,7 +1665,7 @@ p->minlb = (short)FT_MIN( glyph->bbx.x_offset, p->minlb ); p->maxlb = (short)FT_MAX( glyph->bbx.x_offset, p->maxlb ); - if ( !( p->flags & _BDF_DWIDTH ) ) + if ( !( p->flags & BDF_DWIDTH_ ) ) { /* Missing DWIDTH field. Emit an auto correction message and set */ /* the device width to the glyph width. */ @@ -1983,12 +1694,12 @@ else _bdf_set_glyph_modified( font->nmod, glyph->encoding ); - p->flags |= _BDF_SWIDTH_ADJ; + p->flags |= BDF_SWIDTH_ADJ_; font->modified = 1; } } - p->flags |= _BDF_BBX; + p->flags |= BDF_BBX_; goto Exit; } @@ -1998,7 +1709,7 @@ unsigned long bitmap_size; - if ( !( p->flags & _BDF_BBX ) ) + if ( !( p->flags & BDF_BBX_ ) ) { /* Missing BBX field. */ FT_ERROR(( "_bdf_parse_glyphs: " ERRMSG1, lineno, "BBX" )); @@ -2023,7 +1734,7 @@ goto Exit; p->row = 0; - p->flags |= _BDF_BITMAP; + p->flags |= BDF_BITMAP_; goto Exit; } @@ -2038,7 +1749,7 @@ error = FT_THROW( Missing_Encoding_Field ); Exit: - if ( error && ( p->flags & _BDF_GLYPH ) ) + if ( error && ( p->flags & BDF_GLYPH_ ) ) FT_FREE( p->glyph_name ); return error; @@ -2102,7 +1813,7 @@ p->font->modified = 1; } - p->flags &= ~_BDF_PROPS; + p->flags &= ~BDF_PROPS_; *next = _bdf_parse_glyphs; goto Exit; @@ -2200,7 +1911,7 @@ goto Exit; } - if ( !( p->flags & _BDF_START ) ) + if ( !( p->flags & BDF_START_ ) ) { memory = p->memory; @@ -2212,7 +1923,7 @@ goto Exit; } - p->flags = _BDF_START; + p->flags = BDF_START_; font = p->font = 0; if ( FT_NEW( font ) ) @@ -2227,22 +1938,22 @@ bdf_property_t* prop; - error = hash_init( &(font->proptbl), memory ); + error = ft_hash_str_init( &(font->proptbl), memory ); if ( error ) goto Exit; for ( i = 0, prop = (bdf_property_t*)_bdf_properties; i < _num_bdf_properties; i++, prop++ ) { - error = hash_insert( prop->name, i, - &(font->proptbl), memory ); + error = ft_hash_str_insert( prop->name, i, + &(font->proptbl), memory ); if ( error ) goto Exit; } } - if ( FT_ALLOC( p->font->internal, sizeof ( hashtable ) ) ) + if ( FT_ALLOC( p->font->internal, sizeof ( FT_HashRec ) ) ) goto Exit; - error = hash_init( (hashtable *)p->font->internal,memory ); + error = ft_hash_str_init( (FT_Hash)p->font->internal, memory ); if ( error ) goto Exit; p->font->spacing = p->opts->font_spacing; @@ -2254,7 +1965,7 @@ /* Check for the start of the properties. */ if ( _bdf_strncmp( line, "STARTPROPERTIES", 15 ) == 0 ) { - if ( !( p->flags & _BDF_FONT_BBX ) ) + if ( !( p->flags & BDF_FONT_BBX_ ) ) { /* Missing the FONTBOUNDINGBOX field. */ FT_ERROR(( "_bdf_parse_start: " ERRMSG1, lineno, "FONTBOUNDINGBOX" )); @@ -2266,7 +1977,7 @@ if ( error ) goto Exit; /* at this point, `p->font' can't be NULL */ - p->cnt = p->font->props_size = _bdf_atoul( p->list.field[1], 0, 10 ); + p->cnt = p->font->props_size = _bdf_atoul( p->list.field[1] ); if ( FT_NEW_ARRAY( p->font->props, p->cnt ) ) { @@ -2274,7 +1985,7 @@ goto Exit; } - p->flags |= _BDF_PROPS; + p->flags |= BDF_PROPS_; *next = _bdf_parse_properties; goto Exit; @@ -2283,7 +1994,7 @@ /* Check for the FONTBOUNDINGBOX field. */ if ( _bdf_strncmp( line, "FONTBOUNDINGBOX", 15 ) == 0 ) { - if ( !( p->flags & _BDF_SIZE ) ) + if ( !( p->flags & BDF_SIZE_ ) ) { /* Missing the SIZE field. */ FT_ERROR(( "_bdf_parse_start: " ERRMSG1, lineno, "SIZE" )); @@ -2295,18 +2006,18 @@ if ( error ) goto Exit; - p->font->bbx.width = _bdf_atous( p->list.field[1], 0, 10 ); - p->font->bbx.height = _bdf_atous( p->list.field[2], 0, 10 ); + p->font->bbx.width = _bdf_atous( p->list.field[1] ); + p->font->bbx.height = _bdf_atous( p->list.field[2] ); - p->font->bbx.x_offset = _bdf_atos( p->list.field[3], 0, 10 ); - p->font->bbx.y_offset = _bdf_atos( p->list.field[4], 0, 10 ); + p->font->bbx.x_offset = _bdf_atos( p->list.field[3] ); + p->font->bbx.y_offset = _bdf_atos( p->list.field[4] ); p->font->bbx.ascent = (short)( p->font->bbx.height + p->font->bbx.y_offset ); p->font->bbx.descent = (short)( -p->font->bbx.y_offset ); - p->flags |= _BDF_FONT_BBX; + p->flags |= BDF_FONT_BBX_; goto Exit; } @@ -2341,7 +2052,7 @@ if ( error ) goto Exit; - p->flags |= _BDF_FONT_NAME; + p->flags |= BDF_FONT_NAME_; goto Exit; } @@ -2349,7 +2060,7 @@ /* Check for the SIZE field. */ if ( _bdf_strncmp( line, "SIZE", 4 ) == 0 ) { - if ( !( p->flags & _BDF_FONT_NAME ) ) + if ( !( p->flags & BDF_FONT_NAME_ ) ) { /* Missing the FONT field. */ FT_ERROR(( "_bdf_parse_start: " ERRMSG1, lineno, "FONT" )); @@ -2361,9 +2072,9 @@ if ( error ) goto Exit; - p->font->point_size = _bdf_atoul( p->list.field[1], 0, 10 ); - p->font->resolution_x = _bdf_atoul( p->list.field[2], 0, 10 ); - p->font->resolution_y = _bdf_atoul( p->list.field[3], 0, 10 ); + p->font->point_size = _bdf_atoul( p->list.field[1] ); + p->font->resolution_x = _bdf_atoul( p->list.field[2] ); + p->font->resolution_y = _bdf_atoul( p->list.field[3] ); /* Check for the bits per pixel field. */ if ( p->list.used == 5 ) @@ -2371,7 +2082,7 @@ unsigned short bpp; - bpp = (unsigned short)_bdf_atos( p->list.field[4], 0, 10 ); + bpp = (unsigned short)_bdf_atos( p->list.field[4] ); /* Only values 1, 2, 4, 8 are allowed for greymap fonts. */ if ( bpp > 4 ) @@ -2389,7 +2100,7 @@ else p->font->bpp = 1; - p->flags |= _BDF_SIZE; + p->flags |= BDF_SIZE_; goto Exit; } @@ -2400,7 +2111,7 @@ char nbuf[128]; - if ( !( p->flags & _BDF_FONT_BBX ) ) + if ( !( p->flags & BDF_FONT_BBX_ ) ) { /* Missing the FONTBOUNDINGBOX field. */ FT_ERROR(( "_bdf_parse_start: " ERRMSG1, lineno, "FONTBOUNDINGBOX" )); @@ -2541,15 +2252,15 @@ p->font->bbx.height = (unsigned short)( p->maxas + p->maxds ); } - if ( p->flags & _BDF_SWIDTH_ADJ ) + if ( p->flags & BDF_SWIDTH_ADJ_ ) FT_TRACE2(( "bdf_load_font: " ACMSG8 )); } } - if ( p->flags & _BDF_START ) + if ( p->flags & BDF_START_ ) { /* The ENDFONT field was never reached or did not exist. */ - if ( !( p->flags & _BDF_GLYPHS ) ) + if ( !( p->flags & BDF_GLYPHS_ ) ) { /* Error happened while parsing header. */ FT_ERROR(( "bdf_load_font: " ERRMSG2, lineno )); @@ -2628,7 +2339,7 @@ /* Free up the internal hash table of property names. */ if ( font->internal ) { - hash_free( (hashtable *)font->internal, memory ); + ft_hash_str_free( (FT_Hash)font->internal, memory ); FT_FREE( font->internal ); } @@ -2673,7 +2384,7 @@ FT_FREE( font->overflow.glyphs ); /* bdf_cleanup */ - hash_free( &(font->proptbl), memory ); + ft_hash_str_free( &(font->proptbl), memory ); /* Free up the user defined properties. */ for ( prop = font->user_props, i = 0; @@ -2694,15 +2405,15 @@ bdf_get_font_property( bdf_font_t* font, const char* name ) { - hashnode hn; + size_t* propid; if ( font == 0 || font->props_size == 0 || name == 0 || *name == 0 ) return 0; - hn = hash_lookup( name, (hashtable *)font->internal ); + propid = ft_hash_str_lookup( name, (FT_Hash)font->internal ); - return hn ? ( font->props + hn->data ) : 0; + return propid ? ( font->props + *propid ) : 0; } diff --git a/reactos/lib/3rdparty/freetype/src/bzip2/ftbzip2.c b/reactos/lib/3rdparty/freetype/src/bzip2/ftbzip2.c index cf947337628..4577a8329bb 100644 --- a/reactos/lib/3rdparty/freetype/src/bzip2/ftbzip2.c +++ b/reactos/lib/3rdparty/freetype/src/bzip2/ftbzip2.c @@ -8,7 +8,7 @@ /* parse compressed PCF fonts, as found with many X11 server */ /* distributions. */ /* */ -/* Copyright 2010-2015 by */ +/* Copyright 2010-2016 by */ /* Joel Klinghed. */ /* */ /* based on `src/gzip/ftgzip.c' */ @@ -32,7 +32,7 @@ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX Bzip2_Err_ diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcache.c b/reactos/lib/3rdparty/freetype/src/cache/ftcache.c index 8de527acab8..50941df4c42 100644 --- a/reactos/lib/3rdparty/freetype/src/cache/ftcache.c +++ b/reactos/lib/3rdparty/freetype/src/cache/ftcache.c @@ -4,7 +4,7 @@ /* */ /* The FreeType Caching sub-system (body only). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcbasic.c b/reactos/lib/3rdparty/freetype/src/cache/ftcbasic.c index ac3290cef40..8e6de8c41ca 100644 --- a/reactos/lib/3rdparty/freetype/src/cache/ftcbasic.c +++ b/reactos/lib/3rdparty/freetype/src/cache/ftcbasic.c @@ -4,7 +4,7 @@ /* */ /* The FreeType basic cache interface (body). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftccache.c b/reactos/lib/3rdparty/freetype/src/cache/ftccache.c index b82a7890277..3b1a4bc7e44 100644 --- a/reactos/lib/3rdparty/freetype/src/cache/ftccache.c +++ b/reactos/lib/3rdparty/freetype/src/cache/ftccache.c @@ -4,7 +4,7 @@ /* */ /* The FreeType internal cache interface (body). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -85,7 +85,7 @@ /* get a top bucket for specified hash from cache, - * body for FTC_NODE__TOP_FOR_HASH( cache, hash ) + * body for FTC_NODE_TOP_FOR_HASH( cache, hash ) */ FT_LOCAL_DEF( FTC_Node* ) ftc_get_top_node_for_hash( FTC_Cache cache, @@ -224,7 +224,7 @@ ftc_node_hash_unlink( FTC_Node node0, FTC_Cache cache ) { - FTC_Node *pnode = FTC_NODE__TOP_FOR_HASH( cache, node0->hash ); + FTC_Node *pnode = FTC_NODE_TOP_FOR_HASH( cache, node0->hash ); for (;;) @@ -257,7 +257,7 @@ ftc_node_hash_link( FTC_Node node, FTC_Cache cache ) { - FTC_Node *pnode = FTC_NODE__TOP_FOR_HASH( cache, node->hash ); + FTC_Node *pnode = FTC_NODE_TOP_FOR_HASH( cache, node->hash ); node->link = *pnode; @@ -498,7 +498,7 @@ return FT_THROW( Invalid_Argument ); /* Go to the `top' node of the list sharing same masked hash */ - bucket = pnode = FTC_NODE__TOP_FOR_HASH( cache, hash ); + bucket = pnode = FTC_NODE_TOP_FOR_HASH( cache, hash ); /* Lookup a node with exactly same hash and queried properties. */ /* NOTE: _nodcomp() may change the linked list to reduce memory. */ @@ -518,7 +518,7 @@ if ( list_changed ) { /* Update bucket by modified linked list */ - bucket = pnode = FTC_NODE__TOP_FOR_HASH( cache, hash ); + bucket = pnode = FTC_NODE_TOP_FOR_HASH( cache, hash ); /* Update pnode by modified linked list */ while ( *pnode != node ) diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftccache.h b/reactos/lib/3rdparty/freetype/src/cache/ftccache.h index 4e17c7afef4..efe830d3272 100644 --- a/reactos/lib/3rdparty/freetype/src/cache/ftccache.h +++ b/reactos/lib/3rdparty/freetype/src/cache/ftccache.h @@ -4,7 +4,7 @@ /* */ /* FreeType internal cache interface (specification). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,16 +16,16 @@ /***************************************************************************/ -#ifndef __FTCCACHE_H__ -#define __FTCCACHE_H__ +#ifndef FTCCACHE_H_ +#define FTCCACHE_H_ #include "ftcmru.h" FT_BEGIN_HEADER -#define _FTC_FACE_ID_HASH( i ) \ - ( ( (FT_Offset)(i) >> 3 ) ^ ( (FT_Offset)(i) << 7 ) ) +#define FTC_FACE_ID_HASH( i ) \ + ( ( (FT_Offset)(i) >> 3 ) ^ ( (FT_Offset)(i) << 7 ) ) /* handle to cache object */ typedef struct FTC_CacheRec_* FTC_Cache; @@ -69,11 +69,11 @@ FT_BEGIN_HEADER #define FTC_NODE( x ) ( (FTC_Node)(x) ) #define FTC_NODE_P( x ) ( (FTC_Node*)(x) ) -#define FTC_NODE__NEXT( x ) FTC_NODE( (x)->mru.next ) -#define FTC_NODE__PREV( x ) FTC_NODE( (x)->mru.prev ) +#define FTC_NODE_NEXT( x ) FTC_NODE( (x)->mru.next ) +#define FTC_NODE_PREV( x ) FTC_NODE( (x)->mru.prev ) #ifdef FTC_INLINE -#define FTC_NODE__TOP_FOR_HASH( cache, hash ) \ +#define FTC_NODE_TOP_FOR_HASH( cache, hash ) \ ( ( cache )->buckets + \ ( ( ( ( hash ) & ( cache )->mask ) < ( cache )->p ) \ ? ( ( hash ) & ( ( cache )->mask * 2 + 1 ) ) \ @@ -82,7 +82,7 @@ FT_BEGIN_HEADER FT_LOCAL( FTC_Node* ) ftc_get_top_node_for_hash( FTC_Cache cache, FT_Offset hash ); -#define FTC_NODE__TOP_FOR_HASH( cache, hash ) \ +#define FTC_NODE_TOP_FOR_HASH( cache, hash ) \ ftc_get_top_node_for_hash( ( cache ), ( hash ) ) #endif @@ -220,7 +220,7 @@ FT_BEGIN_HEADER node = NULL; \ \ /* Go to the `top' node of the list sharing same masked hash */ \ - _bucket = _pnode = FTC_NODE__TOP_FOR_HASH( _cache, _hash ); \ + _bucket = _pnode = FTC_NODE_TOP_FOR_HASH( _cache, _hash ); \ \ /* Look up a node with identical hash and queried properties. */ \ /* NOTE: _nodcomp() may change the linked list to reduce memory. */ \ @@ -228,7 +228,7 @@ FT_BEGIN_HEADER { \ _node = *_pnode; \ if ( _node == NULL ) \ - goto _NewNode; \ + goto NewNode_; \ \ if ( _node->hash == _hash && \ _nodcomp( _node, query, _cache, &_list_changed ) ) \ @@ -240,7 +240,7 @@ FT_BEGIN_HEADER if ( _list_changed ) \ { \ /* Update _bucket by possibly modified linked list */ \ - _bucket = _pnode = FTC_NODE__TOP_FOR_HASH( _cache, _hash ); \ + _bucket = _pnode = FTC_NODE_TOP_FOR_HASH( _cache, _hash ); \ \ /* Update _pnode by possibly modified linked list */ \ while ( *_pnode != _node ) \ @@ -248,7 +248,7 @@ FT_BEGIN_HEADER if ( *_pnode == NULL ) \ { \ FT_ERROR(( "FTC_CACHE_LOOKUP_CMP: oops!!! node missing\n" )); \ - goto _NewNode; \ + goto NewNode_; \ } \ else \ _pnode = &((*_pnode)->link); \ @@ -273,12 +273,12 @@ FT_BEGIN_HEADER FTC_MruNode_Up( (FTC_MruNode*)_nl, \ (FTC_MruNode)_node ); \ } \ - goto _Ok; \ + goto Ok_; \ \ - _NewNode: \ + NewNode_: \ error = FTC_Cache_NewNode( _cache, _hash, query, &_node ); \ \ - _Ok: \ + Ok_: \ node = _node; \ FT_END_STMNT @@ -346,7 +346,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTCCACHE_H__ */ +#endif /* FTCCACHE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftccback.h b/reactos/lib/3rdparty/freetype/src/cache/ftccback.h index b3237d5a3fe..279e94d923f 100644 --- a/reactos/lib/3rdparty/freetype/src/cache/ftccback.h +++ b/reactos/lib/3rdparty/freetype/src/cache/ftccback.h @@ -4,7 +4,7 @@ /* */ /* Callback functions of the caching sub-system (specification only). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -15,8 +15,8 @@ /* */ /***************************************************************************/ -#ifndef __FTCCBACK_H__ -#define __FTCCBACK_H__ +#ifndef FTCCBACK_H_ +#define FTCCBACK_H_ #include #include FT_CACHE_H @@ -86,6 +86,7 @@ FTC_Manager manager ); -#endif /* __FTCCBACK_H__ */ +#endif /* FTCCBACK_H_ */ + /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftccmap.c b/reactos/lib/3rdparty/freetype/src/cache/ftccmap.c index b8262220c44..52fb3c79f45 100644 --- a/reactos/lib/3rdparty/freetype/src/cache/ftccmap.c +++ b/reactos/lib/3rdparty/freetype/src/cache/ftccmap.c @@ -4,7 +4,7 @@ /* */ /* FreeType CharMap cache (body) */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -50,7 +50,7 @@ /* compute a query/node hash */ #define FTC_CMAP_HASH( faceid, index, charcode ) \ - ( _FTC_FACE_ID_HASH( faceid ) + 211 * (index) + \ + ( FTC_FACE_ID_HASH( faceid ) + 211 * (index) + \ ( (charcode) / FTC_CMAP_INDICES_MAX ) ) /* the charmap query */ diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcerror.h b/reactos/lib/3rdparty/freetype/src/cache/ftcerror.h index 15adec58dec..1fd7357a8b0 100644 --- a/reactos/lib/3rdparty/freetype/src/cache/ftcerror.h +++ b/reactos/lib/3rdparty/freetype/src/cache/ftcerror.h @@ -4,7 +4,7 @@ /* */ /* Caching sub-system error codes (specification only). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -23,12 +23,12 @@ /* */ /*************************************************************************/ -#ifndef __FTCERROR_H__ -#define __FTCERROR_H__ +#ifndef FTCERROR_H_ +#define FTCERROR_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX FTC_Err_ @@ -36,6 +36,7 @@ #include FT_ERRORS_H -#endif /* __FTCERROR_H__ */ +#endif /* FTCERROR_H_ */ + /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcglyph.c b/reactos/lib/3rdparty/freetype/src/cache/ftcglyph.c index 343b8a77931..c4046812ddc 100644 --- a/reactos/lib/3rdparty/freetype/src/cache/ftcglyph.c +++ b/reactos/lib/3rdparty/freetype/src/cache/ftcglyph.c @@ -4,7 +4,7 @@ /* */ /* FreeType Glyph Image (FT_Glyph) cache (body). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -106,7 +106,7 @@ FTC_Family_Init( FTC_Family family, FTC_Cache cache ) { - FTC_GCacheClass clazz = FTC_CACHE__GCACHE_CLASS( cache ); + FTC_GCacheClass clazz = FTC_CACHE_GCACHE_CLASS( cache ); family->clazz = clazz->family_class; diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcglyph.h b/reactos/lib/3rdparty/freetype/src/cache/ftcglyph.h index 6cadbe2c109..dc7be06f03a 100644 --- a/reactos/lib/3rdparty/freetype/src/cache/ftcglyph.h +++ b/reactos/lib/3rdparty/freetype/src/cache/ftcglyph.h @@ -4,7 +4,7 @@ /* */ /* FreeType abstract glyph cache (specification). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -113,8 +113,8 @@ /*************************************************************************/ -#ifndef __FTCGLYPH_H__ -#define __FTCGLYPH_H__ +#ifndef FTCGLYPH_H_ +#define FTCGLYPH_H_ #include @@ -245,10 +245,10 @@ FT_BEGIN_HEADER #define FTC_GCACHE_CLASS( x ) ((FTC_GCacheClass)(x)) -#define FTC_CACHE__GCACHE_CLASS( x ) \ +#define FTC_CACHE_GCACHE_CLASS( x ) \ FTC_GCACHE_CLASS( FTC_CACHE(x)->org_class ) -#define FTC_CACHE__FAMILY_CLASS( x ) \ - ( (FTC_MruListClass)FTC_CACHE__GCACHE_CLASS( x )->family_class ) +#define FTC_CACHE_FAMILY_CLASS( x ) \ + ( (FTC_MruListClass)FTC_CACHE_GCACHE_CLASS( x )->family_class ) /* convenience function; use it instead of FTC_Manager_Register_Cache */ @@ -323,7 +323,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTCGLYPH_H__ */ +#endif /* FTCGLYPH_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcimage.c b/reactos/lib/3rdparty/freetype/src/cache/ftcimage.c index f519a6179cd..74040aa7458 100644 --- a/reactos/lib/3rdparty/freetype/src/cache/ftcimage.c +++ b/reactos/lib/3rdparty/freetype/src/cache/ftcimage.c @@ -4,7 +4,7 @@ /* */ /* FreeType Image cache (body). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -70,7 +70,7 @@ FTC_GNode gnode = FTC_GNODE( inode ); FTC_Family family = gquery->family; FT_UInt gindex = gquery->gindex; - FTC_IFamilyClass clazz = FTC_CACHE__IFAMILY_CLASS( cache ); + FTC_IFamilyClass clazz = FTC_CACHE_IFAMILY_CLASS( cache ); /* initialize its inner fields */ diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcimage.h b/reactos/lib/3rdparty/freetype/src/cache/ftcimage.h index b312eaa3d92..25aa43b97e3 100644 --- a/reactos/lib/3rdparty/freetype/src/cache/ftcimage.h +++ b/reactos/lib/3rdparty/freetype/src/cache/ftcimage.h @@ -4,7 +4,7 @@ /* */ /* FreeType Generic Image cache (specification) */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -32,8 +32,8 @@ /*************************************************************************/ -#ifndef __FTCIMAGE_H__ -#define __FTCIMAGE_H__ +#ifndef FTCIMAGE_H_ +#define FTCIMAGE_H_ #include @@ -72,8 +72,8 @@ FT_BEGIN_HEADER #define FTC_IFAMILY_CLASS( x ) ((FTC_IFamilyClass)(x)) -#define FTC_CACHE__IFAMILY_CLASS( x ) \ - FTC_IFAMILY_CLASS( FTC_CACHE__GCACHE_CLASS(x)->family_class ) +#define FTC_CACHE_IFAMILY_CLASS( x ) \ + FTC_IFAMILY_CLASS( FTC_CACHE_GCACHE_CLASS(x)->family_class ) /* can be used as a @FTC_Node_FreeFunc */ @@ -101,7 +101,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTCIMAGE_H__ */ +#endif /* FTCIMAGE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcmanag.c b/reactos/lib/3rdparty/freetype/src/cache/ftcmanag.c index 658614c8db8..1f44d80ca3a 100644 --- a/reactos/lib/3rdparty/freetype/src/cache/ftcmanag.c +++ b/reactos/lib/3rdparty/freetype/src/cache/ftcmanag.c @@ -4,7 +4,7 @@ /* */ /* FreeType Cache Manager (body). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -494,7 +494,7 @@ else weight += cache->clazz.node_weight( node, cache ); - node = FTC_NODE__NEXT( node ); + node = FTC_NODE_NEXT( node ); } while ( node != first ); @@ -513,7 +513,7 @@ do { count++; - node = FTC_NODE__NEXT( node ); + node = FTC_NODE_NEXT( node ); } while ( node != first ); @@ -556,13 +556,13 @@ return; /* go to last node -- it's a circular list */ - node = FTC_NODE__PREV( first ); + node = FTC_NODE_PREV( first ); do { FTC_Node prev; - prev = ( node == first ) ? NULL : FTC_NODE__PREV( node ); + prev = ( node == first ) ? NULL : FTC_NODE_PREV( node ); if ( node->ref_count <= 0 ) ftc_node_destroy( node, manager ); @@ -641,10 +641,10 @@ return 0; /* go to last node - it's a circular list */ - node = FTC_NODE__PREV(first); + node = FTC_NODE_PREV(first); for ( result = 0; result < count; ) { - FTC_Node prev = FTC_NODE__PREV( node ); + FTC_Node prev = FTC_NODE_PREV( node ); /* don't touch locked nodes */ diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcmanag.h b/reactos/lib/3rdparty/freetype/src/cache/ftcmanag.h index c6787b72c51..f2c434a1350 100644 --- a/reactos/lib/3rdparty/freetype/src/cache/ftcmanag.h +++ b/reactos/lib/3rdparty/freetype/src/cache/ftcmanag.h @@ -4,7 +4,7 @@ /* */ /* FreeType Cache Manager (specification). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -59,8 +59,8 @@ /*************************************************************************/ -#ifndef __FTCMANAG_H__ -#define __FTCMANAG_H__ +#ifndef FTCMANAG_H_ +#define FTCMANAG_H_ #include @@ -161,7 +161,7 @@ FT_BEGIN_HEADER (a)->y_res == (b)->y_res ) ) ) #define FTC_SCALER_HASH( q ) \ - ( _FTC_FACE_ID_HASH( (q)->face_id ) + \ + ( FTC_FACE_ID_HASH( (q)->face_id ) + \ (q)->width + (q)->height*7 + \ ( (q)->pixel ? 0 : ( (q)->x_res*33 ^ (q)->y_res*61 ) ) ) @@ -169,7 +169,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTCMANAG_H__ */ +#endif /* FTCMANAG_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcmru.c b/reactos/lib/3rdparty/freetype/src/cache/ftcmru.c index 10ce4f301e0..d107584a194 100644 --- a/reactos/lib/3rdparty/freetype/src/cache/ftcmru.c +++ b/reactos/lib/3rdparty/freetype/src/cache/ftcmru.c @@ -4,7 +4,7 @@ /* */ /* FreeType MRU support (body). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcmru.h b/reactos/lib/3rdparty/freetype/src/cache/ftcmru.h index c0c35f934b1..ea78a32a5f7 100644 --- a/reactos/lib/3rdparty/freetype/src/cache/ftcmru.h +++ b/reactos/lib/3rdparty/freetype/src/cache/ftcmru.h @@ -4,7 +4,7 @@ /* */ /* Simple MRU list-cache (specification). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -40,8 +40,8 @@ /*************************************************************************/ -#ifndef __FTCMRU_H__ -#define __FTCMRU_H__ +#ifndef FTCMRU_H_ +#define FTCMRU_H_ #include @@ -181,7 +181,7 @@ FT_BEGIN_HEADER FTC_MruNode_Up( _pfirst, _node ); \ \ node = _node; \ - goto _MruOk; \ + goto MruOk_; \ } \ _node = _node->next; \ \ @@ -189,7 +189,7 @@ FT_BEGIN_HEADER } \ \ error = FTC_MruList_New( (list), (key), (FTC_MruNode*)(void*)&(node) ); \ - _MruOk: \ + MruOk_: \ ; \ FT_END_STMNT @@ -240,7 +240,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTCMRU_H__ */ +#endif /* FTCMRU_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcsbits.c b/reactos/lib/3rdparty/freetype/src/cache/ftcsbits.c index 81417191672..d6f1ddcd4ee 100644 --- a/reactos/lib/3rdparty/freetype/src/cache/ftcsbits.c +++ b/reactos/lib/3rdparty/freetype/src/cache/ftcsbits.c @@ -4,7 +4,7 @@ /* */ /* FreeType sbits manager (body). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -53,6 +53,8 @@ pitch = -pitch; size = (FT_ULong)pitch * bitmap->rows; + if ( !size ) + return FT_Err_Ok; if ( !FT_ALLOC( sbit->buffer, size ) ) FT_MEM_COPY( sbit->buffer, bitmap->buffer, size ); @@ -215,7 +217,7 @@ FT_UInt gindex = gquery->gindex; FTC_Family family = gquery->family; - FTC_SFamilyClass clazz = FTC_CACHE__SFAMILY_CLASS( cache ); + FTC_SFamilyClass clazz = FTC_CACHE_SFAMILY_CLASS( cache ); FT_UInt total; FT_UInt node_count; diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcsbits.h b/reactos/lib/3rdparty/freetype/src/cache/ftcsbits.h index 5a2fa1ac808..a0600ede094 100644 --- a/reactos/lib/3rdparty/freetype/src/cache/ftcsbits.h +++ b/reactos/lib/3rdparty/freetype/src/cache/ftcsbits.h @@ -4,7 +4,7 @@ /* */ /* A small-bitmap cache (specification). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTCSBITS_H__ -#define __FTCSBITS_H__ +#ifndef FTCSBITS_H_ +#define FTCSBITS_H_ #include @@ -64,8 +64,8 @@ FT_BEGIN_HEADER #define FTC_SFAMILY_CLASS( x ) ((FTC_SFamilyClass)(x)) -#define FTC_CACHE__SFAMILY_CLASS( x ) \ - FTC_SFAMILY_CLASS( FTC_CACHE__GCACHE_CLASS( x )->family_class ) +#define FTC_CACHE_SFAMILY_CLASS( x ) \ + FTC_SFAMILY_CLASS( FTC_CACHE_GCACHE_CLASS( x )->family_class ) FT_LOCAL( void ) @@ -97,7 +97,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTCSBITS_H__ */ +#endif /* FTCSBITS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cf2arrst.h b/reactos/lib/3rdparty/freetype/src/cff/cf2arrst.h index ff5ad8b1268..3c21a3b6727 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cf2arrst.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cf2arrst.h @@ -36,8 +36,8 @@ /***************************************************************************/ -#ifndef __CF2ARRST_H__ -#define __CF2ARRST_H__ +#ifndef CF2ARRST_H_ +#define CF2ARRST_H_ #include "cf2error.h" @@ -94,7 +94,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CF2ARRST_H__ */ +#endif /* CF2ARRST_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cf2blues.h b/reactos/lib/3rdparty/freetype/src/cff/cf2blues.h index 2f38fcad8f5..96fb60f38dc 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cf2blues.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cf2blues.h @@ -65,8 +65,8 @@ */ -#ifndef __CF2BLUES_H__ -#define __CF2BLUES_H__ +#ifndef CF2BLUES_H_ +#define CF2BLUES_H_ #include "cf2glue.h" @@ -179,7 +179,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CF2BLUES_H__ */ +#endif /* CF2BLUES_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cf2error.h b/reactos/lib/3rdparty/freetype/src/cff/cf2error.h index 6453ebcb7b8..d9f8c669f81 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cf2error.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cf2error.h @@ -36,13 +36,13 @@ /***************************************************************************/ -#ifndef __CF2ERROR_H__ -#define __CF2ERROR_H__ +#ifndef CF2ERROR_H_ +#define CF2ERROR_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX CF2_Err_ @@ -113,7 +113,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CF2ERROR_H__ */ +#endif /* CF2ERROR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cf2fixed.h b/reactos/lib/3rdparty/freetype/src/cff/cf2fixed.h index d6d9faf8e54..74af37708be 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cf2fixed.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cf2fixed.h @@ -36,8 +36,8 @@ /***************************************************************************/ -#ifndef __CF2FIXED_H__ -#define __CF2FIXED_H__ +#ifndef CF2FIXED_H_ +#define CF2FIXED_H_ FT_BEGIN_HEADER @@ -89,7 +89,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CF2FIXED_H__ */ +#endif /* CF2FIXED_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cf2font.h b/reactos/lib/3rdparty/freetype/src/cff/cf2font.h index 86cf02f49d1..bd05e69e7b1 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cf2font.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cf2font.h @@ -36,8 +36,8 @@ /***************************************************************************/ -#ifndef __CF2FONT_H__ -#define __CF2FONT_H__ +#ifndef CF2FONT_H_ +#define CF2FONT_H_ #include "cf2ft.h" @@ -54,6 +54,7 @@ FT_BEGIN_HEADER /* (Hiragino Kaku Gothic ProN W3; */ /* 8.2d6e1; 2014-12-19) that exceed */ /* this limit */ +#define CF2_STORAGE_SIZE 32 /* typedef is in `cf2glue.h' */ @@ -115,7 +116,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CF2FONT_H__ */ +#endif /* CF2FONT_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cf2ft.h b/reactos/lib/3rdparty/freetype/src/cff/cf2ft.h index 98105111b86..8e55e841a0c 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cf2ft.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cf2ft.h @@ -36,8 +36,8 @@ /***************************************************************************/ -#ifndef __CF2FT_H__ -#define __CF2FT_H__ +#ifndef CF2FT_H_ +#define CF2FT_H_ #include "cf2types.h" @@ -141,7 +141,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CF2FT_H__ */ +#endif /* CF2FT_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cf2glue.h b/reactos/lib/3rdparty/freetype/src/cff/cf2glue.h index a24da39e93c..56a7c248f4e 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cf2glue.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cf2glue.h @@ -36,8 +36,8 @@ /***************************************************************************/ -#ifndef __CF2GLUE_H__ -#define __CF2GLUE_H__ +#ifndef CF2GLUE_H_ +#define CF2GLUE_H_ /* common includes for other modules */ @@ -138,7 +138,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CF2GLUE_H__ */ +#endif /* CF2GLUE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cf2hints.h b/reactos/lib/3rdparty/freetype/src/cff/cf2hints.h index f25d91bf89f..290f57072cf 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cf2hints.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cf2hints.h @@ -36,8 +36,8 @@ /***************************************************************************/ -#ifndef __CF2HINTS_H__ -#define __CF2HINTS_H__ +#ifndef CF2HINTS_H_ +#define CF2HINTS_H_ FT_BEGIN_HEADER @@ -283,7 +283,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CF2HINTS_H__ */ +#endif /* CF2HINTS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cf2intrp.c b/reactos/lib/3rdparty/freetype/src/cff/cf2intrp.c index fe9d96d075d..10c12a2b601 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cf2intrp.c +++ b/reactos/lib/3rdparty/freetype/src/cff/cf2intrp.c @@ -293,7 +293,8 @@ /* variable accumulates delta values from operand stack */ CF2_Fixed position = hintOffset; - if ( hasWidthArg && ! *haveWidth ) + + if ( hasWidthArg && !*haveWidth ) *width = cf2_stack_getReal( opStack, 0 ) + cf2_getNominalWidthX( font->decoder ); @@ -446,6 +447,8 @@ CF2_Stack opStack = NULL; FT_Byte op1; /* first opcode byte */ + CF2_F16Dot16 storage[CF2_STORAGE_SIZE]; /* for `put' and `get' */ + /* instruction limit; 20,000,000 matches Avalon */ FT_UInt32 instructionLimit = 20000000UL; @@ -614,7 +617,7 @@ 0 ); if ( font->decoder->width_only ) - goto exit; + goto exit; break; @@ -638,7 +641,7 @@ 0 ); if ( font->decoder->width_only ) - goto exit; + goto exit; break; @@ -652,7 +655,7 @@ haveWidth = TRUE; if ( font->decoder->width_only ) - goto exit; + goto exit; curY += cf2_stack_popFixed( opStack ); @@ -839,84 +842,189 @@ break; - /* TODO: should these operators be supported? */ - case cf2_escAND: /* in spec */ - FT_TRACE4(( " and\n" )); + case cf2_escAND: + { + CF2_F16Dot16 arg1; + CF2_F16Dot16 arg2; - CF2_FIXME; - break; - case cf2_escOR: /* in spec */ - FT_TRACE4(( " or\n" )); + FT_TRACE4(( " and\n" )); - CF2_FIXME; - break; + arg2 = cf2_stack_popFixed( opStack ); + arg1 = cf2_stack_popFixed( opStack ); - case cf2_escNOT: /* in spec */ - FT_TRACE4(( " not\n" )); + cf2_stack_pushInt( opStack, arg1 && arg2 ); + } + continue; /* do not clear the stack */ - CF2_FIXME; - break; + case cf2_escOR: + { + CF2_F16Dot16 arg1; + CF2_F16Dot16 arg2; - case cf2_escABS: /* in spec */ - FT_TRACE4(( " abs\n" )); - CF2_FIXME; - break; + FT_TRACE4(( " or\n" )); - case cf2_escADD: /* in spec */ - FT_TRACE4(( " add\n" )); + arg2 = cf2_stack_popFixed( opStack ); + arg1 = cf2_stack_popFixed( opStack ); - CF2_FIXME; - break; + cf2_stack_pushInt( opStack, arg1 || arg2 ); + } + continue; /* do not clear the stack */ - case cf2_escSUB: /* in spec */ - FT_TRACE4(( " sub\n" )); + case cf2_escNOT: + { + CF2_F16Dot16 arg; - CF2_FIXME; - break; - case cf2_escDIV: /* in spec */ - FT_TRACE4(( " div\n" )); + FT_TRACE4(( " not\n" )); - CF2_FIXME; - break; + arg = cf2_stack_popFixed( opStack ); - case cf2_escNEG: /* in spec */ - FT_TRACE4(( " neg\n" )); + cf2_stack_pushInt( opStack, !arg ); + } + continue; /* do not clear the stack */ - CF2_FIXME; - break; + case cf2_escABS: + { + CF2_F16Dot16 arg; - case cf2_escEQ: /* in spec */ - FT_TRACE4(( " eq\n" )); - CF2_FIXME; - break; + FT_TRACE4(( " abs\n" )); + + arg = cf2_stack_popFixed( opStack ); + + cf2_stack_pushFixed( opStack, FT_ABS( arg ) ); + } + continue; /* do not clear the stack */ + + case cf2_escADD: + { + CF2_F16Dot16 summand1; + CF2_F16Dot16 summand2; + + + FT_TRACE4(( " add\n" )); + + summand2 = cf2_stack_popFixed( opStack ); + summand1 = cf2_stack_popFixed( opStack ); - case cf2_escDROP: /* in spec */ + cf2_stack_pushFixed( opStack, summand1 + summand2 ); + } + continue; /* do not clear the stack */ + + case cf2_escSUB: + { + CF2_F16Dot16 minuend; + CF2_F16Dot16 subtrahend; + + + FT_TRACE4(( " sub\n" )); + + subtrahend = cf2_stack_popFixed( opStack ); + minuend = cf2_stack_popFixed( opStack ); + + cf2_stack_pushFixed( opStack, minuend - subtrahend ); + } + continue; /* do not clear the stack */ + + case cf2_escDIV: + { + CF2_F16Dot16 dividend; + CF2_F16Dot16 divisor; + + + FT_TRACE4(( " div\n" )); + + divisor = cf2_stack_popFixed( opStack ); + dividend = cf2_stack_popFixed( opStack ); + + cf2_stack_pushFixed( opStack, FT_DivFix( dividend, divisor ) ); + } + continue; /* do not clear the stack */ + + case cf2_escNEG: + { + CF2_F16Dot16 arg; + + + FT_TRACE4(( " neg\n" )); + + arg = cf2_stack_popFixed( opStack ); + + cf2_stack_pushFixed( opStack, -arg ); + } + continue; /* do not clear the stack */ + + case cf2_escEQ: + { + CF2_F16Dot16 arg1; + CF2_F16Dot16 arg2; + + + FT_TRACE4(( " eq\n" )); + + arg2 = cf2_stack_popFixed( opStack ); + arg1 = cf2_stack_popFixed( opStack ); + + cf2_stack_pushInt( opStack, arg1 == arg2 ); + } + continue; /* do not clear the stack */ + + case cf2_escDROP: FT_TRACE4(( " drop\n" )); - CF2_FIXME; - break; + (void)cf2_stack_popFixed( opStack ); + continue; /* do not clear the stack */ - case cf2_escPUT: /* in spec */ - FT_TRACE4(( " put\n" )); + case cf2_escPUT: + { + CF2_F16Dot16 val; + CF2_Int idx; - CF2_FIXME; - break; - case cf2_escGET: /* in spec */ - FT_TRACE4(( " get\n" )); + FT_TRACE4(( " put\n" )); - CF2_FIXME; - break; + idx = cf2_stack_popInt( opStack ); + val = cf2_stack_popFixed( opStack ); - case cf2_escIFELSE: /* in spec */ - FT_TRACE4(( " ifelse\n" )); + if ( idx >= 0 && idx < CF2_STORAGE_SIZE ) + storage[idx] = val; + } + continue; /* do not clear the stack */ + + case cf2_escGET: + { + CF2_Int idx; - CF2_FIXME; - break; + + FT_TRACE4(( " get\n" )); + + idx = cf2_stack_popInt( opStack ); + + if ( idx >= 0 && idx < CF2_STORAGE_SIZE ) + cf2_stack_pushFixed( opStack, storage[idx] ); + } + continue; /* do not clear the stack */ + + case cf2_escIFELSE: + { + CF2_F16Dot16 arg1; + CF2_F16Dot16 arg2; + CF2_F16Dot16 cond1; + CF2_F16Dot16 cond2; + + + FT_TRACE4(( " ifelse\n" )); + + cond2 = cf2_stack_popFixed( opStack ); + cond1 = cf2_stack_popFixed( opStack ); + arg2 = cf2_stack_popFixed( opStack ); + arg1 = cf2_stack_popFixed( opStack ); + + cf2_stack_pushFixed( opStack, cond1 <= cond2 ? arg1 : arg2 ); + } + continue; /* do not clear the stack */ case cf2_escRANDOM: /* in spec */ FT_TRACE4(( " random\n" )); @@ -924,41 +1032,126 @@ CF2_FIXME; break; - case cf2_escMUL: /* in spec */ - FT_TRACE4(( " mul\n" )); + case cf2_escMUL: + { + CF2_F16Dot16 factor1; + CF2_F16Dot16 factor2; - CF2_FIXME; - break; - case cf2_escSQRT: /* in spec */ - FT_TRACE4(( " sqrt\n" )); + FT_TRACE4(( " mul\n" )); - CF2_FIXME; - break; + factor2 = cf2_stack_popFixed( opStack ); + factor1 = cf2_stack_popFixed( opStack ); - case cf2_escDUP: /* in spec */ - FT_TRACE4(( " dup\n" )); + cf2_stack_pushFixed( opStack, FT_MulFix( factor1, factor2 ) ); + } + continue; /* do not clear the stack */ - CF2_FIXME; - break; + case cf2_escSQRT: + { + CF2_F16Dot16 arg; - case cf2_escEXCH: /* in spec */ - FT_TRACE4(( " exch\n" )); - CF2_FIXME; - break; + FT_TRACE4(( " sqrt\n" )); + + arg = cf2_stack_popFixed( opStack ); + if ( arg > 0 ) + { + FT_Fixed root = arg; + FT_Fixed new_root; + + + /* Babylonian method */ + for (;;) + { + new_root = ( root + FT_DivFix( arg, root ) + 1 ) >> 1; + if ( new_root == root ) + break; + root = new_root; + } + arg = new_root; + } + else + arg = 0; - case cf2_escINDEX: /* in spec */ - FT_TRACE4(( " index\n" )); + cf2_stack_pushFixed( opStack, arg ); + } + continue; /* do not clear the stack */ - CF2_FIXME; - break; + case cf2_escDUP: + { + CF2_F16Dot16 arg; - case cf2_escROLL: /* in spec */ - FT_TRACE4(( " roll\n" )); - CF2_FIXME; - break; + FT_TRACE4(( " dup\n" )); + + arg = cf2_stack_popFixed( opStack ); + + cf2_stack_pushFixed( opStack, arg ); + cf2_stack_pushFixed( opStack, arg ); + } + continue; /* do not clear the stack */ + + case cf2_escEXCH: + { + CF2_F16Dot16 arg1; + CF2_F16Dot16 arg2; + + + FT_TRACE4(( " exch\n" )); + + arg2 = cf2_stack_popFixed( opStack ); + arg1 = cf2_stack_popFixed( opStack ); + + cf2_stack_pushFixed( opStack, arg2 ); + cf2_stack_pushFixed( opStack, arg1 ); + } + continue; /* do not clear the stack */ + + case cf2_escINDEX: + { + CF2_Int idx; + CF2_UInt size; + + + FT_TRACE4(( " index\n" )); + + idx = cf2_stack_popInt( opStack ); + size = cf2_stack_count( opStack ); + + if ( size > 0 ) + { + /* for `cf2_stack_getReal', index 0 is bottom of stack */ + CF2_UInt gr_idx; + + + if ( idx < 0 ) + gr_idx = size - 1; + else if ( (CF2_UInt)idx >= size ) + gr_idx = 0; + else + gr_idx = size - 1 - (CF2_UInt)idx; + + cf2_stack_pushFixed( opStack, + cf2_stack_getReal( opStack, gr_idx ) ); + } + } + continue; /* do not clear the stack */ + + case cf2_escROLL: + { + CF2_Int idx; + CF2_Int count; + + + FT_TRACE4(( " roll\n" )); + + idx = cf2_stack_popInt( opStack ); + count = cf2_stack_popInt( opStack ); + + cf2_stack_roll( opStack, count, idx ); + } + continue; /* do not clear the stack */ case cf2_escHFLEX: { @@ -1091,7 +1284,7 @@ haveWidth = TRUE; if ( font->decoder->width_only ) - goto exit; + goto exit; /* close path if still open */ cf2_glyphpath_closeOpenPath( &glyphPath ); @@ -1123,8 +1316,8 @@ error2 = cf2_getSeacComponent( decoder, achar, &component ); if ( error2 ) { - lastError = error2; /* pass FreeType error through */ - goto exit; + lastError = error2; /* pass FreeType error through */ + goto exit; } cf2_interpT2CharString( font, &component, @@ -1178,7 +1371,7 @@ 0 ); if ( font->decoder->width_only ) - goto exit; + goto exit; if ( op1 == cf2_cmdHINTMASK ) { @@ -1246,7 +1439,7 @@ haveWidth = TRUE; if ( font->decoder->width_only ) - goto exit; + goto exit; curY += cf2_stack_popFixed( opStack ); curX += cf2_stack_popFixed( opStack ); @@ -1265,7 +1458,7 @@ haveWidth = TRUE; if ( font->decoder->width_only ) - goto exit; + goto exit; curX += cf2_stack_popFixed( opStack ); @@ -1478,9 +1671,12 @@ { CF2_Int v; + CF2_Int byte1 = cf2_buf_readByte( charstring ); + CF2_Int byte2 = cf2_buf_readByte( charstring ); - v = (FT_Short)( ( cf2_buf_readByte( charstring ) << 8 ) | - cf2_buf_readByte( charstring ) ); + + v = (FT_Short)( ( byte1 << 8 ) | + byte2 ); FT_TRACE4(( " %d", v )); @@ -1542,12 +1738,16 @@ { CF2_Fixed v; + FT_UInt32 byte1 = (FT_UInt32)cf2_buf_readByte( charstring ); + FT_UInt32 byte2 = (FT_UInt32)cf2_buf_readByte( charstring ); + FT_UInt32 byte3 = (FT_UInt32)cf2_buf_readByte( charstring ); + FT_UInt32 byte4 = (FT_UInt32)cf2_buf_readByte( charstring ); + - v = (CF2_Fixed) - ( ( (FT_UInt32)cf2_buf_readByte( charstring ) << 24 ) | - ( (FT_UInt32)cf2_buf_readByte( charstring ) << 16 ) | - ( (FT_UInt32)cf2_buf_readByte( charstring ) << 8 ) | - (FT_UInt32)cf2_buf_readByte( charstring ) ); + v = (CF2_Fixed)( ( byte1 << 24 ) | + ( byte2 << 16 ) | + ( byte3 << 8 ) | + byte4 ); FT_TRACE4(( " %.2f", v / 65536.0 )); diff --git a/reactos/lib/3rdparty/freetype/src/cff/cf2intrp.h b/reactos/lib/3rdparty/freetype/src/cff/cf2intrp.h index b5d8947838e..ec030e89444 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cf2intrp.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cf2intrp.h @@ -36,8 +36,8 @@ /***************************************************************************/ -#ifndef __CF2INTRP_H__ -#define __CF2INTRP_H__ +#ifndef CF2INTRP_H_ +#define CF2INTRP_H_ #include "cf2ft.h" @@ -77,7 +77,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CF2INTRP_H__ */ +#endif /* CF2INTRP_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cf2read.h b/reactos/lib/3rdparty/freetype/src/cff/cf2read.h index 7ef7c8c1493..b0b0db803a5 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cf2read.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cf2read.h @@ -36,8 +36,8 @@ /***************************************************************************/ -#ifndef __CF2READ_H__ -#define __CF2READ_H__ +#ifndef CF2READ_H_ +#define CF2READ_H_ FT_BEGIN_HEADER @@ -62,7 +62,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CF2READ_H__ */ +#endif /* CF2READ_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cf2stack.c b/reactos/lib/3rdparty/freetype/src/cff/cf2stack.c index 8332b5d91aa..6fafd901f33 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cf2stack.c +++ b/reactos/lib/3rdparty/freetype/src/cff/cf2stack.c @@ -145,7 +145,7 @@ /* Note: type mismatch is silently cast */ - /* TODO: check this */ + /* TODO: check this */ FT_LOCAL_DEF( CF2_Fixed ) cf2_stack_popFixed( CF2_Stack stack ) { @@ -170,7 +170,7 @@ /* Note: type mismatch is silently cast */ - /* TODO: check this */ + /* TODO: check this */ FT_LOCAL_DEF( CF2_Fixed ) cf2_stack_getReal( CF2_Stack stack, CF2_UInt idx ) @@ -195,6 +195,86 @@ } + FT_LOCAL( void ) + cf2_stack_roll( CF2_Stack stack, + CF2_Int count, + CF2_Int shift ) + { + /* we initialize this variable to avoid compiler warnings */ + CF2_StackNumber last = { { 0 }, CF2_NumberInt }; + + CF2_Int start_idx, idx, i; + + + if ( count < 2 ) + return; /* nothing to do (values 0 and 1), or undefined value */ + + if ( (CF2_UInt)count > cf2_stack_count( stack ) ) + { + CF2_SET_ERROR( stack->error, Stack_Overflow ); + return; + } + + if ( shift < 0 ) + shift = -( ( -shift ) % count ); + else + shift %= count; + + if ( shift == 0 ) + return; /* nothing to do */ + + /* We use the following algorithm to do the rolling, */ + /* which needs two temporary variables only. */ + /* */ + /* Example: */ + /* */ + /* count = 8 */ + /* shift = 2 */ + /* */ + /* stack indices before roll: 7 6 5 4 3 2 1 0 */ + /* stack indices after roll: 1 0 7 6 5 4 3 2 */ + /* */ + /* The value of index 0 gets moved to index 2, while */ + /* the old value of index 2 gets moved to index 4, */ + /* and so on. We thus have the following copying */ + /* chains for shift value 2. */ + /* */ + /* 0 -> 2 -> 4 -> 6 -> 0 */ + /* 1 -> 3 -> 5 -> 7 -> 1 */ + /* */ + /* If `count' and `shift' are incommensurable, we */ + /* have a single chain only. Otherwise, increase */ + /* the start index by 1 after the first chain, then */ + /* do the next chain until all elements in all */ + /* chains are handled. */ + + start_idx = -1; + idx = -1; + for ( i = 0; i < count; i++ ) + { + CF2_StackNumber tmp; + + + if ( start_idx == idx ) + { + start_idx++; + idx = start_idx; + last = stack->buffer[idx]; + } + + idx += shift; + if ( idx >= count ) + idx -= count; + else if ( idx < 0 ) + idx += count; + + tmp = stack->buffer[idx]; + stack->buffer[idx] = last; + last = tmp; + } + } + + FT_LOCAL_DEF( void ) cf2_stack_clear( CF2_Stack stack ) { diff --git a/reactos/lib/3rdparty/freetype/src/cff/cf2stack.h b/reactos/lib/3rdparty/freetype/src/cff/cf2stack.h index 7d6d1961fe9..e740a7ac410 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cf2stack.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cf2stack.h @@ -36,8 +36,8 @@ /***************************************************************************/ -#ifndef __CF2STACK_H__ -#define __CF2STACK_H__ +#ifndef CF2STACK_H_ +#define CF2STACK_H_ FT_BEGIN_HEADER @@ -93,6 +93,11 @@ FT_BEGIN_HEADER cf2_stack_getReal( CF2_Stack stack, CF2_UInt idx ); + FT_LOCAL( void ) + cf2_stack_roll( CF2_Stack stack, + CF2_Int count, + CF2_Int idx ); + FT_LOCAL( void ) cf2_stack_clear( CF2_Stack stack ); @@ -100,7 +105,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CF2STACK_H__ */ +#endif /* CF2STACK_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cf2types.h b/reactos/lib/3rdparty/freetype/src/cff/cf2types.h index ac6a02266e7..5b7e1239af3 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cf2types.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cf2types.h @@ -36,8 +36,8 @@ /***************************************************************************/ -#ifndef __CF2TYPES_H__ -#define __CF2TYPES_H__ +#ifndef CF2TYPES_H_ +#define CF2TYPES_H_ #include #include FT_FREETYPE_H @@ -72,7 +72,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CF2TYPES_H__ */ +#endif /* CF2TYPES_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cff.c b/reactos/lib/3rdparty/freetype/src/cff/cff.c index bb2cfb52531..86ca1be0403 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cff.c +++ b/reactos/lib/3rdparty/freetype/src/cff/cff.c @@ -4,7 +4,7 @@ /* */ /* FreeType OpenType driver component (body only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffcmap.c b/reactos/lib/3rdparty/freetype/src/cff/cffcmap.c index e7538e98405..3ef48328c59 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cffcmap.c +++ b/reactos/lib/3rdparty/freetype/src/cff/cffcmap.c @@ -4,7 +4,7 @@ /* */ /* CFF character mapping table (cmap) support (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffcmap.h b/reactos/lib/3rdparty/freetype/src/cff/cffcmap.h index 6eaed636ec0..23795d50905 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cffcmap.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cffcmap.h @@ -4,7 +4,7 @@ /* */ /* CFF character mapping table (cmap) support (specification). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __CFFCMAP_H__ -#define __CFFCMAP_H__ +#ifndef CFFCMAP_H_ +#define CFFCMAP_H_ #include "cffobjs.h" @@ -61,7 +61,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CFFCMAP_H__ */ +#endif /* CFFCMAP_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffdrivr.c b/reactos/lib/3rdparty/freetype/src/cff/cffdrivr.c index 9a06b7c8322..7a820940da0 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cffdrivr.c +++ b/reactos/lib/3rdparty/freetype/src/cff/cffdrivr.c @@ -4,7 +4,7 @@ /* */ /* OpenType font driver implementation (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffdrivr.h b/reactos/lib/3rdparty/freetype/src/cff/cffdrivr.h index 9527f5e1495..d7b05983748 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cffdrivr.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cffdrivr.h @@ -4,7 +4,7 @@ /* */ /* High-level OpenType driver interface (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __CFFDRIVER_H__ -#define __CFFDRIVER_H__ +#ifndef CFFDRIVER_H_ +#define CFFDRIVER_H_ #include @@ -32,7 +32,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CFFDRIVER_H__ */ +#endif /* CFFDRIVER_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cfferrs.h b/reactos/lib/3rdparty/freetype/src/cff/cfferrs.h index 543bdb07c23..e7fc6eb71c8 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cfferrs.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cfferrs.h @@ -4,7 +4,7 @@ /* */ /* CFF error codes (specification only). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -22,12 +22,12 @@ /* */ /*************************************************************************/ -#ifndef __CFFERRS_H__ -#define __CFFERRS_H__ +#ifndef CFFERRS_H_ +#define CFFERRS_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX CFF_Err_ @@ -36,7 +36,7 @@ #include FT_ERRORS_H -#endif /* __CFFERRS_H__ */ +#endif /* CFFERRS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffgload.c b/reactos/lib/3rdparty/freetype/src/cff/cffgload.c index 5f57403e22a..df57d67e57f 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cffgload.c +++ b/reactos/lib/3rdparty/freetype/src/cff/cffgload.c @@ -4,7 +4,7 @@ /* */ /* OpenType Glyph Loader (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -2082,15 +2082,14 @@ if ( args[0] > 0 ) { - FT_Int count = 9; - FT_Fixed root = args[0]; + FT_Fixed root = args[0]; FT_Fixed new_root; for (;;) { new_root = ( root + FT_DivFix( args[0], root ) + 1 ) >> 1; - if ( new_root == root || count <= 0 ) + if ( new_root == root ) break; root = new_root; } @@ -2221,15 +2220,26 @@ break; case cff_op_store: + /* this operator was removed from the Type2 specification */ + /* in version 16-March-2000 */ FT_TRACE4(( " store\n")); goto Unimplemented; case cff_op_load: + /* this operator was removed from the Type2 specification */ + /* in version 16-March-2000 */ FT_TRACE4(( " load\n" )); goto Unimplemented; + case cff_op_blend: + /* this operator was removed from the Type2 specification */ + /* in version 16-March-2000 */ + FT_TRACE4(( " blend\n" )); + + goto Unimplemented; + case cff_op_dotsection: /* this operator is deprecated and ignored by the parser */ FT_TRACE4(( " dotsection\n" )); @@ -2358,11 +2368,23 @@ } break; - case cff_op_eq: + case cff_op_not: { FT_Fixed cond = !args[0]; + FT_TRACE4(( " not\n" )); + + args[0] = cond ? 0x10000L : 0; + args++; + } + break; + + case cff_op_eq: + { + FT_Fixed cond = args[0] == args[1]; + + FT_TRACE4(( " eq\n" )); args[0] = cond ? 0x10000L : 0; diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffgload.h b/reactos/lib/3rdparty/freetype/src/cff/cffgload.h index 5f2655f3d98..2257307eee5 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cffgload.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cffgload.h @@ -4,7 +4,7 @@ /* */ /* OpenType Glyph Loader (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __CFFGLOAD_H__ -#define __CFFGLOAD_H__ +#ifndef CFFGLOAD_H_ +#define CFFGLOAD_H_ #include @@ -239,7 +239,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CFFGLOAD_H__ */ +#endif /* CFFGLOAD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffload.c b/reactos/lib/3rdparty/freetype/src/cff/cffload.c index c61222d6519..42cc37e1aa1 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cffload.c +++ b/reactos/lib/3rdparty/freetype/src/cff/cffload.c @@ -4,7 +4,7 @@ /* */ /* OpenType and CFF data/program tables loader (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -501,8 +501,8 @@ { element++; off2 = cff_index_read_offset( idx, &error ); - } - while ( off2 == 0 && element < idx->count ); + + } while ( off2 == 0 && element < idx->count ); } } else /* use offsets table */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffload.h b/reactos/lib/3rdparty/freetype/src/cff/cffload.h index 459e7b04461..1dd07baf112 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cffload.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cffload.h @@ -4,7 +4,7 @@ /* */ /* OpenType & CFF data/program tables loader (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __CFFLOAD_H__ -#define __CFFLOAD_H__ +#ifndef CFFLOAD_H_ +#define CFFLOAD_H_ #include @@ -77,7 +77,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CFFLOAD_H__ */ +#endif /* CFFLOAD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffobjs.c b/reactos/lib/3rdparty/freetype/src/cff/cffobjs.c index d628b68db7c..e22ae82bcf1 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cffobjs.c +++ b/reactos/lib/3rdparty/freetype/src/cff/cffobjs.c @@ -4,7 +4,7 @@ /* */ /* OpenType objects manager (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -586,7 +586,10 @@ /* if we are performing a simple font format check, exit immediately */ /* (this is here for pure CFF) */ if ( face_index < 0 ) + { + cffface->num_faces = (FT_Long)cff->num_faces; return FT_Err_Ok; + } cff->pshinter = pshinter; cff->psnames = psnames; diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffobjs.h b/reactos/lib/3rdparty/freetype/src/cff/cffobjs.h index 3cc953143b6..9dc77536bd8 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cffobjs.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cffobjs.h @@ -4,7 +4,7 @@ /* */ /* OpenType objects manager (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __CFFOBJS_H__ -#define __CFFOBJS_H__ +#ifndef CFFOBJS_H_ +#define CFFOBJS_H_ #include @@ -179,7 +179,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CFFOBJS_H__ */ +#endif /* CFFOBJS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffparse.c b/reactos/lib/3rdparty/freetype/src/cff/cffparse.c index 063b3517c53..acbdc5a821d 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cffparse.c +++ b/reactos/lib/3rdparty/freetype/src/cff/cffparse.c @@ -4,7 +4,7 @@ /* */ /* CFF token stream parser (body) */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffparse.h b/reactos/lib/3rdparty/freetype/src/cff/cffparse.h index 8ad02ea1e25..bb9425ac71c 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cffparse.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cffparse.h @@ -4,7 +4,7 @@ /* */ /* CFF token stream parser (specification) */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __CFF_PARSE_H__ -#define __CFF_PARSE_H__ +#ifndef CFFPARSE_H_ +#define CFFPARSE_H_ #include @@ -100,7 +100,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CFF_PARSE_H__ */ +#endif /* CFFPARSE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffpic.c b/reactos/lib/3rdparty/freetype/src/cff/cffpic.c index d40dec50e9d..a0bc34fd5f3 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cffpic.c +++ b/reactos/lib/3rdparty/freetype/src/cff/cffpic.c @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for cff module. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffpic.h b/reactos/lib/3rdparty/freetype/src/cff/cffpic.h index 9a221a7b7ee..bed6b35a863 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cffpic.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cffpic.h @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for cff module. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __CFFPIC_H__ -#define __CFFPIC_H__ +#ifndef CFFPIC_H_ +#define CFFPIC_H_ #include FT_INTERNAL_PIC_H @@ -102,7 +102,7 @@ FT_END_HEADER /* */ -#endif /* __CFFPIC_H__ */ +#endif /* CFFPIC_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cfftoken.h b/reactos/lib/3rdparty/freetype/src/cff/cfftoken.h index 5b32076ab8f..44b65805b50 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cfftoken.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cfftoken.h @@ -4,7 +4,7 @@ /* */ /* CFF token definitions (specification only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/cff/cfftypes.h b/reactos/lib/3rdparty/freetype/src/cff/cfftypes.h index de8a5ee9b44..80f13fe2ca6 100644 --- a/reactos/lib/3rdparty/freetype/src/cff/cfftypes.h +++ b/reactos/lib/3rdparty/freetype/src/cff/cfftypes.h @@ -5,7 +5,7 @@ /* Basic OpenType/CFF type definitions and interface (specification */ /* only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,8 +17,8 @@ /***************************************************************************/ -#ifndef __CFFTYPES_H__ -#define __CFFTYPES_H__ +#ifndef CFFTYPES_H_ +#define CFFTYPES_H_ #include @@ -278,7 +278,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CFFTYPES_H__ */ +#endif /* CFFTYPES_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cid/ciderrs.h b/reactos/lib/3rdparty/freetype/src/cid/ciderrs.h index 5e0e776ee16..1dc98c7cdd4 100644 --- a/reactos/lib/3rdparty/freetype/src/cid/ciderrs.h +++ b/reactos/lib/3rdparty/freetype/src/cid/ciderrs.h @@ -4,7 +4,7 @@ /* */ /* CID error codes (specification only). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -22,12 +22,12 @@ /* */ /*************************************************************************/ -#ifndef __CIDERRS_H__ -#define __CIDERRS_H__ +#ifndef CIDERRS_H_ +#define CIDERRS_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX CID_Err_ @@ -35,7 +35,7 @@ #include FT_ERRORS_H -#endif /* __CIDERRS_H__ */ +#endif /* CIDERRS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidgload.c b/reactos/lib/3rdparty/freetype/src/cid/cidgload.c index 754f7707eec..1a364dc6772 100644 --- a/reactos/lib/3rdparty/freetype/src/cid/cidgload.c +++ b/reactos/lib/3rdparty/freetype/src/cid/cidgload.c @@ -4,7 +4,7 @@ /* */ /* CID-keyed Type1 Glyph Loader (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -142,9 +142,10 @@ /* Set up subrs */ - decoder->num_subrs = cid_subrs->num_subrs; - decoder->subrs = cid_subrs->code; - decoder->subrs_len = 0; + decoder->num_subrs = cid_subrs->num_subrs; + decoder->subrs = cid_subrs->code; + decoder->subrs_len = 0; + decoder->subrs_hash = NULL; /* Set up font matrix */ dict = cid->font_dicts + fd_select; diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidgload.h b/reactos/lib/3rdparty/freetype/src/cid/cidgload.h index 4a10ce505c3..62d664b3af5 100644 --- a/reactos/lib/3rdparty/freetype/src/cid/cidgload.h +++ b/reactos/lib/3rdparty/freetype/src/cid/cidgload.h @@ -4,7 +4,7 @@ /* */ /* OpenType Glyph Loader (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __CIDGLOAD_H__ -#define __CIDGLOAD_H__ +#ifndef CIDGLOAD_H_ +#define CIDGLOAD_H_ #include @@ -45,7 +45,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CIDGLOAD_H__ */ +#endif /* CIDGLOAD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidload.c b/reactos/lib/3rdparty/freetype/src/cid/cidload.c index 382e3c03cc1..d4f1ad1a7fb 100644 --- a/reactos/lib/3rdparty/freetype/src/cid/cidload.c +++ b/reactos/lib/3rdparty/freetype/src/cid/cidload.c @@ -4,7 +4,7 @@ /* */ /* CID-keyed Type1 font loader (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidload.h b/reactos/lib/3rdparty/freetype/src/cid/cidload.h index d7776d2f88a..680f0d8fc53 100644 --- a/reactos/lib/3rdparty/freetype/src/cid/cidload.h +++ b/reactos/lib/3rdparty/freetype/src/cid/cidload.h @@ -4,7 +4,7 @@ /* */ /* CID-keyed Type1 font loader (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __CIDLOAD_H__ -#define __CIDLOAD_H__ +#ifndef CIDLOAD_H_ +#define CIDLOAD_H_ #include @@ -47,7 +47,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CIDLOAD_H__ */ +#endif /* CIDLOAD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidobjs.c b/reactos/lib/3rdparty/freetype/src/cid/cidobjs.c index bf1519bc6e7..2d2600fd4c8 100644 --- a/reactos/lib/3rdparty/freetype/src/cid/cidobjs.c +++ b/reactos/lib/3rdparty/freetype/src/cid/cidobjs.c @@ -4,7 +4,7 @@ /* */ /* CID objects manager (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidobjs.h b/reactos/lib/3rdparty/freetype/src/cid/cidobjs.h index e9095ca68eb..5dd377a9f89 100644 --- a/reactos/lib/3rdparty/freetype/src/cid/cidobjs.h +++ b/reactos/lib/3rdparty/freetype/src/cid/cidobjs.h @@ -4,7 +4,7 @@ /* */ /* CID objects manager (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __CIDOBJS_H__ -#define __CIDOBJS_H__ +#ifndef CIDOBJS_H_ +#define CIDOBJS_H_ #include @@ -148,7 +148,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CIDOBJS_H__ */ +#endif /* CIDOBJS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidparse.c b/reactos/lib/3rdparty/freetype/src/cid/cidparse.c index c276949779b..f1c39f6d08a 100644 --- a/reactos/lib/3rdparty/freetype/src/cid/cidparse.c +++ b/reactos/lib/3rdparty/freetype/src/cid/cidparse.c @@ -4,7 +4,7 @@ /* */ /* CID-keyed Type1 parser (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidparse.h b/reactos/lib/3rdparty/freetype/src/cid/cidparse.h index f581bb43ff3..7268dc6ae8f 100644 --- a/reactos/lib/3rdparty/freetype/src/cid/cidparse.h +++ b/reactos/lib/3rdparty/freetype/src/cid/cidparse.h @@ -4,7 +4,7 @@ /* */ /* CID-keyed Type1 parser (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __CIDPARSE_H__ -#define __CIDPARSE_H__ +#ifndef CIDPARSE_H_ +#define CIDPARSE_H_ #include @@ -117,7 +117,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CIDPARSE_H__ */ +#endif /* CIDPARSE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidriver.c b/reactos/lib/3rdparty/freetype/src/cid/cidriver.c index 17935d0d46a..64141ab6b13 100644 --- a/reactos/lib/3rdparty/freetype/src/cid/cidriver.c +++ b/reactos/lib/3rdparty/freetype/src/cid/cidriver.c @@ -4,7 +4,7 @@ /* */ /* CID driver interface (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidriver.h b/reactos/lib/3rdparty/freetype/src/cid/cidriver.h index e5b8678464d..a359a789071 100644 --- a/reactos/lib/3rdparty/freetype/src/cid/cidriver.h +++ b/reactos/lib/3rdparty/freetype/src/cid/cidriver.h @@ -4,7 +4,7 @@ /* */ /* High-level CID driver interface (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __CIDRIVER_H__ -#define __CIDRIVER_H__ +#ifndef CIDRIVER_H_ +#define CIDRIVER_H_ #include @@ -37,7 +37,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __CIDRIVER_H__ */ +#endif /* CIDRIVER_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidtoken.h b/reactos/lib/3rdparty/freetype/src/cid/cidtoken.h index 82eae0ca6b0..9c773fd0945 100644 --- a/reactos/lib/3rdparty/freetype/src/cid/cidtoken.h +++ b/reactos/lib/3rdparty/freetype/src/cid/cidtoken.h @@ -4,7 +4,7 @@ /* */ /* CID token definitions (specification only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/cid/type1cid.c b/reactos/lib/3rdparty/freetype/src/cid/type1cid.c index 0d54ca7f44f..de3bdf7705a 100644 --- a/reactos/lib/3rdparty/freetype/src/cid/type1cid.c +++ b/reactos/lib/3rdparty/freetype/src/cid/type1cid.c @@ -4,7 +4,7 @@ /* */ /* FreeType OpenType driver component (body only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/README b/reactos/lib/3rdparty/freetype/src/gxvalid/README index 60f2fc185e0..d3ac49c3e29 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/README +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/README @@ -518,7 +518,7 @@ gxvalid: TrueType GX validator ------------------------------------------------------------------------ -Copyright 2004-2015 by +Copyright 2004-2016 by suzuki toshiya, Masatake YAMATO, Red hat K.K., David Turner, Robert Wilhelm, and Werner Lemberg. diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvalid.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvalid.c index 7b5b0914db6..7fb868cad18 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvalid.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvalid.c @@ -4,7 +4,7 @@ /* */ /* FreeType validator for TrueTypeGX/AAT tables (body only). */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvalid.h b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvalid.h index 8c227d0e0b6..7a3ab795ef4 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvalid.h +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvalid.h @@ -4,7 +4,7 @@ /* */ /* TrueTyeeGX/AAT table validation (specification only). */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ @@ -25,8 +25,8 @@ /***************************************************************************/ -#ifndef __GXVALID_H__ -#define __GXVALID_H__ +#ifndef GXVALID_H_ +#define GXVALID_H_ #include #include FT_FREETYPE_H @@ -102,7 +102,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __GXVALID_H__ */ +#endif /* GXVALID_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvbsln.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvbsln.c index 1b17a5d0331..493b20c31a8 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvbsln.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvbsln.c @@ -4,7 +4,7 @@ /* */ /* TrueTypeGX/AAT bsln table validation (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvcommn.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvcommn.c index 93f6ffbe236..2606e57ddac 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvcommn.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvcommn.c @@ -4,7 +4,7 @@ /* */ /* TrueTypeGX/AAT common tables validation (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ @@ -1159,10 +1159,6 @@ case GXV_GLYPHOFFSET_LONG: glyphOffset.l = FT_NEXT_LONG( p ); break; - - default: - GXV_SET_ERR_IF_PARANOID( FT_INVALID_FORMAT ); - goto Exit; } if ( NULL != gxvalid->statetable.entry_validate_func ) @@ -1174,7 +1170,6 @@ gxvalid ); } - Exit: *length_p = (FT_UShort)( p - table ); GXV_EXIT; diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvcommn.h b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvcommn.h index b24608c2577..d49c4b486ac 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvcommn.h +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvcommn.h @@ -4,7 +4,7 @@ /* */ /* TrueTypeGX/AAT common tables validation (specification). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ @@ -39,8 +39,8 @@ */ -#ifndef __GXVCOMMN_H__ -#define __GXVCOMMN_H__ +#ifndef GXVCOMMN_H_ +#define GXVCOMMN_H_ #include @@ -576,7 +576,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __GXVCOMMN_H__ */ +#endif /* GXVCOMMN_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxverror.h b/reactos/lib/3rdparty/freetype/src/gxvalid/gxverror.h index 6bbc23aa034..2e53355ce46 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxverror.h +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxverror.h @@ -4,7 +4,7 @@ /* */ /* TrueTypeGX/AAT validation module error codes (specification only). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ @@ -32,12 +32,12 @@ /* */ /*************************************************************************/ -#ifndef __GXVERROR_H__ -#define __GXVERROR_H__ +#ifndef GXVERROR_H_ +#define GXVERROR_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX GXV_Err_ @@ -45,7 +45,7 @@ #include FT_ERRORS_H -#endif /* __GXVERROR_H__ */ +#endif /* GXVERROR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvfeat.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvfeat.c index 0da97776428..5bff7c261d9 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvfeat.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvfeat.c @@ -4,7 +4,7 @@ /* */ /* TrueTypeGX/AAT feat table validation (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvfeat.h b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvfeat.h index b617df5d53d..284bada891d 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvfeat.h +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvfeat.h @@ -4,7 +4,7 @@ /* */ /* TrueTypeGX/AAT feat table validation (specification). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ @@ -25,8 +25,8 @@ /***************************************************************************/ -#ifndef __GXVFEAT_H__ -#define __GXVFEAT_H__ +#ifndef GXVFEAT_H_ +#define GXVFEAT_H_ #include "gxvalid.h" @@ -167,7 +167,7 @@ }; -#endif /* __GXVFEAT_H__ */ +#endif /* GXVFEAT_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvfgen.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvfgen.c index 75c5e20d22e..667dac3cdee 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvfgen.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvfgen.c @@ -5,7 +5,7 @@ /* Generate feature registry data for gxv `feat' validator. */ /* This program is derived from gxfeatreg.c in gxlayout. */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* Masatake YAMATO and Redhat K.K. */ /* */ /* This file may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvjust.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvjust.c index 55b44bc2a84..fc8db0d9c98 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvjust.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvjust.c @@ -4,7 +4,7 @@ /* */ /* TrueTypeGX/AAT just table validation (body). */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvkern.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvkern.c index f257c037605..97ff3bfe951 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvkern.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvkern.c @@ -4,7 +4,7 @@ /* */ /* TrueTypeGX/AAT kern table validation (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvlcar.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvlcar.c index af589fdb6fb..d600fa31419 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvlcar.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvlcar.c @@ -4,7 +4,7 @@ /* */ /* TrueTypeGX/AAT lcar table validation (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmod.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmod.c index fe8efdf3d93..e589a7fb792 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmod.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmod.c @@ -4,7 +4,7 @@ /* */ /* FreeType's TrueTypeGX/AAT validation module implementation (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmod.h b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmod.h index 1ff2cfc8bb0..8b82e910709 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmod.h +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmod.h @@ -5,7 +5,7 @@ /* FreeType's TrueTypeGX/AAT validation module implementation */ /* (specification). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ @@ -26,8 +26,8 @@ /***************************************************************************/ -#ifndef __GXVMOD_H__ -#define __GXVMOD_H__ +#ifndef GXVMOD_H_ +#define GXVMOD_H_ #include #include FT_MODULE_H @@ -45,7 +45,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __GXVMOD_H__ */ +#endif /* GXVMOD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort.c index a9e7a58fea0..b83a2b2c0f9 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort.c @@ -4,7 +4,7 @@ /* */ /* TrueTypeGX/AAT mort table validation (body). */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort.h b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort.h index c95391b61fe..5fd228212aa 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort.h +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort.h @@ -4,7 +4,7 @@ /* */ /* TrueTypeGX/AAT common definition for mort table (specification). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ @@ -25,8 +25,8 @@ /***************************************************************************/ -#ifndef __GXVMORT_H__ -#define __GXVMORT_H__ +#ifndef GXVMORT_H_ +#define GXVMORT_H_ #include "gxvalid.h" #include "gxvcommn.h" @@ -88,7 +88,7 @@ GXV_Validator gxvalid ); -#endif /* __GXVMORT_H__ */ +#endif /* GXVMORT_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort0.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort0.c index 0cace35ae24..e11f5ddc494 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort0.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort0.c @@ -5,7 +5,7 @@ /* TrueTypeGX/AAT mort table validation */ /* body for type0 (Indic Script Rearrangement) subtable. */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort1.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort1.c index aa02df5a99b..24fed63c0a9 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort1.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort1.c @@ -5,7 +5,7 @@ /* TrueTypeGX/AAT mort table validation */ /* body for type1 (Contextual Substitution) subtable. */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort2.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort2.c index 6f56c94ca77..08455dec6b2 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort2.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort2.c @@ -5,7 +5,7 @@ /* TrueTypeGX/AAT mort table validation */ /* body for type2 (Ligature Substitution) subtable. */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort4.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort4.c index 535f37716de..6f7bbb8710b 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort4.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort4.c @@ -5,7 +5,7 @@ /* TrueTypeGX/AAT mort table validation */ /* body for type4 (Non-Contextual Glyph Substitution) subtable. */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort5.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort5.c index fb2f915fcea..54ddbe2b15a 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort5.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort5.c @@ -5,7 +5,7 @@ /* TrueTypeGX/AAT mort table validation */ /* body for type5 (Contextual Glyph Insertion) subtable. */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx.c index 1c6b3f29738..a3abe435a61 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx.c @@ -4,7 +4,7 @@ /* */ /* TrueTypeGX/AAT morx table validation (body). */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx.h b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx.h index 60efdfd0ced..9ba25c14a42 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx.h +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx.h @@ -4,7 +4,7 @@ /* */ /* TrueTypeGX/AAT common definition for morx table (specification). */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ @@ -25,8 +25,8 @@ /***************************************************************************/ -#ifndef __GXVMORX_H__ -#define __GXVMORX_H__ +#ifndef GXVMORX_H_ +#define GXVMORX_H_ #include "gxvalid.h" @@ -62,7 +62,7 @@ GXV_Validator gxvalid ); -#endif /* __GXVMORX_H__ */ +#endif /* GXVMORX_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx0.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx0.c index e340baa5e44..4abb7368f29 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx0.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx0.c @@ -5,7 +5,7 @@ /* TrueTypeGX/AAT morx table validation */ /* body for type0 (Indic Script Rearrangement) subtable. */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx1.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx1.c index 7ba290914d2..e581848c2b6 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx1.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx1.c @@ -5,7 +5,7 @@ /* TrueTypeGX/AAT morx table validation */ /* body for type1 (Contextual Substitution) subtable. */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx2.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx2.c index 51e305580f5..9495cca4898 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx2.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx2.c @@ -5,7 +5,7 @@ /* TrueTypeGX/AAT morx table validation */ /* body for type2 (Ligature Substitution) subtable. */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx4.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx4.c index c42677d45bf..3b7731bbce3 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx4.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx4.c @@ -5,7 +5,7 @@ /* TrueTypeGX/AAT morx table validation */ /* body for "morx" type4 (Non-Contextual Glyph Substitution) subtable. */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx5.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx5.c index 7ac872f9d71..0e96166c023 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx5.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx5.c @@ -5,7 +5,7 @@ /* TrueTypeGX/AAT morx table validation */ /* body for type5 (Contextual Glyph Insertion) subtable. */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvopbd.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvopbd.c index 7cd5163b179..e3ba082e162 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvopbd.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvopbd.c @@ -4,7 +4,7 @@ /* */ /* TrueTypeGX/AAT opbd table validation (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvprop.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvprop.c index ecc3c94d2cd..61b3aeee305 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvprop.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvprop.c @@ -4,7 +4,7 @@ /* */ /* TrueTypeGX/AAT prop table validation (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvtrak.c b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvtrak.c index c4d29e4dffc..8accdfbb795 100644 --- a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvtrak.c +++ b/reactos/lib/3rdparty/freetype/src/gxvalid/gxvtrak.c @@ -4,7 +4,7 @@ /* */ /* TrueTypeGX/AAT trak table validation (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/gzip/ftgzip.c b/reactos/lib/3rdparty/freetype/src/gzip/ftgzip.c index 27c625420a7..9c1f183fd5a 100644 --- a/reactos/lib/3rdparty/freetype/src/gzip/ftgzip.c +++ b/reactos/lib/3rdparty/freetype/src/gzip/ftgzip.c @@ -8,7 +8,7 @@ /* parse compressed PCF fonts, as found with many X11 server */ /* distributions. */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -30,7 +30,7 @@ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX Gzip_Err_ diff --git a/reactos/lib/3rdparty/freetype/src/lzw/ftlzw.c b/reactos/lib/3rdparty/freetype/src/lzw/ftlzw.c index 2f4e3b0f1d2..6f5f897083a 100644 --- a/reactos/lib/3rdparty/freetype/src/lzw/ftlzw.c +++ b/reactos/lib/3rdparty/freetype/src/lzw/ftlzw.c @@ -8,7 +8,7 @@ /* be used to parse compressed PCF fonts, as found with many X11 server */ /* distributions. */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* Albert Chin-A-Young. */ /* */ /* based on code in `src/gzip/ftgzip.c' */ @@ -31,7 +31,7 @@ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX LZW_Err_ diff --git a/reactos/lib/3rdparty/freetype/src/lzw/ftzopen.c b/reactos/lib/3rdparty/freetype/src/lzw/ftzopen.c index f96bb73d987..e17b3c5247a 100644 --- a/reactos/lib/3rdparty/freetype/src/lzw/ftzopen.c +++ b/reactos/lib/3rdparty/freetype/src/lzw/ftzopen.c @@ -8,7 +8,7 @@ /* be used to parse compressed PCF fonts, as found with many X11 server */ /* distributions. */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* David Turner. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/lzw/ftzopen.h b/reactos/lib/3rdparty/freetype/src/lzw/ftzopen.h index d35e3805956..1c38f1ab3d9 100644 --- a/reactos/lib/3rdparty/freetype/src/lzw/ftzopen.h +++ b/reactos/lib/3rdparty/freetype/src/lzw/ftzopen.h @@ -8,7 +8,7 @@ /* be used to parse compressed PCF fonts, as found with many X11 server */ /* distributions. */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* David Turner. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -19,8 +19,8 @@ /* */ /***************************************************************************/ -#ifndef __FT_ZOPEN_H__ -#define __FT_ZOPEN_H__ +#ifndef FTZOPEN_H_ +#define FTZOPEN_H_ #include #include FT_FREETYPE_H @@ -166,7 +166,7 @@ /* */ -#endif /* __FT_ZOPEN_H__ */ +#endif /* FTZOPEN_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvalid.c b/reactos/lib/3rdparty/freetype/src/otvalid/otvalid.c index ca597d707c6..932a974a31f 100644 --- a/reactos/lib/3rdparty/freetype/src/otvalid/otvalid.c +++ b/reactos/lib/3rdparty/freetype/src/otvalid/otvalid.c @@ -4,7 +4,7 @@ /* */ /* FreeType validator for OpenType tables (body only). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvalid.h b/reactos/lib/3rdparty/freetype/src/otvalid/otvalid.h index 3475deb7a2b..93438a06398 100644 --- a/reactos/lib/3rdparty/freetype/src/otvalid/otvalid.h +++ b/reactos/lib/3rdparty/freetype/src/otvalid/otvalid.h @@ -4,7 +4,7 @@ /* */ /* OpenType table validation (specification only). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __OTVALID_H__ -#define __OTVALID_H__ +#ifndef OTVALID_H_ +#define OTVALID_H_ #include @@ -72,7 +72,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __OTVALID_H__ */ +#endif /* OTVALID_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvbase.c b/reactos/lib/3rdparty/freetype/src/otvalid/otvbase.c index 24038c63b78..e86e8bb2f05 100644 --- a/reactos/lib/3rdparty/freetype/src/otvalid/otvbase.c +++ b/reactos/lib/3rdparty/freetype/src/otvalid/otvbase.c @@ -4,7 +4,7 @@ /* */ /* OpenType BASE table validation (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvcommn.c b/reactos/lib/3rdparty/freetype/src/otvalid/otvcommn.c index 103ffba3e8e..2e88e102be5 100644 --- a/reactos/lib/3rdparty/freetype/src/otvalid/otvcommn.c +++ b/reactos/lib/3rdparty/freetype/src/otvalid/otvcommn.c @@ -4,7 +4,7 @@ /* */ /* OpenType common tables validation (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvcommn.h b/reactos/lib/3rdparty/freetype/src/otvalid/otvcommn.h index 3aebf0200db..44e0c63793f 100644 --- a/reactos/lib/3rdparty/freetype/src/otvalid/otvcommn.h +++ b/reactos/lib/3rdparty/freetype/src/otvalid/otvcommn.h @@ -4,7 +4,7 @@ /* */ /* OpenType common tables validation (specification). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __OTVCOMMN_H__ -#define __OTVCOMMN_H__ +#ifndef OTVCOMMN_H_ +#define OTVCOMMN_H_ #include @@ -431,7 +431,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __OTVCOMMN_H__ */ +#endif /* OTVCOMMN_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otverror.h b/reactos/lib/3rdparty/freetype/src/otvalid/otverror.h index 214795e170a..e7c8db0d582 100644 --- a/reactos/lib/3rdparty/freetype/src/otvalid/otverror.h +++ b/reactos/lib/3rdparty/freetype/src/otvalid/otverror.h @@ -4,7 +4,7 @@ /* */ /* OpenType validation module error codes (specification only). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -23,12 +23,12 @@ /* */ /*************************************************************************/ -#ifndef __OTVERROR_H__ -#define __OTVERROR_H__ +#ifndef OTVERROR_H_ +#define OTVERROR_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX OTV_Err_ @@ -36,7 +36,7 @@ #include FT_ERRORS_H -#endif /* __OTVERROR_H__ */ +#endif /* OTVERROR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvgdef.c b/reactos/lib/3rdparty/freetype/src/otvalid/otvgdef.c index 8269d2f5b86..f19e300e516 100644 --- a/reactos/lib/3rdparty/freetype/src/otvalid/otvgdef.c +++ b/reactos/lib/3rdparty/freetype/src/otvalid/otvgdef.c @@ -4,7 +4,7 @@ /* */ /* OpenType GDEF table validation (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvgpos.c b/reactos/lib/3rdparty/freetype/src/otvalid/otvgpos.c index 44c43c53a14..e904ea5d6ce 100644 --- a/reactos/lib/3rdparty/freetype/src/otvalid/otvgpos.c +++ b/reactos/lib/3rdparty/freetype/src/otvalid/otvgpos.c @@ -4,7 +4,7 @@ /* */ /* OpenType GPOS table validation (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvgpos.h b/reactos/lib/3rdparty/freetype/src/otvalid/otvgpos.h index a792bd95196..2c09e64f972 100644 --- a/reactos/lib/3rdparty/freetype/src/otvalid/otvgpos.h +++ b/reactos/lib/3rdparty/freetype/src/otvalid/otvgpos.h @@ -4,7 +4,7 @@ /* */ /* OpenType GPOS table validator (specification). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __OTVGPOS_H__ -#define __OTVGPOS_H__ +#ifndef OTVGPOS_H_ +#define OTVGPOS_H_ FT_BEGIN_HEADER @@ -30,7 +30,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __OTVGPOS_H__ */ +#endif /* OTVGPOS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvgsub.c b/reactos/lib/3rdparty/freetype/src/otvalid/otvgsub.c index 0f8b02cd20d..c2b28569f1c 100644 --- a/reactos/lib/3rdparty/freetype/src/otvalid/otvgsub.c +++ b/reactos/lib/3rdparty/freetype/src/otvalid/otvgsub.c @@ -4,7 +4,7 @@ /* */ /* OpenType GSUB table validation (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvjstf.c b/reactos/lib/3rdparty/freetype/src/otvalid/otvjstf.c index fe68a60f609..e19c1c12132 100644 --- a/reactos/lib/3rdparty/freetype/src/otvalid/otvjstf.c +++ b/reactos/lib/3rdparty/freetype/src/otvalid/otvjstf.c @@ -4,7 +4,7 @@ /* */ /* OpenType JSTF table validation (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvmath.c b/reactos/lib/3rdparty/freetype/src/otvalid/otvmath.c index db3d5f8f52d..6c46178bfb8 100644 --- a/reactos/lib/3rdparty/freetype/src/otvalid/otvmath.c +++ b/reactos/lib/3rdparty/freetype/src/otvalid/otvmath.c @@ -4,7 +4,7 @@ /* */ /* OpenType MATH table validation (body). */ /* */ -/* Copyright 2007-2015 by */ +/* Copyright 2007-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* Written by George Williams. */ diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvmod.c b/reactos/lib/3rdparty/freetype/src/otvalid/otvmod.c index 5eb691aa74a..972bd1baac3 100644 --- a/reactos/lib/3rdparty/freetype/src/otvalid/otvmod.c +++ b/reactos/lib/3rdparty/freetype/src/otvalid/otvmod.c @@ -4,7 +4,7 @@ /* */ /* FreeType's OpenType validation module implementation (body). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvmod.h b/reactos/lib/3rdparty/freetype/src/otvalid/otvmod.h index c3a0234e9e7..e464030ab03 100644 --- a/reactos/lib/3rdparty/freetype/src/otvalid/otvmod.h +++ b/reactos/lib/3rdparty/freetype/src/otvalid/otvmod.h @@ -5,7 +5,7 @@ /* FreeType's OpenType validation module implementation */ /* (specification). */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,8 +17,8 @@ /***************************************************************************/ -#ifndef __OTVMOD_H__ -#define __OTVMOD_H__ +#ifndef OTVMOD_H_ +#define OTVMOD_H_ #include @@ -37,7 +37,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __OTVMOD_H__ */ +#endif /* OTVMOD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pcf/pcf.h b/reactos/lib/3rdparty/freetype/src/pcf/pcf.h index 253a33f7314..c726e5ec6be 100644 --- a/reactos/lib/3rdparty/freetype/src/pcf/pcf.h +++ b/reactos/lib/3rdparty/freetype/src/pcf/pcf.h @@ -25,8 +25,8 @@ THE SOFTWARE. */ -#ifndef __PCF_H__ -#define __PCF_H__ +#ifndef PCF_H_ +#define PCF_H_ #include @@ -232,7 +232,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PCF_H__ */ +#endif /* PCF_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pcf/pcfdrivr.h b/reactos/lib/3rdparty/freetype/src/pcf/pcfdrivr.h index 54614951b5d..29d30497cd6 100644 --- a/reactos/lib/3rdparty/freetype/src/pcf/pcfdrivr.h +++ b/reactos/lib/3rdparty/freetype/src/pcf/pcfdrivr.h @@ -25,8 +25,8 @@ THE SOFTWARE. */ -#ifndef __PCFDRIVR_H__ -#define __PCFDRIVR_H__ +#ifndef PCFDRIVR_H_ +#define PCFDRIVR_H_ #include #include FT_INTERNAL_DRIVER_H @@ -42,7 +42,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PCFDRIVR_H__ */ +#endif /* PCFDRIVR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pcf/pcferror.h b/reactos/lib/3rdparty/freetype/src/pcf/pcferror.h index e51fff8ea60..add8ef2230e 100644 --- a/reactos/lib/3rdparty/freetype/src/pcf/pcferror.h +++ b/reactos/lib/3rdparty/freetype/src/pcf/pcferror.h @@ -22,12 +22,12 @@ /* */ /*************************************************************************/ -#ifndef __PCFERROR_H__ -#define __PCFERROR_H__ +#ifndef PCFERROR_H_ +#define PCFERROR_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX PCF_Err_ @@ -35,7 +35,7 @@ #include FT_ERRORS_H -#endif /* __PCFERROR_H__ */ +#endif /* PCFERROR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pcf/pcfread.h b/reactos/lib/3rdparty/freetype/src/pcf/pcfread.h index c9524f13464..bed30e50300 100644 --- a/reactos/lib/3rdparty/freetype/src/pcf/pcfread.h +++ b/reactos/lib/3rdparty/freetype/src/pcf/pcfread.h @@ -25,8 +25,8 @@ THE SOFTWARE. */ -#ifndef __PCFREAD_H__ -#define __PCFREAD_H__ +#ifndef PCFREAD_H_ +#define PCFREAD_H_ #include @@ -39,7 +39,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PCFREAD_H__ */ +#endif /* PCFREAD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pcf/pcfutil.h b/reactos/lib/3rdparty/freetype/src/pcf/pcfutil.h index ce10fb541d5..be986e756b7 100644 --- a/reactos/lib/3rdparty/freetype/src/pcf/pcfutil.h +++ b/reactos/lib/3rdparty/freetype/src/pcf/pcfutil.h @@ -25,8 +25,8 @@ THE SOFTWARE. */ -#ifndef __PCFUTIL_H__ -#define __PCFUTIL_H__ +#ifndef PCFUTIL_H_ +#define PCFUTIL_H_ #include @@ -49,7 +49,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PCFUTIL_H__ */ +#endif /* PCFUTIL_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfr.c b/reactos/lib/3rdparty/freetype/src/pfr/pfr.c index 96e67300a58..1a433960a59 100644 --- a/reactos/lib/3rdparty/freetype/src/pfr/pfr.c +++ b/reactos/lib/3rdparty/freetype/src/pfr/pfr.c @@ -4,7 +4,7 @@ /* */ /* FreeType PFR driver component. */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrcmap.c b/reactos/lib/3rdparty/freetype/src/pfr/pfrcmap.c index 686edf15f86..a1439c2e9fa 100644 --- a/reactos/lib/3rdparty/freetype/src/pfr/pfrcmap.c +++ b/reactos/lib/3rdparty/freetype/src/pfr/pfrcmap.c @@ -4,7 +4,7 @@ /* */ /* FreeType PFR cmap handling (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrcmap.h b/reactos/lib/3rdparty/freetype/src/pfr/pfrcmap.h index 87e1e5b942c..4a8a4d0a674 100644 --- a/reactos/lib/3rdparty/freetype/src/pfr/pfrcmap.h +++ b/reactos/lib/3rdparty/freetype/src/pfr/pfrcmap.h @@ -4,7 +4,7 @@ /* */ /* FreeType PFR cmap handling (specification). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __PFRCMAP_H__ -#define __PFRCMAP_H__ +#ifndef PFRCMAP_H_ +#define PFRCMAP_H_ #include #include FT_INTERNAL_OBJECTS_H @@ -40,7 +40,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PFRCMAP_H__ */ +#endif /* PFRCMAP_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrdrivr.c b/reactos/lib/3rdparty/freetype/src/pfr/pfrdrivr.c index b0794161dd5..b81c15e5602 100644 --- a/reactos/lib/3rdparty/freetype/src/pfr/pfrdrivr.c +++ b/reactos/lib/3rdparty/freetype/src/pfr/pfrdrivr.c @@ -4,7 +4,7 @@ /* */ /* FreeType PFR driver interface (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrdrivr.h b/reactos/lib/3rdparty/freetype/src/pfr/pfrdrivr.h index b5be4709c8e..32b2d9eab34 100644 --- a/reactos/lib/3rdparty/freetype/src/pfr/pfrdrivr.h +++ b/reactos/lib/3rdparty/freetype/src/pfr/pfrdrivr.h @@ -4,7 +4,7 @@ /* */ /* High-level Type PFR driver interface (specification). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __PFRDRIVR_H__ -#define __PFRDRIVR_H__ +#ifndef PFRDRIVR_H_ +#define PFRDRIVR_H_ #include @@ -37,7 +37,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PFRDRIVR_H__ */ +#endif /* PFRDRIVR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrerror.h b/reactos/lib/3rdparty/freetype/src/pfr/pfrerror.h index 978e7b2d34c..9305f8fb58d 100644 --- a/reactos/lib/3rdparty/freetype/src/pfr/pfrerror.h +++ b/reactos/lib/3rdparty/freetype/src/pfr/pfrerror.h @@ -4,7 +4,7 @@ /* */ /* PFR error codes (specification only). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -22,12 +22,12 @@ /* */ /*************************************************************************/ -#ifndef __PFRERROR_H__ -#define __PFRERROR_H__ +#ifndef PFRERROR_H_ +#define PFRERROR_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX PFR_Err_ @@ -35,7 +35,7 @@ #include FT_ERRORS_H -#endif /* __PFRERROR_H__ */ +#endif /* PFRERROR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrgload.c b/reactos/lib/3rdparty/freetype/src/pfr/pfrgload.c index e07c21a0e16..1dbbf95da02 100644 --- a/reactos/lib/3rdparty/freetype/src/pfr/pfrgload.c +++ b/reactos/lib/3rdparty/freetype/src/pfr/pfrgload.c @@ -4,7 +4,7 @@ /* */ /* FreeType PFR glyph loader (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrgload.h b/reactos/lib/3rdparty/freetype/src/pfr/pfrgload.h index c7c8da15a18..908d4378a4b 100644 --- a/reactos/lib/3rdparty/freetype/src/pfr/pfrgload.h +++ b/reactos/lib/3rdparty/freetype/src/pfr/pfrgload.h @@ -4,7 +4,7 @@ /* */ /* FreeType PFR glyph loader (specification). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __PFRGLOAD_H__ -#define __PFRGLOAD_H__ +#ifndef PFRGLOAD_H_ +#define PFRGLOAD_H_ #include "pfrtypes.h" @@ -43,7 +43,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PFRGLOAD_H__ */ +#endif /* PFRGLOAD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrload.c b/reactos/lib/3rdparty/freetype/src/pfr/pfrload.c index ed8327af8e7..ca1f37f64b4 100644 --- a/reactos/lib/3rdparty/freetype/src/pfr/pfrload.c +++ b/reactos/lib/3rdparty/freetype/src/pfr/pfrload.c @@ -4,7 +4,7 @@ /* */ /* FreeType PFR loader (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrload.h b/reactos/lib/3rdparty/freetype/src/pfr/pfrload.h index 867e6324090..0f7a2bb2399 100644 --- a/reactos/lib/3rdparty/freetype/src/pfr/pfrload.h +++ b/reactos/lib/3rdparty/freetype/src/pfr/pfrload.h @@ -4,7 +4,7 @@ /* */ /* FreeType PFR loader (specification). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __PFRLOAD_H__ -#define __PFRLOAD_H__ +#ifndef PFRLOAD_H_ +#define PFRLOAD_H_ #include "pfrobjs.h" #include FT_INTERNAL_STREAM_H @@ -117,7 +117,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PFRLOAD_H__ */ +#endif /* PFRLOAD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrobjs.c b/reactos/lib/3rdparty/freetype/src/pfr/pfrobjs.c index 20d316d6f04..81b1312fe4b 100644 --- a/reactos/lib/3rdparty/freetype/src/pfr/pfrobjs.c +++ b/reactos/lib/3rdparty/freetype/src/pfr/pfrobjs.c @@ -4,7 +4,7 @@ /* */ /* FreeType PFR object methods (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrobjs.h b/reactos/lib/3rdparty/freetype/src/pfr/pfrobjs.h index e990b45a0a0..335aca8854b 100644 --- a/reactos/lib/3rdparty/freetype/src/pfr/pfrobjs.h +++ b/reactos/lib/3rdparty/freetype/src/pfr/pfrobjs.h @@ -4,7 +4,7 @@ /* */ /* FreeType PFR object methods (specification). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __PFROBJS_H__ -#define __PFROBJS_H__ +#ifndef PFROBJS_H_ +#define PFROBJS_H_ #include "pfrtypes.h" @@ -90,7 +90,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PFROBJS_H__ */ +#endif /* PFROBJS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrsbit.c b/reactos/lib/3rdparty/freetype/src/pfr/pfrsbit.c index a2196364664..22f6096fc74 100644 --- a/reactos/lib/3rdparty/freetype/src/pfr/pfrsbit.c +++ b/reactos/lib/3rdparty/freetype/src/pfr/pfrsbit.c @@ -4,7 +4,7 @@ /* */ /* FreeType PFR bitmap loader (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrsbit.h b/reactos/lib/3rdparty/freetype/src/pfr/pfrsbit.h index 0db2cd5ebd9..94ead28ca71 100644 --- a/reactos/lib/3rdparty/freetype/src/pfr/pfrsbit.h +++ b/reactos/lib/3rdparty/freetype/src/pfr/pfrsbit.h @@ -4,7 +4,7 @@ /* */ /* FreeType PFR bitmap loader (specification). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __PFRSBIT_H__ -#define __PFRSBIT_H__ +#ifndef PFRSBIT_H_ +#define PFRSBIT_H_ #include "pfrobjs.h" @@ -30,7 +30,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PFR_SBIT_H__ */ +#endif /* PFRSBIT_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrtypes.h b/reactos/lib/3rdparty/freetype/src/pfr/pfrtypes.h index 5ffb1b14ee1..592acbd7db5 100644 --- a/reactos/lib/3rdparty/freetype/src/pfr/pfrtypes.h +++ b/reactos/lib/3rdparty/freetype/src/pfr/pfrtypes.h @@ -4,7 +4,7 @@ /* */ /* FreeType PFR data structures (specification only). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __PFRTYPES_H__ -#define __PFRTYPES_H__ +#ifndef PFRTYPES_H_ +#define PFRTYPES_H_ #include #include FT_INTERNAL_OBJECTS_H @@ -356,7 +356,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PFRTYPES_H__ */ +#endif /* PFRTYPES_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/psaux/afmparse.c b/reactos/lib/3rdparty/freetype/src/psaux/afmparse.c index 3ad44ec7240..9fb0ac0e2bb 100644 --- a/reactos/lib/3rdparty/freetype/src/psaux/afmparse.c +++ b/reactos/lib/3rdparty/freetype/src/psaux/afmparse.c @@ -4,7 +4,7 @@ /* */ /* AFM parser (body). */ /* */ -/* Copyright 2006-2015 by */ +/* Copyright 2006-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/psaux/afmparse.h b/reactos/lib/3rdparty/freetype/src/psaux/afmparse.h index f922c4ebde6..6d8b193ffc2 100644 --- a/reactos/lib/3rdparty/freetype/src/psaux/afmparse.h +++ b/reactos/lib/3rdparty/freetype/src/psaux/afmparse.h @@ -4,7 +4,7 @@ /* */ /* AFM parser (specification). */ /* */ -/* Copyright 2006-2015 by */ +/* Copyright 2006-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __AFMPARSE_H__ -#define __AFMPARSE_H__ +#ifndef AFMPARSE_H_ +#define AFMPARSE_H_ #include @@ -83,7 +83,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __AFMPARSE_H__ */ +#endif /* AFMPARSE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/psaux/psaux.c b/reactos/lib/3rdparty/freetype/src/psaux/psaux.c index 7f1d9aa5950..33b462ef15b 100644 --- a/reactos/lib/3rdparty/freetype/src/psaux/psaux.c +++ b/reactos/lib/3rdparty/freetype/src/psaux/psaux.c @@ -4,7 +4,7 @@ /* */ /* FreeType auxiliary PostScript driver component (body only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/psaux/psauxerr.h b/reactos/lib/3rdparty/freetype/src/psaux/psauxerr.h index 97712f0795b..9739157fc42 100644 --- a/reactos/lib/3rdparty/freetype/src/psaux/psauxerr.h +++ b/reactos/lib/3rdparty/freetype/src/psaux/psauxerr.h @@ -4,7 +4,7 @@ /* */ /* PS auxiliary module error codes (specification only). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -23,12 +23,12 @@ /* */ /*************************************************************************/ -#ifndef __PSAUXERR_H__ -#define __PSAUXERR_H__ +#ifndef PSAUXERR_H_ +#define PSAUXERR_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX PSaux_Err_ @@ -36,7 +36,7 @@ #include FT_ERRORS_H -#endif /* __PSAUXERR_H__ */ +#endif /* PSAUXERR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/psaux/psauxmod.c b/reactos/lib/3rdparty/freetype/src/psaux/psauxmod.c index 06fcab0c4ac..80805e69516 100644 --- a/reactos/lib/3rdparty/freetype/src/psaux/psauxmod.c +++ b/reactos/lib/3rdparty/freetype/src/psaux/psauxmod.c @@ -4,7 +4,7 @@ /* */ /* FreeType auxiliary PostScript module implementation (body). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/psaux/psauxmod.h b/reactos/lib/3rdparty/freetype/src/psaux/psauxmod.h index ae6a8f9383a..b1dbb06904e 100644 --- a/reactos/lib/3rdparty/freetype/src/psaux/psauxmod.h +++ b/reactos/lib/3rdparty/freetype/src/psaux/psauxmod.h @@ -4,7 +4,7 @@ /* */ /* FreeType auxiliary PostScript module implementation (specification). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __PSAUXMOD_H__ -#define __PSAUXMOD_H__ +#ifndef PSAUXMOD_H_ +#define PSAUXMOD_H_ #include @@ -36,7 +36,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PSAUXMOD_H__ */ +#endif /* PSAUXMOD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/psaux/psconv.c b/reactos/lib/3rdparty/freetype/src/psaux/psconv.c index aca741204fb..fdaca7fb5dc 100644 --- a/reactos/lib/3rdparty/freetype/src/psaux/psconv.c +++ b/reactos/lib/3rdparty/freetype/src/psaux/psconv.c @@ -4,7 +4,7 @@ /* */ /* Some convenience conversions (body). */ /* */ -/* Copyright 2006-2015 by */ +/* Copyright 2006-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/psaux/psconv.h b/reactos/lib/3rdparty/freetype/src/psaux/psconv.h index 10f1ff7fb1a..062de36413e 100644 --- a/reactos/lib/3rdparty/freetype/src/psaux/psconv.h +++ b/reactos/lib/3rdparty/freetype/src/psaux/psconv.h @@ -4,7 +4,7 @@ /* */ /* Some convenience conversions (specification). */ /* */ -/* Copyright 2006-2015 by */ +/* Copyright 2006-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __PSCONV_H__ -#define __PSCONV_H__ +#ifndef PSCONV_H_ +#define PSCONV_H_ #include @@ -65,7 +65,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PSCONV_H__ */ +#endif /* PSCONV_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/psaux/psobjs.c b/reactos/lib/3rdparty/freetype/src/psaux/psobjs.c index 1d3c7e662ce..70f8fdd5c33 100644 --- a/reactos/lib/3rdparty/freetype/src/psaux/psobjs.c +++ b/reactos/lib/3rdparty/freetype/src/psaux/psobjs.c @@ -4,7 +4,7 @@ /* */ /* Auxiliary functions for PostScript fonts (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/psaux/psobjs.h b/reactos/lib/3rdparty/freetype/src/psaux/psobjs.h index bf879c1faf2..4c7178e79f9 100644 --- a/reactos/lib/3rdparty/freetype/src/psaux/psobjs.h +++ b/reactos/lib/3rdparty/freetype/src/psaux/psobjs.h @@ -4,7 +4,7 @@ /* */ /* Auxiliary functions for PostScript fonts (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __PSOBJS_H__ -#define __PSOBJS_H__ +#ifndef PSOBJS_H_ +#define PSOBJS_H_ #include @@ -206,7 +206,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PSOBJS_H__ */ +#endif /* PSOBJS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/psaux/t1cmap.c b/reactos/lib/3rdparty/freetype/src/psaux/t1cmap.c index 2e2d433fc49..43abb98615e 100644 --- a/reactos/lib/3rdparty/freetype/src/psaux/t1cmap.c +++ b/reactos/lib/3rdparty/freetype/src/psaux/t1cmap.c @@ -4,7 +4,7 @@ /* */ /* Type 1 character map support (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/psaux/t1cmap.h b/reactos/lib/3rdparty/freetype/src/psaux/t1cmap.h index b8ba06cc3bc..5e1277dc636 100644 --- a/reactos/lib/3rdparty/freetype/src/psaux/t1cmap.h +++ b/reactos/lib/3rdparty/freetype/src/psaux/t1cmap.h @@ -4,7 +4,7 @@ /* */ /* Type 1 character map support (specification). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __T1CMAP_H__ -#define __T1CMAP_H__ +#ifndef T1CMAP_H_ +#define T1CMAP_H_ #include #include FT_INTERNAL_OBJECTS_H @@ -99,7 +99,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __T1CMAP_H__ */ +#endif /* T1CMAP_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/psaux/t1decode.c b/reactos/lib/3rdparty/freetype/src/psaux/t1decode.c index 5811fcb49cb..98f6ce1c877 100644 --- a/reactos/lib/3rdparty/freetype/src/psaux/t1decode.c +++ b/reactos/lib/3rdparty/freetype/src/psaux/t1decode.c @@ -4,7 +4,7 @@ /* */ /* PostScript Type 1 decoding routines (body). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -20,6 +20,7 @@ #include FT_INTERNAL_CALC_H #include FT_INTERNAL_DEBUG_H #include FT_INTERNAL_POSTSCRIPT_HINTS_H +#include FT_INTERNAL_HASH_H #include FT_OUTLINE_H #include "t1decode.h" @@ -1348,6 +1349,19 @@ FT_TRACE4(( " callsubr" )); idx = Fix2Int( top[0] ); + + if ( decoder->subrs_hash ) + { + size_t* val = ft_hash_num_lookup( idx, + decoder->subrs_hash ); + + + if ( val ) + idx = *val; + else + idx = -1; + } + if ( idx < 0 || idx >= decoder->num_subrs ) { FT_ERROR(( "t1_decoder_parse_charstrings:" diff --git a/reactos/lib/3rdparty/freetype/src/psaux/t1decode.h b/reactos/lib/3rdparty/freetype/src/psaux/t1decode.h index e83078f7195..0f5adfa1560 100644 --- a/reactos/lib/3rdparty/freetype/src/psaux/t1decode.h +++ b/reactos/lib/3rdparty/freetype/src/psaux/t1decode.h @@ -4,7 +4,7 @@ /* */ /* PostScript Type 1 decoding routines (specification). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __T1DECODE_H__ -#define __T1DECODE_H__ +#ifndef T1DECODE_H_ +#define T1DECODE_H_ #include @@ -58,7 +58,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __T1DECODE_H__ */ +#endif /* T1DECODE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshalgo.c b/reactos/lib/3rdparty/freetype/src/pshinter/pshalgo.c index 6e654cb1ef8..86181cd547b 100644 --- a/reactos/lib/3rdparty/freetype/src/pshinter/pshalgo.c +++ b/reactos/lib/3rdparty/freetype/src/pshinter/pshalgo.c @@ -4,7 +4,7 @@ /* */ /* PostScript hinting algorithm (body). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used */ diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshalgo.h b/reactos/lib/3rdparty/freetype/src/pshinter/pshalgo.h index 8373e5ec29e..f1bda650130 100644 --- a/reactos/lib/3rdparty/freetype/src/pshinter/pshalgo.h +++ b/reactos/lib/3rdparty/freetype/src/pshinter/pshalgo.h @@ -4,7 +4,7 @@ /* */ /* PostScript hinting algorithm (specification). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __PSHALGO_H__ -#define __PSHALGO_H__ +#ifndef PSHALGO_H_ +#define PSHALGO_H_ #include "pshrec.h" @@ -235,7 +235,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PSHALGO_H__ */ +#endif /* PSHALGO_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshglob.c b/reactos/lib/3rdparty/freetype/src/pshinter/pshglob.c index 4616bdc6cf3..be71fc5ceb8 100644 --- a/reactos/lib/3rdparty/freetype/src/pshinter/pshglob.c +++ b/reactos/lib/3rdparty/freetype/src/pshinter/pshglob.c @@ -5,7 +5,7 @@ /* PostScript hinter global hinting management (body). */ /* Inspired by the new auto-hinter module. */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used */ diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshglob.h b/reactos/lib/3rdparty/freetype/src/pshinter/pshglob.h index c376df7b9fc..45c957b6ef0 100644 --- a/reactos/lib/3rdparty/freetype/src/pshinter/pshglob.h +++ b/reactos/lib/3rdparty/freetype/src/pshinter/pshglob.h @@ -4,7 +4,7 @@ /* */ /* PostScript hinter global hinting management. */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __PSHGLOB_H__ -#define __PSHGLOB_H__ +#ifndef PSHGLOB_H_ +#define PSHGLOB_H_ #include FT_FREETYPE_H @@ -190,7 +190,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PSHGLOB_H__ */ +#endif /* PSHGLOB_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshinter.c b/reactos/lib/3rdparty/freetype/src/pshinter/pshinter.c index 9e65fe2a424..614e0bb3d82 100644 --- a/reactos/lib/3rdparty/freetype/src/pshinter/pshinter.c +++ b/reactos/lib/3rdparty/freetype/src/pshinter/pshinter.c @@ -4,7 +4,7 @@ /* */ /* FreeType PostScript Hinting module */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshmod.c b/reactos/lib/3rdparty/freetype/src/pshinter/pshmod.c index 961b4685060..fa4ad1f5641 100644 --- a/reactos/lib/3rdparty/freetype/src/pshinter/pshmod.c +++ b/reactos/lib/3rdparty/freetype/src/pshinter/pshmod.c @@ -4,7 +4,7 @@ /* */ /* FreeType PostScript hinter module implementation (body). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshmod.h b/reactos/lib/3rdparty/freetype/src/pshinter/pshmod.h index a58d8565337..39112a95613 100644 --- a/reactos/lib/3rdparty/freetype/src/pshinter/pshmod.h +++ b/reactos/lib/3rdparty/freetype/src/pshinter/pshmod.h @@ -4,7 +4,7 @@ /* */ /* PostScript hinter module interface (specification). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __PSHMOD_H__ -#define __PSHMOD_H__ +#ifndef PSHMOD_H_ +#define PSHMOD_H_ #include @@ -33,7 +33,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PSHMOD_H__ */ +#endif /* PSHMOD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshnterr.h b/reactos/lib/3rdparty/freetype/src/pshinter/pshnterr.h index ce790a8ef51..7a94588b872 100644 --- a/reactos/lib/3rdparty/freetype/src/pshinter/pshnterr.h +++ b/reactos/lib/3rdparty/freetype/src/pshinter/pshnterr.h @@ -4,7 +4,7 @@ /* */ /* PS Hinter error codes (specification only). */ /* */ -/* Copyright 2003-2015 by */ +/* Copyright 2003-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -22,12 +22,12 @@ /* */ /*************************************************************************/ -#ifndef __PSHNTERR_H__ -#define __PSHNTERR_H__ +#ifndef PSHNTERR_H_ +#define PSHNTERR_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX PSH_Err_ @@ -35,7 +35,7 @@ #include FT_ERRORS_H -#endif /* __PSHNTERR_H__ */ +#endif /* PSHNTERR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshpic.c b/reactos/lib/3rdparty/freetype/src/pshinter/pshpic.c index afd8fb9678e..d0a3d8ebc99 100644 --- a/reactos/lib/3rdparty/freetype/src/pshinter/pshpic.c +++ b/reactos/lib/3rdparty/freetype/src/pshinter/pshpic.c @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for pshinter module. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshpic.h b/reactos/lib/3rdparty/freetype/src/pshinter/pshpic.h index ca35cd6fa9f..75ee5735440 100644 --- a/reactos/lib/3rdparty/freetype/src/pshinter/pshpic.h +++ b/reactos/lib/3rdparty/freetype/src/pshinter/pshpic.h @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for pshinter module. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __PSHPIC_H__ -#define __PSHPIC_H__ +#ifndef PSHPIC_H_ +#define PSHPIC_H_ #include FT_INTERNAL_PIC_H @@ -57,7 +57,7 @@ FT_END_HEADER /* */ -#endif /* __PSHPIC_H__ */ +#endif /* PSHPIC_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshrec.c b/reactos/lib/3rdparty/freetype/src/pshinter/pshrec.c index f8895fc8d63..d7cc4a0d210 100644 --- a/reactos/lib/3rdparty/freetype/src/pshinter/pshrec.c +++ b/reactos/lib/3rdparty/freetype/src/pshinter/pshrec.c @@ -4,7 +4,7 @@ /* */ /* FreeType PostScript hints recorder (body). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshrec.h b/reactos/lib/3rdparty/freetype/src/pshinter/pshrec.h index 2b1ad949368..97e6f0ed51e 100644 --- a/reactos/lib/3rdparty/freetype/src/pshinter/pshrec.h +++ b/reactos/lib/3rdparty/freetype/src/pshinter/pshrec.h @@ -4,7 +4,7 @@ /* */ /* Postscript (Type1/Type2) hints recorder (specification). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -28,8 +28,8 @@ /**************************************************************************/ -#ifndef __PSHREC_H__ -#define __PSHREC_H__ +#ifndef PSHREC_H_ +#define PSHREC_H_ #include @@ -166,7 +166,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PS_HINTER_RECORD_H__ */ +#endif /* PSHREC_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/psnames/psmodule.c b/reactos/lib/3rdparty/freetype/src/psnames/psmodule.c index 5406098db33..345402d7cc8 100644 --- a/reactos/lib/3rdparty/freetype/src/psnames/psmodule.c +++ b/reactos/lib/3rdparty/freetype/src/psnames/psmodule.c @@ -4,7 +4,7 @@ /* */ /* PSNames module implementation (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/psnames/psmodule.h b/reactos/lib/3rdparty/freetype/src/psnames/psmodule.h index f85f322193a..ee3c6cb631a 100644 --- a/reactos/lib/3rdparty/freetype/src/psnames/psmodule.h +++ b/reactos/lib/3rdparty/freetype/src/psnames/psmodule.h @@ -4,7 +4,7 @@ /* */ /* High-level PSNames module interface (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __PSMODULE_H__ -#define __PSMODULE_H__ +#ifndef PSMODULE_H_ +#define PSMODULE_H_ #include @@ -32,7 +32,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PSMODULE_H__ */ +#endif /* PSMODULE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/psnames/psnamerr.h b/reactos/lib/3rdparty/freetype/src/psnames/psnamerr.h index 09cc247b7d9..3a9f65323b8 100644 --- a/reactos/lib/3rdparty/freetype/src/psnames/psnamerr.h +++ b/reactos/lib/3rdparty/freetype/src/psnames/psnamerr.h @@ -4,7 +4,7 @@ /* */ /* PS names module error codes (specification only). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -23,12 +23,12 @@ /* */ /*************************************************************************/ -#ifndef __PSNAMERR_H__ -#define __PSNAMERR_H__ +#ifndef PSNAMERR_H_ +#define PSNAMERR_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX PSnames_Err_ @@ -36,7 +36,7 @@ #include FT_ERRORS_H -#endif /* __PSNAMERR_H__ */ +#endif /* PSNAMERR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/psnames/psnames.c b/reactos/lib/3rdparty/freetype/src/psnames/psnames.c index a4385961e5a..e7b2c0b5ef8 100644 --- a/reactos/lib/3rdparty/freetype/src/psnames/psnames.c +++ b/reactos/lib/3rdparty/freetype/src/psnames/psnames.c @@ -4,7 +4,7 @@ /* */ /* FreeType PSNames module component (body only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/psnames/pspic.c b/reactos/lib/3rdparty/freetype/src/psnames/pspic.c index 1394f977e00..a78ec5aa81e 100644 --- a/reactos/lib/3rdparty/freetype/src/psnames/pspic.c +++ b/reactos/lib/3rdparty/freetype/src/psnames/pspic.c @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for psnames module. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/psnames/pspic.h b/reactos/lib/3rdparty/freetype/src/psnames/pspic.h index 443225af615..48348765cf0 100644 --- a/reactos/lib/3rdparty/freetype/src/psnames/pspic.h +++ b/reactos/lib/3rdparty/freetype/src/psnames/pspic.h @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for psnames module. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __PSPIC_H__ -#define __PSPIC_H__ +#ifndef PSPIC_H_ +#define PSPIC_H_ #include FT_INTERNAL_PIC_H @@ -62,7 +62,7 @@ FT_END_HEADER /* */ -#endif /* __PSPIC_H__ */ +#endif /* PSPIC_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/psnames/pstables.h b/reactos/lib/3rdparty/freetype/src/psnames/pstables.h index 3f31c31b189..eb827fa5eae 100644 --- a/reactos/lib/3rdparty/freetype/src/psnames/pstables.h +++ b/reactos/lib/3rdparty/freetype/src/psnames/pstables.h @@ -4,7 +4,7 @@ /* */ /* PostScript glyph names. */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/raster/ftmisc.h b/reactos/lib/3rdparty/freetype/src/raster/ftmisc.h index b87e0b62b72..981ce32279c 100644 --- a/reactos/lib/3rdparty/freetype/src/raster/ftmisc.h +++ b/reactos/lib/3rdparty/freetype/src/raster/ftmisc.h @@ -5,7 +5,7 @@ /* Miscellaneous macros for stand-alone rasterizer (specification */ /* only). */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used */ @@ -24,8 +24,8 @@ /* */ /***************************************************/ -#ifndef __FTMISC_H__ -#define __FTMISC_H__ +#ifndef FTMISC_H_ +#define FTMISC_H_ /* memset */ @@ -136,7 +136,7 @@ return ( s > 0 ) ? d : -d; } -#endif /* __FTMISC_H__ */ +#endif /* FTMISC_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/raster/ftraster.c b/reactos/lib/3rdparty/freetype/src/raster/ftraster.c index fdd206d9ae5..cde5a504352 100644 --- a/reactos/lib/3rdparty/freetype/src/raster/ftraster.c +++ b/reactos/lib/3rdparty/freetype/src/raster/ftraster.c @@ -4,7 +4,7 @@ /* */ /* The FreeType glyph rasterizer (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -18,7 +18,7 @@ /*************************************************************************/ /* */ /* This file can be compiled without the rest of the FreeType engine, by */ - /* defining the _STANDALONE_ macro when compiling it. You also need to */ + /* defining the STANDALONE_ macro when compiling it. You also need to */ /* put the files `ftimage.h' and `ftmisc.h' into the $(incdir) */ /* directory. Typically, you should do something like */ /* */ @@ -27,9 +27,9 @@ /* - copy `include/freetype/ftimage.h' and `src/raster/ftmisc.h' to your */ /* current directory */ /* */ - /* - compile `ftraster' with the _STANDALONE_ macro defined, as in */ + /* - compile `ftraster' with the STANDALONE_ macro defined, as in */ /* */ - /* cc -c -D_STANDALONE_ ftraster.c */ + /* cc -c -DSTANDALONE_ ftraster.c */ /* */ /* The renderer can be initialized with a call to */ /* `ft_standard_raster.raster_new'; a bitmap can be generated */ @@ -47,7 +47,7 @@ /* */ /*************************************************************************/ -#ifdef _STANDALONE_ +#ifdef STANDALONE_ /* The size in bytes of the render pool used by the scan-line converter */ /* to do all of its work. */ @@ -60,7 +60,7 @@ #include "ftmisc.h" #include "ftimage.h" -#else /* !_STANDALONE_ */ +#else /* !STANDALONE_ */ #include #include "ftraster.h" @@ -68,7 +68,7 @@ #include "rastpic.h" -#endif /* !_STANDALONE_ */ +#endif /* !STANDALONE_ */ /*************************************************************************/ @@ -173,7 +173,7 @@ #define FT_COMPONENT trace_raster -#ifdef _STANDALONE_ +#ifdef STANDALONE_ /* Auxiliary macros for token concatenation. */ #define FT_ERR_XCAT( x, y ) x ## y @@ -226,7 +226,7 @@ raster_done_ \ }; -#else /* !_STANDALONE_ */ +#else /* !STANDALONE_ */ #include FT_INTERNAL_OBJECTS_H @@ -242,7 +242,7 @@ #define Raster_Err_Unsupported Raster_Err_Cannot_Render_Glyph -#endif /* !_STANDALONE_ */ +#endif /* !STANDALONE_ */ #ifndef FT_MEM_SET @@ -3041,7 +3041,7 @@ /**** a static object. *****/ -#ifdef _STANDALONE_ +#ifdef STANDALONE_ static int @@ -3068,7 +3068,7 @@ } -#else /* !_STANDALONE_ */ +#else /* !STANDALONE_ */ static int @@ -3102,7 +3102,7 @@ } -#endif /* !_STANDALONE_ */ +#endif /* !STANDALONE_ */ static void diff --git a/reactos/lib/3rdparty/freetype/src/raster/ftraster.h b/reactos/lib/3rdparty/freetype/src/raster/ftraster.h index a270d487b93..65cd5f96098 100644 --- a/reactos/lib/3rdparty/freetype/src/raster/ftraster.h +++ b/reactos/lib/3rdparty/freetype/src/raster/ftraster.h @@ -4,7 +4,7 @@ /* */ /* The FreeType glyph rasterizer (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTRASTER_H__ -#define __FTRASTER_H__ +#ifndef FTRASTER_H_ +#define FTRASTER_H_ #include @@ -33,14 +33,14 @@ FT_BEGIN_HEADER /* Uncomment the following line if you are using ftraster.c as a */ /* standalone module, fully independent of FreeType. */ /* */ -/* #define _STANDALONE_ */ +/* #define STANDALONE_ */ FT_EXPORT_VAR( const FT_Raster_Funcs ) ft_standard_raster; FT_END_HEADER -#endif /* __FTRASTER_H__ */ +#endif /* FTRASTER_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/raster/ftrend1.c b/reactos/lib/3rdparty/freetype/src/raster/ftrend1.c index f3143928399..494f112234a 100644 --- a/reactos/lib/3rdparty/freetype/src/raster/ftrend1.c +++ b/reactos/lib/3rdparty/freetype/src/raster/ftrend1.c @@ -4,7 +4,7 @@ /* */ /* The FreeType glyph rasterizer interface (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/raster/ftrend1.h b/reactos/lib/3rdparty/freetype/src/raster/ftrend1.h index edc5d13f4cd..a431f185d25 100644 --- a/reactos/lib/3rdparty/freetype/src/raster/ftrend1.h +++ b/reactos/lib/3rdparty/freetype/src/raster/ftrend1.h @@ -4,7 +4,7 @@ /* */ /* The FreeType glyph rasterizer interface (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTREND1_H__ -#define __FTREND1_H__ +#ifndef FTREND1_H_ +#define FTREND1_H_ #include @@ -32,7 +32,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTREND1_H__ */ +#endif /* FTREND1_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/raster/raster.c b/reactos/lib/3rdparty/freetype/src/raster/raster.c index 21bb16de1e5..5b21dcbc6af 100644 --- a/reactos/lib/3rdparty/freetype/src/raster/raster.c +++ b/reactos/lib/3rdparty/freetype/src/raster/raster.c @@ -4,7 +4,7 @@ /* */ /* FreeType monochrome rasterer module component (body only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/raster/rasterrs.h b/reactos/lib/3rdparty/freetype/src/raster/rasterrs.h index e7f00bcace3..44da7fca566 100644 --- a/reactos/lib/3rdparty/freetype/src/raster/rasterrs.h +++ b/reactos/lib/3rdparty/freetype/src/raster/rasterrs.h @@ -4,7 +4,7 @@ /* */ /* monochrome renderer error codes (specification only). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -23,12 +23,12 @@ /* */ /*************************************************************************/ -#ifndef __RASTERRS_H__ -#define __RASTERRS_H__ +#ifndef RASTERRS_H_ +#define RASTERRS_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX Raster_Err_ @@ -36,7 +36,7 @@ #include FT_ERRORS_H -#endif /* __RASTERRS_H__ */ +#endif /* RASTERRS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/raster/rastpic.c b/reactos/lib/3rdparty/freetype/src/raster/rastpic.c index 77e7ec3f903..dcfa92eef72 100644 --- a/reactos/lib/3rdparty/freetype/src/raster/rastpic.c +++ b/reactos/lib/3rdparty/freetype/src/raster/rastpic.c @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for raster module. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/raster/rastpic.h b/reactos/lib/3rdparty/freetype/src/raster/rastpic.h index 408996a9089..7815876383a 100644 --- a/reactos/lib/3rdparty/freetype/src/raster/rastpic.h +++ b/reactos/lib/3rdparty/freetype/src/raster/rastpic.h @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for raster module. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __RASTPIC_H__ -#define __RASTPIC_H__ +#ifndef RASTPIC_H_ +#define RASTPIC_H_ #include FT_INTERNAL_PIC_H @@ -57,7 +57,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __RASTPIC_H__ */ +#endif /* RASTPIC_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/pngshim.c b/reactos/lib/3rdparty/freetype/src/sfnt/pngshim.c index ea60452635a..2815759ccb1 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/pngshim.c +++ b/reactos/lib/3rdparty/freetype/src/sfnt/pngshim.c @@ -4,7 +4,7 @@ /* */ /* PNG Bitmap glyph support. */ /* */ -/* Copyright 2013-2015 by */ +/* Copyright 2013-2016 by */ /* Google, Inc. */ /* Written by Stuart Gill and Behdad Esfahbod. */ /* */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/pngshim.h b/reactos/lib/3rdparty/freetype/src/sfnt/pngshim.h index 4cc5c2b3a05..ff05871332b 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/pngshim.h +++ b/reactos/lib/3rdparty/freetype/src/sfnt/pngshim.h @@ -4,7 +4,7 @@ /* */ /* PNG Bitmap glyph support. */ /* */ -/* Copyright 2013-2015 by */ +/* Copyright 2013-2016 by */ /* Google, Inc. */ /* Written by Stuart Gill and Behdad Esfahbod. */ /* */ @@ -17,8 +17,8 @@ /***************************************************************************/ -#ifndef __PNGSHIM_H__ -#define __PNGSHIM_H__ +#ifndef PNGSHIM_H_ +#define PNGSHIM_H_ #include @@ -44,7 +44,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __PNGSHIM_H__ */ +#endif /* PNGSHIM_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/sfdriver.c b/reactos/lib/3rdparty/freetype/src/sfnt/sfdriver.c index 5dd84492dee..47e89677527 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/sfdriver.c +++ b/reactos/lib/3rdparty/freetype/src/sfnt/sfdriver.c @@ -4,7 +4,7 @@ /* */ /* High-level SFNT driver interface (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/sfdriver.h b/reactos/lib/3rdparty/freetype/src/sfnt/sfdriver.h index 944119cc228..2694488e207 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/sfdriver.h +++ b/reactos/lib/3rdparty/freetype/src/sfnt/sfdriver.h @@ -4,7 +4,7 @@ /* */ /* High-level SFNT driver interface (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SFDRIVER_H__ -#define __SFDRIVER_H__ +#ifndef SFDRIVER_H_ +#define SFDRIVER_H_ #include @@ -32,7 +32,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SFDRIVER_H__ */ +#endif /* SFDRIVER_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/sferrors.h b/reactos/lib/3rdparty/freetype/src/sfnt/sferrors.h index e3bef3f743b..c2f9fdfeadd 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/sferrors.h +++ b/reactos/lib/3rdparty/freetype/src/sfnt/sferrors.h @@ -4,7 +4,7 @@ /* */ /* SFNT error codes (specification only). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -22,12 +22,12 @@ /* */ /*************************************************************************/ -#ifndef __SFERRORS_H__ -#define __SFERRORS_H__ +#ifndef SFERRORS_H_ +#define SFERRORS_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX SFNT_Err_ @@ -35,6 +35,7 @@ #include FT_ERRORS_H -#endif /* __SFERRORS_H__ */ +#endif /* SFERRORS_H_ */ + /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/sfnt.c b/reactos/lib/3rdparty/freetype/src/sfnt/sfnt.c index 0b8b5f45785..952d6d425aa 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/sfnt.c +++ b/reactos/lib/3rdparty/freetype/src/sfnt/sfnt.c @@ -4,7 +4,7 @@ /* */ /* Single object library component. */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/sfntpic.c b/reactos/lib/3rdparty/freetype/src/sfnt/sfntpic.c index 2aaf4bcc40a..1f596c09363 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/sfntpic.c +++ b/reactos/lib/3rdparty/freetype/src/sfnt/sfntpic.c @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for sfnt module. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/sfntpic.h b/reactos/lib/3rdparty/freetype/src/sfnt/sfntpic.h index d99be6a8248..5ce96d39389 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/sfntpic.h +++ b/reactos/lib/3rdparty/freetype/src/sfnt/sfntpic.h @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for sfnt module. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SFNTPIC_H__ -#define __SFNTPIC_H__ +#ifndef SFNTPIC_H_ +#define SFNTPIC_H_ #include FT_INTERNAL_PIC_H @@ -106,7 +106,7 @@ FT_END_HEADER /* */ -#endif /* __SFNTPIC_H__ */ +#endif /* SFNTPIC_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/sfobjs.c b/reactos/lib/3rdparty/freetype/src/sfnt/sfobjs.c index de030eafe16..2cf2ee2a6f3 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/sfobjs.c +++ b/reactos/lib/3rdparty/freetype/src/sfnt/sfobjs.c @@ -4,7 +4,7 @@ /* */ /* SFNT object management (base). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/sfobjs.h b/reactos/lib/3rdparty/freetype/src/sfnt/sfobjs.h index 455f86772f8..60b5698edd1 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/sfobjs.h +++ b/reactos/lib/3rdparty/freetype/src/sfnt/sfobjs.h @@ -4,7 +4,7 @@ /* */ /* SFNT object management (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SFOBJS_H__ -#define __SFOBJS_H__ +#ifndef SFOBJS_H_ +#define SFOBJS_H_ #include @@ -53,7 +53,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SFDRIVER_H__ */ +#endif /* SFDRIVER_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttbdf.c b/reactos/lib/3rdparty/freetype/src/sfnt/ttbdf.c index 098b781a146..f891691118d 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/ttbdf.c +++ b/reactos/lib/3rdparty/freetype/src/sfnt/ttbdf.c @@ -4,7 +4,7 @@ /* */ /* TrueType and OpenType embedded BDF properties (body). */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttbdf.h b/reactos/lib/3rdparty/freetype/src/sfnt/ttbdf.h index fe4ba489e8d..ae521c60b67 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/ttbdf.h +++ b/reactos/lib/3rdparty/freetype/src/sfnt/ttbdf.h @@ -4,7 +4,7 @@ /* */ /* TrueType and OpenType embedded BDF properties (specification). */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __TTBDF_H__ -#define __TTBDF_H__ +#ifndef TTBDF_H_ +#define TTBDF_H_ #include @@ -40,7 +40,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTBDF_H__ */ +#endif /* TTBDF_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttcmap.c b/reactos/lib/3rdparty/freetype/src/sfnt/ttcmap.c index 2b1337f11be..92ec52396ca 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/ttcmap.c +++ b/reactos/lib/3rdparty/freetype/src/sfnt/ttcmap.c @@ -4,7 +4,7 @@ /* */ /* TrueType character mapping table (cmap) support (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttcmap.h b/reactos/lib/3rdparty/freetype/src/sfnt/ttcmap.h index b7ea8ee3773..2273cbd9614 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/ttcmap.h +++ b/reactos/lib/3rdparty/freetype/src/sfnt/ttcmap.h @@ -4,7 +4,7 @@ /* */ /* TrueType character mapping table (cmap) support (specification). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __TTCMAP_H__ -#define __TTCMAP_H__ +#ifndef TTCMAP_H_ +#define TTCMAP_H_ #include @@ -152,7 +152,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTCMAP_H__ */ +#endif /* TTCMAP_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttcmapc.h b/reactos/lib/3rdparty/freetype/src/sfnt/ttcmapc.h index 4a489402cff..7c732fbd365 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/ttcmapc.h +++ b/reactos/lib/3rdparty/freetype/src/sfnt/ttcmapc.h @@ -4,7 +4,7 @@ /* */ /* TT CMAP classes definitions (specification only). */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttkern.c b/reactos/lib/3rdparty/freetype/src/sfnt/ttkern.c index 4fccc535ced..6f9fa522d5e 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/ttkern.c +++ b/reactos/lib/3rdparty/freetype/src/sfnt/ttkern.c @@ -5,7 +5,7 @@ /* Load the basic TrueType kerning table. This doesn't handle */ /* kerning data within the GPOS table at the moment. */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttkern.h b/reactos/lib/3rdparty/freetype/src/sfnt/ttkern.h index 89cb24f07ce..85dd5c31ae8 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/ttkern.h +++ b/reactos/lib/3rdparty/freetype/src/sfnt/ttkern.h @@ -5,7 +5,7 @@ /* Load the basic TrueType kerning table. This doesn't handle */ /* kerning data within the GPOS table at the moment. */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,8 +17,8 @@ /***************************************************************************/ -#ifndef __TTKERN_H__ -#define __TTKERN_H__ +#ifndef TTKERN_H_ +#define TTKERN_H_ #include @@ -46,7 +46,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTKERN_H__ */ +#endif /* TTKERN_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttload.c b/reactos/lib/3rdparty/freetype/src/sfnt/ttload.c index 0f3b0a83368..2f5b2c38438 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/ttload.c +++ b/reactos/lib/3rdparty/freetype/src/sfnt/ttload.c @@ -5,7 +5,7 @@ /* Load the basic TrueType tables, i.e., tables that can be either in */ /* TTF or OTF fonts (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -460,7 +460,7 @@ entry.CheckSum )); #endif - /* ignore duplicate tables – the first one wins */ + /* ignore duplicate tables – the first one wins */ duplicate = 0; for ( i = 0; i < valid_entries; i++ ) { diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttload.h b/reactos/lib/3rdparty/freetype/src/sfnt/ttload.h index a6d91c5b702..bec42b94b4d 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/ttload.h +++ b/reactos/lib/3rdparty/freetype/src/sfnt/ttload.h @@ -5,7 +5,7 @@ /* Load the basic TrueType tables, i.e., tables that can be either in */ /* TTF or OTF fonts (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,8 +17,8 @@ /***************************************************************************/ -#ifndef __TTLOAD_H__ -#define __TTLOAD_H__ +#ifndef TTLOAD_H_ +#define TTLOAD_H_ #include @@ -106,7 +106,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTLOAD_H__ */ +#endif /* TTLOAD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttmtx.c b/reactos/lib/3rdparty/freetype/src/sfnt/ttmtx.c index 58309aa496e..186f873dae1 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/ttmtx.c +++ b/reactos/lib/3rdparty/freetype/src/sfnt/ttmtx.c @@ -4,7 +4,7 @@ /* */ /* Load the metrics tables common to TTF and OTF fonts (body). */ /* */ -/* Copyright 2006-2015 by */ +/* Copyright 2006-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttmtx.h b/reactos/lib/3rdparty/freetype/src/sfnt/ttmtx.h index 096ee062cf0..78395def330 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/ttmtx.h +++ b/reactos/lib/3rdparty/freetype/src/sfnt/ttmtx.h @@ -4,7 +4,7 @@ /* */ /* Load the metrics tables common to TTF and OTF fonts (specification). */ /* */ -/* Copyright 2006-2015 by */ +/* Copyright 2006-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __TTMTX_H__ -#define __TTMTX_H__ +#ifndef TTMTX_H_ +#define TTMTX_H_ #include @@ -49,7 +49,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTMTX_H__ */ +#endif /* TTMTX_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttpost.c b/reactos/lib/3rdparty/freetype/src/sfnt/ttpost.c index 8d29d1e9f6d..f228f628e60 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/ttpost.c +++ b/reactos/lib/3rdparty/freetype/src/sfnt/ttpost.c @@ -5,7 +5,7 @@ /* Postcript name table processing for TrueType and OpenType fonts */ /* (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttpost.h b/reactos/lib/3rdparty/freetype/src/sfnt/ttpost.h index e3eca02c623..93762b045b7 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/ttpost.h +++ b/reactos/lib/3rdparty/freetype/src/sfnt/ttpost.h @@ -5,7 +5,7 @@ /* Postcript name table processing for TrueType and OpenType fonts */ /* (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -17,8 +17,8 @@ /***************************************************************************/ -#ifndef __TTPOST_H__ -#define __TTPOST_H__ +#ifndef TTPOST_H_ +#define TTPOST_H_ #include @@ -40,7 +40,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTPOST_H__ */ +#endif /* TTPOST_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttsbit.c b/reactos/lib/3rdparty/freetype/src/sfnt/ttsbit.c index 09260b8e33e..e24e7d6cdd8 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/ttsbit.c +++ b/reactos/lib/3rdparty/freetype/src/sfnt/ttsbit.c @@ -4,7 +4,7 @@ /* */ /* TrueType and OpenType embedded bitmap support (body). */ /* */ -/* Copyright 2005-2015 by */ +/* Copyright 2005-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* Copyright 2013 by Google, Inc. */ diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttsbit.h b/reactos/lib/3rdparty/freetype/src/sfnt/ttsbit.h index d4e13aefb8d..d8a81670839 100644 --- a/reactos/lib/3rdparty/freetype/src/sfnt/ttsbit.h +++ b/reactos/lib/3rdparty/freetype/src/sfnt/ttsbit.h @@ -4,7 +4,7 @@ /* */ /* TrueType and OpenType embedded bitmap support (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __TTSBIT_H__ -#define __TTSBIT_H__ +#ifndef TTSBIT_H_ +#define TTSBIT_H_ #include @@ -57,7 +57,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTSBIT_H__ */ +#endif /* TTSBIT_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/smooth/ftgrays.c b/reactos/lib/3rdparty/freetype/src/smooth/ftgrays.c index 9d6dec6e8ed..258cde9b260 100644 --- a/reactos/lib/3rdparty/freetype/src/smooth/ftgrays.c +++ b/reactos/lib/3rdparty/freetype/src/smooth/ftgrays.c @@ -4,7 +4,7 @@ /* */ /* A new `perfect' anti-aliasing renderer (body). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -18,7 +18,7 @@ /*************************************************************************/ /* */ /* This file can be compiled without the rest of the FreeType engine, by */ - /* defining the _STANDALONE_ macro when compiling it. You also need to */ + /* defining the STANDALONE_ macro when compiling it. You also need to */ /* put the files `ftgrays.h' and `ftimage.h' into the current */ /* compilation directory. Typically, you could do something like */ /* */ @@ -27,9 +27,9 @@ /* - copy `include/freetype/ftimage.h' and `src/smooth/ftgrays.h' to the */ /* same directory */ /* */ - /* - compile `ftgrays' with the _STANDALONE_ macro defined, as in */ + /* - compile `ftgrays' with the STANDALONE_ macro defined, as in */ /* */ - /* cc -c -D_STANDALONE_ ftgrays.c */ + /* cc -c -DSTANDALONE_ ftgrays.c */ /* */ /* The renderer can be initialized with a call to */ /* `ft_gray_raster.raster_new'; an anti-aliased bitmap can be generated */ @@ -91,7 +91,7 @@ #define FT_COMPONENT trace_smooth -#ifdef _STANDALONE_ +#ifdef STANDALONE_ /* The size in bytes of the render pool used by the scan-line converter */ @@ -256,7 +256,7 @@ typedef ptrdiff_t FT_PtrDist; }; -#else /* !_STANDALONE_ */ +#else /* !STANDALONE_ */ #include @@ -274,7 +274,7 @@ typedef ptrdiff_t FT_PtrDist; #define ErrRaster_Memory_Overflow Smooth_Err_Out_Of_Memory -#endif /* !_STANDALONE_ */ +#endif /* !STANDALONE_ */ #ifndef FT_MEM_SET @@ -1601,7 +1601,7 @@ typedef ptrdiff_t FT_PtrDist; } -#ifdef _STANDALONE_ +#ifdef STANDALONE_ /*************************************************************************/ /* */ @@ -1883,7 +1883,7 @@ typedef ptrdiff_t FT_PtrDist; return FT_THROW( Invalid_Outline ); } -#endif /* _STANDALONE_ */ +#endif /* STANDALONE_ */ typedef struct gray_TBand_ @@ -2184,7 +2184,7 @@ typedef ptrdiff_t FT_PtrDist; /**** RASTER OBJECT CREATION: In stand-alone mode, we simply use *****/ /**** a static object. *****/ -#ifdef _STANDALONE_ +#ifdef STANDALONE_ static int gray_raster_new( void* memory, @@ -2209,7 +2209,7 @@ typedef ptrdiff_t FT_PtrDist; FT_UNUSED( raster ); } -#else /* !_STANDALONE_ */ +#else /* !STANDALONE_ */ static int gray_raster_new( FT_Memory memory, @@ -2239,7 +2239,7 @@ typedef ptrdiff_t FT_PtrDist; FT_FREE( raster ); } -#endif /* !_STANDALONE_ */ +#endif /* !STANDALONE_ */ static void diff --git a/reactos/lib/3rdparty/freetype/src/smooth/ftgrays.h b/reactos/lib/3rdparty/freetype/src/smooth/ftgrays.h index 1b5760330c4..21c2badcafb 100644 --- a/reactos/lib/3rdparty/freetype/src/smooth/ftgrays.h +++ b/reactos/lib/3rdparty/freetype/src/smooth/ftgrays.h @@ -4,7 +4,7 @@ /* */ /* FreeType smooth renderer declaration */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,15 +16,15 @@ /***************************************************************************/ -#ifndef __FTGRAYS_H__ -#define __FTGRAYS_H__ +#ifndef FTGRAYS_H_ +#define FTGRAYS_H_ #ifdef __cplusplus extern "C" { #endif -#ifdef _STANDALONE_ +#ifdef STANDALONE_ #include "ftimage.h" #else #include @@ -52,7 +52,7 @@ } #endif -#endif /* __FTGRAYS_H__ */ +#endif /* FTGRAYS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/smooth/ftsmerrs.h b/reactos/lib/3rdparty/freetype/src/smooth/ftsmerrs.h index cc38aa1996e..a759b91c173 100644 --- a/reactos/lib/3rdparty/freetype/src/smooth/ftsmerrs.h +++ b/reactos/lib/3rdparty/freetype/src/smooth/ftsmerrs.h @@ -4,7 +4,7 @@ /* */ /* smooth renderer error codes (specification only). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -23,12 +23,12 @@ /* */ /*************************************************************************/ -#ifndef __FTSMERRS_H__ -#define __FTSMERRS_H__ +#ifndef FTSMERRS_H_ +#define FTSMERRS_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX Smooth_Err_ @@ -36,7 +36,7 @@ #include FT_ERRORS_H -#endif /* __FTSMERRS_H__ */ +#endif /* FTSMERRS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/smooth/ftsmooth.c b/reactos/lib/3rdparty/freetype/src/smooth/ftsmooth.c index 36205505340..79276765b1b 100644 --- a/reactos/lib/3rdparty/freetype/src/smooth/ftsmooth.c +++ b/reactos/lib/3rdparty/freetype/src/smooth/ftsmooth.c @@ -4,7 +4,7 @@ /* */ /* Anti-aliasing renderer interface (body). */ /* */ -/* Copyright 2000-2015 by */ +/* Copyright 2000-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/smooth/ftsmooth.h b/reactos/lib/3rdparty/freetype/src/smooth/ftsmooth.h index 765018c239b..c7c28c244ca 100644 --- a/reactos/lib/3rdparty/freetype/src/smooth/ftsmooth.h +++ b/reactos/lib/3rdparty/freetype/src/smooth/ftsmooth.h @@ -4,7 +4,7 @@ /* */ /* Anti-aliasing renderer interface (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTSMOOTH_H__ -#define __FTSMOOTH_H__ +#ifndef FTSMOOTH_H_ +#define FTSMOOTH_H_ #include @@ -43,7 +43,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTSMOOTH_H__ */ +#endif /* FTSMOOTH_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/smooth/ftspic.c b/reactos/lib/3rdparty/freetype/src/smooth/ftspic.c index 8e6ed57eecb..6c2b2329b30 100644 --- a/reactos/lib/3rdparty/freetype/src/smooth/ftspic.c +++ b/reactos/lib/3rdparty/freetype/src/smooth/ftspic.c @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for smooth module. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/smooth/ftspic.h b/reactos/lib/3rdparty/freetype/src/smooth/ftspic.h index 071afcff203..fe761527703 100644 --- a/reactos/lib/3rdparty/freetype/src/smooth/ftspic.h +++ b/reactos/lib/3rdparty/freetype/src/smooth/ftspic.h @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for smooth module. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTSPIC_H__ -#define __FTSPIC_H__ +#ifndef FTSPIC_H_ +#define FTSPIC_H_ #include FT_INTERNAL_PIC_H @@ -69,7 +69,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __FTSPIC_H__ */ +#endif /* FTSPIC_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/smooth/smooth.c b/reactos/lib/3rdparty/freetype/src/smooth/smooth.c index 4ca4344c892..97ca3e59952 100644 --- a/reactos/lib/3rdparty/freetype/src/smooth/smooth.c +++ b/reactos/lib/3rdparty/freetype/src/smooth/smooth.c @@ -4,7 +4,7 @@ /* */ /* FreeType anti-aliasing rasterer module component (body only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/tools/afblue.pl b/reactos/lib/3rdparty/freetype/src/tools/afblue.pl index 56b6452348f..39fe5c584a8 100644 --- a/reactos/lib/3rdparty/freetype/src/tools/afblue.pl +++ b/reactos/lib/3rdparty/freetype/src/tools/afblue.pl @@ -5,7 +5,7 @@ # # Process a blue zone character data file. # -# Copyright 2013-2015 by +# Copyright 2013-2016 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, @@ -38,7 +38,8 @@ my $curr_max; # Name of the current maximum value. my $curr_enum_element; # Name of the current enumeration element. my $curr_offset; # The offset relative to current aux. variable. -my $curr_elem_size; # The size of the current string or block. +my $curr_elem_size; # The number of non-space characters in the current string or + # the number of elements in the current block. my $have_sections = 0; # Boolean; set if start of a section has been seen. my $have_strings; # Boolean; set if current section contains strings. @@ -159,12 +160,14 @@ sub convert_ascii_chars # A series of ASCII characters in the printable range. my $s = shift; - # We ignore spaces. - $s =~ s/ //g; + # We reduce multiple space characters to a single one. + $s =~ s/ +/ /g; - my $count = $s =~ s/\G(.)/'$1', /g; - $curr_offset += $count; - $curr_elem_size += $count; + # Count all non-space characters. Note that `()' applies a list context + # to the capture that is used to count the elements. + $curr_elem_size += () = $s =~ /[^ ]/g; + + $curr_offset += $s =~ s/\G(.)/'$1', /g; return $s; } diff --git a/reactos/lib/3rdparty/freetype/src/tools/docmaker/content.py b/reactos/lib/3rdparty/freetype/src/tools/docmaker/content.py index 2f60ce6f4f6..438345c4119 100644 --- a/reactos/lib/3rdparty/freetype/src/tools/docmaker/content.py +++ b/reactos/lib/3rdparty/freetype/src/tools/docmaker/content.py @@ -3,7 +3,7 @@ # # Parse comment blocks to build content blocks (library file). # -# Copyright 2002-2015 by +# Copyright 2002-2016 by # David Turner. # # This file is part of the FreeType project, and may only be used, diff --git a/reactos/lib/3rdparty/freetype/src/tools/docmaker/docmaker.py b/reactos/lib/3rdparty/freetype/src/tools/docmaker/docmaker.py index de82d930f5f..aa889966469 100644 --- a/reactos/lib/3rdparty/freetype/src/tools/docmaker/docmaker.py +++ b/reactos/lib/3rdparty/freetype/src/tools/docmaker/docmaker.py @@ -4,7 +4,7 @@ # # Convert source code markup to HTML documentation. # -# Copyright 2002-2015 by +# Copyright 2002-2016 by # David Turner. # # This file is part of the FreeType project, and may only be used, diff --git a/reactos/lib/3rdparty/freetype/src/tools/docmaker/formatter.py b/reactos/lib/3rdparty/freetype/src/tools/docmaker/formatter.py index 866973919ce..c47589048bf 100644 --- a/reactos/lib/3rdparty/freetype/src/tools/docmaker/formatter.py +++ b/reactos/lib/3rdparty/freetype/src/tools/docmaker/formatter.py @@ -3,7 +3,7 @@ # # Convert parsed content blocks to a structured document (library file). # -# Copyright 2002-2015 by +# Copyright 2002-2016 by # David Turner. # # This file is part of the FreeType project, and may only be used, diff --git a/reactos/lib/3rdparty/freetype/src/tools/docmaker/sources.py b/reactos/lib/3rdparty/freetype/src/tools/docmaker/sources.py index 9a4777d3ceb..3d30c727725 100644 --- a/reactos/lib/3rdparty/freetype/src/tools/docmaker/sources.py +++ b/reactos/lib/3rdparty/freetype/src/tools/docmaker/sources.py @@ -3,7 +3,7 @@ # # Convert source code comments to multi-line blocks (library file). # -# Copyright 2002-2015 by +# Copyright 2002-2016 by # David Turner. # # This file is part of the FreeType project, and may only be used, diff --git a/reactos/lib/3rdparty/freetype/src/tools/docmaker/tohtml.py b/reactos/lib/3rdparty/freetype/src/tools/docmaker/tohtml.py index a7206f5e8a2..8da10b8a52c 100644 --- a/reactos/lib/3rdparty/freetype/src/tools/docmaker/tohtml.py +++ b/reactos/lib/3rdparty/freetype/src/tools/docmaker/tohtml.py @@ -3,7 +3,7 @@ # # A sub-class container of the `Formatter' class to produce HTML. # -# Copyright 2002-2015 by +# Copyright 2002-2016 by # David Turner. # # This file is part of the FreeType project, and may only be used, diff --git a/reactos/lib/3rdparty/freetype/src/tools/docmaker/utils.py b/reactos/lib/3rdparty/freetype/src/tools/docmaker/utils.py index 254083e92e9..cbba9b874c6 100644 --- a/reactos/lib/3rdparty/freetype/src/tools/docmaker/utils.py +++ b/reactos/lib/3rdparty/freetype/src/tools/docmaker/utils.py @@ -3,7 +3,7 @@ # # Auxiliary functions for the `docmaker' tool (library file). # -# Copyright 2002-2015 by +# Copyright 2002-2016 by # David Turner. # # This file is part of the FreeType project, and may only be used, diff --git a/reactos/lib/3rdparty/freetype/src/tools/glnames.py b/reactos/lib/3rdparty/freetype/src/tools/glnames.py index 0ad554c72d1..0729c2b28d7 100644 --- a/reactos/lib/3rdparty/freetype/src/tools/glnames.py +++ b/reactos/lib/3rdparty/freetype/src/tools/glnames.py @@ -6,7 +6,7 @@ # -# Copyright 1996-2015 by +# Copyright 1996-2016 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/reactos/lib/3rdparty/freetype/src/truetype/truetype.c b/reactos/lib/3rdparty/freetype/src/truetype/truetype.c index f929437dc17..23e2ea00a74 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/truetype.c +++ b/reactos/lib/3rdparty/freetype/src/truetype/truetype.c @@ -4,7 +4,7 @@ /* */ /* FreeType TrueType driver component (body only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttdriver.c b/reactos/lib/3rdparty/freetype/src/truetype/ttdriver.c index 1ba71f0ebd4..bbebabdadb2 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/ttdriver.c +++ b/reactos/lib/3rdparty/freetype/src/truetype/ttdriver.c @@ -4,7 +4,7 @@ /* */ /* TrueType font driver implementation (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -194,7 +194,7 @@ FT_Fixed *advances ) { FT_UInt nn; - TT_Face face = (TT_Face) ttface; + TT_Face face = (TT_Face) ttface; /* XXX: TODO: check for sbits */ @@ -228,6 +228,7 @@ return FT_Err_Ok; } + /*************************************************************************/ /*************************************************************************/ /*************************************************************************/ @@ -429,11 +430,7 @@ { #ifdef TT_USE_BYTECODE_INTERPRETER -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - FT_TRUETYPE_ENGINE_TYPE_UNPATENTED -#else FT_TRUETYPE_ENGINE_TYPE_PATENTED -#endif #else /* !TT_USE_BYTECODE_INTERPRETER */ diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttdriver.h b/reactos/lib/3rdparty/freetype/src/truetype/ttdriver.h index 6cacd60966e..74392bbd02c 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/ttdriver.h +++ b/reactos/lib/3rdparty/freetype/src/truetype/ttdriver.h @@ -4,7 +4,7 @@ /* */ /* High-level TrueType driver interface (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __TTDRIVER_H__ -#define __TTDRIVER_H__ +#ifndef TTDRIVER_H_ +#define TTDRIVER_H_ #include @@ -32,7 +32,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTDRIVER_H__ */ +#endif /* TTDRIVER_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/truetype/tterrors.h b/reactos/lib/3rdparty/freetype/src/truetype/tterrors.h index ba32cf744ce..895989f5fd9 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/tterrors.h +++ b/reactos/lib/3rdparty/freetype/src/truetype/tterrors.h @@ -4,7 +4,7 @@ /* */ /* TrueType error codes (specification only). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -23,12 +23,12 @@ /* */ /*************************************************************************/ -#ifndef __TTERRORS_H__ -#define __TTERRORS_H__ +#ifndef TTERRORS_H_ +#define TTERRORS_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX TT_Err_ @@ -36,6 +36,7 @@ #include FT_ERRORS_H -#endif /* __TTERRORS_H__ */ +#endif /* TTERRORS_H_ */ + /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttgload.c b/reactos/lib/3rdparty/freetype/src/truetype/ttgload.c index d94fc92a5b9..4ab6603a2bf 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/ttgload.c +++ b/reactos/lib/3rdparty/freetype/src/truetype/ttgload.c @@ -4,7 +4,7 @@ /* */ /* TrueType Glyph Loader (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttgload.h b/reactos/lib/3rdparty/freetype/src/truetype/ttgload.h index 8e3255e106d..bfa29e4ff85 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/ttgload.h +++ b/reactos/lib/3rdparty/freetype/src/truetype/ttgload.h @@ -4,7 +4,7 @@ /* */ /* TrueType Glyph Loader (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __TTGLOAD_H__ -#define __TTGLOAD_H__ +#ifndef TTGLOAD_H_ +#define TTGLOAD_H_ #include @@ -56,7 +56,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTGLOAD_H__ */ +#endif /* TTGLOAD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttgxvar.c b/reactos/lib/3rdparty/freetype/src/truetype/ttgxvar.c index 5d4384eabb2..5f760a27e8f 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/ttgxvar.c +++ b/reactos/lib/3rdparty/freetype/src/truetype/ttgxvar.c @@ -4,7 +4,7 @@ /* */ /* TrueType GX Font Variation loader */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, Werner Lemberg, and George Williams. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttgxvar.h b/reactos/lib/3rdparty/freetype/src/truetype/ttgxvar.h index dd1411f0d88..aa8f6ea5926 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/ttgxvar.h +++ b/reactos/lib/3rdparty/freetype/src/truetype/ttgxvar.h @@ -4,7 +4,7 @@ /* */ /* TrueType GX Font Variation loader (specification) */ /* */ -/* Copyright 2004-2015 by */ +/* Copyright 2004-2016 by */ /* David Turner, Robert Wilhelm, Werner Lemberg and George Williams. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __TTGXVAR_H__ -#define __TTGXVAR_H__ +#ifndef TTGXVAR_H_ +#define TTGXVAR_H_ #include @@ -178,7 +178,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTGXVAR_H__ */ +#endif /* TTGXVAR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttinterp.c b/reactos/lib/3rdparty/freetype/src/truetype/ttinterp.c index 1c1d7de6483..ccbb1d76264 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/ttinterp.c +++ b/reactos/lib/3rdparty/freetype/src/truetype/ttinterp.c @@ -4,7 +4,7 @@ /* */ /* TrueType bytecode interpreter (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -85,20 +85,6 @@ #undef FAILURE #define FAILURE 1 -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING -#define GUESS_VECTOR( V ) \ - do \ - { \ - if ( exc->face->unpatented_hinting ) \ - { \ - exc->GS.V.x = (FT_F2Dot14)( exc->GS.both_x_axis ? 0x4000 : 0 ); \ - exc->GS.V.y = (FT_F2Dot14)( exc->GS.both_x_axis ? 0 : 0x4000 ); \ - } \ - } while (0) -#else -#define GUESS_VECTOR( V ) do { } while (0) -#endif - /*************************************************************************/ /* */ @@ -547,10 +533,6 @@ exec->GS.freeVector = exec->GS.projVector; exec->GS.dualVector = exec->GS.projVector; -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - exec->GS.both_x_axis = TRUE; -#endif - exec->GS.round_state = 1; exec->GS.loop = 1; @@ -577,10 +559,6 @@ { 0x4000, 0 }, { 0x4000, 0 }, -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - TRUE, -#endif - 1, 64, 1, TRUE, 68, 0, 0, 9, 3, 0, FALSE, 0, 1, 1, 1 @@ -1470,34 +1448,22 @@ { if ( !exc->tt_metrics.ratio ) { -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - if ( exc->face->unpatented_hinting ) - { - if ( exc->GS.both_x_axis ) - exc->tt_metrics.ratio = exc->tt_metrics.x_ratio; - else - exc->tt_metrics.ratio = exc->tt_metrics.y_ratio; - } - else -#endif - { - if ( exc->GS.projVector.y == 0 ) - exc->tt_metrics.ratio = exc->tt_metrics.x_ratio; + if ( exc->GS.projVector.y == 0 ) + exc->tt_metrics.ratio = exc->tt_metrics.x_ratio; - else if ( exc->GS.projVector.x == 0 ) - exc->tt_metrics.ratio = exc->tt_metrics.y_ratio; + else if ( exc->GS.projVector.x == 0 ) + exc->tt_metrics.ratio = exc->tt_metrics.y_ratio; - else - { - FT_F26Dot6 x, y; + else + { + FT_F26Dot6 x, y; - x = TT_MulFix14( exc->tt_metrics.x_ratio, - exc->GS.projVector.x ); - y = TT_MulFix14( exc->tt_metrics.y_ratio, - exc->GS.projVector.y ); - exc->tt_metrics.ratio = FT_Hypot( x, y ); - } + x = TT_MulFix14( exc->tt_metrics.x_ratio, + exc->GS.projVector.x ); + y = TT_MulFix14( exc->tt_metrics.y_ratio, + exc->GS.projVector.y ); + exc->tt_metrics.ratio = FT_Hypot( x, y ); } } return exc->tt_metrics.ratio; @@ -1685,10 +1651,6 @@ FT_F26Dot6 v; -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - FT_ASSERT( !exc->face->unpatented_hinting ); -#endif - v = exc->GS.freeVector.x; if ( v != 0 ) @@ -1740,10 +1702,6 @@ FT_F26Dot6 v; -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - FT_ASSERT( !exc->face->unpatented_hinting ); -#endif - v = exc->GS.freeVector.x; if ( v != 0 ) @@ -2336,10 +2294,6 @@ FT_Pos dx, FT_Pos dy ) { -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - FT_ASSERT( !exc->face->unpatented_hinting ); -#endif - return TT_DotFix14( dx, dy, exc->GS.projVector.x, exc->GS.projVector.y ); @@ -2441,51 +2395,6 @@ static void Compute_Funcs( TT_ExecContext exc ) { -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - if ( exc->face->unpatented_hinting ) - { - /* If both vectors point rightwards along the x axis, set */ - /* `both-x-axis' true, otherwise set it false. The x values only */ - /* need be tested because the vector has been normalised to a unit */ - /* vector of length 0x4000 = unity. */ - exc->GS.both_x_axis = (FT_Bool)( exc->GS.projVector.x == 0x4000 && - exc->GS.freeVector.x == 0x4000 ); - - /* Throw away projection and freedom vector information */ - /* because the patents don't allow them to be stored. */ - /* The relevant US Patents are 5155805 and 5325479. */ - exc->GS.projVector.x = 0; - exc->GS.projVector.y = 0; - exc->GS.freeVector.x = 0; - exc->GS.freeVector.y = 0; - - if ( exc->GS.both_x_axis ) - { - exc->func_project = Project_x; - exc->func_move = Direct_Move_X; - exc->func_move_orig = Direct_Move_Orig_X; - } - else - { - exc->func_project = Project_y; - exc->func_move = Direct_Move_Y; - exc->func_move_orig = Direct_Move_Orig_Y; - } - - if ( exc->GS.dualVector.x == 0x4000 ) - exc->func_dualproj = Project_x; - else if ( exc->GS.dualVector.y == 0x4000 ) - exc->func_dualproj = Project_y; - else - exc->func_dualproj = Dual_Project; - - /* Force recalculation of cached aspect ratio */ - exc->tt_metrics.ratio = 0; - - return; - } -#endif /* TT_CONFIG_OPTION_UNPATENTED_HINTING */ - if ( exc->GS.freeVector.x == 0x4000 ) exc->F_dot_P = exc->GS.projVector.x; else if ( exc->GS.freeVector.y == 0x4000 ) @@ -4289,16 +4198,12 @@ exc->GS.dualVector.x = AA; exc->GS.dualVector.y = BB; } - else - GUESS_VECTOR( projVector ); if ( ( opcode & 2 ) == 0 ) { exc->GS.freeVector.x = AA; exc->GS.freeVector.y = BB; } - else - GUESS_VECTOR( freeVector ); Compute_Funcs( exc ); } @@ -4320,7 +4225,6 @@ &exc->GS.projVector ) == SUCCESS ) { exc->GS.dualVector = exc->GS.projVector; - GUESS_VECTOR( freeVector ); Compute_Funcs( exc ); } } @@ -4341,7 +4245,6 @@ (FT_UShort)args[0], &exc->GS.freeVector ) == SUCCESS ) { - GUESS_VECTOR( projVector ); Compute_Funcs( exc ); } } @@ -4356,7 +4259,6 @@ static void Ins_SFVTPV( TT_ExecContext exc ) { - GUESS_VECTOR( projVector ); exc->GS.freeVector = exc->GS.projVector; Compute_Funcs( exc ); } @@ -4385,7 +4287,6 @@ Normalize( X, Y, &exc->GS.projVector ); exc->GS.dualVector = exc->GS.projVector; - GUESS_VECTOR( freeVector ); Compute_Funcs( exc ); } @@ -4411,7 +4312,6 @@ X = S; Normalize( X, Y, &exc->GS.freeVector ); - GUESS_VECTOR( projVector ); Compute_Funcs( exc ); } @@ -4426,21 +4326,8 @@ Ins_GPV( TT_ExecContext exc, FT_Long* args ) { -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - if ( exc->face->unpatented_hinting ) - { - args[0] = exc->GS.both_x_axis ? 0x4000 : 0; - args[1] = exc->GS.both_x_axis ? 0 : 0x4000; - } - else - { - args[0] = exc->GS.projVector.x; - args[1] = exc->GS.projVector.y; - } -#else args[0] = exc->GS.projVector.x; args[1] = exc->GS.projVector.y; -#endif } @@ -4454,21 +4341,8 @@ Ins_GFV( TT_ExecContext exc, FT_Long* args ) { -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - if ( exc->face->unpatented_hinting ) - { - args[0] = exc->GS.both_x_axis ? 0x4000 : 0; - args[1] = exc->GS.both_x_axis ? 0 : 0x4000; - } - else - { - args[0] = exc->GS.freeVector.x; - args[1] = exc->GS.freeVector.y; - } -#else args[0] = exc->GS.freeVector.x; args[1] = exc->GS.freeVector.y; -#endif } @@ -4998,7 +4872,6 @@ } Normalize( A, B, &exc->GS.projVector ); - GUESS_VECTOR( freeVector ); Compute_Funcs( exc ); } @@ -5387,26 +5260,8 @@ d = PROJECT( zp.cur + p, zp.org + p ); -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - if ( exc->face->unpatented_hinting ) - { - if ( exc->GS.both_x_axis ) - { - *x = d; - *y = 0; - } - else - { - *x = 0; - *y = d; - } - } - else -#endif - { - *x = FT_MulDiv( d, (FT_Long)exc->GS.freeVector.x, exc->F_dot_P ); - *y = FT_MulDiv( d, (FT_Long)exc->GS.freeVector.y, exc->F_dot_P ); - } + *x = FT_MulDiv( d, (FT_Long)exc->GS.freeVector.x, exc->F_dot_P ); + *y = FT_MulDiv( d, (FT_Long)exc->GS.freeVector.y, exc->F_dot_P ); return SUCCESS; } @@ -5419,25 +5274,6 @@ FT_F26Dot6 dy, FT_Bool touch ) { -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - if ( exc->face->unpatented_hinting ) - { - if ( exc->GS.both_x_axis ) - { - exc->zp2.cur[point].x += dx; - if ( touch ) - exc->zp2.tags[point] |= FT_CURVE_TAG_TOUCH_X; - } - else - { - exc->zp2.cur[point].y += dy; - if ( touch ) - exc->zp2.tags[point] |= FT_CURVE_TAG_TOUCH_Y; - } - return; - } -#endif - if ( exc->GS.freeVector.x != 0 ) { exc->zp2.cur[point].x += dx; @@ -5640,26 +5476,8 @@ goto Fail; } -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - if ( exc->face->unpatented_hinting ) - { - if ( exc->GS.both_x_axis ) - { - dx = (FT_UInt32)args[0]; - dy = 0; - } - else - { - dx = 0; - dy = (FT_UInt32)args[0]; - } - } - else -#endif - { - dx = TT_MulFix14( args[0], exc->GS.freeVector.x ); - dy = TT_MulFix14( args[0], exc->GS.freeVector.y ); - } + dx = TT_MulFix14( args[0], exc->GS.freeVector.x ); + dy = TT_MulFix14( args[0], exc->GS.freeVector.y ); while ( exc->GS.loop > 0 ) { @@ -7015,27 +6833,6 @@ goto Fail; #endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */ - -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - /* Delta hinting is covered by US Patent 5159668. */ - if ( exc->face->unpatented_hinting ) - { - FT_Long n = args[0] * 2; - - - if ( exc->args < n ) - { - if ( exc->pedantic_hinting ) - exc->error = FT_THROW( Too_Few_Arguments ); - n = exc->args; - } - - exc->args -= n; - exc->new_top = exc->args; - return; - } -#endif - P = (FT_ULong)exc->func_cur_ppem( exc ); nump = (FT_ULong)args[0]; /* some points theoretically may occur more than once, thus UShort isn't enough */ @@ -7177,26 +6974,6 @@ FT_Long B; -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - /* Delta hinting is covered by US Patent 5159668. */ - if ( exc->face->unpatented_hinting ) - { - FT_Long n = args[0] * 2; - - - if ( exc->args < n ) - { - if ( exc->pedantic_hinting ) - exc->error = FT_THROW( Too_Few_Arguments ); - n = exc->args; - } - - exc->args -= n; - exc->new_top = exc->args; - return; - } -#endif - P = (FT_ULong)exc->func_cur_ppem( exc ); nump = (FT_ULong)args[0]; diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttinterp.h b/reactos/lib/3rdparty/freetype/src/truetype/ttinterp.h index 32706d07604..e5a02b961a5 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/ttinterp.h +++ b/reactos/lib/3rdparty/freetype/src/truetype/ttinterp.h @@ -4,7 +4,7 @@ /* */ /* TrueType bytecode interpreter (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __TTINTERP_H__ -#define __TTINTERP_H__ +#ifndef TTINTERP_H_ +#define TTINTERP_H_ #include #include "ttobjs.h" @@ -382,7 +382,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTINTERP_H__ */ +#endif /* TTINTERP_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttobjs.c b/reactos/lib/3rdparty/freetype/src/truetype/ttobjs.c index fdfcc91485d..cd4e294d546 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/ttobjs.c +++ b/reactos/lib/3rdparty/freetype/src/truetype/ttobjs.c @@ -4,7 +4,7 @@ /* */ /* Objects manager (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -32,10 +32,6 @@ #include "ttinterp.h" #endif -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING -#include FT_TRUETYPE_UNPATENTED_H -#endif - #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT #include "ttgxvar.h" #endif @@ -246,7 +242,7 @@ tt_check_trickyness_sfnt_ids( TT_Face face ) { #define TRICK_SFNT_IDS_PER_FACE 3 -#define TRICK_SFNT_IDS_NUM_FACES 17 +#define TRICK_SFNT_IDS_NUM_FACES 18 static const tt_sfnt_id_rec sfnt_id[TRICK_SFNT_IDS_NUM_FACES] [TRICK_SFNT_IDS_PER_FACE] = { @@ -270,6 +266,11 @@ { 0x5A30CA3BUL, 0x00009063UL }, /* fpgm */ { 0x13A42602UL, 0x0000007EUL } /* prep */ }, + { /* DFKaiShu2 */ + { 0x11E5EAD4UL, 0x00000350UL }, /* cvt */ + { 0xA6E78C01UL, 0x00008998UL }, /* fpgm */ + { 0x13A42602UL, 0x0000007EUL } /* prep */ + }, { /* HuaTianKaiTi */ { 0xFFFBFFFCUL, 0x00000008UL }, /* cvt */ { 0x9C9E48B8UL, 0x0000BEA2UL }, /* fpgm */ @@ -676,29 +677,6 @@ #endif /* TT_CONFIG_OPTION_GX_VAR_SUPPORT */ -#if defined( TT_CONFIG_OPTION_UNPATENTED_HINTING ) && \ - !defined( TT_CONFIG_OPTION_BYTECODE_INTERPRETER ) - - { - FT_Bool unpatented_hinting; - int i; - - - /* Determine whether unpatented hinting is to be used for this face. */ - unpatented_hinting = FT_BOOL - ( library->debug_hooks[FT_DEBUG_HOOK_UNPATENTED_HINTING] != NULL ); - - for ( i = 0; i < num_params && !face->unpatented_hinting; i++ ) - if ( params[i].tag == FT_PARAM_TAG_UNPATENTED_HINTING ) - unpatented_hinting = TRUE; - - if ( !unpatented_hinting ) - ttface->internal->ignore_unpatented_hinter = TRUE; - } - -#endif /* TT_CONFIG_OPTION_UNPATENTED_HINTING && - !TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ - /* initialize standard glyph loading routines */ TT_Init_Glyph_Loading( face ); @@ -1080,7 +1058,7 @@ /* Fine, now run the font program! */ /* In case of an error while executing `fpgm', we intentionally don't */ - /* clean up immediately – bugs in the `fpgm' are so fundamental that */ + /* clean up immediately – bugs in the `fpgm' are so fundamental that */ /* all following hinting calls should fail. Additionally, `fpgm' is */ /* to be executed just once; calling it again is completely useless */ /* and might even lead to extremely slow behaviour if it is malformed */ diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttobjs.h b/reactos/lib/3rdparty/freetype/src/truetype/ttobjs.h index 9396089a991..ed61a7d5178 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/ttobjs.h +++ b/reactos/lib/3rdparty/freetype/src/truetype/ttobjs.h @@ -4,7 +4,7 @@ /* */ /* Objects manager (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __TTOBJS_H__ -#define __TTOBJS_H__ +#ifndef TTOBJS_H_ +#define TTOBJS_H_ #include @@ -72,10 +72,6 @@ FT_BEGIN_HEADER FT_UnitVector projVector; FT_UnitVector freeVector; -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - FT_Bool both_x_axis; -#endif - FT_Long loop; FT_F26Dot6 minimum_distance; FT_Int round_state; @@ -419,7 +415,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTOBJS_H__ */ +#endif /* TTOBJS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttpic.c b/reactos/lib/3rdparty/freetype/src/truetype/ttpic.c index 242a6b76ddb..54a5b8bed66 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/ttpic.c +++ b/reactos/lib/3rdparty/freetype/src/truetype/ttpic.c @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for truetype module. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttpic.h b/reactos/lib/3rdparty/freetype/src/truetype/ttpic.h index 076ae56efa8..f725865c5c8 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/ttpic.h +++ b/reactos/lib/3rdparty/freetype/src/truetype/ttpic.h @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services for truetype module. */ /* */ -/* Copyright 2009-2015 by */ +/* Copyright 2009-2016 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __TTPIC_H__ -#define __TTPIC_H__ +#ifndef TTPIC_H_ +#define TTPIC_H_ #include FT_INTERNAL_PIC_H @@ -77,7 +77,7 @@ FT_END_HEADER /* */ -#endif /* __TTPIC_H__ */ +#endif /* TTPIC_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttpload.c b/reactos/lib/3rdparty/freetype/src/truetype/ttpload.c index 9bf67f9632d..ca158ac50b0 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/ttpload.c +++ b/reactos/lib/3rdparty/freetype/src/truetype/ttpload.c @@ -4,7 +4,7 @@ /* */ /* TrueType-specific tables loader (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttpload.h b/reactos/lib/3rdparty/freetype/src/truetype/ttpload.h index bc923698273..aa2e38e6e7e 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/ttpload.h +++ b/reactos/lib/3rdparty/freetype/src/truetype/ttpload.h @@ -4,7 +4,7 @@ /* */ /* TrueType-specific tables loader (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __TTPLOAD_H__ -#define __TTPLOAD_H__ +#ifndef TTPLOAD_H_ +#define TTPLOAD_H_ #include @@ -69,7 +69,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTPLOAD_H__ */ +#endif /* TTPLOAD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttsubpix.c b/reactos/lib/3rdparty/freetype/src/truetype/ttsubpix.c index 0d391e95a07..5a8f262316d 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/ttsubpix.c +++ b/reactos/lib/3rdparty/freetype/src/truetype/ttsubpix.c @@ -4,7 +4,7 @@ /* */ /* TrueType Subpixel Hinting. */ /* */ -/* Copyright 2010-2015 by */ +/* Copyright 2010-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttsubpix.h b/reactos/lib/3rdparty/freetype/src/truetype/ttsubpix.h index 9151aa3250c..6313baabbb7 100644 --- a/reactos/lib/3rdparty/freetype/src/truetype/ttsubpix.h +++ b/reactos/lib/3rdparty/freetype/src/truetype/ttsubpix.h @@ -4,7 +4,7 @@ /* */ /* TrueType Subpixel Hinting. */ /* */ -/* Copyright 2010-2015 by */ +/* Copyright 2010-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __TTSUBPIX_H__ -#define __TTSUBPIX_H__ +#ifndef TTSUBPIX_H_ +#define TTSUBPIX_H_ #include #include "ttobjs.h" @@ -105,6 +105,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __TTSUBPIX_H__ */ +#endif /* TTSUBPIX_H_ */ + /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1afm.c b/reactos/lib/3rdparty/freetype/src/type1/t1afm.c index 7a7bf824c0f..3c7735db4a6 100644 --- a/reactos/lib/3rdparty/freetype/src/type1/t1afm.c +++ b/reactos/lib/3rdparty/freetype/src/type1/t1afm.c @@ -4,7 +4,7 @@ /* */ /* AFM support for Type 1 fonts (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -248,6 +248,8 @@ FT_TRACE1(( "T1_Read_Metrics:" " Freeing previously attached metrics data.\n" )); T1_Done_Metrics( memory, (AFM_FontInfo)face->afm_data ); + + face->afm_data = NULL; } if ( FT_NEW( fi ) || diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1afm.h b/reactos/lib/3rdparty/freetype/src/type1/t1afm.h index 0f42f3e3a83..3a864f23796 100644 --- a/reactos/lib/3rdparty/freetype/src/type1/t1afm.h +++ b/reactos/lib/3rdparty/freetype/src/type1/t1afm.h @@ -4,7 +4,7 @@ /* */ /* AFM support for Type 1 fonts (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __T1AFM_H__ -#define __T1AFM_H__ +#ifndef T1AFM_H_ +#define T1AFM_H_ #include #include "t1objs.h" @@ -48,7 +48,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __T1AFM_H__ */ +#endif /* T1AFM_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1driver.c b/reactos/lib/3rdparty/freetype/src/type1/t1driver.c index 716dd55e4a2..f1e60d4523a 100644 --- a/reactos/lib/3rdparty/freetype/src/type1/t1driver.c +++ b/reactos/lib/3rdparty/freetype/src/type1/t1driver.c @@ -4,7 +4,7 @@ /* */ /* Type 1 driver interface (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -29,6 +29,7 @@ #include FT_INTERNAL_DEBUG_H #include FT_INTERNAL_STREAM_H +#include FT_INTERNAL_HASH_H #include FT_SERVICE_MULTIPLE_MASTERS_H #include FT_SERVICE_GLYPH_DICT_H @@ -329,13 +330,37 @@ break; case PS_DICT_SUBR: - if ( idx < (FT_UInt)type1->num_subrs ) { - retval = type1->subrs_len[idx] + 1; - if ( value && value_len >= retval ) + FT_Bool ok = 0; + + + if ( type1->subrs_hash ) { - ft_memcpy( value, (void *)( type1->subrs[idx] ), retval - 1 ); - ((FT_Char *)value)[retval - 1] = (FT_Char)'\0'; + /* convert subr index to array index */ + size_t* val = ft_hash_num_lookup( (FT_Int)idx, + type1->subrs_hash ); + + + if ( val ) + { + idx = *val; + ok = 1; + } + } + else + { + if ( idx < (FT_UInt)type1->num_subrs ) + ok = 1; + } + + if ( ok ) + { + retval = type1->subrs_len[idx] + 1; + if ( value && value_len >= retval ) + { + ft_memcpy( value, (void *)( type1->subrs[idx] ), retval - 1 ); + ((FT_Char *)value)[retval - 1] = (FT_Char)'\0'; + } } } break; diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1driver.h b/reactos/lib/3rdparty/freetype/src/type1/t1driver.h index 34bcf81ccf3..78d8e38aa98 100644 --- a/reactos/lib/3rdparty/freetype/src/type1/t1driver.h +++ b/reactos/lib/3rdparty/freetype/src/type1/t1driver.h @@ -4,7 +4,7 @@ /* */ /* High-level Type 1 driver interface (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __T1DRIVER_H__ -#define __T1DRIVER_H__ +#ifndef T1DRIVER_H_ +#define T1DRIVER_H_ #include @@ -36,7 +36,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __T1DRIVER_H__ */ +#endif /* T1DRIVER_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1errors.h b/reactos/lib/3rdparty/freetype/src/type1/t1errors.h index fc7a9bd64e4..9ba470ed6c1 100644 --- a/reactos/lib/3rdparty/freetype/src/type1/t1errors.h +++ b/reactos/lib/3rdparty/freetype/src/type1/t1errors.h @@ -4,7 +4,7 @@ /* */ /* Type 1 error codes (specification only). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -22,12 +22,12 @@ /* */ /*************************************************************************/ -#ifndef __T1ERRORS_H__ -#define __T1ERRORS_H__ +#ifndef T1ERRORS_H_ +#define T1ERRORS_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX T1_Err_ @@ -35,7 +35,7 @@ #include FT_ERRORS_H -#endif /* __T1ERRORS_H__ */ +#endif /* T1ERRORS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1gload.c b/reactos/lib/3rdparty/freetype/src/type1/t1gload.c index 56d7ccdf1ad..7381a526408 100644 --- a/reactos/lib/3rdparty/freetype/src/type1/t1gload.c +++ b/reactos/lib/3rdparty/freetype/src/type1/t1gload.c @@ -4,7 +4,7 @@ /* */ /* Type 1 Glyph Loader (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -196,6 +196,7 @@ decoder.num_subrs = type1->num_subrs; decoder.subrs = type1->subrs; decoder.subrs_len = type1->subrs_len; + decoder.subrs_hash = type1->subrs_hash; decoder.buildchar = face->buildchar; decoder.len_buildchar = face->len_buildchar; @@ -277,9 +278,10 @@ decoder.builder.metrics_only = 1; decoder.builder.load_points = 0; - decoder.num_subrs = type1->num_subrs; - decoder.subrs = type1->subrs; - decoder.subrs_len = type1->subrs_len; + decoder.num_subrs = type1->num_subrs; + decoder.subrs = type1->subrs; + decoder.subrs_len = type1->subrs_len; + decoder.subrs_hash = type1->subrs_hash; decoder.buildchar = face->buildchar; decoder.len_buildchar = face->len_buildchar; @@ -387,6 +389,7 @@ decoder.num_subrs = type1->num_subrs; decoder.subrs = type1->subrs; decoder.subrs_len = type1->subrs_len; + decoder.subrs_hash = type1->subrs_hash; decoder.buildchar = face->buildchar; decoder.len_buildchar = face->len_buildchar; diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1gload.h b/reactos/lib/3rdparty/freetype/src/type1/t1gload.h index 05f60d586a1..975f2278531 100644 --- a/reactos/lib/3rdparty/freetype/src/type1/t1gload.h +++ b/reactos/lib/3rdparty/freetype/src/type1/t1gload.h @@ -4,7 +4,7 @@ /* */ /* Type 1 Glyph Loader (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __T1GLOAD_H__ -#define __T1GLOAD_H__ +#ifndef T1GLOAD_H_ +#define T1GLOAD_H_ #include @@ -47,7 +47,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __T1GLOAD_H__ */ +#endif /* T1GLOAD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1load.c b/reactos/lib/3rdparty/freetype/src/type1/t1load.c index 4ce1e35aeb8..a53037ca5b3 100644 --- a/reactos/lib/3rdparty/freetype/src/type1/t1load.c +++ b/reactos/lib/3rdparty/freetype/src/type1/t1load.c @@ -4,7 +4,7 @@ /* */ /* Type 1 font loader (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -66,6 +66,7 @@ #include FT_MULTIPLE_MASTERS_H #include FT_INTERNAL_TYPE1_TYPES_H #include FT_INTERNAL_CALC_H +#include FT_INTERNAL_HASH_H #include "t1load.h" #include "t1errors.h" @@ -1404,6 +1405,8 @@ FT_Memory memory = parser->root.memory; FT_Error error; FT_Int num_subrs; + FT_UInt count; + FT_Hash hash = NULL; PSAux_Service psaux = (PSAux_Service)face->psaux; @@ -1430,13 +1433,41 @@ } /* we certainly need more than 8 bytes per subroutine */ - if ( num_subrs > ( parser->root.limit - parser->root.cursor ) >> 3 ) + if ( parser->root.limit > parser->root.cursor && + num_subrs > ( parser->root.limit - parser->root.cursor ) >> 3 ) { + /* + * There are two possibilities. Either the font contains an invalid + * value for `num_subrs', or we have a subsetted font where the + * subroutine indices are not adjusted, e.g. + * + * /Subrs 812 array + * dup 0 { ... } NP + * dup 51 { ... } NP + * dup 681 { ... } NP + * ND + * + * In both cases, we use a number hash that maps from subr indices to + * actual array elements. + */ + FT_TRACE0(( "parse_subrs: adjusting number of subroutines" " (from %d to %d)\n", num_subrs, ( parser->root.limit - parser->root.cursor ) >> 3 )); num_subrs = ( parser->root.limit - parser->root.cursor ) >> 3; + + if ( !hash ) + { + if ( FT_NEW( hash ) ) + goto Fail; + + loader->subrs_hash = hash; + + error = ft_hash_num_init( hash, memory ); + if ( error ) + goto Fail; + } } /* position the parser right before the `dup' of the first subr */ @@ -1458,7 +1489,7 @@ /* */ /* `index' + binary data */ /* */ - for (;;) + for ( count = 0; ; count++ ) { FT_Long idx; FT_ULong size; @@ -1494,6 +1525,14 @@ T1_Skip_Spaces ( parser ); } + /* if we use a hash, the subrs index is the key, and a running */ + /* counter specified for `T1_Add_Table' acts as the value */ + if ( hash ) + { + ft_hash_num_insert( idx, count, hash, memory ); + idx = count; + } + /* with synthetic fonts it is possible we get here twice */ if ( loader->num_subrs ) continue; @@ -2105,17 +2144,6 @@ FT_UNUSED( face ); FT_MEM_ZERO( loader, sizeof ( *loader ) ); - loader->num_glyphs = 0; - loader->num_chars = 0; - - /* initialize the tables -- simply set their `init' field to 0 */ - loader->encoding_table.init = 0; - loader->charstrings.init = 0; - loader->glyph_names.init = 0; - loader->subrs.init = 0; - loader->swap_table.init = 0; - loader->fontdata = 0; - loader->keywords_encountered = 0; } @@ -2123,6 +2151,7 @@ t1_done_loader( T1_Loader loader ) { T1_Parser parser = &loader->parser; + FT_Memory memory = parser->root.memory; /* finalize tables */ @@ -2132,6 +2161,10 @@ T1_Release_Table( &loader->swap_table ); T1_Release_Table( &loader->subrs ); + /* finalize hash */ + ft_hash_num_free( loader->subrs_hash, memory ); + FT_FREE( loader->subrs_hash ); + /* finalize parser */ T1_Finalize_Parser( parser ); } @@ -2248,11 +2281,15 @@ if ( loader.subrs.init ) { - loader.subrs.init = 0; type1->num_subrs = loader.num_subrs; type1->subrs_block = loader.subrs.block; type1->subrs = loader.subrs.elements; type1->subrs_len = loader.subrs.lengths; + type1->subrs_hash = loader.subrs_hash; + + /* prevent `t1_done_loader' from freeing the propagated data */ + loader.subrs.init = 0; + loader.subrs_hash = NULL; } if ( !IS_INCREMENTAL ) diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1load.h b/reactos/lib/3rdparty/freetype/src/type1/t1load.h index de422e7ecd1..b96fe5a7460 100644 --- a/reactos/lib/3rdparty/freetype/src/type1/t1load.h +++ b/reactos/lib/3rdparty/freetype/src/type1/t1load.h @@ -4,7 +4,7 @@ /* */ /* Type 1 font loader (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __T1LOAD_H__ -#define __T1LOAD_H__ +#ifndef T1LOAD_H_ +#define T1LOAD_H_ #include @@ -46,6 +46,7 @@ FT_BEGIN_HEADER FT_Int num_subrs; PS_TableRec subrs; + FT_Hash subrs_hash; FT_Bool fontdata; FT_UInt keywords_encountered; /* T1_LOADER_ENCOUNTERED_XXX */ @@ -96,7 +97,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __T1LOAD_H__ */ +#endif /* T1LOAD_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1objs.c b/reactos/lib/3rdparty/freetype/src/type1/t1objs.c index d921063eaa4..f553f86d653 100644 --- a/reactos/lib/3rdparty/freetype/src/type1/t1objs.c +++ b/reactos/lib/3rdparty/freetype/src/type1/t1objs.c @@ -4,7 +4,7 @@ /* */ /* Type 1 objects manager (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -247,6 +247,9 @@ FT_FREE( type1->subrs ); FT_FREE( type1->subrs_len ); + ft_hash_num_free( type1->subrs_hash, memory ); + FT_FREE( type1->subrs_hash ); + FT_FREE( type1->subrs_block ); FT_FREE( type1->charstrings_block ); FT_FREE( type1->glyph_names_block ); diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1objs.h b/reactos/lib/3rdparty/freetype/src/type1/t1objs.h index 6b4f3cb56d4..94fbdee9aeb 100644 --- a/reactos/lib/3rdparty/freetype/src/type1/t1objs.h +++ b/reactos/lib/3rdparty/freetype/src/type1/t1objs.h @@ -4,7 +4,7 @@ /* */ /* Type 1 objects manager (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __T1OBJS_H__ -#define __T1OBJS_H__ +#ifndef T1OBJS_H_ +#define T1OBJS_H_ #include @@ -154,7 +154,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __T1OBJS_H__ */ +#endif /* T1OBJS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1parse.c b/reactos/lib/3rdparty/freetype/src/type1/t1parse.c index 0b685026067..563d9f37bb2 100644 --- a/reactos/lib/3rdparty/freetype/src/type1/t1parse.c +++ b/reactos/lib/3rdparty/freetype/src/type1/t1parse.c @@ -4,7 +4,7 @@ /* */ /* Type 1 parser (body). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1parse.h b/reactos/lib/3rdparty/freetype/src/type1/t1parse.h index 93b02e3d317..affa818e635 100644 --- a/reactos/lib/3rdparty/freetype/src/type1/t1parse.h +++ b/reactos/lib/3rdparty/freetype/src/type1/t1parse.h @@ -4,7 +4,7 @@ /* */ /* Type 1 parser (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __T1PARSE_H__ -#define __T1PARSE_H__ +#ifndef T1PARSE_H_ +#define T1PARSE_H_ #include @@ -123,7 +123,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __T1PARSE_H__ */ +#endif /* T1PARSE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1tokens.h b/reactos/lib/3rdparty/freetype/src/type1/t1tokens.h index 39926524352..a84f291a6b1 100644 --- a/reactos/lib/3rdparty/freetype/src/type1/t1tokens.h +++ b/reactos/lib/3rdparty/freetype/src/type1/t1tokens.h @@ -4,7 +4,7 @@ /* */ /* Type 1 tokenizer (specification). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/type1/type1.c b/reactos/lib/3rdparty/freetype/src/type1/type1.c index 4c70ea7630b..bb8aca97f98 100644 --- a/reactos/lib/3rdparty/freetype/src/type1/type1.c +++ b/reactos/lib/3rdparty/freetype/src/type1/type1.c @@ -4,7 +4,7 @@ /* */ /* FreeType Type 1 driver component (body only). */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/type42/t42drivr.c b/reactos/lib/3rdparty/freetype/src/type42/t42drivr.c index 45ad0df7cc4..c63ed0c8127 100644 --- a/reactos/lib/3rdparty/freetype/src/type42/t42drivr.c +++ b/reactos/lib/3rdparty/freetype/src/type42/t42drivr.c @@ -4,7 +4,7 @@ /* */ /* High-level Type 42 driver interface (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* Roberto Alameda. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/type42/t42drivr.h b/reactos/lib/3rdparty/freetype/src/type42/t42drivr.h index b4d1753a231..6ddfb639d59 100644 --- a/reactos/lib/3rdparty/freetype/src/type42/t42drivr.h +++ b/reactos/lib/3rdparty/freetype/src/type42/t42drivr.h @@ -4,7 +4,7 @@ /* */ /* High-level Type 42 driver interface (specification). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* Roberto Alameda. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __T42DRIVR_H__ -#define __T42DRIVR_H__ +#ifndef T42DRIVR_H_ +#define T42DRIVR_H_ #include @@ -37,7 +37,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __T42DRIVR_H__ */ +#endif /* T42DRIVR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/type42/t42error.h b/reactos/lib/3rdparty/freetype/src/type42/t42error.h index cddaf9e9ca7..e1097cc81ea 100644 --- a/reactos/lib/3rdparty/freetype/src/type42/t42error.h +++ b/reactos/lib/3rdparty/freetype/src/type42/t42error.h @@ -4,7 +4,7 @@ /* */ /* Type 42 error codes (specification only). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -22,12 +22,12 @@ /* */ /*************************************************************************/ -#ifndef __T42ERROR_H__ -#define __T42ERROR_H__ +#ifndef T42ERROR_H_ +#define T42ERROR_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX T42_Err_ @@ -35,7 +35,7 @@ #include FT_ERRORS_H -#endif /* __T42ERROR_H__ */ +#endif /* T42ERROR_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/type42/t42objs.c b/reactos/lib/3rdparty/freetype/src/type42/t42objs.c index 430871aced6..4672c6e164c 100644 --- a/reactos/lib/3rdparty/freetype/src/type42/t42objs.c +++ b/reactos/lib/3rdparty/freetype/src/type42/t42objs.c @@ -4,7 +4,7 @@ /* */ /* Type 42 objects manager (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* Roberto Alameda. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -231,9 +231,6 @@ if ( info->is_fixed_pitch ) root->face_flags |= FT_FACE_FLAG_FIXED_WIDTH; - /* We only set this flag if we have the patented bytecode interpreter. */ - /* There are no known `tricky' Type42 fonts that could be loaded with */ - /* the unpatented interpreter. */ #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER root->face_flags |= FT_FACE_FLAG_HINTER; #endif diff --git a/reactos/lib/3rdparty/freetype/src/type42/t42objs.h b/reactos/lib/3rdparty/freetype/src/type42/t42objs.h index 3722c670f0f..87a40452f40 100644 --- a/reactos/lib/3rdparty/freetype/src/type42/t42objs.h +++ b/reactos/lib/3rdparty/freetype/src/type42/t42objs.h @@ -4,7 +4,7 @@ /* */ /* Type 42 objects manager (specification). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* Roberto Alameda. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __T42OBJS_H__ -#define __T42OBJS_H__ +#ifndef T42OBJS_H_ +#define T42OBJS_H_ #include #include FT_FREETYPE_H @@ -118,7 +118,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __T42OBJS_H__ */ +#endif /* T42OBJS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/type42/t42parse.c b/reactos/lib/3rdparty/freetype/src/type42/t42parse.c index 04eba8e1206..cf9009bb7af 100644 --- a/reactos/lib/3rdparty/freetype/src/type42/t42parse.c +++ b/reactos/lib/3rdparty/freetype/src/type42/t42parse.c @@ -4,7 +4,7 @@ /* */ /* Type 42 font parser (body). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* Roberto Alameda. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/type42/t42parse.h b/reactos/lib/3rdparty/freetype/src/type42/t42parse.h index 8ed2fde65db..ba9e8571901 100644 --- a/reactos/lib/3rdparty/freetype/src/type42/t42parse.h +++ b/reactos/lib/3rdparty/freetype/src/type42/t42parse.h @@ -4,7 +4,7 @@ /* */ /* Type 42 font parser (specification). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* Roberto Alameda. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __T42PARSE_H__ -#define __T42PARSE_H__ +#ifndef T42PARSE_H_ +#define T42PARSE_H_ #include "t42objs.h" @@ -85,7 +85,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __T42PARSE_H__ */ +#endif /* T42PARSE_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/type42/t42types.h b/reactos/lib/3rdparty/freetype/src/type42/t42types.h index 01286af8270..850a156e45a 100644 --- a/reactos/lib/3rdparty/freetype/src/type42/t42types.h +++ b/reactos/lib/3rdparty/freetype/src/type42/t42types.h @@ -4,7 +4,7 @@ /* */ /* Type 42 font data types (specification only). */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* Roberto Alameda. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __T42TYPES_H__ -#define __T42TYPES_H__ +#ifndef T42TYPES_H_ +#define T42TYPES_H_ #include @@ -51,7 +51,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __T42TYPES_H__ */ +#endif /* T42TYPES_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/type42/type42.c b/reactos/lib/3rdparty/freetype/src/type42/type42.c index 3332b7b7e67..0d17a9b1dcf 100644 --- a/reactos/lib/3rdparty/freetype/src/type42/type42.c +++ b/reactos/lib/3rdparty/freetype/src/type42/type42.c @@ -4,7 +4,7 @@ /* */ /* FreeType Type 42 driver component. */ /* */ -/* Copyright 2002-2015 by */ +/* Copyright 2002-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/reactos/lib/3rdparty/freetype/src/winfonts/fnterrs.h b/reactos/lib/3rdparty/freetype/src/winfonts/fnterrs.h index 0bf4d0986d1..6835d3e64f5 100644 --- a/reactos/lib/3rdparty/freetype/src/winfonts/fnterrs.h +++ b/reactos/lib/3rdparty/freetype/src/winfonts/fnterrs.h @@ -4,7 +4,7 @@ /* */ /* Win FNT/FON error codes (specification only). */ /* */ -/* Copyright 2001-2015 by */ +/* Copyright 2001-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -23,12 +23,12 @@ /* */ /*************************************************************************/ -#ifndef __FNTERRS_H__ -#define __FNTERRS_H__ +#ifndef FNTERRS_H_ +#define FNTERRS_H_ #include FT_MODULE_ERRORS_H -#undef __FTERRORS_H__ +#undef FTERRORS_H_ #undef FT_ERR_PREFIX #define FT_ERR_PREFIX FNT_Err_ @@ -36,7 +36,7 @@ #include FT_ERRORS_H -#endif /* __FNTERRS_H__ */ +#endif /* FNTERRS_H_ */ /* END */ diff --git a/reactos/lib/3rdparty/freetype/src/winfonts/winfnt.c b/reactos/lib/3rdparty/freetype/src/winfonts/winfnt.c index acd31b1cf13..1c74ccd5ab3 100644 --- a/reactos/lib/3rdparty/freetype/src/winfonts/winfnt.c +++ b/reactos/lib/3rdparty/freetype/src/winfonts/winfnt.c @@ -4,7 +4,7 @@ /* */ /* FreeType font driver for Windows FNT/FON files */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* Copyright 2003 Huw D M Davies for Codeweavers */ /* Copyright 2007 Dmitry Timoshkov for Codeweavers */ diff --git a/reactos/lib/3rdparty/freetype/src/winfonts/winfnt.h b/reactos/lib/3rdparty/freetype/src/winfonts/winfnt.h index a39d26f449b..9a4f32d5b01 100644 --- a/reactos/lib/3rdparty/freetype/src/winfonts/winfnt.h +++ b/reactos/lib/3rdparty/freetype/src/winfonts/winfnt.h @@ -4,7 +4,7 @@ /* */ /* FreeType font driver for Windows FNT/FON files */ /* */ -/* Copyright 1996-2015 by */ +/* Copyright 1996-2016 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* Copyright 2007 Dmitry Timoshkov for Codeweavers */ /* */ @@ -17,8 +17,8 @@ /***************************************************************************/ -#ifndef __WINFNT_H__ -#define __WINFNT_H__ +#ifndef WINFNT_H_ +#define WINFNT_H_ #include @@ -165,7 +165,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __WINFNT_H__ */ +#endif /* WINFNT_H_ */ /* END */ diff --git a/reactos/media/doc/3rd Party Files.txt b/reactos/media/doc/3rd Party Files.txt index de34c22f941..76abc66154f 100644 --- a/reactos/media/doc/3rd Party Files.txt +++ b/reactos/media/doc/3rd Party Files.txt @@ -23,7 +23,7 @@ Used Version: 1.1 Website: http://www.geocities.com/dborca/opengl/tc.html Title: FreeType -Used Version: 2.6.2 +Used Version: 2.6.3 Website: http://www.freetype.org Title: Mesa3D