Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package freetype2 for openSUSE:Factory checked in at 2023-10-13 23:13:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/freetype2 (Old) and /work/SRC/openSUSE:Factory/.freetype2.new.20540 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "freetype2" Fri Oct 13 23:13:40 2023 rev:106 rq:1116998 version:2.13.2 Changes: -------- --- /work/SRC/openSUSE:Factory/freetype2/freetype2.changes 2023-07-17 19:22:57.557623727 +0200 +++ /work/SRC/openSUSE:Factory/.freetype2.new.20540/freetype2.changes 2023-10-13 23:13:42.956936715 +0200 @@ -1,0 +2,9 @@ +Wed Oct 11 12:15:54 UTC 2023 - Dominique Leuenberger <dims...@opensuse.org> + +- Update to version 2.13.2: + - Better support for CFF2 variation fonts. + - TrueType interpreter version 38 (also known as 'Infinality') + has been removed. + - Improved OpenVMS support. + +------------------------------------------------------------------- ft2demos.changes: same change Old: ---- freetype-2.13.1.tar.xz freetype-2.13.1.tar.xz.sig freetype-doc-2.13.1.tar.xz freetype-doc-2.13.1.tar.xz.sig ft2demos-2.13.1.tar.xz ft2demos-2.13.1.tar.xz.sig New: ---- freetype-2.13.2.tar.xz freetype-2.13.2.tar.xz.sig freetype-doc-2.13.2.tar.xz freetype-doc-2.13.2.tar.xz.sig ft2demos-2.13.2.tar.xz ft2demos-2.13.2.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ freetype2.spec ++++++ --- /var/tmp/diff_new_pack.SngbAm/_old 2023-10-13 23:13:44.304985609 +0200 +++ /var/tmp/diff_new_pack.SngbAm/_new 2023-10-13 23:13:44.308985755 +0200 @@ -16,9 +16,9 @@ # -%define doc_version 2.13.1 +%define doc_version 2.13.2 Name: freetype2 -Version: 2.13.1 +Version: 2.13.2 Release: 0 Summary: A TrueType Font Library License: FTL AND GPL-2.0-only ++++++ ft2demos.spec ++++++ --- /var/tmp/diff_new_pack.SngbAm/_old 2023-10-13 23:13:44.332986625 +0200 +++ /var/tmp/diff_new_pack.SngbAm/_new 2023-10-13 23:13:44.332986625 +0200 @@ -16,9 +16,9 @@ # -%global freetype_version 2.13.1 +%global freetype_version 2.13.2 Name: ft2demos -Version: 2.13.1 +Version: 2.13.2 Release: 0 Summary: Freetype2 Utilities and Demo Programs License: GPL-2.0-or-later ++++++ freetype-2.13.1.tar.xz -> freetype-2.13.2.tar.xz ++++++ ++++ 9375 lines of diff (skipped) ++++++ freetype-doc-2.13.1.tar.xz -> freetype-doc-2.13.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freetype-2.13.1/README.freetype-doc new/freetype-2.13.2/README.freetype-doc --- old/freetype-2.13.1/README.freetype-doc 2023-06-24 08:28:12.000000000 +0200 +++ new/freetype-2.13.2/README.freetype-doc 2023-08-25 20:02:01.000000000 +0200 @@ -7,10 +7,10 @@ mkdir src cd src - tar xzvf freetype-2.13.1.tar.gz - tar xzvf freetype-doc-2.13.1.tar.gz + tar xzvf freetype-2.13.2.tar.gz + tar xzvf freetype-doc-2.13.2.tar.gz -Now you can move the `docs' subdirectory of `freetype-2.13.1' to any place +Now you can move the `docs' subdirectory of `freetype-2.13.2' to any place you want. The entry point for the documentation is ++++++ ft2demos-2.13.1.tar.xz -> ft2demos-2.13.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/ChangeLog new/ft2demos-2.13.2/ChangeLog --- old/ft2demos-2.13.1/ChangeLog 2023-06-24 07:40:51.000000000 +0200 +++ new/ft2demos-2.13.2/ChangeLog 2023-08-25 20:01:11.000000000 +0200 @@ -1,3 +1,140 @@ +2023-08-25 Werner Lemberg <w...@gnu.org> + + * Version 2.13.2 released. + ========================== + + Tag sources with 'VER-2-13-2'. + + * README: Updated. + * meson.build: Updated. + * man/*.1: Updated. + +2023-08-25 Werner Lemberg <w...@gnu.org> + + Fix clang warnings. + + * graph/gblblit.c (gblender_glyph_upgray), src/ftmulti.c (Render_All): Add + cast. + * src/ftdump.c (get_english_name_entry): Initialize `name`. + +2023-08-24 Werner Lemberg <w...@gnu.org> + + * subprojects/*.wrap: Updated. + +2023-08-17 Hugh McMaster <hugh.mcmas...@outlook.com> + + ftlint.1: Instruct man(1) to run the groff `tbl` preprocessor + + The latest version of groff (1.23.0) emits a warning when it detects the + use of table macros (.TS, .TE) with no .TW (table width) macro defined: + + tbl preprocessor failed, or it or soelim was not run; table(s) likely + not rendered (TE macro called with TW register undefined). + + The warning occurs because the `tbl` preprocessor was not invoked by + the `man` command. To fix the issue, we need to instruct man(1) to + run the `tbl` preprocessor before rendering the source as text. + + This issue was detected by Debian's Lintian tool. + +2023-08-13 Hugh McMaster <h...@debian.org> + + * src/ftmulti.c: Miscellaneous spelling and readability fixes. + + * Update comments. + * Fix a typo: dimentions -> dimensions. + +2023-08-06 Charlie Jiang <w...@chariri.moe> + + [ftinspect] Fix default named instance handling. + + Now the named instance selector no longer doubles the default named instance. + `FT_Get_Default_Named_Instance` is used to get the default NI index. + The default one is labeled as " (default)". + + * src/ftinspect/widgets/tripletselector.cpp: Properly handle the new 1-based + named instance indices. Label the default NI correctly. + + * src/ftinspect/engine/engine.cpp, src/ftinspect/engine/engine.hpp: + Add `Engine::defualtNamedInstanceIndex`. + + * src/ftinspect/engine/mmgx.cpp: Change comments. + +2023-08-06 Charlie Jiang <w...@chariri.moe> + + [ftinspect] Fix named instances switching. + + * src/ftinspect/engine/mmgx.cpp, src/ftinspect/engine/mmgx.hpp: + Load the default values of MMGX axes from the named instance instead of + the global default one. + + * src/ftinspect/engine/engine.cpp, src/ftinspect/engine/engine.hpp: + Switch the named instance using `FT_Set_Named_Instance` when loading + fonts. + +2023-07-28 Alexei Podtelezhnikov <apodt...@gmail.com> + + * src/ftbench.c (usage): Document the `-a` option. + +2023-07-26 Charlie Jiang <w...@chariri.moe> + + [ftinspect] Fix the glyph index selector layout when the window resizes. + + Fixes #26. When the window resizes, the invisible tabs don't get notified. + Therefore, when the active tab changes, we need to trigger a manual + relayouting of invisible tabs. + + * src/ftinspect/widgets/glyphindexselector.hpp, + src/ftinspect/widgets/glyphindexselector.cpp: + Extract public method `relayoutNavigation` from `resizeEvent`. + + * src/ftinspect/panels/abstracttab.hpp: Add `relayout` virtual method. + + * src/ftinspect/maingui.cpp: Call `AbstractTab::relayout` on the new tab + when the active tab changes. + + * src/ftinspect/panels/singular.cpp, src/ftinspect/panels/singular.hpp, + src/ftinspect/panels/continuous.cpp, src/ftinspect/panels/continuous.hpp: + Implement `relayout` method and call `relayoutNavigation` of the glyph + index selector in `relayout`. + +2023-07-26 Alexei Podtelezhnikov <apodt...@gmail.com> + + * src/ftdump.c (Print_MM_Info): Fix signedness mismatch. + +2023-07-21 Jouk Jansen <jo...@hrem.nano.tudelft.nl> + + * vms_make.com: Synchronize with similar changes in the FreeType library. + +2023-07-16 Hin-Tak Leung <ht...@users.sourceforge.net> + + src/rsvg-port.c: Correct usage of `FT_Bool` vs `gboolean` comparison. + + `TRUE` in this context is from glib headers (`glib-2.0/glib/gmacros.h`), + imported indirectly from rsvg headers. It should not be used for comparison + with `FT_Bool` types. Other usages of `TRUE/FALSE` in this file is okay. + +2023-07-08 Hin-Tak Leung <ht...@users.sourceforge.net> + + rsvg-port.c: Simplify usage of `rsvg_handle_render_*`. + + * src/rsvg-port.c (rsvg_port_preset_slot): Remove usage of + `rsvg_handle_render_document` (and `rsvg_handle_render_cairo`). They are + functionally the same as `rsvg_handle_render_layer` (and + `rsvg_handle_render_cairo_sub`) with argument id set to NULL. + +2023-07-08 Hin-Tak Leung <ht...@users.sourceforge.net> + + * src/ttdebug.c (RunIns): Signature fix. + + A somewhat similar change to what happened in the FreeType library: + + commit 95d635eab1b08a0051de07b6c33067d2c1984848 + Author: Werner Lemberg <w...@gnu.org> + Date: Sun May 7 08:34:32 2023 +0200 + + [truetype] Signature fixes. + 2023-06-24 Werner Lemberg <w...@gnu.org> * Version 2.13.1 released. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/README new/ft2demos-2.13.2/README --- old/ft2demos-2.13.1/README 2023-06-24 07:12:48.000000000 +0200 +++ new/ft2demos-2.13.2/README 2023-08-25 19:57:46.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.13.1 freetype on Unix - rename freetype-2.13.1 freetype on Windows + mv freetype-2.13.2 freetype on Unix + rename freetype-2.13.2 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.13.1/graph/gblblit.c new/ft2demos-2.13.2/graph/gblblit.c --- old/ft2demos-2.13.1/graph/gblblit.c 2023-03-02 15:56:46.000000000 +0100 +++ new/ft2demos-2.13.2/graph/gblblit.c 2023-08-25 18:23:13.000000000 +0200 @@ -250,7 +250,7 @@ { int i, size = abs( glyph->pitch ) * glyph->rows; uint32_t* buf = (uint32_t*)glyph->buffer; - uint32_t scale = 255U / ( glyph->grays - 1 ); + uint32_t scale = 255U / (uint32_t)( glyph->grays - 1 ); /* four bytes at a time */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/man/ftbench.1 new/ft2demos-2.13.2/man/ftbench.1 --- old/ft2demos-2.13.1/man/ftbench.1 2023-06-24 07:12:48.000000000 +0200 +++ new/ft2demos-2.13.2/man/ftbench.1 2023-08-25 19:57:46.000000000 +0200 @@ -1,5 +1,5 @@ '\" t -.TH FTBENCH 1 "June 2023" "FreeType 2.13.1" +.TH FTBENCH 1 "August 2023" "FreeType 2.13.2" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/man/ftdiff.1 new/ft2demos-2.13.2/man/ftdiff.1 --- old/ft2demos-2.13.1/man/ftdiff.1 2023-06-24 07:12:49.000000000 +0200 +++ new/ft2demos-2.13.2/man/ftdiff.1 2023-08-25 19:57:46.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTDIFF 1 "June 2023" "FreeType 2.13.1" +.TH FTDIFF 1 "August 2023" "FreeType 2.13.2" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/man/ftdump.1 new/ft2demos-2.13.2/man/ftdump.1 --- old/ft2demos-2.13.1/man/ftdump.1 2023-06-24 07:12:49.000000000 +0200 +++ new/ft2demos-2.13.2/man/ftdump.1 2023-08-25 19:57:46.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTDUMP 1 "June 2023" "FreeType 2.13.1" +.TH FTDUMP 1 "August 2023" "FreeType 2.13.2" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/man/ftgamma.1 new/ft2demos-2.13.2/man/ftgamma.1 --- old/ft2demos-2.13.1/man/ftgamma.1 2023-06-24 07:12:49.000000000 +0200 +++ new/ft2demos-2.13.2/man/ftgamma.1 2023-08-25 19:57:46.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTGAMMA 1 "June 2023" "FreeType 2.13.1" +.TH FTGAMMA 1 "August 2023" "FreeType 2.13.2" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/man/ftgrid.1 new/ft2demos-2.13.2/man/ftgrid.1 --- old/ft2demos-2.13.1/man/ftgrid.1 2023-06-24 07:12:49.000000000 +0200 +++ new/ft2demos-2.13.2/man/ftgrid.1 2023-08-25 19:57:46.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTGRID 1 "June 2023" "FreeType 2.13.1" +.TH FTGRID 1 "August 2023" "FreeType 2.13.2" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/man/ftlint.1 new/ft2demos-2.13.2/man/ftlint.1 --- old/ft2demos-2.13.1/man/ftlint.1 2023-06-24 07:12:49.000000000 +0200 +++ new/ft2demos-2.13.2/man/ftlint.1 2023-08-25 19:57:46.000000000 +0200 @@ -1,4 +1,5 @@ -.TH FTLINT 1 "June 2023" "FreeType 2.13.1" +'\" t +.TH FTLINT 1 "August 2023" "FreeType 2.13.2" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/man/ftmulti.1 new/ft2demos-2.13.2/man/ftmulti.1 --- old/ft2demos-2.13.1/man/ftmulti.1 2023-06-24 07:12:49.000000000 +0200 +++ new/ft2demos-2.13.2/man/ftmulti.1 2023-08-25 19:57:46.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTMULTI 1 "June 2023" "FreeType 2.13.1" +.TH FTMULTI 1 "August 2023" "FreeType 2.13.2" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/man/ftsdf.1 new/ft2demos-2.13.2/man/ftsdf.1 --- old/ft2demos-2.13.1/man/ftsdf.1 2023-06-24 07:12:49.000000000 +0200 +++ new/ft2demos-2.13.2/man/ftsdf.1 2023-08-25 19:57:46.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTSDF 1 "June 2023" "FreeType 2.13.1" +.TH FTSDF 1 "August 2023" "FreeType 2.13.2" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/man/ftstring.1 new/ft2demos-2.13.2/man/ftstring.1 --- old/ft2demos-2.13.1/man/ftstring.1 2023-06-24 07:12:49.000000000 +0200 +++ new/ft2demos-2.13.2/man/ftstring.1 2023-08-25 19:57:46.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTSTRING 1 "June 2023" "FreeType 2.13.1" +.TH FTSTRING 1 "August 2023" "FreeType 2.13.2" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/man/ftvalid.1 new/ft2demos-2.13.2/man/ftvalid.1 --- old/ft2demos-2.13.1/man/ftvalid.1 2023-06-24 07:12:49.000000000 +0200 +++ new/ft2demos-2.13.2/man/ftvalid.1 2023-08-25 19:57:46.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTVALID 1 "June 2023" "FreeType 2.13.1" +.TH FTVALID 1 "August 2023" "FreeType 2.13.2" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/man/ftview.1 new/ft2demos-2.13.2/man/ftview.1 --- old/ft2demos-2.13.1/man/ftview.1 2023-06-24 07:12:49.000000000 +0200 +++ new/ft2demos-2.13.2/man/ftview.1 2023-08-25 19:57:46.000000000 +0200 @@ -1,4 +1,4 @@ -.TH FTVIEW 1 "June 2023" "FreeType 2.13.1" +.TH FTVIEW 1 "August 2023" "FreeType 2.13.2" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/man/ttdebug.1 new/ft2demos-2.13.2/man/ttdebug.1 --- old/ft2demos-2.13.1/man/ttdebug.1 2023-06-24 07:12:49.000000000 +0200 +++ new/ft2demos-2.13.2/man/ttdebug.1 2023-08-25 19:57:46.000000000 +0200 @@ -1,4 +1,4 @@ -.TH TTDEBUG 1 "June 2023" "FreeType 2.13.1" +.TH TTDEBUG 1 "August 2023" "FreeType 2.13.2" . . .SH NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/meson.build new/ft2demos-2.13.2/meson.build --- old/ft2demos-2.13.1/meson.build 2023-06-24 07:12:49.000000000 +0200 +++ new/ft2demos-2.13.2/meson.build 2023-08-25 19:57:46.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.13.1') + version: '2.13.2') # 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.13.1/src/ftbench.c new/ft2demos-2.13.2/src/ftbench.c --- old/ft2demos-2.13.1/src/ftbench.c 2023-05-19 07:13:46.000000000 +0200 +++ new/ft2demos-2.13.2/src/ftbench.c 2023-08-08 11:10:02.000000000 +0200 @@ -1018,6 +1018,9 @@ "\n" "Usage: ftbench [options] fontname\n" "\n" + " -a \"axis1 axis2 ...\"\n" + " Specify the design coordinates for each, if any,\n" + " Multiple Master axis at start-up.\n" " -C Compare with cached version (if available).\n" " -c N Use at most N iterations for each test\n" " (0 means time limited).\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/src/ftdump.c new/ft2demos-2.13.2/src/ftdump.c --- old/ft2demos-2.13.1/src/ftdump.c 2023-05-08 06:54:17.000000000 +0200 +++ new/ft2demos-2.13.2/src/ftdump.c 2023-08-25 18:20:54.000000000 +0200 @@ -845,7 +845,7 @@ FT_UInt num_names = FT_Get_Sfnt_Name_Count( face ); FT_UInt i; - FT_SfntName name; + FT_SfntName name = { 0, 0, 0, 0, NULL, 0 }; for ( i = 0; i < num_names; i++ ) @@ -925,7 +925,7 @@ FT_Fixed* coords; const char* ps_name; - FT_Long instance_count; + FT_UInt instance_count; FT_UInt default_named_instance; FT_Var_Named_Style* named_styles; @@ -957,14 +957,14 @@ /* Show named instances. */ - instance_count = face->style_flags >> 16; + instance_count = (FT_UInt)face->style_flags >> 16; named_styles = mm->namedstyle; FT_Get_Default_Named_Instance( face, &default_named_instance ); default_named_instance--; /* `named_styles` is a zero-based array */ printf( "\n" ); - printf( " named instances (%lu)\n", instance_count ); + printf( " named instances (%u)\n", instance_count ); for ( i = 0; i < instance_count; i++ ) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/src/ftinspect/engine/engine.cpp new/ft2demos-2.13.2/src/ftinspect/engine/engine.cpp --- old/ft2demos-2.13.1/src/ftinspect/engine/engine.cpp 2023-02-27 06:39:48.000000000 +0100 +++ new/ft2demos-2.13.2/src/ftinspect/engine/engine.cpp 2023-08-08 11:10:02.000000000 +0200 @@ -71,6 +71,7 @@ // font, face, and named instance indices. Getting a key from a value is // slow, but this must be done only once, since `faceRequester` is only // called if the font is not yet in the cache. +// Note: Instance indices start from 1, and 0 is used to indicate no MM/GX handling. FT_Error faceRequester(FTC_FaceID ftcFaceID, @@ -101,8 +102,7 @@ QString font = engine->fontFileManager_[faceID.fontIndex].filePath(); long faceIndex = faceID.faceIndex; - if (faceID.namedInstanceIndex > 0) - faceIndex += faceID.namedInstanceIndex << 16; + faceIndex += (faceID.namedInstanceIndex) << 16; *faceP = NULL; return FT_New_Face(library, @@ -227,8 +227,8 @@ Engine::numberOfNamedInstances(int fontIndex, long faceIndex) { - // We return `n` named instances plus one; - // instance index 0 represents a face without a named instance selected. + // With the new `FT_Get_Default_Named_Instance` func, we no longer to return + // one more entries. int numNamedInstances = -1; if (fontIndex < 0) return -1; @@ -237,7 +237,7 @@ [&](FT_Face face) { numNamedInstances - = static_cast<int>((face->style_flags >> 16) + 1); + = static_cast<int>((face->style_flags >> 16)); }); return numNamedInstances; @@ -264,6 +264,25 @@ } +unsigned +Engine::defaultNamedInstanceIndex(int fontIndex, + int faceIndex) +{ + if (fontIndex < 0) + return 0; + unsigned ret = 0; + withFace(FaceID(fontIndex, faceIndex, 0), + [&](FT_Face face) + { + if (FT_Get_Default_Named_Instance(face, &ret) != 0) + { + // XXX error handling? + } + }); + return ret; +} + + bool Engine::currentFontTricky() { @@ -359,6 +378,8 @@ else fontType_ = FontType_Other; + switchNamedInstance(namedInstanceIndex); + curCharMaps_.clear(); curCharMaps_.reserve(ftFallbackFace_->num_charmaps); for (int i = 0; i < ftFallbackFace_->num_charmaps; i++) @@ -366,7 +387,8 @@ SFNTName::get(this, curSFNTNames_); loadPaletteInfos(); - curMMGXState_ = MMGXAxisInfo::get(this, curMMGXAxes_); + curMMGXState_ = MMGXAxisInfo::get( + this, static_cast<unsigned>(namedInstanceIndex), curMMGXAxes_); } curNumGlyphs_ = numGlyphs; @@ -1035,4 +1057,25 @@ } +void +Engine::switchNamedInstance(int index) +{ + if (!ftFallbackFace_ || !FT_HAS_MULTIPLE_MASTERS(ftFallbackFace_)) + return; + auto err = FT_Set_Named_Instance(ftFallbackFace_, index); + if (err) + { + // XXX error handling + } + if (ftSize_) + { + err = FT_Set_Named_Instance(ftSize_->face, index); + if (err) + { + // XXX error handling + } + } +} + + // end of engine.cpp diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/src/ftinspect/engine/engine.hpp new/ft2demos-2.13.2/src/ftinspect/engine/engine.hpp --- old/ft2demos-2.13.1/src/ftinspect/engine/engine.hpp 2023-02-27 06:39:48.000000000 +0100 +++ new/ft2demos-2.13.2/src/ftinspect/engine/engine.hpp 2023-08-08 11:10:02.000000000 +0200 @@ -145,6 +145,8 @@ QString namedInstanceName(int fontIndex, long faceIndex, int index); + unsigned defaultNamedInstanceIndex(int fontIndex, + int faceIndex); bool currentFontTricky(); bool currentFontBitmapOnly(); @@ -286,6 +288,7 @@ void queryEngine(); void loadPaletteInfos(); + void switchNamedInstance(int index); // It is safe to put the implementation into the corresponding cpp file. template <class Func> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/src/ftinspect/engine/mmgx.cpp new/ft2demos-2.13.2/src/ftinspect/engine/mmgx.cpp --- old/ft2demos-2.13.1/src/ftinspect/engine/mmgx.cpp 2023-02-27 06:39:48.000000000 +0100 +++ new/ft2demos-2.13.2/src/ftinspect/engine/mmgx.cpp 2023-08-08 11:10:02.000000000 +0200 @@ -10,7 +10,8 @@ MMGXState -MMGXAxisInfo::get(Engine* engine, +MMGXAxisInfo::get(Engine* engine, + unsigned namedInstanceIndex, std::vector<MMGXAxisInfo>& infos) { auto face = engine->currentFallbackFtFace(); @@ -37,6 +38,12 @@ return state; } + FT_Var_Named_Style* namedInstance = nullptr; + // named instance index starts from 1, but we need to reference using a + // 0-based index. + if (namedInstanceIndex > 0 && namedInstanceIndex <= mm->num_namedstyles) + namedInstance = &mm->namedstyle[namedInstanceIndex - 1]; + infos.resize(mm->num_axis); auto& sfnt = engine->currentFontSFNTNames(); @@ -54,6 +61,9 @@ FT_Get_Var_Axis_Flags(mm, i, &flags); info.hidden = (flags & FT_VAR_AXIS_FLAG_HIDDEN) != 0; + if (namedInstance) + info.def = namedInstance->coords[i] / 65536.0; + auto nameSet = false; if (state == MMGXState::GX_OVF) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/src/ftinspect/engine/mmgx.hpp new/ft2demos-2.13.2/src/ftinspect/engine/mmgx.hpp --- old/ft2demos-2.13.1/src/ftinspect/engine/mmgx.hpp 2023-02-27 06:39:48.000000000 +0100 +++ new/ft2demos-2.13.2/src/ftinspect/engine/mmgx.hpp 2023-08-08 11:10:02.000000000 +0200 @@ -33,6 +33,7 @@ bool isMM; static MMGXState get(Engine* engine, + unsigned namedInstanceIndex, std::vector<MMGXAxisInfo>& infos); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/src/ftinspect/maingui.cpp new/ft2demos-2.13.2/src/ftinspect/maingui.cpp --- old/ft2demos-2.13.1/src/ftinspect/maingui.cpp 2023-02-27 06:39:48.000000000 +0100 +++ new/ft2demos-2.13.2/src/ftinspect/maingui.cpp 2023-08-08 11:10:02.000000000 +0200 @@ -198,6 +198,8 @@ else leftWidget_->setVisible(!isComparator); + tabs_[tabWidget_->currentIndex()]->relayout(); + reloadCurrentTabFont(); if (current == continuousTab_ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/src/ftinspect/panels/abstracttab.hpp new/ft2demos-2.13.2/src/ftinspect/panels/abstracttab.hpp --- old/ft2demos-2.13.1/src/ftinspect/panels/abstracttab.hpp 2023-02-27 06:39:48.000000000 +0100 +++ new/ft2demos-2.13.2/src/ftinspect/panels/abstracttab.hpp 2023-08-08 11:10:02.000000000 +0200 @@ -16,6 +16,7 @@ virtual void repaintGlyph() = 0; virtual void reloadFont() = 0; + virtual void relayout() {} }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/src/ftinspect/panels/continuous.cpp new/ft2demos-2.13.2/src/ftinspect/panels/continuous.cpp --- old/ft2demos-2.13.1/src/ftinspect/panels/continuous.cpp 2023-02-27 06:39:48.000000000 +0100 +++ new/ft2demos-2.13.2/src/ftinspect/panels/continuous.cpp 2023-08-08 11:10:02.000000000 +0200 @@ -66,6 +66,13 @@ void +ContinuousTab::relayout() +{ + indexSelector_->relayoutNavigation(); +} + + +void ContinuousTab::applySettings() { auto mode diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/src/ftinspect/panels/continuous.hpp new/ft2demos-2.13.2/src/ftinspect/panels/continuous.hpp --- old/ft2demos-2.13.1/src/ftinspect/panels/continuous.hpp 2023-02-27 06:39:48.000000000 +0100 +++ new/ft2demos-2.13.2/src/ftinspect/panels/continuous.hpp 2023-08-08 11:10:02.000000000 +0200 @@ -46,6 +46,7 @@ void repaintGlyph() override; void reloadFont() override; + void relayout() override; void highlightGlyph(int index); void applySettings(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/src/ftinspect/panels/singular.cpp new/ft2demos-2.13.2/src/ftinspect/panels/singular.cpp --- old/ft2demos-2.13.1/src/ftinspect/panels/singular.cpp 2023-02-27 06:39:48.000000000 +0100 +++ new/ft2demos-2.13.2/src/ftinspect/panels/singular.cpp 2023-08-08 11:10:02.000000000 +0200 @@ -460,6 +460,13 @@ void +SingularTab::relayout() +{ + indexSelector_->relayoutNavigation(); +} + + +void SingularTab::setCurrentGlyphAndSize(int glyphIndex, double sizePoint) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/src/ftinspect/panels/singular.hpp new/ft2demos-2.13.2/src/ftinspect/panels/singular.hpp --- old/ft2demos-2.13.1/src/ftinspect/panels/singular.hpp 2023-02-27 06:39:48.000000000 +0100 +++ new/ft2demos-2.13.2/src/ftinspect/panels/singular.hpp 2023-08-08 11:10:02.000000000 +0200 @@ -46,6 +46,7 @@ void repaintGlyph() override; void reloadFont() override; + void relayout() override; // The size remains unchanged if `sizePoint` <= 0. void setCurrentGlyphAndSize(int glyphIndex, double sizePoint); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/src/ftinspect/widgets/glyphindexselector.cpp new/ft2demos-2.13.2/src/ftinspect/widgets/glyphindexselector.cpp --- old/ft2demos-2.13.1/src/ftinspect/widgets/glyphindexselector.cpp 2023-02-27 06:39:48.000000000 +0100 +++ new/ft2demos-2.13.2/src/ftinspect/widgets/glyphindexselector.cpp 2023-08-08 11:10:02.000000000 +0200 @@ -21,6 +21,20 @@ void +GlyphIndexSelector::relayoutNavigation() +{ + auto minimumWidth = minimumSizeHint().width(); + if (toEndButton_->isVisible()) + { + if (width() < minimumWidth) + navigationWidget_->setVisible(false); + } + else if (navigationWidget_->minimumSizeHint().width() + minimumWidth <= width()) + navigationWidget_->setVisible(true); +} + + +void GlyphIndexSelector::setMinMax(int min, int max) { @@ -87,15 +101,7 @@ GlyphIndexSelector::resizeEvent(QResizeEvent* event) { QWidget::resizeEvent(event); - auto minimumWidth = minimumSizeHint().width(); - if (toEndButton_->isVisible()) - { - if (width() < minimumWidth) - navigationWidget_->setVisible(false); - } - else if (navigationWidget_->minimumSizeHint().width() + minimumWidth - <= width()) - navigationWidget_->setVisible(true); + relayoutNavigation(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/src/ftinspect/widgets/glyphindexselector.hpp new/ft2demos-2.13.2/src/ftinspect/widgets/glyphindexselector.hpp --- old/ft2demos-2.13.1/src/ftinspect/widgets/glyphindexselector.hpp 2023-02-27 06:39:48.000000000 +0100 +++ new/ft2demos-2.13.2/src/ftinspect/widgets/glyphindexselector.hpp 2023-08-08 11:10:02.000000000 +0200 @@ -24,6 +24,8 @@ GlyphIndexSelector(QWidget* parent); ~GlyphIndexSelector() override = default; + void relayoutNavigation(); + // Never triggers repaint! void setMinMax(int min, int max); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/src/ftinspect/widgets/tripletselector.cpp new/ft2demos-2.13.2/src/ftinspect/widgets/tripletselector.cpp --- old/ft2demos-2.13.1/src/ftinspect/widgets/tripletselector.cpp 2023-02-27 06:39:48.000000000 +0100 +++ new/ft2demos-2.13.2/src/ftinspect/widgets/tripletselector.cpp 2023-08-08 11:10:02.000000000 +0200 @@ -162,7 +162,7 @@ newFaces.reserve(newSize); for (long i = 0; i < newSize; i++) { - newFaces.emplace_back(engine_->namedInstanceName(fontIndex, faceIndex, i)); + newFaces.emplace_back(engine_->namedInstanceName(fontIndex, faceIndex, i + 1)); if (!needToRecreate && newFaces[i] != niComboBox_->itemData(i)) needToRecreate = true; } @@ -181,16 +181,19 @@ QSignalBlocker blk3(niComboBox_); niComboBox_->clear(); - for (long i = 0; i < newSize; i++) + // Returned index starts from 1, therefore minus 1. + auto defaultId = engine_->defaultNamedInstanceIndex(fontIndex, faceIndex) - 1; + for (unsigned i = 0; i < static_cast<unsigned>(newSize); i++) { auto& name = newFaces[i]; - auto displayName = QString("%1: %2").arg(i).arg(name); - if (i == 0) - displayName = "* " + displayName; + auto displayName = QString("%1: %2").arg(i + 1).arg(name); + if (i == defaultId) + displayName = displayName + " (default)"; niComboBox_->addItem(displayName, name); } - niComboBox_->setCurrentIndex(0); + if (defaultId >= 0 && newSize > 0) + niComboBox_->setCurrentIndex(static_cast<int>(defaultId)); // Note: no signal is emitted from any combobox until this block ends. } @@ -460,10 +463,9 @@ if (faceIndex < 0) faceIndex = 0; - if (instanceIndex < 0) - instanceIndex = 0; - - engine_->loadFont(fontIndex, faceIndex, instanceIndex); + if (instanceIndex < 0 || niComboBox_->count() == 0) + instanceIndex = -1; // No instance available. + engine_->loadFont(fontIndex, faceIndex, instanceIndex + 1); // TODO: This may mess up with bitmap-only fonts. if (!engine_->fontValid()) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/src/ftmulti.c new/ft2demos-2.13.2/src/ftmulti.c --- old/ft2demos-2.13.1/src/ftmulti.c 2023-05-19 07:14:19.000000000 +0200 +++ new/ft2demos-2.13.2/src/ftmulti.c 2023-08-25 18:28:58.000000000 +0200 @@ -198,18 +198,18 @@ /* - * `ftmulti' is a diagnostic tool that should be able to handle - * pathological situations also; for this reason the looping code - * below is a bit more complicated in comparison to normal + * `ftmulti' is a diagnostic tool that should also be able to + * handle pathological situations; for this reason the looping + * code below is a bit more complicated in comparison to normal * applications. * * In particular, the loop handles the following cases gracefully, * avoiding grouping. * - * . multiple non-hidden axes have the same tag + * . multiple non-hidden axes that have the same tag * - * . multiple hidden axes have the same tag without a corresponding - * non-hidden axis + * . multiple hidden axes that have the same tag without a + * corresponding non-hidden axis. */ idx = -1; @@ -234,7 +234,7 @@ } else { - /* otherwise check whether we have already assigned this axis */ + /* otherwise, check whether we have already assigned this axis */ for ( j = 0; j <= idx; j++ ) if ( shown_axes[j] == i ) { @@ -399,7 +399,7 @@ while ( i < num_glyphs ) { - if ( !( error = LoadChar( i, hinted ) ) ) + if ( !( error = LoadChar( (unsigned int)i, hinted ) ) ) { #ifdef DEBUG if ( i <= first_glyph + 6 ) @@ -880,7 +880,7 @@ " font The font file(s) to display.\n" "\n" ); fprintf( stderr, - " -d WxH Set window dimentions (default: %ux%u).\n", + " -d WxH Set window dimensions (default: %ux%u).\n", DIM_X, DIM_Y ); fprintf( stderr, " -e encoding Specify encoding tag (default: no encoding).\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/src/rsvg-port.c new/ft2demos-2.13.2/src/rsvg-port.c --- old/ft2demos-2.13.1/src/rsvg-port.c 2023-06-24 06:54:15.000000000 +0200 +++ new/ft2demos-2.13.2/src/rsvg-port.c 2023-07-16 07:56:53.000000000 +0200 @@ -194,6 +194,9 @@ float vertBearingX, vertBearingY; float tmpf; + char *id; + char str[32]; + /* If `cache` is `TRUE` we store calculations in the actual port */ /* state variable, otherwise we just create a dummy variable and */ @@ -320,69 +323,43 @@ /* If the document contains only one glyph, `start_glyph_id` and */ /* `end_glyph_id` have the same value. Otherwise `end_glyph_id` */ /* is larger. */ - if ( start_glyph_id == end_glyph_id ) + if ( start_glyph_id < end_glyph_id ) { - /* Render the whole document to the recording surface. */ -#if LIBRSVG_CHECK_VERSION( 2, 52, 0 ) - { - RsvgRectangle viewport = - { - .x = 0, - .y = 0, - .width = (double)dimension_svg.width, - .height = (double)dimension_svg.height, - }; - - - ret = rsvg_handle_render_document( handle, - rec_cr, - &viewport, - NULL ); - } -#else - ret = rsvg_handle_render_cairo( handle, rec_cr ); -#endif - - if ( ret == FALSE ) - { - error = FT_Err_Invalid_SVG_Document; - goto CleanCairo; - } + /* Render only the element with its ID equal to `glyph<ID>`. */ + sprintf( str, "#glyph%u", slot->glyph_index ); + id = str; } - else if ( start_glyph_id < end_glyph_id ) + else { - char str[32] = "#glyph"; - - - /* Render only the element with its ID equal to `glyph<ID>`. */ - sprintf( str + 6, "%u", slot->glyph_index ); + /* NULL = Render the whole document */ + id = NULL; + } #if LIBRSVG_CHECK_VERSION( 2, 52, 0 ) + { + RsvgRectangle viewport = { - RsvgRectangle viewport = - { - .x = 0, - .y = 0, - .width = (double)dimension_svg.width, - .height = (double)dimension_svg.height, - }; + .x = 0, + .y = 0, + .width = (double)dimension_svg.width, + .height = (double)dimension_svg.height, + }; - ret = rsvg_handle_render_layer( handle, - rec_cr, - str, - &viewport, - NULL ); - } + ret = rsvg_handle_render_layer( handle, + rec_cr, + id, + &viewport, + NULL ); + } #else - ret = rsvg_handle_render_cairo_sub( handle, rec_cr, str ); + ret = rsvg_handle_render_cairo_sub( handle, rec_cr, id ); #endif - if ( ret == FALSE ) - { - error = FT_Err_Invalid_SVG_Document; - goto CleanCairo; - } + if ( ret == FALSE ) + { + error = FT_Err_Invalid_SVG_Document; + goto CleanCairo; } /* Get the bounding box of the drawing. */ @@ -438,7 +415,7 @@ /* If a render call is to follow, just destroy the context for the */ /* recording surface since no more drawing will be done on it. */ /* However, keep the surface itself for use by the render hook. */ - if ( cache == TRUE ) + if ( cache ) { cairo_destroy( rec_cr ); goto CleanLibrsvg; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/src/ttdebug.c new/ft2demos-2.13.2/src/ttdebug.c --- old/ft2demos-2.13.1/src/ttdebug.c 2023-02-27 06:39:48.000000000 +0100 +++ new/ft2demos-2.13.2/src/ttdebug.c 2023-07-08 05:43:48.000000000 +0200 @@ -1978,8 +1978,10 @@ static FT_Error - RunIns( TT_ExecContext exc ) + RunIns( void* exec ) { + TT_ExecContext exc = (TT_ExecContext)exec; + FT_Int key; FT_Bool really_leave; @@ -3049,7 +3051,7 @@ FT_Set_Debug_Hook( library, FT_DEBUG_HOOK_TRUETYPE, - (FT_DebugHook_Func)RunIns ); + RunIns ); printf( "%s\n" "press key `h' or `?' for help\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/subprojects/libpng.wrap new/ft2demos-2.13.2/subprojects/libpng.wrap --- old/ft2demos-2.13.1/subprojects/libpng.wrap 2023-05-10 07:32:27.000000000 +0200 +++ new/ft2demos-2.13.2/subprojects/libpng.wrap 2023-08-24 20:44:38.000000000 +0200 @@ -1,13 +1,13 @@ [wrap-file] -directory = libpng-1.6.39 -source_url = https://github.com/glennrp/libpng/archive/v1.6.39.tar.gz -source_filename = libpng-1.6.39.tar.gz -source_hash = a00e9d2f2f664186e4202db9299397f851aea71b36a35e74910b8820e380d441 -patch_filename = libpng_1.6.39-3_patch.zip -patch_url = https://wrapdb.mesonbuild.com/v2/libpng_1.6.39-3/get_patch -patch_hash = 6af2a8d464e3f1d2e2832580896323ac7b0b786806c75f0eff0c8ec82dd603ec -source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/libpng_1.6.39-3/libpng-1.6.39.tar.gz -wrapdb_version = 1.6.39-3 +directory = libpng-1.6.40 +source_url = https://github.com/glennrp/libpng/archive/v1.6.40.tar.gz +source_filename = libpng-1.6.40.tar.gz +source_hash = 62d25af25e636454b005c93cae51ddcd5383c40fa14aa3dae8f6576feb5692c2 +patch_filename = libpng_1.6.40-1_patch.zip +patch_url = https://wrapdb.mesonbuild.com/v2/libpng_1.6.40-1/get_patch +patch_hash = bad558070e0a82faa5c0ae553bcd12d49021fc4b628f232a8e58c3fbd281aae1 +source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/libpng_1.6.40-1/libpng-1.6.40.tar.gz +wrapdb_version = 1.6.40-1 [provide] libpng = libpng_dep diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/subprojects/zlib.wrap new/ft2demos-2.13.2/subprojects/zlib.wrap --- old/ft2demos-2.13.1/subprojects/zlib.wrap 2023-06-24 06:30:06.000000000 +0200 +++ new/ft2demos-2.13.2/subprojects/zlib.wrap 2023-08-24 20:44:38.000000000 +0200 @@ -1,13 +1,13 @@ [wrap-file] -directory = zlib-1.2.13 -source_url = http://zlib.net/fossils/zlib-1.2.13.tar.gz -source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/zlib_1.2.13-4/zlib-1.2.13.tar.gz -source_filename = zlib-1.2.13.tar.gz -source_hash = b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f846ab30 -patch_filename = zlib_1.2.13-4_patch.zip -patch_url = https://wrapdb.mesonbuild.com/v2/zlib_1.2.13-4/get_patch -patch_hash = 19636b7807e679b92240bc7a99aed85d1be908a45430b12c7687a825cb499d5e -wrapdb_version = 1.2.13-4 +directory = zlib-1.3 +source_url = http://zlib.net/fossils/zlib-1.3.tar.gz +source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/zlib_1.3-1/zlib-1.3.tar.gz +source_filename = zlib-1.3.tar.gz +source_hash = ff0ba4c292013dbc27530b3a81e1f9a813cd39de01ca5e0f8bf355702efa593e +patch_filename = zlib_1.3-1_patch.zip +patch_url = https://wrapdb.mesonbuild.com/v2/zlib_1.3-1/get_patch +patch_hash = ab9d6b8167bb34a7c52b60b0cd6138aa4e0c2d31f997343a5f506f3b97b32008 +wrapdb_version = 1.3-1 [provide] zlib = zlib_dep diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ft2demos-2.13.1/vms_make.com new/ft2demos-2.13.2/vms_make.com --- old/ft2demos-2.13.1/vms_make.com 2023-05-09 06:57:54.000000000 +0200 +++ new/ft2demos-2.13.2/vms_make.com 2023-07-21 21:42:56.000000000 +0200 @@ -9,6 +9,12 @@ $! $ on error then goto err_exit $! +$! Get platform +$ vax = f$getsyi("ARCH_NAME").eqs. "VAX" +$ axp = f$getsyi("ARCH_NAME").eqs. "Alpha" +$ ia64 = f$getsyi("ARCH_NAME").eqs. "IA64" +$ x86_64 = f$getsyi("ARCH_NAME").eqs. "x86_64" +$! $! Just some general constants $! $ Make = "" @@ -34,16 +40,25 @@ $! Create option file $! $ open/write optf 'optfile' -$ If f$getsyi("HW_MODEL") .gt. 1024 +$ If .not. vax $ Then $ write optf "[-.freetype2.lib]freetype2shr.exe/share" $ else $ write optf "[-.freetype2.lib]freetype.olb/lib" $ endif $ gosub check_create_vmslib -$ write optf "sys$library:libbz2.olb/lib" -$ write optf "sys$library:libpng.olb/lib" -$ write optf "sys$library:libz.olb/lib" +$! +$! +$! Check external libraries +$! +$ have_png = f$search("sys$library:libpng.olb") .nes. "" +$ have_bz2 = f$search("sys$library:libbz2.olb") .nes. "" +$ have_z = f$search("sys$library:libz.olb") .nes. "" +$ have_harfbuzz = f$search("sys$library:libharfbuzz.olb") .nes. "" +$ if ( have_harfbuzz ) then write optf "sys$library:libharfbuzz.olb/lib" +$ if ( have_bz2 ) then write optf "sys$library:libbz2.olb/lib" +$ if ( have_png ) then write optf "sys$library:libpng.olb/lib" +$ if ( have_z ) then write optf "sys$library:libz.olb/lib" $ write optf "sys$share:decw$xlibshr.exe/share" $ close optf $! @@ -122,7 +137,7 @@ # C flags CFLAGS = $(CCOPT)$(INCLUDES)/obj=$(OBJDIR)/define=("FT2_BUILD_LIBRARY=1")\ - /warn=disable=("MACROREDEF","MAYLOSEDATA3") + /warn=(noinfo,disable=("MACROREDEF","MAYLOSEDATA3")) .c.obj : cc$(CFLAGS)/point=32/list=$(MMS$TARGET_NAME).lis/show=all $(MMS$SOURCE) @@ -286,20 +301,20 @@ $(OBJDIR)gblblit.obj : $(GRAPHSRC)gblblit.c $(OBJDIR)grinit.obj : $(GRAPHSRC)grinit.c set def $(GRAPHSRC) - $(CC)$(CCOPT)/include=([.x11],[])/point=32/list/show=all\ + $(CC)$(CCOPT)/warn=noinfo/include=([.x11],[])/point=32/list/show=all\ /define=(DEVICE_X11,"FT2_BUILD_LIBRARY=1")/obj=[-.objs] grinit.c pipe link/map/full/exec=nl: [-.objs]grinit.obj | copy sys$input nl: mc sys$library:vms_auto64 grinit.map grinit.lis - $(CC)$(CCOPT)/include=([.x11],[])/point=64/obj=[-.objs] grinit_64.c + $(CC)$(CCOPT)/warn=noinfo/include=([.x11],[])/point=64/obj=[-.objs] grinit_64.c delete grinit_64.c;* set def [-] $(OBJDIR)grx11.obj : $(GRX11SRC)grx11.c set def $(GRX11SRC) - $(CC)$(CCOPT)/include=([-])/point=32/list/show=all\ + $(CC)$(CCOPT)/warn=noinfo/include=([-])/point=32/list/show=all\ /define=(DEVICE_X11,"FT2_BUILD_LIBRARY=1")/obj=[--.objs] grx11.c pipe link/map/full/exec=nl: [--.objs]grx11.obj | copy sys$input nl: mc sys$library:vms_auto64 grx11.map grx11.lis - $(CC)$(CCOPT)/include=([-])/point=64/obj=[--.objs] grx11_64.c + $(CC)$(CCOPT)/warn=noinfo/include=([-])/point=64/obj=[--.objs] grx11_64.c delete grx11_64.c;* set def [--] $(OBJDIR)grdevice.obj : $(GRAPHSRC)grdevice.c