Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package freetype2 for openSUSE:Factory checked in at 2026-10-18 19:22:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/freetype2 (Old) and /work/SRC/openSUSE:Factory/.freetype2.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "freetype2" Sun Oct 18 19:22:34 2026 rev:115 rq:1385543 version:2.15.0 Changes: -------- --- /work/SRC/openSUSE:Factory/freetype2/freetype2.changes 2026-07-12 16:20:25.930514711 +0200 +++ /work/SRC/openSUSE:Factory/.freetype2.new.3698736/freetype2.changes 2026-10-18 19:22:50.437557380 +0200 @@ -1,0 +2,19 @@ +Sat Oct 17 15:30:52 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to 2.15.0 +- Important changes + * Support for the ISO Open Font Format, Edition 5, including + the new 'VARC' table and mixed cubic and conic outline segments + * OpenType fonts with more than 65536 glyphs can now be handled + * The anti-aliased rasterizer now uses dynamic heap memory for + large glyphs, improving performance at sizes above 40 ppem + * TrueType version 40 interpreter ClearType rendering improvements +- Important security fixes + * CVE-2026-27171, bsc#1258392: apply the upstream zlib security + fix to the internal gzip code (upstream issue #1468) + * More bugs with potential security implications were found and + fixed, all users should update +- Dropped patches (fixed upstream) + * freetype-CVE-2026-50811.patch + +------------------------------------------------------------------- --- /work/SRC/openSUSE:Factory/freetype2/ft2demos.changes 2026-07-12 16:20:26.134521689 +0200 +++ /work/SRC/openSUSE:Factory/.freetype2.new.3698736/ft2demos.changes 2026-10-18 19:22:50.597564005 +0200 @@ -1,0 +2,7 @@ +Sat Oct 17 15:30:52 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to 2.15.0 + * ftdump: improve glyph counting and report errors to stderr + * Windows/MSVC build fixes + +------------------------------------------------------------------- Old: ---- freetype-2.14.3.tar.xz freetype-2.14.3.tar.xz.sig freetype-CVE-2026-50811.patch freetype-doc-2.14.3.tar.xz freetype-doc-2.14.3.tar.xz.sig ft2demos-2.14.3.tar.xz ft2demos-2.14.3.tar.xz.sig New: ---- freetype-2.15.0.tar.xz freetype-2.15.0.tar.xz.sig freetype-doc-2.15.0.tar.xz freetype-doc-2.15.0.tar.xz.sig ft2demos-2.15.0.tar.xz ft2demos-2.15.0.tar.xz.sig ----------(Old B)---------- Old:/work/SRC/openSUSE:Factory/.freetype2.new.3698736/freetype2.changes-- Dropped patches (fixed upstream) /work/SRC/openSUSE:Factory/.freetype2.new.3698736/freetype2.changes: * freetype-CVE-2026-50811.patch /work/SRC/openSUSE:Factory/.freetype2.new.3698736/freetype2.changes- ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ freetype2.spec ++++++ --- /var/tmp/diff_new_pack.lMxoAv/_old 2026-10-18 19:22:51.954620201 +0200 +++ /var/tmp/diff_new_pack.lMxoAv/_new 2026-10-18 19:22:51.955620242 +0200 @@ -16,9 +16,9 @@ # -%define doc_version 2.14.3 +%define doc_version 2.15.0 Name: freetype2 -Version: 2.14.3 +Version: 2.15.0 Release: 0 Summary: A TrueType Font Library License: FTL AND GPL-2.0-only @@ -38,7 +38,6 @@ Patch1: don-t-mark-libpng-as-required-library.patch Patch2: enable-long-family-names-by-default.patch Patch3: enable-subpixel-rendering.patch -Patch4: freetype-CVE-2026-50811.patch BuildRequires: gawk BuildRequires: libbz2-devel BuildRequires: libpng-devel ++++++ ft2demos.spec ++++++ --- /var/tmp/diff_new_pack.lMxoAv/_old 2026-10-18 19:22:51.985621485 +0200 +++ /var/tmp/diff_new_pack.lMxoAv/_new 2026-10-18 19:22:51.986621526 +0200 @@ -16,14 +16,14 @@ # -%global freetype_version 2.14.3 +%global freetype_version 2.15.0 %if 0%{?suse_version} < 1600 %global qt_version 5 %else %global qt_version 6 %endif Name: ft2demos -Version: 2.14.3 +Version: 2.15.0 Release: 0 Summary: Freetype2 Utilities and Demo Programs License: GPL-2.0-or-later ++++++ don-t-mark-libpng-as-required-library.patch ++++++ --- /var/tmp/diff_new_pack.lMxoAv/_old 2026-10-18 19:22:52.079625377 +0200 +++ /var/tmp/diff_new_pack.lMxoAv/_new 2026-10-18 19:22:52.082625502 +0200 @@ -1,41 +1,41 @@ -Index: freetype-2.13.1/builds/unix/configure +Index: freetype-2.15.0/builds/unix/configure =================================================================== ---- freetype-2.13.1.orig/builds/unix/configure -+++ freetype-2.13.1/builds/unix/configure -@@ -16389,7 +16389,6 @@ fi +--- freetype-2.15.0.orig/builds/unix/configure ++++ freetype-2.15.0/builds/unix/configure +@@ -17994,7 +17994,6 @@ fi # entries in Requires.private are separated by commas PKGCONFIG_REQUIRES_PRIVATE="$zlib_reqpriv, \ $bzip2_reqpriv, \ - $libpng_reqpriv, \ $harfbuzz_reqpriv, \ - $brotli_reqpriv" - # beautify -@@ -16417,7 +16416,6 @@ PKGCONFIG_LIBS_PRIVATE=`echo "$PKGCONFIG + $brotli_reqpriv, \ + $hvf_reqpriv" +@@ -18023,7 +18022,6 @@ PKGCONFIG_LIBS_PRIVATE=`echo "$PKGCONFIG LIBSSTATIC_CONFIG="-lfreetype \ $zlib_libsstaticconf \ $bzip2_libsstaticconf \ - $libpng_libsstaticconf \ $harfbuzz_libsstaticconf \ $brotli_libsstaticconf \ - $ft2_extra_libs" -Index: freetype-2.13.1/builds/unix/configure.raw + $hvf_libsstaticconf \ +Index: freetype-2.15.0/builds/unix/configure.raw =================================================================== ---- freetype-2.13.1.orig/builds/unix/configure.raw -+++ freetype-2.13.1/builds/unix/configure.raw -@@ -992,7 +992,6 @@ fi +--- freetype-2.15.0.orig/builds/unix/configure.raw ++++ freetype-2.15.0/builds/unix/configure.raw +@@ -1075,7 +1075,6 @@ fi # entries in Requires.private are separated by commas PKGCONFIG_REQUIRES_PRIVATE="$zlib_reqpriv, \ $bzip2_reqpriv, \ - $libpng_reqpriv, \ $harfbuzz_reqpriv, \ - $brotli_reqpriv" - # beautify -@@ -1020,7 +1019,6 @@ PKGCONFIG_LIBS_PRIVATE=`echo "$PKGCONFIG + $brotli_reqpriv, \ + $hvf_reqpriv" +@@ -1104,7 +1103,6 @@ PKGCONFIG_LIBS_PRIVATE=`echo "$PKGCONFIG LIBSSTATIC_CONFIG="-lfreetype \ $zlib_libsstaticconf \ $bzip2_libsstaticconf \ - $libpng_libsstaticconf \ $harfbuzz_libsstaticconf \ $brotli_libsstaticconf \ - $ft2_extra_libs" + $hvf_libsstaticconf \ ++++++ freetype-2.14.3.tar.xz -> freetype-2.15.0.tar.xz ++++++ ++++ 142839 lines of diff (skipped) ++++++ freetype-doc-2.14.3.tar.xz -> freetype-doc-2.15.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freetype-2.14.3/README.freetype-doc new/freetype-2.15.0/README.freetype-doc --- old/freetype-2.14.3/README.freetype-doc 2026-03-22 16:15:18.000000000 +0100 +++ new/freetype-2.15.0/README.freetype-doc 2026-10-11 22:53:02.000000000 +0200 @@ -7,10 +7,10 @@ mkdir src cd src - tar xzvf freetype-2.14.3.tar.gz - tar xzvf freetype-doc-2.14.3.tar.gz + tar xzvf freetype-2.15.0.tar.gz + tar xzvf freetype-doc-2.15.0.tar.gz -Now you can move the `docs' subdirectory of `freetype-2.14.3' to any place +Now you can move the `docs' subdirectory of `freetype-2.15.0' to any place you want. The entry point for the documentation is ++++++ ft2demos-2.14.3.tar.xz -> ft2demos-2.15.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/ChangeLog new/ft2demos-2.15.0/ChangeLog --- old/ft2demos-2.14.3/ChangeLog 2026-03-22 16:11:54.000000000 +0100 +++ new/ft2demos-2.15.0/ChangeLog 2026-10-11 22:50:39.000000000 +0200 @@ -1,3 +1,32 @@ +2026-10-11 Werner Lemberg <[email protected]> + + * Version 2.15.0 released. + ========================== + + Tag sources with 'VER-2-15-0'. + + * README: Updated. + * meson.build: Updated. + * man/*.1: Updated. + +2026-10-11 Werner Lemberg <[email protected]> + + * src/output.h: Use C linkage. + + This fixes C++ compilation. + +2026-05-09 Alexei Podtelezhnikov <[email protected]> + + * builds/windows/msvc/ft2demos.props: Define DLL_IMPORT. + +2026-04-24 Alexei Podtelezhnikov <[email protected]> + + * src/ftdump.c (Print_Programs, Print_Glyfs): Use stderr. + +2026-04-10 Alexei Podtelezhnikov <[email protected]> + + * src/ftdump.c (Print_Programs, Print_Glyfs): Improve glyph counting. + 2026-03-22 Werner Lemberg <[email protected]> * Version 2.14.3 released. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/README new/ft2demos-2.15.0/README --- old/ft2demos-2.14.3/README 2026-03-22 15:58:27.000000000 +0100 +++ new/ft2demos-2.15.0/README 2026-10-11 08:43:36.000000000 +0200 @@ -11,8 +11,8 @@ of the stable FreeType 2 source packages from our server, you most probably have to rename its directory, for example: - mv freetype-2.14.3 freetype on Unix - rename freetype-2.14.3 freetype on Windows + mv freetype-2.15.0 freetype on Unix + rename freetype-2.15.0 freetype on Windows WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/builds/windows/msvc/ft2demos.props new/ft2demos-2.15.0/builds/windows/msvc/ft2demos.props --- old/ft2demos-2.14.3/builds/windows/msvc/ft2demos.props 2026-03-11 17:31:53.000000000 +0100 +++ new/ft2demos-2.15.0/builds/windows/msvc/ft2demos.props 2026-06-22 17:10:20.000000000 +0200 @@ -18,7 +18,7 @@ </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ClCompile> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>DLL_IMPORT;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <WarningLevel>Level3</WarningLevel> <DisableSpecificWarnings>4244</DisableSpecificWarnings> <Optimization>MaxSpeed</Optimization> @@ -39,7 +39,7 @@ </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ClCompile> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>DLL_IMPORT;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <WarningLevel>Level3</WarningLevel> <DisableSpecificWarnings>4244;4267</DisableSpecificWarnings> <Optimization>MaxSpeed</Optimization> @@ -60,7 +60,7 @@ </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ClCompile> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>DLL_IMPORT;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <WarningLevel>Level3</WarningLevel> <Optimization>Disabled</Optimization> <SDLCheck>true</SDLCheck> @@ -76,7 +76,7 @@ </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ClCompile> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>DLL_IMPORT;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <WarningLevel>Level3</WarningLevel> <Optimization>Disabled</Optimization> <SDLCheck>true</SDLCheck> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/man/ftbench.1 new/ft2demos-2.15.0/man/ftbench.1 --- old/ft2demos-2.14.3/man/ftbench.1 2026-03-22 15:58:27.000000000 +0100 +++ new/ft2demos-2.15.0/man/ftbench.1 2026-10-11 08:43:36.000000000 +0200 @@ -1,5 +1,5 @@ '\" t -.TH FTBENCH 1 "March 2026" "FreeType 2.14.3" +.TH FTBENCH 1 "October 2026" "FreeType 2.15.0" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/man/ftdiff.1 new/ft2demos-2.15.0/man/ftdiff.1 --- old/ft2demos-2.14.3/man/ftdiff.1 2026-03-22 15:58:27.000000000 +0100 +++ new/ft2demos-2.15.0/man/ftdiff.1 2026-10-11 08:43:36.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTDIFF 1 "March 2026" "FreeType 2.14.3" +.TH FTDIFF 1 "October 2026" "FreeType 2.15.0" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/man/ftdump.1 new/ft2demos-2.15.0/man/ftdump.1 --- old/ft2demos-2.14.3/man/ftdump.1 2026-03-22 15:58:27.000000000 +0100 +++ new/ft2demos-2.15.0/man/ftdump.1 2026-10-11 08:43:36.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTDUMP 1 "March 2026" "FreeType 2.14.3" +.TH FTDUMP 1 "October 2026" "FreeType 2.15.0" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/man/ftgamma.1 new/ft2demos-2.15.0/man/ftgamma.1 --- old/ft2demos-2.14.3/man/ftgamma.1 2026-03-22 15:58:27.000000000 +0100 +++ new/ft2demos-2.15.0/man/ftgamma.1 2026-10-11 08:43:36.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTGAMMA 1 "March 2026" "FreeType 2.14.3" +.TH FTGAMMA 1 "October 2026" "FreeType 2.15.0" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/man/ftgrid.1 new/ft2demos-2.15.0/man/ftgrid.1 --- old/ft2demos-2.14.3/man/ftgrid.1 2026-03-22 15:58:27.000000000 +0100 +++ new/ft2demos-2.15.0/man/ftgrid.1 2026-10-11 08:43:36.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTGRID 1 "March 2026" "FreeType 2.14.3" +.TH FTGRID 1 "October 2026" "FreeType 2.15.0" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/man/ftlint.1 new/ft2demos-2.15.0/man/ftlint.1 --- old/ft2demos-2.14.3/man/ftlint.1 2026-03-22 15:58:27.000000000 +0100 +++ new/ft2demos-2.15.0/man/ftlint.1 2026-10-11 08:43:37.000000000 +0200 @@ -1,5 +1,5 @@ '\" t -.TH FTLINT 1 "March 2026" "FreeType 2.14.3" +.TH FTLINT 1 "October 2026" "FreeType 2.15.0" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/man/ftmulti.1 new/ft2demos-2.15.0/man/ftmulti.1 --- old/ft2demos-2.14.3/man/ftmulti.1 2026-03-22 15:58:27.000000000 +0100 +++ new/ft2demos-2.15.0/man/ftmulti.1 2026-10-11 08:43:37.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTMULTI 1 "March 2026" "FreeType 2.14.3" +.TH FTMULTI 1 "October 2026" "FreeType 2.15.0" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/man/ftsdf.1 new/ft2demos-2.15.0/man/ftsdf.1 --- old/ft2demos-2.14.3/man/ftsdf.1 2026-03-22 15:58:27.000000000 +0100 +++ new/ft2demos-2.15.0/man/ftsdf.1 2026-10-11 08:43:37.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTSDF 1 "March 2026" "FreeType 2.14.3" +.TH FTSDF 1 "October 2026" "FreeType 2.15.0" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/man/ftstring.1 new/ft2demos-2.15.0/man/ftstring.1 --- old/ft2demos-2.14.3/man/ftstring.1 2026-03-22 15:58:27.000000000 +0100 +++ new/ft2demos-2.15.0/man/ftstring.1 2026-10-11 08:43:37.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTSTRING 1 "March 2026" "FreeType 2.14.3" +.TH FTSTRING 1 "October 2026" "FreeType 2.15.0" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/man/ftvalid.1 new/ft2demos-2.15.0/man/ftvalid.1 --- old/ft2demos-2.14.3/man/ftvalid.1 2026-03-22 15:58:27.000000000 +0100 +++ new/ft2demos-2.15.0/man/ftvalid.1 2026-10-11 08:43:37.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTVALID 1 "March 2026" "FreeType 2.14.3" +.TH FTVALID 1 "October 2026" "FreeType 2.15.0" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/man/ftview.1 new/ft2demos-2.15.0/man/ftview.1 --- old/ft2demos-2.14.3/man/ftview.1 2026-03-22 15:58:27.000000000 +0100 +++ new/ft2demos-2.15.0/man/ftview.1 2026-10-11 08:43:37.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTVIEW 1 "March 2026" "FreeType 2.14.3" +.TH FTVIEW 1 "October 2026" "FreeType 2.15.0" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/man/ttdebug.1 new/ft2demos-2.15.0/man/ttdebug.1 --- old/ft2demos-2.14.3/man/ttdebug.1 2026-03-22 15:58:27.000000000 +0100 +++ new/ft2demos-2.15.0/man/ttdebug.1 2026-10-11 08:43:37.000000000 +0200 @@ -1,4 +1,4 @@ -.TH TTDEBUG 1 "March 2026" "FreeType 2.14.3" +.TH TTDEBUG 1 "October 2026" "FreeType 2.15.0" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/meson.build new/ft2demos-2.15.0/meson.build --- old/ft2demos-2.14.3/meson.build 2026-03-22 15:58:27.000000000 +0100 +++ new/ft2demos-2.15.0/meson.build 2026-10-11 08:43:37.000000000 +0200 @@ -17,7 +17,7 @@ # possible since the subproject might not be cloned yet, so we have to # hard-code the string. project('freetype-demos', 'c', 'cpp', - version: '2.14.3') + version: '2.15.0') # Access to the FreeType 2 source tree is required, since some of the demo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/src/ftdump.c new/ft2demos-2.15.0/src/ftdump.c --- old/ft2demos-2.14.3/src/ftdump.c 2026-03-11 17:31:53.000000000 +0100 +++ new/ft2demos-2.15.0/src/ftdump.c 2026-06-22 17:10:20.000000000 +0200 @@ -1076,16 +1076,15 @@ static void Print_Programs( FT_Face face ) { - FT_ULong fpgm_length = 0; - FT_ULong prep_length = 0; - FT_ULong loca_length; - FT_ULong glyf_length = 0; - FT_UShort i; - FT_Byte* buffer = NULL; - FT_Byte* offset = NULL; + FT_Int i, num_glyphs = (FT_UInt)face->num_glyphs; + FT_ULong fpgm_length = 0; + FT_ULong prep_length = 0; + FT_ULong loca_length; + FT_ULong glyf_length = 0; + FT_Byte* buffer = NULL; + FT_Byte* offset = NULL; - TT_Header* head; - TT_MaxProfile* maxp; + TT_Header* head; error = FT_Load_Sfnt_Table( face, TTAG_fpgm, 0, NULL, &fpgm_length ); @@ -1121,13 +1120,10 @@ Glyf: head = (TT_Header*)FT_Get_Sfnt_Table( face, FT_SFNT_HEAD ); - maxp = (TT_MaxProfile*)FT_Get_Sfnt_Table( face, FT_SFNT_MAXP ); - - if ( head == NULL || maxp == NULL ) + if ( head == NULL ) goto Exit; - loca_length = head->Index_To_Loc_Format ? 4 * maxp->numGlyphs + 4 - : 2 * maxp->numGlyphs + 2; + loca_length = ( head->Index_To_Loc_Format ? 4 : 2 ) * ( num_glyphs + 1 ); offset = (FT_Byte*)malloc( loca_length ); if ( offset == NULL ) @@ -1149,7 +1145,7 @@ if ( error ) goto Exit; - for ( i = 0; i < maxp->numGlyphs; i++ ) + for ( i = 0; i < num_glyphs; i++ ) { FT_UInt32 loc, end; FT_UInt16 len; @@ -1183,7 +1179,7 @@ if ( loc + 1 >= end ) { - printf( "\nglyph %hd: invalid offset (%d)\n", i, loc ); + fprintf( stderr, "glyph %d: invalid offset (%d)\n", i, loc ); continue; } @@ -1199,7 +1195,7 @@ { if ( loc + 1 >= end ) { - printf( "\nglyph %hd: invalid offset (%d)\n", i, loc ); + fprintf( stderr, "glyph %d: invalid offset (%d)\n", i, loc ); goto Continue; } @@ -1224,7 +1220,7 @@ { /* zero-contour glyphs can have no data */ if ( len ) - printf( "\nglyph %hd: invalid offset (%d)\n", i, loc ); + fprintf( stderr, "glyph %d: invalid offset (%d)\n", i, loc ); continue; } @@ -1237,12 +1233,12 @@ if ( loc + len > end ) { - printf( "\nglyph %hd: invalid size (%d)\n", i, len ); + fprintf( stderr, "glyph %d: invalid size (%d)\n", i, len ); continue; } snprintf( tag, sizeof ( tag ), "%04hx", i ); - printf( "\nglyph %hd (%.4s)", i, tag ); + printf( "\nglyph %d (%.4s)", i, tag ); Print_Bytecode( buffer + loc, len, tag ); Continue: @@ -1258,30 +1254,26 @@ static void Print_Glyfs( FT_Face face ) { - FT_ULong loca_length; - FT_ULong glyf_length = 0; - FT_UShort i; - FT_Byte* buffer = NULL; - FT_Byte* offset = NULL; - - FT_Int simple = 0; - FT_Int simple_overlap = 0; - FT_Int composite = 0; - FT_Int composite_overlap = 0; - FT_Int empty = 0; - - TT_Header* head; - TT_MaxProfile* maxp; + FT_Int i, num_glyphs = (FT_Int)face->num_glyphs; + FT_ULong loca_length; + FT_ULong glyf_length = 0; + FT_Byte* buffer = NULL; + FT_Byte* offset = NULL; + + FT_Int simple = 0; + FT_Int simple_overlap = 0; + FT_Int composite = 0; + FT_Int composite_overlap = 0; + FT_Int empty = 0; + TT_Header* head; - head = (TT_Header*)FT_Get_Sfnt_Table( face, FT_SFNT_HEAD ); - maxp = (TT_MaxProfile*)FT_Get_Sfnt_Table( face, FT_SFNT_MAXP ); - if ( head == NULL || maxp == NULL ) + head = (TT_Header*)FT_Get_Sfnt_Table( face, FT_SFNT_HEAD ); + if ( head == NULL ) return; - loca_length = head->Index_To_Loc_Format ? 4 * maxp->numGlyphs + 4 - : 2 * maxp->numGlyphs + 2; + loca_length = ( head->Index_To_Loc_Format ? 4 : 2 ) * ( num_glyphs + 1 ); offset = (FT_Byte*)malloc( loca_length ); if ( offset == NULL ) @@ -1303,7 +1295,7 @@ if ( error ) goto Exit; - for ( i = 0; i < maxp->numGlyphs; i++ ) + for ( i = 0; i < num_glyphs; i++ ) { FT_UInt32 loc, end; FT_UInt16 len; @@ -1340,7 +1332,7 @@ if ( end == 0 || loc >= end - 1 ) { - printf( "\nglyph %hd: invalid offset (%u)\n", i, loc ); + fprintf( stderr, "glyph %d: invalid offset (%u)\n", i, loc ); continue; } @@ -1353,12 +1345,11 @@ if ( loc + 1 >= end ) { - printf( "\nglyph %hd: invalid offset (%u)\n", i, loc ); + fprintf( stderr, "glyph %d: invalid offset (%u)\n", i, loc ); continue; } flags = (FT_UInt16)( buffer[loc] << 8 | buffer[loc + 1] ); - composite_overlap += ( flags & 0x400 ) >> 10; continue; @@ -1372,7 +1363,7 @@ { /* zero-contour glyphs can have no data */ if ( len ) - printf( "\nglyph %hd: invalid offset (%d)\n", i, loc ); + fprintf( stderr, "glyph %d: invalid offset (%d)\n", i, loc ); continue; } @@ -1382,7 +1373,7 @@ if ( loc >= end ) { - printf( "\nglyph %hd: invalid offset (%d)\n", i, loc ); + fprintf( stderr, "glyph %d: invalid offset (%d)\n", i, loc ); continue; } @@ -1404,6 +1395,11 @@ if ( empty ) printf( "%s%d\n", Name_Field( " empty" ), empty ); + num_glyphs -= simple + composite + empty; + if ( num_glyphs ) + printf( "%s%d\n", Name_Field( " invalid" ), num_glyphs ); + + Exit: free( buffer ); free( offset ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.14.3/src/output.h new/ft2demos-2.15.0/src/output.h --- old/ft2demos-2.14.3/src/output.h 2026-03-11 17:31:53.000000000 +0100 +++ new/ft2demos-2.15.0/src/output.h 2026-10-11 08:16:05.000000000 +0200 @@ -18,6 +18,10 @@ #include <ft2build.h> #include <freetype/freetype.h> +#ifdef __cplusplus +extern "C" { +#endif + void put_ascii_string( char* out, @@ -56,6 +60,10 @@ FT_Int as_utf8 ); +#ifdef __cplusplus +} +#endif + #endif /* OUTPUT_H_ */ /* End */
