2
0
Эх сурвалжийг харах

update freetype to 2.13.2.

Sasha Szpakowski 1 жил өмнө
parent
commit
4a512be715
100 өөрчлөгдсөн 4901 нэмэгдсэн , 833 устгасан
  1. 1 1
      CMakeLists.txt
  2. 55 21
      libs/freetype/CMakeLists.txt
  3. 3511 0
      libs/freetype/ChangeLog
  4. 5 1
      libs/freetype/LICENSE.TXT
  5. 1 1
      libs/freetype/Makefile
  6. 8 6
      libs/freetype/README
  7. 1 1
      libs/freetype/README.git
  8. 2 2
      libs/freetype/autogen.sh
  9. 1 1
      libs/freetype/builds/amiga/README
  10. 1 1
      libs/freetype/builds/amiga/include/config/ftconfig.h
  11. 1 1
      libs/freetype/builds/amiga/include/config/ftmodule.h
  12. 1 1
      libs/freetype/builds/amiga/makefile
  13. 1 1
      libs/freetype/builds/amiga/makefile.os4
  14. 1 1
      libs/freetype/builds/amiga/smakefile
  15. 1 1
      libs/freetype/builds/amiga/src/base/ftdebug.c
  16. 1 1
      libs/freetype/builds/amiga/src/base/ftsystem.c
  17. 1 1
      libs/freetype/builds/ansi/ansi-def.mk
  18. 1 1
      libs/freetype/builds/ansi/ansi.mk
  19. 1 1
      libs/freetype/builds/beos/beos-def.mk
  20. 1 1
      libs/freetype/builds/beos/beos.mk
  21. 1 1
      libs/freetype/builds/beos/detect.mk
  22. 1 1
      libs/freetype/builds/cmake/FindBrotliDec.cmake
  23. 1 1
      libs/freetype/builds/cmake/iOS.cmake
  24. 1 1
      libs/freetype/builds/cmake/testbuild.sh
  25. 1 1
      libs/freetype/builds/compiler/ansi-cc.mk
  26. 1 1
      libs/freetype/builds/compiler/bcc-dev.mk
  27. 1 1
      libs/freetype/builds/compiler/bcc.mk
  28. 1 1
      libs/freetype/builds/compiler/emx.mk
  29. 1 1
      libs/freetype/builds/compiler/gcc-dev.mk
  30. 1 1
      libs/freetype/builds/compiler/gcc.mk
  31. 1 1
      libs/freetype/builds/compiler/intelc.mk
  32. 1 1
      libs/freetype/builds/compiler/unix-lcc.mk
  33. 1 1
      libs/freetype/builds/compiler/visualage.mk
  34. 1 1
      libs/freetype/builds/compiler/visualc.mk
  35. 1 1
      libs/freetype/builds/compiler/watcom.mk
  36. 1 1
      libs/freetype/builds/compiler/win-lcc.mk
  37. 1 1
      libs/freetype/builds/detect.mk
  38. 1 1
      libs/freetype/builds/dos/detect.mk
  39. 1 1
      libs/freetype/builds/dos/dos-def.mk
  40. 1 1
      libs/freetype/builds/dos/dos-emx.mk
  41. 1 1
      libs/freetype/builds/dos/dos-gcc.mk
  42. 1 1
      libs/freetype/builds/dos/dos-wat.mk
  43. 1 1
      libs/freetype/builds/exports.mk
  44. 2 2
      libs/freetype/builds/freetype.mk
  45. 1 1
      libs/freetype/builds/link_dos.mk
  46. 1 1
      libs/freetype/builds/link_std.mk
  47. 0 8
      libs/freetype/builds/mac/README
  48. 1 1
      libs/freetype/builds/mac/ftmac.c
  49. 1 1
      libs/freetype/builds/meson/extract_freetype_version.py
  50. 1 1
      libs/freetype/builds/meson/extract_libtool_version.py
  51. 1 1
      libs/freetype/builds/meson/generate_reference_docs.py
  52. 15 9
      libs/freetype/builds/meson/parse_modules_cfg.py
  53. 1 1
      libs/freetype/builds/meson/process_ftoption_h.py
  54. 1 1
      libs/freetype/builds/modules.mk
  55. 1 1
      libs/freetype/builds/os2/detect.mk
  56. 1 1
      libs/freetype/builds/os2/os2-def.mk
  57. 1 1
      libs/freetype/builds/os2/os2-dev.mk
  58. 1 1
      libs/freetype/builds/os2/os2-gcc.mk
  59. 1 1
      libs/freetype/builds/symbian/bld.inf
  60. 1 1
      libs/freetype/builds/symbian/freetype.mmp
  61. 36 41
      libs/freetype/builds/toplevel.mk
  62. 141 109
      libs/freetype/builds/unix/aclocal.m4
  63. 70 21
      libs/freetype/builds/unix/config.guess
  64. 47 42
      libs/freetype/builds/unix/config.sub
  65. 308 131
      libs/freetype/builds/unix/configure
  66. 28 23
      libs/freetype/builds/unix/configure.ac
  67. 27 22
      libs/freetype/builds/unix/configure.raw
  68. 1 1
      libs/freetype/builds/unix/detect.mk
  69. 1 1
      libs/freetype/builds/unix/freetype-config.in
  70. 3 3
      libs/freetype/builds/unix/freetype2.m4
  71. 1 1
      libs/freetype/builds/unix/ft-munmap.m4
  72. 1 1
      libs/freetype/builds/unix/ftconfig.h.in
  73. 1 1
      libs/freetype/builds/unix/ftsystem.c
  74. 107 67
      libs/freetype/builds/unix/install-sh
  75. 1 1
      libs/freetype/builds/unix/install.mk
  76. 448 210
      libs/freetype/builds/unix/ltmain.sh
  77. 1 1
      libs/freetype/builds/unix/unix-cc.in
  78. 1 1
      libs/freetype/builds/unix/unix-def.in
  79. 1 1
      libs/freetype/builds/unix/unix-dev.mk
  80. 1 1
      libs/freetype/builds/unix/unix-lcc.mk
  81. 1 1
      libs/freetype/builds/unix/unix.mk
  82. 1 1
      libs/freetype/builds/unix/unixddef.mk
  83. BIN
      libs/freetype/builds/vms/LIBS.OPT_IA64
  84. BIN
      libs/freetype/builds/vms/_LINK.OPT_IA64
  85. 2 0
      libs/freetype/builds/vms/apinames_vms.bash
  86. 1 1
      libs/freetype/builds/vms/ftconfig.h
  87. 1 1
      libs/freetype/builds/vms/ftsystem.c
  88. 0 28
      libs/freetype/builds/vms/vmslib.dat
  89. 1 1
      libs/freetype/builds/wince/ftdebug.c
  90. 1 1
      libs/freetype/builds/wince/vc2005-ce/index.html
  91. 1 1
      libs/freetype/builds/wince/vc2008-ce/index.html
  92. 1 1
      libs/freetype/builds/windows/detect.mk
  93. 1 1
      libs/freetype/builds/windows/ftdebug.c
  94. 2 3
      libs/freetype/builds/windows/ftsystem.c
  95. 8 8
      libs/freetype/builds/windows/vc2010/freetype.vcxproj
  96. 1 1
      libs/freetype/builds/windows/vc2010/index.html
  97. 1 1
      libs/freetype/builds/windows/visualc/index.html
  98. 1 1
      libs/freetype/builds/windows/visualce/index.html
  99. 1 1
      libs/freetype/builds/windows/w32-bcc.mk
  100. 1 1
      libs/freetype/builds/windows/w32-bccd.mk

+ 1 - 1
CMakeLists.txt

@@ -202,7 +202,7 @@ set(MEGA_LUAJIT_VER "2.1.0-e826d0c")
 set(MEGA_LIBOGG_VER "1.3.2")
 set(MEGA_LIBVORBIS_VER "1.3.5")
 set(MEGA_LIBTHEORA_VER "1.1.1")
-set(MEGA_FREETYPE_VER "2.12.0")
+set(MEGA_FREETYPE_VER "2.13.2")
 set(MEGA_SDL2_VER "2.28.5")
 set(MEGA_OPENAL_VER "1.22.0")
 set(MEGA_MODPLUG_VER "0.8.8.4")

+ 55 - 21
libs/freetype/CMakeLists.txt

@@ -1,6 +1,6 @@
 # CMakeLists.txt
 #
-# Copyright (C) 2013-2022 by
+# Copyright (C) 2013-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # Written originally by John Cary <[email protected]>
@@ -61,6 +61,8 @@
 #
 # Some notes.
 #
+# - Say `cmake -LAH` to see all configuration options.
+#
 # - `cmake' creates configuration files in
 #
 #     <build-directory>/include/freetype/config
@@ -121,7 +123,6 @@ endif ()
 
 include(CheckIncludeFile)
 include(CMakeDependentOption)
-include(FindPkgConfig)
 
 # CMAKE_TOOLCHAIN_FILE must be set before `project' is called, which
 # configures the base build environment and references the toolchain file
@@ -162,8 +163,8 @@ endif ()
 project(freetype C)
 
 set(VERSION_MAJOR "2")
-set(VERSION_MINOR "12")
-set(VERSION_PATCH "0")
+set(VERSION_MINOR "13")
+set(VERSION_PATCH "2")
 
 # Generate LIBRARY_VERSION and LIBRARY_SOVERSION.
 set(LIBTOOL_REGEX "version_info='([0-9]+):([0-9]+):([0-9]+)'")
@@ -216,6 +217,8 @@ cmake_dependent_option(FT_REQUIRE_BROTLI
   "Require support of compressed WOFF2 fonts." OFF
   "NOT FT_DISABLE_BROTLI" OFF)
 
+option(FT_ENABLE_ERROR_STRINGS
+  "Enable support for meaningful error descriptions." OFF)
 
 # Disallow in-source builds
 if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
@@ -245,6 +248,8 @@ endif ()
 
 
 # Find dependencies
+include(FindPkgConfig)
+
 if (NOT FT_DISABLE_HARFBUZZ)
   set(HARFBUZZ_MIN_VERSION "2.0.0")
   if (FT_REQUIRE_HARFBUZZ)
@@ -353,6 +358,12 @@ if (BROTLIDEC_FOUND)
     FTOPTION_H "${FTOPTION_H}")
 endif ()
 
+if (FT_ENABLE_ERROR_STRINGS)
+  string(REGEX REPLACE
+    "/\\* +(#define +FT_CONFIG_OPTION_ERROR_STRINGS) +\\*/" "\\1"
+    FTOPTION_H "${FTOPTION_H}")
+endif ()
+
 set(FTOPTION_H_NAME "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h")
 if (EXISTS "${FTOPTION_H_NAME}")
   file(READ "${FTOPTION_H_NAME}" ORIGINAL_FTOPTION_H)
@@ -469,8 +480,6 @@ if (BUILD_SHARED_LIBS)
     SOVERSION ${LIBRARY_SOVERSION})
 endif ()
 
-message(STATUS ${CMAKE_CURRENT_BINARY_DIR})
-
 # Pick up ftconfig.h and ftoption.h generated above, first.
 target_include_directories(
   freetype
@@ -493,46 +502,55 @@ if (BUILD_FRAMEWORK)
   )
   set_target_properties(freetype PROPERTIES
     FRAMEWORK TRUE
-    MACOSX_FRAMEWORK_INFO_PLIST builds/mac/freetype-Info.plist
+    MACOSX_FRAMEWORK_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/builds/mac/freetype-Info.plist
     PUBLIC_HEADER "${PUBLIC_HEADERS}"
     XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
   )
 endif ()
 
+# 'freetype-interface' is an interface library, to be accessed with
+# `EXPORT_NAME Freetype::Freetype`.  This is the target name provided by
+# CMake's `FindFreetype.cmake`, so we provide it for compatibility.
+add_library(freetype-interface INTERFACE)
+set_target_properties(freetype-interface PROPERTIES
+  EXPORT_NAME Freetype::Freetype
+  INTERFACE_LINK_LIBRARIES freetype)
 
-set(PKG_CONFIG_REQUIRED_PRIVATE "")
-set(PKG_CONFIG_LIBS_PRIVATE "")
+set(PKGCONFIG_REQUIRES "")
+set(PKGCONFIG_REQUIRES_PRIVATE "")
+set(PKGCONFIG_LIBS "-L\${libdir} -lfreetype")
+set(PKGCONFIG_LIBS_PRIVATE "")
 
 if (ZLIB_FOUND)
   target_link_libraries(freetype PRIVATE ${ZLIB_LIBRARIES})
   target_include_directories(freetype PRIVATE ${ZLIB_INCLUDE_DIRS})
-  list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "zlib")
+  list(APPEND PKGCONFIG_REQUIRES_PRIVATE "zlib")
 endif ()
 if (BZIP2_FOUND)
   target_link_libraries(freetype PRIVATE ${BZIP2_LIBRARIES})
   target_include_directories(freetype PRIVATE ${BZIP2_INCLUDE_DIR}) # not BZIP2_INCLUDE_DIRS
   if (PC_BZIP2_FOUND)
-    list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "bzip2")
+    list(APPEND PKGCONFIG_REQUIRES_PRIVATE "bzip2")
   else ()
-    list(APPEND PKG_CONFIG_LIBS_PRIVATE "-lbz2")
+    list(APPEND PKGCONFIG_LIBS_PRIVATE "-lbz2")
   endif ()
 endif ()
 if (PNG_FOUND)
   target_link_libraries(freetype PRIVATE ${PNG_LIBRARIES})
   target_compile_definitions(freetype PRIVATE ${PNG_DEFINITIONS})
   target_include_directories(freetype PRIVATE ${PNG_INCLUDE_DIRS})
-  list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "libpng")
+  list(APPEND PKGCONFIG_REQUIRES_PRIVATE "libpng")
 endif ()
 if (HarfBuzz_FOUND)
   target_link_libraries(freetype PRIVATE ${HarfBuzz_LIBRARY})
   target_include_directories(freetype PRIVATE ${HarfBuzz_INCLUDE_DIRS})
-  list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "harfbuzz >= ${HARFBUZZ_MIN_VERSION}")
+  list(APPEND PKGCONFIG_REQUIRES_PRIVATE "harfbuzz >= ${HARFBUZZ_MIN_VERSION}")
 endif ()
 if (BROTLIDEC_FOUND)
   target_link_libraries(freetype PRIVATE ${BROTLIDEC_LIBRARIES})
   target_compile_definitions(freetype PRIVATE ${BROTLIDEC_DEFINITIONS})
   target_include_directories(freetype PRIVATE ${BROTLIDEC_INCLUDE_DIRS})
-  list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "libbrotlidec")
+  list(APPEND PKGCONFIG_REQUIRES_PRIVATE "libbrotlidec")
 endif ()
 
 
@@ -559,7 +577,7 @@ if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
   # Generate the pkg-config file
   file(READ "${PROJECT_SOURCE_DIR}/builds/unix/freetype2.in" FREETYPE2_PC_IN)
 
-  string(REPLACE ";" ", " PKG_CONFIG_REQUIRED_PRIVATE "${PKG_CONFIG_REQUIRED_PRIVATE}")
+  string(REPLACE ";" ", " PKGCONFIG_REQUIRES_PRIVATE "${PKGCONFIG_REQUIRES_PRIVATE}")
 
   string(REPLACE "%prefix%" ${CMAKE_INSTALL_PREFIX}
           FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
@@ -571,10 +589,26 @@ if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
           FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
   string(REPLACE "%ft_version%" "${LIBTOOL_CURRENT}.${LIBTOOL_REVISION}.${LIBTOOL_AGE}"
           FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
-  string(REPLACE "%REQUIRES_PRIVATE%" "${PKG_CONFIG_REQUIRED_PRIVATE}"
-          FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
-  string(REPLACE "%LIBS_PRIVATE%" "${PKG_CONFIG_LIBS_PRIVATE}"
-          FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
+
+  if (BUILD_SHARED_LIBS)
+    string(REPLACE "%PKGCONFIG_REQUIRES%" "${PKGCONFIG_REQUIRES}"
+            FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
+    string(REPLACE "%PKGCONFIG_REQUIRES_PRIVATE%" "${PKGCONFIG_REQUIRES_PRIVATE}"
+            FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
+    string(REPLACE "%PKGCONFIG_LIBS%" "${PKGCONFIG_LIBS}"
+            FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
+    string(REPLACE "%PKGCONFIG_LIBS_PRIVATE%" "${PKGCONFIG_LIBS_PRIVATE}"
+            FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
+  else ()
+    string(REPLACE "%PKGCONFIG_REQUIRES%" "${PKGCONFIG_REQUIRES} ${PKGCONFIG_REQUIRES_PRIVATE}"
+            FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
+    string(REPLACE "%PKGCONFIG_REQUIRES_PRIVATE%" ""
+            FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
+    string(REPLACE "%PKGCONFIG_LIBS%" "${PKGCONFIG_LIBS} ${PKGCONFIG_LIBS_PRIVATE}"
+            FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
+    string(REPLACE "%PKGCONFIG_LIBS_PRIVATE%" ""
+            FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
+  endif ()
 
   set(FREETYPE2_PC_IN_NAME "${PROJECT_BINARY_DIR}/freetype2.pc")
   if (EXISTS "${FREETYPE2_PC_IN_NAME}")
@@ -598,7 +632,7 @@ if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
     COMPATIBILITY SameMajorVersion)
 
   install(
-    TARGETS freetype
+    TARGETS freetype freetype-interface
       EXPORT freetype-targets
       LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
       ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}

+ 3511 - 0
libs/freetype/ChangeLog

@@ -1,3 +1,3514 @@
+2023-08-25  Werner Lemberg  <[email protected]>
+
+	* Version 2.13.2 released.
+	==========================
+
+	Tag sources with `VER-2-13-2'.
+
+	* docs/VERSION.TXT: Add entry for version 2.13.2.
+	* docs/CHANGES: Updated.
+	* docs/release, docs/README, builds/macs/README: Updated.
+
+	* README, src/base/ftver.rc, builds/windows/vc2010/index.html,
+	builds/windows/visualc/index.html, builds/windows/visualce/index.html,
+	builds/wince/vc2005-ce/index.html, builds/wince/vc2008-ce/index.html,
+	docs/freetype-config.1: s/2.13.1/2.13.2/, s/2131/2132/.
+
+	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
+
+	* builds/unix/configure.raw (version_info): Set to 26:1:20.
+	* CMakeLists.txt (VERSION_PATCH): Set to 2.
+
+2023-08-25  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftcalc.c (FT_MulAddFix): Simplify 32-bit rounding.
+
+2023-08-25  Werner Lemberg  <[email protected]>
+
+	Fix clang warnings.
+
+	* src/cffload.c (cff_blend_doBlend): Fix type of `sum`.
+	* src/truetype/ttgxvar.c (tt_var_load_item_variation_store): Fix type of
+	  `word_delta_count`.
+
+2023-08-24  Werner Lemberg  <[email protected]>
+
+	* subprojects/*.wrap: Updated.
+
+2023-08-24  Hugh McMaster  <[email protected]>
+
+	builds/unix/configure.raw: Use variable to specify minimum Python version.
+
+2023-08-24  Alexei Podtelezhnikov  <[email protected]>
+
+	* builds/toplevel.mk: Simplify version extraction.
+
+2023-08-22  Alexei Podtelezhnikov  <[email protected]>
+
+	[base] Improve the matrix degeneracy check.
+
+	Also fixes #1251.
+
+	* src/base/ftcalc.c (FT_Matrix_Check): To avoid overflow, scale by shifting.
+	* include/freetype/internal/ftcalc.h (FT_Matrix_Check): Update description.
+
+2023-08-22  Werner Lemberg  <[email protected]>
+
+	builds/toplevel.mk: Don't use `\#` in functions.
+
+	The behaviour changed in GNU make 4.3, where `#` (without the backslash)
+	would be necessary.  Using a variable instead the code works with both older
+	and newer GNU make versions.
+
+	Fixes #1252.
+
+2023-08-19  Hugh McMaster  <[email protected]>
+
+	builds/freetype.mk: Invoke `mkdocs` as a Python module
+
+	FreeType's `refdoc` target currently allows users to override the
+	default Python path, which is useful for testing and development.
+
+	In contrast, `mkdocs` is invoked via the default Python path.
+
+	Invoking `mkdocs` via Python's module syntax allows for greater
+	flexibility, although there is no change for the default use case.
+
+2023-08-17  Ben Wagner  <[email protected]>
+
+	[base] Avoid UB with memcpy
+
+	`FT_NEW_ARRAY(p, 0)` sets `p` to `NULL`. `FT_Stream_ReadAt` with a
+	memory based stream uses `FT_MEM_COPY` which is `memcpy` which specifies
+	that it is undefined behavior for either the `src` or `dst` to be
+	`NULL`. Instead of forcing all callers work around calling
+	`FT_Stream_Read` when `buffer == NULL && count == 0` do the check in
+	`FT_StreamRead`. This allows any call with `count == 0` to succesfully
+	read zero bytes without UB.
+
+	* src/base/ftstream.c (FT_Stream_ReadAt): skip `FT_MEM_COPY` when
+	`count == 0`. (FT_Stream_TryRead): ditto
+
+	Fixes: #1250
+
+2023-08-12  Werner Lemberg  <[email protected]>
+
+	Fix warnings in tracing messages for 32bit compilation.
+
+	Since we now require C99, use `%td` for `ptrdiff_t` and `%zu` for `size_t`.
+
+2023-08-04  Ben Wagner  <[email protected]>
+
+	Avoid overflow in COLR bounds checks.
+
+	The values read into `base_glyphs_offset_v1` and `layer_offset_v1` may
+	be in the range 0xFFFFFFFD-0xFFFFFFFF. On systems where `unsigned long`
+	is 32 bits adding 4 to such values will wrap and pass bounds checks but
+	accessing values at such offsets will be out of bounds.
+
+	On the other hand `table_size` has already been tested to be at least
+	`COLRV1_HEADER_SIZE` (34) so it is safe to subtract 4 from it.
+
+	* src/sfnt/ttcolr.c (tt_face_load_colr): subtract 4 from `table_size`
+	instead of adding 4 to font data offsets in bounds checks
+
+	Fixes: https://crbug.com/1469348
+
+2023-08-02  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftobjs.c (open_face_from_buffer): Silence `maybe-uninitialized`.
+
+	We never call this function without a `driver_name` (#1245).
+
+2023-07-29  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype] Reduce v40 footprint.
+
+	*  src/truetype/ttgload.c (TT_HInt_Glyph, tt_loader_set_pp,
+	tt_loader_init): Refactor code.
+
+2023-07-27  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype] Remove Infinality for good (remaining bits).
+
+	* src/truetype/ttobjs.h: Remove remaining fields.
+	* src/truetype/ttinterp.c: Do not initialize them.
+	* include/freetype/internal/tttypes.h: Remove descriptions.
+
+2023-07-27  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype] Remove Infinality for good.
+
+	Remove everything `#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY`,
+	which was undefined for a while now.
+
+	* include/freetype/internal/tttypes.h: Ditto.
+	* src/truetype/truetype.c: Ditto.
+	* src/truetype/ttdriver.c: Ditto.
+	* src/truetype/ttgload.c: Ditto.
+	* src/truetype/ttinterp.c: Ditto.
+	* src/truetype/ttinterp.h: Ditto.
+	* src/truetype/ttobjs.c: Ditto.
+	* src/truetype/ttsubpix.[ch]: Remove files.
+	* src/truetype/rules.mk: Don't mention "ttsubpix.c".
+
+2023-07-21  Jouk Jansen  <[email protected]>
+
+	* vms_make.com: Provide separate library compiled with C++.
+
+	Some types on OpenVMS x86_64 (for example, `long') have different sizes
+	depending on whether compiled with either C or C++.  In particular,
+	X-Windows applications crash if linked with the C++ version.
+
+	This patch makes `vms_make.com` create a second version of the FreeType
+	library compiled with C++ if OpenVMS is running on the x86_64 platform.
+
+2023-07-21  Jouk Jansen  <[email protected]>
+
+	* vms_make.com: Fix typos.
+
+2023-07-21  Jouk Jansen  <[email protected]>
+
+	* src/smooth/ftgrays.c (FT_SSE2): Fix definition for VMS.
+
+2023-07-19  Jouk Jansen  <[email protected]>
+
+	vms_make.com: Make use of additional libraries optional.
+
+	Check whether `.olb` files are present.
+
+	Also check for the HarfBuzz library.
+
+2023-07-19  Jouk Jansen  <[email protected]>
+
+	vms_make.com: Add `/warn=noinfo` to `CFLAGS`.
+
+	This reduces enormously the informationals while compiling on x86_64 (i.e.,
+	which `.h` file is inluded form where).
+
+2023-07-18  Ben Wagner  <[email protected]>
+
+	[woff2] Clean up on large brotli expansion
+
+	* src/sfnt/sfwoff2.c (woff2_open_font): set error and goto cleanup
+
+	Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=60711
+
+2023-07-16  Werner Lemberg  <[email protected]>
+
+	[woff2] Avoid allocation bomb.
+
+	This is a fix for commit 85167dbd5, reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=60615
+
+	* src/sfnt/sfwoff2.c (MAX_SFNT_SIZE): New macro.
+	(woff2_open_font): Use it to limit the maximum size of an uncompressed WOFF2
+	font.
+
+2023-07-14  Werner Lemberg  <[email protected]>
+
+	[cff] Fix compiler warning.
+
+	* src/cff/cffparse.c, src/cff/cffparse.h: Make `cff_parse_fixed` a local
+	function.
+
+2023-07-14  Ben Wagner  <[email protected]>
+
+	[woff2] Remove sfnt size guess check
+
+	In WOFF the `totalSfntSize` must be correct, however in WOFF2 this value
+	is now just a hint and a conforming implementation must not reject
+	otherwise valid data if the `totalSfntSize` turns out not to be exact.
+
+	* src/sfnt/sfwoff2.c (woff2_open_font): remove check that uncompressed
+	woff2 data would fit in the sfnt size guess.
+
+	Fixes: #1235
+
+2023-07-14  Skef Iterum  <[email protected]>
+
+	[cff] Make blend operator work with floats in private dicts.
+
+	The CFF2 blend operator takes N default values and corresponding
+	sets of deltas and pushes N values specific to a designspace
+	location.  CFF has a floating point numeric type and the FreeType
+	blending code was not converting those into its internal 16.16
+	Fixed type format.
+
+	Fixes #1243.
+
+	* src/cff/cffparse.c (do_fixed): Handle floating point numbers.
+	Also fix scaling overflow check for integer-to-fixed conversion.
+
+	* src/cff/cffload.c (cff_blend_doBlend): Updated.
+
+2023-07-08  Hin-Tak Leung  <[email protected]>
+
+	* src/truetype/ttgload.c (TT_Hint_Glyph): More mostly cosmetic update.
+
+	This is a follow-up to commit 49c74ac02, which creates a new local variable
+	"exec = loader->exec", and shortening a lot of "loader->exec".  This commit
+	does two more such changes missed in that first commit.
+
+2023-07-06  Hugh McMaster  <[email protected]>
+
+	[gzip] Don't compile internal zlib development files when using system zlib.
+
+	`src/gzip/rules.mk` compiles the internal zlib sources even when using the
+	zlib development files provided by a host system.  If the internal zlib
+	development files are not present, FreeType fails to build from source.
+
+	This patch ensures the internal zlib development files are only
+	prerequisites when not using zlib development files on a host system.
+
+	* src/gzip/rules.mk (GZIP_DRV_SRCS): Define conditionally.
+
+2023-06-24  Werner Lemberg  <[email protected]>
+
+	* Version 2.13.1 released.
+	==========================
+
+	Tag sources with `VER-2-13-1'.
+
+	* docs/VERSION.TXT: Add entry for version 2.13.1.
+	* docs/CHANGES: Updated.
+	* docs/release, docs/README, builds/macs/README: Updated.
+
+	* README, src/base/ftver.rc, builds/windows/vc2010/index.html,
+	builds/windows/visualc/index.html, builds/windows/visualce/index.html,
+	builds/wince/vc2005-ce/index.html, builds/wince/vc2008-ce/index.html,
+	docs/freetype-config.1: s/2.13.0/2.13/1/, s/2130/2131/.
+
+	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
+
+	* builds/unix/configure.raw (version_info): Set to 26:0:20.
+	* CMakeLists.txt (VERSION_PATCH): Set to 1.
+
+	* subprojects/libpng.wrap, subprojects/zlib.wrap, subprojects/dlg: Updated.
+
+2023-06-09  suzuki toshiya  <[email protected]>
+
+	Comment fixes.
+
+2023-06-09  Werner Lemberg  <[email protected]>
+
+	[sdf] Correct handling of empty glyphs.
+
+	This is a refinement of commit 7b3ebb9.
+
+	* src/sdf/ftsdfrend.c (ft_sdf_render): Goto 'Exit' instead of directly
+	returning.
+	(fd_bsdf_render): Ditto, also taking care of setting `FT_GLYPH_OWN_BITMAP`
+	correctly.
+
+2023-06-05  Ben Wagner  <[email protected]>
+
+	Mark FT_Renderer_Class::raster_class as pointer to const
+
+	The `FT_DEFINE_RASTER_FUNCS` macro declares a `const FT_Raster_Funcs`.
+	The address of the definition is taken and assigned to
+	`FT_Renderer_Class::raster_class` which is currently `FT_Raster_Funcs*`.
+	Until recently the `const` was cast away and with the removal of the
+	cast there are now warnings about dropping this `const`. Instead of
+	adding back the casts, make `FT_Renderer_Class::raster_class` a pointer
+	to const, as is done with pointers in other interfaces.
+
+	* include/freetype/ftrender.h (FT_Renderer_Class_): mark `raster_class`
+	as const.
+
+2023-06-03  Ben Wagner  <[email protected]>
+
+	Fix some `FT_Fixed` vs. `FT_Long` confusion.
+
+	`FT_Fixed` and `FT_Long` are both typedef'ed to be `signed long`.  However,
+	`FT_Fixed` implies that the lower 16 bits are being used to express
+	fractional values and so these two types should not be confused.
+
+	* include/freetype/internal/services/svmm.h (FT_Set_MM_Blend_Func): Use
+	`FT_Fixed` for `coords`.  Users are passing `FT_Fixed` and implementations
+	are taking `FT_Fixed`.
+	(FT_Get_MM_Blend_Func): Ditto.
+
+	* src/autofit/afcjk.c (af_cjk_metrics_check_digits): Use `FT_Long` for
+	`advance` and `old_advance`.  `advance`'s address is passed as `FT_Long*` to
+	`af_shaper_get_elem`, which writes the advance in em units (not fixed).  The
+	exact value is not important here as it is only compared to check whether it
+	has changed.
+
+	* src/autofit/aflatin.c (af_latin_metrics_check_digits): Ditto.
+
+2023-06-03  Ben Wagner  <[email protected]>
+
+	*/*: Remove many function pointer casts.
+
+	In C it is undefined behavior to call a function through a function pointer
+	of a different type.  This is now detected by the Control Flow Integrity
+	Sanitizer.  All known issues have already been fixed.  Prevent any
+	accidental re-introduction by removing function pointer casts when defining
+	services.  The services will call the service functions through the function
+	pointers on the service.  As a result the functions must have the same type
+	so there should be no need to cast.  Removing the casts allows compilers to
+	warn about assignment to an incompatible function pointer type.
+
+2023-06-03  Werner Lemberg  <[email protected]>
+
+	Minor formatting.
+
+2023-05-23  Werner Lemberg  <[email protected]>
+
+	Replace `sprintf` with `snprintf`.
+
+	Fixes #1233.
+
+	* include/freetype/config/ftstdlib.h (ft_sprintf): Replace with...
+	(ft_snprintf): This new macro.
+
+	* src/autofit/afhints.c (af_print_idx): Add argument to pass the buffer
+	size.
+	(af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
+	af_glyph_hints_dump_edges): Updated.
+
+	* src/bdf/bdflib.c (BUFSIZE): New macro.
+	(bdf_parse_properties_, bdf_parse_start_): Use `ft_snprintf`.
+
+	* src/tools/ftrandom/ftrandom.c (do_test): Use `snprintf`.
+
+2023-05-23  Werner Lemberg  <[email protected]>
+
+	docs/DEBUG: Formatting.
+
+2023-05-20  suzuki toshiya  <[email protected]>
+
+	[doc] Type1 GX (sfnt-wrapped Type1) is not supported.
+
+	* docs/formats.txt: Clarify the reference of Type1 GX,
+	and state that this format is not supported.  This
+	is because the content `TYP1' table is not exactly same
+	with the Type1 font format specification; no eexec
+	encryption is used.  For detail and concrete examples,
+	see the analysis on:
+
+	https://gitlab.freedesktop.org/freetype/freetype/-/issues/1231
+
+2023-05-19  Craig White  <[email protected]>
+
+	Add missing end quote of a string in the example code of FT_Trace_Set_Level
+
+2023-05-19  Seigo Nonaka  <[email protected]>
+
+	[truetype] Reduce heap allocation of `deltaSet` variation data.
+
+	`deltaSet` is an array of packed integers that can be 32 bits, 16 bits, or
+	8 bits.  Before this change, these values were unpacked to 32-bit integers.
+	However, this can cause big heap allocations, e.g., around 500 KByte for
+	'NotoSansCJK'.  To reduce this amount, store the packed integers and unpack
+	them just before passing to the calculation.  At calculation time, due to
+	the variable length of region indices, temporary heap allocations are
+	necessary.  This heap allocation is not negligible and visible in `ftbench`
+	results.  So, use stack-allocated arrays for short array calculations.
+
+	Fixes #1230.
+
+	* include/freetype/internal/ftmmtypes.h (GX_ItemVarDataRec): New fields
+	`wordDeltaCount` and `longWords`.
+
+	* src/truetype/ttgxvar.c (tt_var_load_item_variation_store): Load packed
+	data.
+	(tt_var_get_item_delta): Unpack data before applying.
+
+2023-05-17  Jouk Jansen  <[email protected]>
+
+	vms_make.com: Create shared executable for x86 version of OpenVMS.
+
+2023-05-15  Werner Lemberg  <[email protected]>
+
+	Add new load flag `FT_LOAD_NO_SVG`.
+
+	Modern color fonts often contain both an 'SVG' and 'COLR' table.  FreeType
+	always preferred 'SVG' over 'COLR' (this was a design decision), however,
+	this might not be the right choice for the user.  The new flags makes
+	FreeType ignore the 'SVG' table while loading a glyph.
+
+	Fixes #1229.
+
+	* include/freetype/freetype.h (FT_LOAD_NO_SVG): New macro.
+
+	* src/base/ftobjs.c (FT_Load_Glyph), src/cff/cffgload.c (cff_slot_load),
+	src/truetype/ttgload.c (TT_Load_Glyph): Use it.
+
+2023-05-13  Werner Lemberg  <[email protected]>
+
+	.mailmap: Updated.
+
+2023-05-13  Alexei Podtelezhnikov  <[email protected]>
+
+	[cache] Merge functions.
+
+	* src/cache/ftccache.c (FTC_Cache_Init): Merge into...
+	(ftc_cache_done): ... this function, with unnecessary checks removed.
+
+2023-05-13  Alexei Podtelezhnikov  <[email protected]>
+
+	[cache] Minor casting and cosmetic updates.
+
+	* src/cache/ftcglyph.c (ftc_gcache_{init,done}): Remove casting.
+	(FTC_GCache_Lookup): Cosmetic variable renaming.
+	* src/cache/ftcsbits.c (ftc_snode_compare): Formatting.
+
+2023-05-12  Werner Lemberg  <[email protected]>
+
+	* include/freetype/ftcache.h: Typo, punctuation.
+
+2023-05-12  Alexei Podtelezhnikov  <[email protected]>
+
+	* include/freetype/ftcache.h: Formatted and updated.
+
+2023-05-12  suzuki toshiya  <[email protected]>
+
+	* include/freetype/internal/t1types.h: Fix the indentation.
+
+2023-05-11  Alexei Podtelezhnikov  <[email protected]>
+
+	[cache] Revise the dynamic hash table accounting.
+
+	Instead of counting entries relative to the middle of the hash table,
+	this switches to the absolute counter with the full index range mask.
+	As a result, some calculations become a bit simpler.  The cache resizing
+	logic stays largely the same.
+
+	* src/cache/ftccache.h (FTC_NODE_TOP_FOR_HASH): Revised with new counter.
+	* src/cache/ftccache.c (ftc_get_top_node_for_hash): Ditto.
+	(ftc_cache_resize): Simplify reallocations and stop their zeroing.
+	(ftc_cache_init): Stop over-allocating but keep zeroing initially.
+	(FTC_Cache_Clear, FTC_Cache_RemoveFaceID): Updated accordingly.
+
+2023-05-11  suzuki toshiya  <[email protected]>
+
+	[t1cid] Set FT_FACE_FLAG_CID_KEYED.
+
+	* cidobjs.c (cid_face_init): Set FT_FACE_FLAG_CID_KEYED.
+
+	* cidriver.c (cid_get_is_cid): Comment about the case that
+	is_cid cannot guarantee the glyph collection specification.
+
+2023-05-09  Jouk Jansen  <[email protected]>
+
+	* src/smooth/ftgrays.c (FT_SSE2): Don't define for VMS.
+
+2023-05-08  Werner Lemberg  <[email protected]>
+
+	* src/cff/cffdrivr.c (cff_glyph_load): Fix guard for `size`.
+
+	This was forgotten to change in commit 2b54eba36b (in May 2004).
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=58739
+
+2023-05-08  Werner Lemberg  <[email protected]>
+
+	Minor compiler warning fixes.
+
+	* src/autofit/afcjk.c (af_cjk_get_standard_widths), src/autofit/aflatin.c
+	(af_latin_get_standard_widths): Use `FT_CALLBACK_DEF`.
+
+	* src/cff/cffparse.c (cff_parser_run): Initialize and fix allocation of `q`.
+
+2023-05-08  Werner Lemberg  <[email protected]>
+
+	* src/psaux/t1cmap.c: Signature fixes.
+
+2023-05-08  Werner Lemberg  <[email protected]>
+
+	* src/bzip2/ftbzip2.c: Signature fixes.
+
+2023-05-08  Werner Lemberg  <[email protected]>
+
+	[cache] Signature fixes.
+
+	* src/cache/ftcglyph.c, src/cache/ftcglyph.h (FTC_GNode_Compare): Remove
+	redundant function.  It is equivalent to `ftc_gnode_compare` and becomes
+	completely meaningless with fixed signatures.
+	Update all callers.
+
+	* src/cache/ftcsbits.c, src/cache/ftcsbits.h (FTC_SNode_Compare): Remove
+	redundant function.  It is equivalent to `ftc_snode_compare` and becomes
+	completely meaningless with fixed signatures.
+	Update all callers.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	[sdf] Signature fixes.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/svg/ftsvg.c: Signature fixes.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	[raster] Signature fixes.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	[smooth] Signature fixes.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	[pshinter] Signature fixes.
+
+	* src/pshinter/pshrec.c (t1_hints_close, t1_hints_apply): New wrapper
+	functions.
+	(t1_hints_funcs_init): Use them.
+	(t2_hints_close, t2_hints_apply): New wrapper functions.
+	(t2_hints_funcs_init): Use them.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	[autofit] Signature fixes.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/ttcmap: Signature fixes.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/pcf/pcfdrivr.c: Signature fix.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/winfonts/winfnt.c: Signature fixes.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/type42/t42parse.c: Signature fixes.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	[pfr] Signature fixes.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/cid/cidload.c: Signature fixes.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/cff/cffcmap.c: Signature fixes.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/type1/t1load.c: Signature fixes.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	[truetype] Signature fixes.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	[base] Signature fixes.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/type42/t42drivr.c: Clean up interface.
+
+	Ensure that all driver functions use the signature of the service or driver.
+	This avoids pointer mismatches, which are technically undefined behaviour.
+	Recent compilers are more picky in catching them as part of Control Flow
+	Integrity tests.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/type1/*: Clean up interface.
+
+	Ensure that all driver functions use the signature of the service or driver.
+	This avoids pointer mismatches, which are technically undefined behaviour.
+	Recent compilers are more picky in catching them as part of Control Flow
+	Integrity tests.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/truetype/*: Clean up interface.
+
+	Ensure that all driver functions use the signature of the service or driver.
+	This avoids pointer mismatches, which are technically undefined behaviour.
+	Recent compilers are more picky in catching them as part of Control Flow
+	Integrity tests.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfdriver.c, src/sfnt/ttbdf.c: Clean up interface.
+
+	Ensure that all driver functions use the signature of the service or driver.
+	This avoids pointer mismatches, which are technically undefined behaviour.
+	Recent compilers are more picky in catching them as part of Control Flow
+	Integrity tests.
+
+	* src/sfnt/sfdriver.c (sfnt_load_table): New wrapper function.
+	(sfnt_service_sfnt_table): Use it.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/psnames/psmodule.c: Use `FT_CALLBACK_DEF`.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/pfr/pfrdrivr.c: face -> pfrface, pfrface -> face.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/pcf/pcfdrivr.c: Clean up interface.
+
+	Ensure that all driver functions use the signature of the service or driver.
+	This avoids pointer mismatches, which are technically undefined behaviour.
+	Recent compilers are more picky in catching them as part of Control Flow
+	Integrity tests.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/cid/cidriver.c: Clean up interface.
+
+	Ensure that all driver functions use the signature of the service or driver.
+	This avoids pointer mismatches, which are technically undefined behaviour.
+	Recent compilers are more picky in catching them as part of Control Flow
+	Integrity tests.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/bdf/bdfdrivr.c: Clean up interface.
+
+	Ensure that all driver functions use the signature of the service or driver.
+	This avoids pointer mismatches, which are technically undefined behaviour.
+	Recent compilers are more picky in catching them as part of Control Flow
+	Integrity tests.
+
+2023-05-07  Werner Lemberg  <[email protected]>
+
+	* src/cff/*: Clean up interface.
+
+	Ensure that all driver functions use the signature of the service or driver.
+	This avoids pointer mismatches, which are technically undefined behaviour.
+	Recent compilers are more picky in catching them as part of Control Flow
+	Integrity tests.
+
+2023-05-06  Werner Lemberg  <[email protected]>
+
+	[truetype] Fix style name handling for variation fonts.
+
+	* include/freetype/internal/tttypes.h (TT_FaceRec): New field
+	`non_var_style_name`.
+
+	* src/sfnt/sfobjs.c (sfnt_load_face): Initialize `non_var_style_name`.
+	(sfnt_done_face): Free `non_var_style_name`.
+
+	* src/truetype/ttgxvar.c (TT_Set_Named_Instance): Restore non-VF style name
+	if switching back to non-VF mode.
+
+2023-05-06  Werner Lemberg  <[email protected]>
+
+	[truetype] Fix PostScript name handling for variation fonts.
+
+	A variation font's PostScript name of a named instance is usually different
+	from the PostScript name of an unnamed instance.  However, if a change
+	between a named instance and an unnamed instance with exactly the same
+	design axis values happened, it was possible that the PostScript name wasn't
+	correctly updated.
+
+	This commit reorganizes the code to handle this issue within the top-level
+	API functions, using a new service to trigger recomputation of the
+	PostScript name.
+
+	* include/freetype/internal/services/svmm.h (FT_Construct_PS_Name_Func): New
+	typedef.
+	(FT_Service_MultiMasters): New field `construct_ps_name`.
+	(FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
+
+	* src/base/ftmm.c (FT_Set_Var_Design_Coordinates,
+	FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): Call
+	`mm->construct_ps_name` to handle `postscript_name`.
+	(FT_Set_Named_Instance): Call `mm->construct_ps_name` to handle
+	`postscript_name`.
+	Use shortcut.
+	* src/cff/cffdrivr.c (cff_construct_ps_name): New function.
+	(cff_service_multi_masters): Updated.
+
+	* src/truetype/ttgxvar.c (tt_set_mm_blend): Don't handle `postscript_name`.
+	(TT_Set_MM_Blend): Simplify.
+	(TT_Set_Named_Instance): Return -1 if axis values haven't changed.
+	Don't set `face_index`.
+	(tt_construct_ps_name): New function.
+
+	* src/truetype/ttgxvar.h: Updated.
+
+	* src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated.
+
+	* src/type1/t1driver.c (t1_service_multi_masters): Updated.
+
+	* src/type1/t1load.c (T1_Set_MM_Blend): Simplify.
+
+2023-05-06  Werner Lemberg  <[email protected]>
+
+	* include/freetype/internal/services/svmm.h: Minor changes.
+
+2023-05-06  Werner Lemberg  <[email protected]>
+
+	[truetype] Fix deactivation of variation font handling.
+
+	According to the documentation, the functions `FT_Set_Named_Instance`,
+	`FT_Set_MM_Design_Coordinates`, `FT_Set_Var_Design_Coordinates`, and
+	`FT_Set_Var_Blend_Coordinates` can unset the `FT_FACE_FLAG_VARIATION` flag.
+	(The same is true for `FT_Set_MM_WeightVector` but this information was
+	accidentally omitted from the documentation.)
+
+	However, if a call of these functions didn't change the axis values this
+	could fail because internal shortcuts exited too early.
+
+	This commit reorganizes the code to handle `FT_FACE_FLAG_VARIATION` in the
+	top-level API functions, also taking care of the issue at hand.
+
+	* src/base/ftmm.c (FT_Set_MM_Design_Coordinates, FT_Set_MM_WeightVector,
+	FT_Set_Var_Design_Coordinates, FT_Set_MM_Blend_Coordinates,
+	FT_Set_Var_Blend_Coordinates): Handle `FT_FACE_FLAG_VARIATION`.
+
+	* src/truetype/ttgxvar.c (TT_Set_MM_Blend, TT_Set_Var_Design,
+	TT_Set_Named_Instance) Don't handle `FT_FACE_FLAG_VARIATION`.
+
+	* src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_WeightVector,
+	T1_Set_MM_Design): Ditto.
+
+	* src/cff/cffobjs.c (cff_face_init): Use `FT_Set_Named_Instance` instead of
+	low-level functions.
+
+	* src/truetype/ttobjs.c (tt_face_init): Ditto.
+
+2023-05-06  Werner Lemberg  <[email protected]>
+
+	s/set_instance/set_named_instance/
+
+	* include/freetype/internal/services/svmm.h (FT_Set_Instance_Func): Renamed
+	to...
+	(FT_Set_Named_Instance_Func): ...this.
+	(FT_Service_MultiMasters): Rename `set_instance` to `set_named_instance`.
+	(FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
+
+	* src/base/ftmm.c (FT_Set_Named_Instance): Updated.
+
+	* src/cff/cffdrivr.c (cff_set_instance): Renamed to...
+	(cff_set_named_instance): ...this.
+	(cff_service_multi_masters): Updated.
+	* src/cff/cffobjs.c (cff_face_init): Updated.
+
+	* src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated.
+
+	* src/type1/t1driver.c (t1_service_multi_masters): Updated.
+
+2023-05-06  Werner Lemberg  <[email protected]>
+
+	New Variation Font function `FT_Get_Default_Named_Instance`.
+
+	* include/freetype/ftmm.h, src/base/ftmm.c (FT_Get_Default_Named_Instance):
+	New function.
+
+	* include/freetype/internal/services/svmm.h
+	(FT_Get_Default_Named_Instance_Func): New typedef.
+	(FT_Service_MultiMasters): New field `get_default_named_instance`.
+	(FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
+
+	* include/freetype/internal/tttypes.h (TT_Face): New field
+	`var_default_named_instance`.
+
+	* src/sfnt/sfobjc.s (sfnt_init_face): Initialize
+	`var_default_named_instance`.
+
+	* src/cff/cffdrivr.c (cff_get_default_named_instance): New function.
+	(cff_service_multi_masters): Updated.
+
+	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Initialize
+	`var_default_named_instance`.
+	(TT_Get_Default_Named_Instance): New function.
+	* src/truetype/ttgxvar.h: Updated.
+	* src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated.
+
+	* src/type1/t1driver.c (t1_service_multi_masters): Updated.
+
+	* docs/CHANGES: Updated.
+
+2023-05-06  Werner Lemberg  <[email protected]>
+
+	[cid] Improve tracing messages; formatting.
+
+2023-05-04  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/cache/ftccache.c (ftc_node_hash_unlink): Minor.
+
+2023-05-04  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/cache/ftcmru.c (FTC_MruList_RemoveSelection): Purge backwards.
+
+2023-05-04  Alexei Podtelezhnikov  <[email protected]>
+
+	[cache] Revise list cleansing.
+
+	* src/cache/ftcmru.c (FTC_MruList_RemoveSelection): Use one loop to
+	do it.
+	* src/cache/ftcmanag.c (FTC_Manager_Compress, FTC_Manager_FlushN):
+	Streamline loops.
+
+2023-05-03  suzuki toshiya  <[email protected]>
+
+	[t1cid] Improve cid_get_cid_from_glyph_index().
+
+	Update cid_get_cid_from_glyph_index() to
+	return an error and CID=0 in the case that
+	the specified glyph index points to an invalid
+	entry.
+
+	cidgload.h (cid_compute_fd_and_offsets):
+	Declare new helper function to set the
+	fd_select and 2 offsets to access the glyph
+	description data.
+
+	cidgload.c (cid_compute_fd_and_offsets):
+	Move the part loading fd_select and 2 offsets
+	from cid_load_glyph() to here.  If the loaded
+	parameters are broken, return the Invalid_Offset
+	error.  This function does not load the glyph
+	data, only fills these parameters.
+
+	(cid_load_glyph): Use new helper function in above.
+
+	cidriver.c (cid_get_cid_from_glyph_index):
+	Check whether the requested glyph index points
+	to a valid entry, by calling cid_compute_fd_and_offsets().
+	If it is valid, fill the cid by the glyph
+	index (=CID).  If it is invalid, return an
+	error and fill the cid by 0.
+
+2023-04-30  Werner Lemberg  <[email protected]>
+
+	API documentation: Re-organize chapters and sections
+
+	* Split the very long 'Base Interface' section into smaller sections.
+	* Split the 'Core API' chapter into two chapters.
+	* Remove single enumeration values from `@order` fields since they have no
+	  effect.
+
+2023-04-29  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/pngshim.c (Load_SBit_Png): Remove FALL_THROUGH warning.
+
+2023-04-28  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/ttload.c (tt_face_load_font_dir): Add another guard.
+
+	Reject 'OTTO' fonts with no valid tables.
+
+2023-04-28  Werner Lemberg  <[email protected]>
+
+	* src/cff/cffdrivr/c (cff_get_ps_name): Avoid unnecessary crash.
+
+	The situation can happen if `FT_New_Face` (or one of its siblings) is called
+	with a negative index to get the number of contained faces, followed
+	immediately by a call to `FT_Get_Postscript_Name`.  While this is not a valid
+	use of the FreeType library there is no need for a crash.
+
+	Fixes #1219.
+
+2023-04-28  Werner Lemberg  <[email protected]>
+
+	* src/cff/cffdrivr.c (cff_ps_get_font_info): Reject 'CFF2' format.
+
+2023-04-28  Werner Lemberg  <[email protected]>
+
+	* src/cid/cidgload.c (cid_load_glyph): Fix compiler warnings.
+
+2023-04-28  Werner Lemberg  <[email protected]>
+
+	Minor documentation updates.
+
+2023-04-27  Werner Lemberg  <[email protected]>
+
+	* src/ttgxvar.c: Minor changes.
+
+	(TT_Get_MM_Var): Improve tracing messages.
+	(tt_set_mm_blend): Minor speed-up.
+
+2023-04-27  Werner Lemberg  <[email protected]>
+
+	s/this is,/that is,/
+
+2023-04-27  Alexei Podtelezhnikov  <[email protected]>
+
+	[bdf] Clean up the atom property parsing.
+
+	* src/bdflib.c (bdf_is_atom_): Refactor code with fewer checks.
+	(bdf_list_join_): Return NULL.
+	(bdf_add_comment_): Use const argument.
+	(bdf_get_property): Ditto, ditto, make the function static.
+	* src/bdf.h (bdf_get_property): Remove prototype.
+
+2023-04-25  Werner Lemberg  <[email protected]>
+
+	Improve/add source comments and documentation.
+
+2023-04-25  Werner Lemberg  <[email protected]>
+
+	[sfnt] Fix handling of PS names for Variation Fonts.
+
+	* src/sfnt/sfdriver.c (get_win_string, get_apple_string): Continue
+	construction of string if an invalid character is encountered.
+
+	Fixes #1218.
+
+2023-04-24  suzuki toshiya  <[email protected]>
+
+	[t1cid] Change the trace messages of the charstrings retrieval errors.
+
+	The t1cid driver catches 3 types of errors in
+	the charstrings retrieval;
+	A) The invalid FD number, there are 2 subtypes;
+	  A-1) FD number is the maximum number fitting to FDBytes.
+	  A-2) FD number is greater than num_dicts.
+	B) Declared length is overrunning.
+	C) Declared length is invalid (its end is before its head).
+
+	Considering that some widely distributed fonts
+	(e.g., "CJKV" book by O'Reilly) have A-1 errors
+	in the unimplemented glyphs, the trace level for
+	A-1 is calmed to level 1.
+
+	The errors A-2, B, and C would be irregular;
+	their trace levels are kept at level 0, but
+	the updated trace messages include the CID number.
+
+2023-04-24  suzuki toshiya  <[email protected]>
+
+	[truetype] Fix `make multi'.
+
+	* src/truetype/ttgxvar.c: Include freetype/internal/services/svmetric.h
+	for the FT_Service_MetricsVariations type definition.
+
+2023-04-19  Ben Wagner  <[email protected]>
+
+	[services] FT_Size_Reset_Func to return FT_Error
+
+	The `MetricsVariations` `FT_Size_Reset_Func` is currently defined to
+	return `void`, but the implementations return `FT_Error`. Even though
+	the pointers passed will be the same at runtime, calling a function
+	through a pointer of a different type from the original function pointer
+	type is undefined behavior. This may be caught at runtime by Control
+	Flow Integrity with something like clang's `cfi-icall`.
+
+	Issue: https://crbug.com/1433651
+
+	* include/freetype/internal/services/svmetric.h (FT_Size_Reset_Func):
+	return `FT_Error` instead of `void`.
+
+2023-04-17  Ben Wagner  <[email protected]>
+
+	[truetype] tt_size_reset_height to take FT_Size
+
+	The `MetricsVariations` `FT_Size_Reset_Func` is defined to take an
+	`FT_Size`. Because `tt_size_reset_height` is to be used as such a
+	function, it must also take an `FT_Size` instead of a `TT_Size`. Even
+	though the pointers passed will be the same at runtime, calling a
+	function through a pointer of a different type from the original
+	function pointer type is undefined behavior. This may be caught at
+	runtime by Control Flow Integrity with something like clang's
+	`cfi-icall`.
+
+	Issue: https://crbug.com/1433651
+
+	* src/truetype/ttobjs.h (tt_size_reset_height): take `FT_Size`
+
+	* src/truetype/ttobjs.c (tt_size_reset_height): take `FT_Size` and
+	update documentation
+
+2023-04-13  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttinterp.c: Remove outdated comments.
+
+2023-04-11  Ben Wagner  <[email protected]>
+
+	[sfnt, truetype] Add `size_reset` to `MetricsVariations`.
+
+	This is a generalization of commit
+
+	```
+	commit e6699596af5c5d6f0ae0ea06e19df87dce088df8
+	Author: Werner Lemberg <[email protected]>
+	Date:   Thu Feb 2 11:38:04 2017 +0100
+
+	    [truetype] Fix MVAR post-action handling.
+	```
+
+	It is also possible for plain `CFF ` style fonts to contain an `fvar` and
+	`MVAR` table and use `cff_metrics_adjust`.  `tt_size_reset` should only be
+	called with `TT_Size` and never with `CFF_Size`.
+
+	Allow the "metrics-variations" service to specify the correct function (if
+	any) to reset `FT_Size`s after adjusting metrics.
+
+	* src/truetype/ttobjs.c (tt_size_reset): Split off some functionality
+	into...
+	(tt_size_reset_height): ... this new function.
+
+	* src/truetype/ttdriver.c (tt_service_metrics_variations): Add
+	`size_reset`.
+	(tt_size_select, tt_size_request): Updated.
+
+	* src/truetype/ttobjs.h: Updated.
+
+	* include/freetype/internal/services/svmetric.h (MetricsVariations): Add
+	`size_reset`.
+	(FT_DEFINE_SERVICE_METRICSVARIATIONSREC): Updated.
+
+	* include/freetype/internal/tttypes.h (TT_FaceRec_): Rename `var` to
+	`tt_var` and add `face_var`.
+
+	* src/cff/cffdrivr.c (cff_service_metrics_variations): Add `size_reset`.
+	(cff_hadvance_adjust, cff_metrics_adjust): Updated.
+
+	* src/cff/cffobjs.c (cff_face_init): Use `face_var`.
+
+	* src/sfnt/sfobjs.c (sfnt_init_face): Initialize `face_var`.
+
+	* src/sfnt/ttmtx.c (tt_face_get_metrics): Use `tt_var`.
+
+	* src/truetype/ttgxvar.c (tt_size_reset_iterator): Renamed to...
+	(ft_size_reset_iterator): ... this new function.
+	Call `size_reset`.
+	(tt_apply_mvar): Pass `size_reset` to `ft_size_reset_iterator`.
+
+	Fixes #1211
+
+2023-04-10  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/cff/cffcmap.c (cff_cmap_encoding_char_next): Abbreviate.
+
+2023-04-10  Alexei Podtelezhnikov  <[email protected]>
+
+	Align `char_next` return types.
+
+	This is mostly cosmetic because FT_UInt and FT_UInt32 are likely identical.
+
+	* src/sfnt/ttcmap.c, src/cff/cffcmap.c, src/psaux/t1cmap.c,
+	src/psnames/psmodule.c, include/freetype/internal/service/svpcsmap.h,
+	src/pfr/pfrcmap.c, src/winfonts/winfnt.c (*_char_next): return FT_UInt.
+
+2023-04-09  Alexei Podtelezhnikov  <[email protected]>
+
+	[sfnt] Clean up CMAP{4,12,13} handling.
+
+	This moves the charcode overflow checks upstream and turns some
+	while-loops into the do-while ones to avoid the uninitialized warnings.
+	This should slightly reduce the number of checks and jumps.
+
+	* src/sfnt/ttcmap.c (tt_cmap{4,12,13}_next,
+	tt_cmap{4.12.13}_char_map_linear): Remove the charcode overflow check.
+	(tt_cmap{4,12,13}_char_map_binary): Ditto and use do-while.
+	(tt_cmap{12,13}_char_next): Add the overflow check.
+
+2023-04-03  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/ttpost.c (load_format_25): Do not abort frame reading.
+
+2023-04-03  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/ttpost.c (load_format_*): Streamline frame reading.
+
+2023-04-02  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/ttpost.c: Formatting and comments.
+
+2023-04-02  Alexei Podtelezhnikov  <[email protected]>
+
+	[sfnt] Consolidate POST version 2.0 and 2.5 (pt 2).
+
+	* src/sfnt/ttpost.c (load_format_20, load_format_25): Update arguments
+	and move shared calls and checks upstream to...
+	(load_post_names): ... this function.
+	(tt_face_free_ps_names, tt_face_get_ps_name): Updated.
+
+2023-04-02  Alexei Podtelezhnikov  <[email protected]>
+
+	[sfnt] Consolidate POST version 2.0 and 2.5 (pt 1).
+
+	The deprecated POST version 2.5 can be handled using the data
+	structures of version 2.0.  The goal is to reduce the footprint.
+
+	* include/freetype/internal/tttypes.h (TT_Post_Names): Absorb and...
+	(TT_Post_20, TT_Post_25): ... remove these structures.
+	src/sfnt/ttpost.c (load_post_names, tt_face_get_ps_name,
+	tt_face_free_ps_names, load_format_20): Updated accordingly.
+	(load_format_25): ditto and convert offsets to glyph indices.
+
+2023-04-01  Alexei Podtelezhnikov  <[email protected]>
+
+	[sfnt] Miscellaneous POST clean-ups.
+
+	* src/sfnt/ttpost.c (load_format_20): Decrease casts.
+	(load_format_25): Check the table length and impose a theoretical
+	glyph number limit usable with 8-bit offset.  Decrease casts.
+	(load_post_names): Pass the mapping data length without 2 bytes.
+
+2023-03-30  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/ttpost.c (load_format_20): Simplify comutations.
+
+2023-03-29  Alexei Podtelezhnikov  <[email protected]>
+
+	[sfnt] Streamline POST format 2.0 handing (cont'd).
+
+	* src/sfnt/ttpost.c (load_format_20): Co-allocate the string data and
+	their pointers, which makes it easier to handle and free them.
+	(tt_face_free_ps_names): Updated.
+	* include/freetype/internal/tttypes.h (TT_Post_20): Update type.
+
+2023-03-20  Alexei Podtelezhnikov  <[email protected]>
+
+	[cff] Simplify `t2_strings` management in the old engine.
+
+	* src/cff/cffparse.c (cff_parser_run): Allocate the charstring buffers
+	and the list nodes together so that they can be freed at once.
+	(finalize_t2_strings): Removed as no longer needed.
+	(cff_parser_done): Updated.
+
+2023-03-19  Alexei Podtelezhnikov  <[email protected]>
+
+	[cff] Rework the stream limit checks.
+
+	The old stream limit checks, before 6986ddac1ece, were good but
+	pointless for the crafted t2_strings.  Checking limits there is
+	not necessary as they are created to hold all data.  By using two
+	conditions, we can detect the actual crossing of the stream boundary
+	as appropriate for the stream pointer only.  The t2_strings parsing
+	will not be triggering these checks.
+
+	* src/cff/cffparse.c (cff_parser_within_limits): Removed.
+	(cff_parse_real, cff_parse_integer): Redesign the stream limit check.
+	(cff_parse_num, do fixed, cff_parse_fixed_dynamic): Update callers.
+
+2023-03-18  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Use for-loop.
+
+	Even though we never call `TT_Load_Simple_Glyph` with zero contours,
+	out of abundance of precaution, let's handle this case properly.
+
+2023-03-18  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype] Clean up zeroing and local variables.
+
+	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Avoid zeroing.
+	(load_truetype_glyph): Avoid zeroing and clean local variables.
+
+2023-03-16  Werner Lemberg  <[email protected]>
+
+	* include/freetype/ftsystem.h (FT_Stream_IoFunc): Improve documentation.
+
+	Fixes #1208.
+
+2023-03-16  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftsynth.c (FT_GlyphSlot_AdjustWeight): New API.
+
+2023-03-16  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype] Clean up glyph loading.
+
+	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Clean space checking.
+	(TT_Hint_Glyph): Don't copy the outline structure.
+	(TT_Process_Simple_Glyph): Cosmetic update.
+
+2023-03-15  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Clean up.
+
+2023-03-13  Werner Lemberg  <[email protected]>
+
+	builds/vms/apinames_vms.bash: Fix `unzip` artifact
+
+	The problem occured when unpacking a zip file created on OpenVMS on Linux.
+	While OpenVMS knows many different file formats, Unix only knows stream-LF
+	and binary.  In principle `zip` on Linux should have translated the file to
+	stream-LF but failed to do so.  That caused the file to incorrectly contain
+	only one line with control-characters.
+
+2023-03-11  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype] Fix recent fallout in memory management.
+
+	* src/truetype/ttgload.c (TT_Process_Composite_Glyph,
+	TT_Load_Simple_Glyph): Clean up old instructions regardless of
+	new ones, postpone setting `control_len` and `control_data` until...
+	(TT_Load_Glyph): ... the exit from this function.
+
+2023-03-10  Jouk Jansen  <[email protected]>
+
+	Update VMS installation support.
+
+2023-03-10  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/truetype/ttgload.c (TT_Hint_Glyph): Mostly cosmetic update.
+
+	The number of instructions is now taken from the executed context.
+	Technically, this means that `control_len` and `control_data`
+	values are no longer _used_ internally but only expose them.
+
+2023-03-08  Werner Lemberg  <[email protected]>
+
+	apinames.c: Add comment.
+
+2023-03-07  Werner Lemberg  <[email protected]>
+
+	[gzip] File `infback.c` is not needed.
+
+	* src/gzip/infback.c: Remove.
+	* src/gzip/rules.mk (GZIP_DRV_SRCS): Updated.
+
+2023-03-07  Werner Lemberg  <[email protected]>
+
+	[apinames] Fix VMS handling of overly long function names.
+
+	Based on ideas from Jouk Jansen <[email protected]>.
+
+	* src/tools/vms_shorten_symbol.c: New file, taken from
+
+	  https://sourceforge.net/p/vms-ports/vmsshortsym/ci/default/tree/vms_shorten_symbol.c
+
+	with some minor edits to allow compilation with C++ and being included in
+	another source code file.
+
+	* src/tools/apinames.c: Include `vms_shorten_symbol.c`.
+	(PROGRAM_VERSION): Set to '0.5'.
+	(names_dump) [OUTPUT_VMS_OPT]: Call `vms_shorten_symbol` to get unique function
+	identifiers not longer than 31 characters.
+
+2023-03-07  Werner Lemberg  <[email protected]>
+
+	* src/tools/apinames.c (panic): Accept variable number of arguments.
+
+2023-03-07  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/truetype/ttgload.c (TT_Process_Composite_Glyph): Fix leak too.
+
+2023-03-07  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Triage memory leak.
+
+	This leak has been introduced in the previous commit and immediately
+	detected:
+	  https://chromium-review.googlesource.com/c/chromium/src/+/4313202
+
+2023-03-06  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype] Simplify memory management.
+
+	Instead of using `Update_Max`, switch to regular FreeType memory
+	allocation macros, stop pre-allocating the glyph instruction arrays.
+
+	* src/truetype/ttgload.c (TT_Load_Simple_Glyph,
+	TT_Process_Composite_Glyph): Switch to regular memory allocation.
+	* src/truetype/ttinterp.c (Update_Max): Removed.
+	(TT_Load_Context): Reallocate stack and free old instructions.
+	(Modify_CVT_Check, Ins_WS): Switch to regular memory allocation.
+	* src/truetype/ttinterp.h (Update_Max): Removed.
+
+2023-03-06  David PROVENT  <[email protected]>
+
+	Added information about the zlib version update in the changelog
+
+2023-03-06  Alexei Podtelezhnikov  <[email protected]>
+
+	Fix a couple of MSVC warnings.
+
+	* src/base/ftcalc.c (FT_MulAddFix): Add cast.
+	* src/sfnt/ttcolr.c (tt_face_get_colorline_stops, read_paint): Ditto.
+
+2023-03-05  Alexei Podtelezhnikov  <[email protected]>
+
+	* builds/windows/vc2010/freetype.vcxproj: Suppress C4267 on _WIN64.
+
+	This usually comes from `strlen` returning 64-bit `size_t`, which
+	we often assign to 32-bit `FT_ULong` on Windows-64 (LLP64).
+
+2023-03-05  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/cff/cffparse.c (cff_parser_run): Thinko.
+
+2023-03-05  Alexei Podtelezhnikov  <[email protected]>
+
+	[cff] Clean up CharString number encoding.
+
+	* src/cff/cffparser.c (cff_parser_run): Work with signed numbers.
+
+2023-03-05  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/cff/cffparse.c (cff_parser_run): Fix variable type.
+
+2023-03-04  Alexei Podtelezhnikov  <[email protected]>
+
+	[cff] Clean up memory management in the old engine.
+
+	* src/cff/cffparse.c (finalize_t2_strings): Fix NULL-dereferencing
+	in the out-of-memory situation, use `FT_FREE`.
+	(cff_parser_run): Use FreeType memory allocation macros and avoid
+	uninitialized pointers.
+
+2023-03-04  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/cff/cffobjs.c (cff_size_init): Synonymous change.
+
+2023-03-04  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/sfobjs.c (sfnt_load_face): Shorten de-referencing.
+
+2023-03-04  Alexei Podtelezhnikov  <[email protected]>
+
+	[pfr] Shorten de-referencing.
+
+	* src/pfr/pfrobjs.c (pfr_face_done, pfr_face_init): Use closer `memory`.
+	* src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove `loader`.
+
+2023-03-03  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/cff/cffobjs.c (cff_size_get_globals_funcs): Shorten de-referencing.
+
+2023-03-03  Alexei Podtelezhnikov  <[email protected]>
+
+	[cff,cid,type1] Shorten de-referencing.
+
+	* src/cff/cffobjs.c (cff_clot_init): Use immediate library reference.
+	* src/cid/cidobjs.c (cid_slot_init): Ditto.
+	* src/type1/t1objs.c (T1_GlyphSlot_Init): Ditto.
+
+2023-03-02  Alexei Podtelezhnikov  <[email protected]>
+
+	* configure: Use `sed` instead of `grep`.
+
+	This is more portable and consistent with `autogen.sh`.
+
+2023-03-02  Ben Wagner  <[email protected]>
+
+	Avoid strtol on non-null-terminated data.
+
+	Technically, `strtol` can only be used with C strings terminated with
+	`\0`.  CID data is not generally null-terminated and often does not
+	contain a `\0` if it is hex-encoded.  AddressSanitizer with `ASAN_OPTIONS`
+	containing `strict_string_checks=1` verifies this by using an adversarial
+	`strtol` that always reads to the terminating `\0`.
+
+	To avoid undefined behavior from `strtol` in `cid_parser_new`, use the
+	parser to parse the tokens instead of attempting to parse them ad-hoc.
+	This will internally use `PS_Conv_Strtol` to parse the integer, which
+	respects the parser's limits and directly implements the PostScript
+	parsing rules for integers.
+
+	* src/cid/cidparse.c (cid_parser_new): Use the parser to parse the
+	tokens.
+
+	Fixes: https://bugs.chromium.org/p/chromium/issues/detail?id=1420329
+
+2023-03-02  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/cff/cffload.c (cff_subfont_load): Synonymous update.
+
+2023-03-01  ubawurinna  <[email protected]>
+
+	* src/gzip/README.freetype: Update version.
+
+2023-03-01  ubawurinna  <[email protected]>
+
+	[gzip] Fix static linking.
+
+	Without this patch, static linking with MS Visual Studio causes linking
+	errors.
+
+	* src/gzip/ftgzip.c: Set `ZEXPORT` to nothing and `ZEXTERN` to static for
+	all compilers.
+
+2023-03-01  Werner Lemberg  <[email protected]>
+
+	* include/freetype/internal/compiler-macros.h (FALL_THROUGH): Update.
+
+	This follows
+
+	  https://lists.gnu.org/archive/html/bug-gnulib/2023-02/msg00200.html
+
+2023-02-28  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype] Treat 38 as 40 without Infinality.
+
+	* include/freetype/ftdriver.h (TT_INTERPRETER_VERSION_38): Reinstate.
+	* src/truetype/ttdriver.c (tt_property_set): Fallback from 38 to 40.
+
+2023-02-26  Werner Lemberg  <[email protected]>
+
+	* include/freetype/internal/compiler-macros.h (FALL_THROUGH): Update.
+
+	This follows
+
+	  https://lists.gnu.org/archive/html/bug-gnulib/2023-02/msg00159.html
+
+2023-02-26  Werner Lemberg  <[email protected]>
+
+	* src/*: Replace leading underscores with trailing ones in dummy variables.
+
+	This is to avoid clang warnings.
+
+2023-02-26  Karl Berry  <[email protected]>
+
+	* configure: Don't hardcode `grep -E`.
+
+	TeXLive still supports Solaris 5.10, where the system's `grep` doesn't
+	accept the `-E` option.  We thus introduce an `EGREP` variable that is set
+	to either `grep -E` or `-egrep`.
+
+2023-02-26  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/cff/cffload.c (cff_encoding_load): Optimize array zeroing.
+
+	This is unnecessary for predefined standard and expert encodings.
+	Even for custom encodings the arrays might be already zeroed when
+	CFF_FontRec is created but we keep it just in case.
+
+2023-02-25  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/type1/t1load.c (T1_Get_MM_Var): Optimize array zeroing.
+
+2023-02-25  Tamir Duberstein  <[email protected]>
+
+	* src/base/ftsystem.c (ft_ansi_stream_io): Avoid undefined behaviour.
+	Also short-circuit on `offset` to avoid checking `count` a second time when
+	`ft_ansi_stream_io` is used for reading.
+
+	Per ISO/IEC 9899:
+
+	  If an argument to a function has an invalid value (such as a value outside
+	  the domain of the function, or a pointer outside the address space of the
+	  program, or a null pointer, or apointer to non-modifiable storage when the
+	  corresponding parameter is not const-qualified) or a type (after
+	  promotion) not expected by a function with variable number of arguments,
+	  the behavior is undefined.  If a function argument is described as being
+	  an array, the pointer actually passed to the function shall have a value
+	  such that all address computations and accesses to objects (that would be
+	  valid if the pointer did point to the first element of such an array) are
+	  in fact valid.
+
+	Per IEEE Std 1003.1:
+
+	  size_t fread(void *restrict ptr, size_t size, size_t nitems,
+	               FILE *restrict stream);
+
+	  The `fread` function shall read into the array pointed to by `ptr` up to
+	  `nitems` elements whose size is specified by `size` in bytes, from the
+	  stream pointed to by `stream`.
+
+	Since the first argument to `fread` is described as being an array, its
+	behavior is undefined when that argument is a null pointer.
+
+	Per the documentation on `ft_ansi_stream_io`:
+
+	  If `count' is zero (this is, the function is used for seeking), a non-zero
+	  return value indicates an error.
+
+	Thus the intent is clear, and the call to `fread` can be skipped, avoiding
+	undefined behaviour.
+
+2023-02-21  Alexei Podtelezhnikov  <[email protected]>
+
+	[raster] Clean up contour indexing.
+
+	* src/raster/ftraster.c (Decompose_Curve, Convert_Glyph): Use consistent
+	index types (Int) and compact iterations.
+
+2023-02-21  Alexei Podtelezhnikov  <[email protected]>
+
+	[autofit] Clean up contour indexing.
+
+	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Refactor.
+	* src/autofit/afcjk.c (af_cjk_metrics_init_blues): Ditto.
+
+2023-02-21  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftoutln.c (FT_Outline_Check): Fix C4701 warning.
+
+2023-02-21  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sdf/ftsdf.c (get_min_distance_cubic): Fix C4701, typos.
+
+2023-02-20  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftstroke.c (FT_Stroker_ParseOutline): Clean up contour indexing.
+
+2023-02-20  Alexei Podtelezhnikov  <[email protected]>
+
+	[base] Clean up contour indexing.
+
+	* src/base/ftoutln.c (FT_Outline_Reverse, FT_Outline_EmboldenXY,
+	FT_Outline_Get_Orientation): Set the first and last indexes together.
+	(FT_Outline_Decompose): Ditto and check them more stringently.
+	* src/smooth/ftgrays.c (FT_Outline_Decompose)[STANDALONE_]: Ditto.
+
+2023-02-20  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftoutln.c (FT_Outline_Check): Update error code, clean up.
+
+2023-02-17  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype] Hide Infinality.
+
+	Remove Infinality as an option before its complete extraction.
+
+	* include/freetype/ftoption.h: Remove the Infinality option.
+	* devel/ftoption.h: Ditto.
+	* include/freetype/ftdriver.h (TT_INTERPRETER_VERSION_38): Is 40 now.
+
+2023-02-17  Alex Ringlein  <[email protected]>
+
+	* src/base/ftoutln.c (FT_Outline_Reverse): Anchor first contour points.
+
+	A cubic contour has to always start from an on-point. Therefore, we
+	should not swap the first with the last point, which might be off, and
+	obtain an invalid contour. This does not matter for conic contours.
+	If anything, it also saves one swap there. Fixes #1207.
+
+2023-02-16  Werner Lemberg  <[email protected]>
+
+	Documentation improvement for `FT_Bitmap`.
+
+	Fixes #1205.
+
+2023-02-10  Alexei Podtelezhnikov  <[email protected]>
+
+	[type1/MM] Round design coordinates.
+
+	The design coordinates for MM fonts were not rounded. For example,
+	`FT_Get_Var_Design_Coordinates` returned values with fractional part.
+
+	* src/type1/t1load.c (mm_axis_unmap): Refactor with rounding.
+
+	* include/freetype/ftmm.h (FT_Var_Axis, FT_Set_Var_Design_Coordinates,
+	FT_Get_Var_Design_Coordinates): Reword documentation.
+
+2023-02-09  Jan Alexander Steffens (heftig)  <[email protected]>
+
+	* builds/meson/parse_modules_cfg.py: Handle `gxvalid` and `otvalid`.
+
+	These need a name mapping similar to what was done for other modules,
+	or linking will fail.
+
+2023-02-09  Werner Lemberg  <[email protected]>
+
+	* build/toplevel.mk (do_dist): Fix typo.
+
+2023-02-09  Werner Lemberg  <[email protected]>
+
+	* Version 2.13 released.
+	==========================
+
+	Tag sources with `VER-2-13-0'.
+
+	* docs/VERSION.TXT: Add entry for version 2.13.
+	* docs/CHANGES: Updated.
+
+	* README, src/base/ftver.rc, builds/windows/vc2010/index.html,
+	builds/windows/visualc/index.html, builds/windows/visualce/index.html,
+	builds/wince/vc2005-ce/index.html, builds/wince/vc2008-ce/index.html,
+	docs/freetype-config.1: s/2.12.1/2.13/, s/2121/2130/.
+
+	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 13.
+	(FREETYPE_PATCH): Set to 0.
+
+	* builds/unix/configure.raw (version_info): Set to 25:0:19.
+	* CMakeLists.txt (VERSION_MINOR): Set to 13.
+	(VERSION_PATCH): Set to 0.
+
+2023-02-09  Alexei Podtelezhnikov  <[email protected]>
+
+	Comment on `FT_GlyphSlot_Slant'.
+
+2023-02-08  Werner Lemberg  <[email protected]>
+
+	[autofit] Fix 'multi' compilation.
+
+	* src/autofit/ft-hb.c: Decorate with `FT_LOCAL_DEF`.
+	Add ANSI boilerplate code for otherwise empty file.
+	* src/autofit/ft-hb.h: Include `compiler-macros.h` and `freetype.h`.
+	Use `FT_BEGIN_HEADER` and `FT_END_HEADER`.
+	Decorate with `FT_LOCAL`.
+
+	* src/autofit/rules.mk (AUTOF_DRV_SRC): Add `ft-hb.c`.
+
+2023-02-08  Werner Lemberg  <[email protected]>
+
+	Fix `FT_LOCAL` and `FT_LOCAL_DEF` tags.
+
+2023-02-08  Werner Lemberg  <[email protected]>
+
+	Fix 'fall-through' warning messages.
+
+	Modern compilers get more insistent on that...
+
+	* include/freetype/internal/compiler-macros.h (FALL_THROUGH): Define.
+	* src/*: Use it instead of `/* fall through */` comments.
+
+2023-02-08  Werner Lemberg  <[email protected]>
+
+	For debugging, avoid implicit conversion from integer to double.
+
+	Otherwise we get zillions of clang 15 warnings.
+
+	* src/autofit/afcjk.c, src/autofit/afhints.c, src/autofit/aflatin.c,
+	src/base/ftobjs.c, src/base/ftoutln.c, src/cff/cffparse.c,
+	src/raster/ftraster.c, src/sfnt/pngshim.c, src/truetype/ttgload.c,
+	src/truetype/ttgxvar.c, src/truetype/ttobjs.c, src/type1/t1gload.c: Use
+	`double` cast in debugging and tracing macros.
+
+2023-02-08  Werner Lemberg  <[email protected]>
+
+	Avoid reserved identifiers that are globally defined.
+
+	This is mandated by the C99 standard, and clang 15 produces zillions of
+	warnings otherwise.
+
+	* devel/ftoption.h, include/freetype/config/ftoption.h,
+	include/freetype/internal/ftmemory.h, src/autofit/afhints.h,
+	src/autofit/afmodule.c, src/autofit/aftypes.h, src/base/ftadvanc.c,
+	src/base/ftdbgmem.c, src/base/ftstream.c, src/bdf/bdflib.c,
+	src/truetype/ttinterp.c: Replace identifiers of the form `_foo` with `foo_`.
+
+2023-02-08  Werner Lemberg  <[email protected]>
+
+	Fix minor clang and clang++ warnings.
+
+2023-02-08  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype, type1] Additional variation tags.
+
+	Sync with
+	  https://learn.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg#registered-axis-tags
+
+	* src/truetype/ttgxvar.h (TTAG_ital): New tag.
+	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Use it.
+	* src/type1/t1load.c (T1_Get_MM_Var): Handle 'slnt' and 'ital'.
+
+2023-02-08  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftsynth.c (FT_GlyphSlot_Slant): Add vertical slant.
+	* include/freetype/ftsynth.h (FT_GlyphSlot_Slant): Update it.
+
+2023-02-08  anuj  <[email protected]>
+
+	[sdf] Use 32-bit integers internally.
+
+	* src/sdf/ftsdfcommon.h (FT_16D16, FT_26D6): Use 32-bit integers
+	  instead of `FT_Fixed` for internal data types. `FT_Fixed` i.e.
+	  `signed long` is 64-bit on some architectures.
+
+2023-02-07  Werner Lemberg  <[email protected]>
+
+	docs/CHANGES: Updated.
+
+2023-02-04  Alexei Podtelezhnikov  <[email protected]>
+
+	Comment on optional ascender and descender.
+
+2023-02-04  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/type1/t1afm.c (T1_Read_Metrics): Reaffirm ascender and descender.
+
+2023-02-04  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/type1/t1afm.c (T1_Read_Metrics): Validate ascender and descender.
+
+	The ascender and descender are optional in the AFM specifications.
+	They could be omitted or even set to zero, e.g., in the current release
+	of URW++ base 35 fonts.
+
+2023-02-02  Werner Lemberg  <[email protected]>
+
+	* src/cff/cffgload.c (cff_slot_load): Avoid memory leak.
+
+	Fixes issue #1204.
+
+2023-02-01  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttgxvar.c (tt_var_get_item_delta): Check `face->blend`.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=55581
+
+2023-02-01  Werner Lemberg  <[email protected]>
+
+	* docs/CHANGES: Add news for 'freetype-demos'.
+
+2023-01-30  Werner Lemberg  <[email protected]>
+
+	* subprojects/harfbuzz.wrap, subprojects/libpng.wrap: Updated.
+
+2023-01-28  Werner Lemberg  <[email protected]>
+
+	Minor changes.
+
+	Comment fixes, typos, removing of unnecessary parentheses.
+
+2023-01-28  Werner Lemberg  <[email protected]>
+
+	Whitespace.
+
+2023-01-27  Behdad Esfahbod  <[email protected]>
+
+	[ttgxvar] Fix crash in COLRv1.
+
+	This is a stopgap until issue #1202 is properly fixed.
+
+	* src/truetype/ttxgvar.c (tt_var_get_item_delta): Check `normalizedcoords`.
+
+2023-01-19  Werner Lemberg  <[email protected]>
+
+	The 'COLR' v1 API will no longer be experimental in the next release.
+
+2023-01-18  Alexei Podtelezhnikov  <[email protected]>
+
+	* docs/oldlogs/ChangeLog.210: Typos.
+
+2023-01-18  Ben Wagner  <[email protected]>
+
+	[base] Fix typo.
+
+	* src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Request module 't1cid',
+	not 'cid'.
+
+2023-01-18  Ben Wagner  <[email protected]>
+
+	[base] Return error if requested driver is not found.
+
+	In `open_face_from_buffer` it is possible that a driver is requested but
+	FreeType was built without the requested module.  Return an error in this
+	case to indicate that the request could not be satisfied, rather than trying
+	all existing driver modules.
+
+	* src/base/ftobjs.c (open_face_from_buffer): Return `FT_Err_Missing_Module`
+	if a driver is specified but not found.
+
+2023-01-18  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Avoid nullptr dereference in reading malformed 'COLR' v1 table.
+
+	Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=1408044.
+
+	* src/sfnt/ttcolr.c (tt_face_load_colr): When the 'COLR' v1 table header is
+	too small, don't deallocate delta set index map structures.
+
+2023-01-17  Werner Lemberg  <[email protected]>
+
+	* src/tools/update-copyright: Allow execution from other repositories.
+
+	We use this for `freetype-demos`.
+
+2023-01-17  Werner Lemberg  <[email protected]>
+
+	Update all copyright notices.
+
+2023-01-17  Werner Lemberg  <[email protected]>
+
+	* src/tools/no-copyright: Updated.
+
+2023-01-17  Ben Wagner  <[email protected]>
+
+	[base] 'close' callback may not use `stream->memory`.
+
+	The documentation for `FT_StreamRec::memory` states that it 'shouldn't be
+	touched by stream implementations'.  This is true even for internal
+	implementations of the 'close' callback, since it is not guaranteed that
+	`memory` will even be set when the 'close' callback occurs.
+
+	* src/base/ftobjs.c (new_memory_stream): stash current `memory` in
+	`stream->descriptor`.
+	(memory_stream_close): Use it.
+
+2023-01-17  Ben Wagner  <[email protected]>
+
+	[base] Always close user-provided stream.
+
+	The `FT_Open_Face` documentation states
+
+	> If `FT_OPEN_STREAM` is set in `args->flags`, the stream in `args->stream`
+	> is automatically closed before this function returns any error (including
+	> `FT_Err_Invalid_Argument`).
+
+	However, if the user provides a stream in `args.stream` with
+	`FT_OPEN_STREAM` set and a `close` function, but then for some reason passes
+	NULL for `aface` and a non-negative `face_index`, the error
+	`Invalid_Argument` is returned but the `close` callback will not be called
+	on the user-provided stream.  This may cause resource leaks if the caller is
+	depending on the `close` callback to free resources.
+
+	The difficulty is that a user may fill out a `FT_StreamRec` and pass its
+	address as `args.stream`, but the stream isn't really 'live' until
+	`FT_Stream_New` is called on it (and `memory` is set).  In particular, it
+	cannot really be cleaned up properly in `ft_open_face_internal` until the
+	stream pointer has been copied into the `stream` local variable.
+
+	* src/base/ftobj.c (ft_open_face_internal): Ensure that user-provided
+	`args.stream.close` is called even with early errors.
+
+2023-01-17  Ben Wagner  <[email protected]>
+
+	[base] Fix leak of internal stream marked external.
+
+	`open_face_from_buffer` allocates a new `FT_Stream` to pass to
+	`ft_open_face_internal`.  Because this is an `FT_OPEN_STREAM`,
+	`ft_open_face_internal` will mark this as an 'external stream', which the
+	caller must free.  However, `open_face_from_buffer` cannot directly free it
+	because the stream must last as long as the face.  There is currently an
+	attempt at this by clearing the 'external stream' bit after
+	`open_face_from_buffer` returns successfully.  However, this is too late as
+	the original stream may have already been closed and the stream on the face
+	may not be the same stream as originally passed.
+
+	It is tempting to use `FT_OPEN_MEMORY` and let `ft_open_face_internal`
+	create the stream internally.  However, with this method there is no means
+	to pass through a 'close' function to the created stream to free the
+	underlying data, which must be owned by the stream.
+
+	A possibility is to check on success if the stream of the face is the same
+	as the original stream.  If it is then unset the external flag.  If not,
+	then free the original stream.  Unfortunately, while no current
+	implementation does so, it is possible that the face still has the original
+	stream somewhere other than as the `FT_FaceRec::stream`.  The stream needs
+	to remain available for the life of the face or until it is closed,
+	whichever comes earlier.
+
+	The approach taken here is to let the stream own itself.  When the stream is
+	closed it will free itself.
+
+	* src/base/ftobjs.c (memory_stream_close): Free `stream`.
+	(open_face_from_buffer): Simplify error handling, since
+	`ft_open_face_internal` always closes `args.stream` on any error.
+
+	Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54930
+
+2023-01-16  Werner Lemberg  <[email protected]>
+
+	sr/*.c: Various minor fixes.
+
+	* src/autofit/ft-hb.c (_hb_ft_reference_table): Call `FT_UNUSED` after
+	variable declarations.
+
+	* src/gxvalid/gxvjust.c (gxv_just_widthDeltaClusters_validate): Eliminate
+	unused variable.
+
+	* src/gzip/ftgzip.c: Don't call GCC '-Wstrict-prototypes' pragma for C++
+	compiler.
+
+	* src/sfnt/ttcolr.c (ENSURE_READ_BYTES): Remove final semicolon to avoid
+	compiler warning.
+
+	* src/sfnt/ttsvg.c (tt_face_load_svg_doc): Fix signedness warning.
+
+2023-01-16  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Remove temporary runtime flag for variable 'COLR' v1.
+
+	Fixes #1187.
+
+	* src/sfnt/ttcolr.c (top level, read_paint, tt_face_load_colr,
+	tt_face_free_colr, get_deltas_for_var_index_base,
+	tt_face_get_color_glyph_clipbox, tt_face_get_colorline_stops): Remove macro
+	definition `VARIABLE_COLRV1_ENABLED` and its usage.
+
+	* src/truetype/ttdriver.c (tt_property_set): Remove parsing of
+	'TEMPORARY-enable-variable-colrv1' property name.
+
+	* src/truetype/ttobjs.h (TT_DriverRec): Remove `enable_variable_colrv1`
+	flag.
+
+2023-01-07  Werner Lemberg  <[email protected]>
+
+	* src/autofit/ft-hb.c (_hb_ft_reference_table): Minor integration fixes.
+
+2023-01-07  Ben Wagner  <[email protected]>
+
+	[truetype] Reset cvt and storage in context load.
+
+	Currently the cvt and storage are saved and restored in `TT_RunIns`.
+	However, this is too granular as the cvt and storage area should be set to
+	the original cvt and storage area only when setting up the hinting context.
+	This allows for the cvt and storage area to be modified while parsing
+	multiple glyphs, as is the case with composite glyphs.
+
+	* src/truetype/ttinterp.h (TT_ExecContextRec): Remove `origCvt` and
+	`origStorage`.
+
+	* src/truetype/ttinterp.c (TT_RunIns): Don't save and restore the cvt and
+	storage area.
+	(Modify_CVT_Check, Ins_WS): Switch from "if in glyph and using original data
+	do copy on write" to "if in glyph and not using glyph specific data do copy
+	on write".
+
+2023-01-06  Matthias Clasen  <[email protected]>
+
+	[autofit] Don't depend on 'hb-ft'.
+
+	The circular dependency is still there, but at least we no longer depend on
+	the HarfBuzz API that is only present if HarfBuzz has been built with
+	FreeType support, making the bootstrapping a bit easier.
+
+	* src/autofit/ft-hb.c, src/autofit/ft-hb.h: New files, providing
+	`_hb_ft_font_create`, which is more or less a verbatim copy of the
+	corresponding HarfBuzz code from file `hb-ft.cc`.
+
+	* src/autofit/afglobal.c (af_face_globals_new): Use it.
+	* src/autofit/afshaper.h: Don't include `hb-ft.h` but `ft-hb.h`.
+	* src/autofit/autofit.c: Include `ft-hb.c`.
+
+	* LICENSE.TXT: Updated.
+
+2023-01-06  Ben Wagner  <[email protected]>
+
+	[truetype] Keep variation store consistent.
+
+	`tt_var_load_item_variation_store` fills out a `GX_ItemVarStore`.  While it
+	may return an error, the item store must be left in a consistent state so
+	that any use or destruction of the item store can properly use or free the
+	data in it.  Before this change the counts from the font data were read
+	directly into the item store before the actual allocation of the arrays to
+	which they referred.  There exist many opportunities between the time the
+	counts are read and the arrays are allocated to return early due to invalid
+	data.  When this happened the item store claimed to have entires it actually
+	did not, leading to crashes later when it was used.
+
+	Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54449
+
+	* src/truetype/ttgxvar.c (tt_var_load_item_variation_store): Read the counts
+	into local variables and store them in the item store only after the related
+	arrays are actually created on the item store.
+
+2023-01-05  Ben Wagner  <[email protected]>
+
+	[base] Report used stream's external status.
+
+	In `open_face` the initial stream is set on the face, along with the
+	information about if FreeType is the owner of the stream object itself.  The
+	loaders may in the course of their work replace this stream with a new
+	stream (as is the case for 'woff' and 'woff2'), which may have a different
+	ownership than the initial stream object (likely the original stream object
+	is owned by the user and is external, while the new stream object is created
+	internally to FreeType and is internal).  When the stream is replaced, the
+	face's flags are updated with the new ownership status.
+
+	However, `open_face` cannot itself free this stream as its caller
+	`ft_open_face_internal` is responsible for this.  In addition, in the case
+	of an error `open_face` cannot return an actual face with the new stream and
+	its ownership status to the caller.  As a result, it must pass this
+	information back to the caller as a sort of "failed face" so that the caller
+	can clean up.
+
+	`open_face` was already passing back the new stream but was not passing back
+	the stream ownership information.  As a result the stream may not have been
+	free'd when needed.
+
+	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54700
+
+	* src/base/ftobjs.c (open_face): Pass back the ownership information as
+	well.
+	(ft_open_face_internal): Updated.
+
+2023-01-05  Noah Cabral  <[email protected]>
+
+	fix spelling err in LICENSE.txt
+
+2023-01-05  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Fix color stop bounds check calculation at table end.
+
+	Fixes https://bugs.chromium.org/p/skia/issues/detail?id=14021
+
+	* src/sfnt/ttcolr.c (VAR_IDX_BASE_SIZE): New macro.
+	(tt_face_get_colorline_stops): Fix off-by-one bounds check calculation, take
+	`VarColorStop` into account, and hopefully make it easier to read.
+
+2023-01-05  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftobjs.c (FT_Request_Metrics): Avoid division by zero.
+
+	The division-by-zero might happen in broken fonts (see #1194).
+	Instead of returning a huge number from FT_DivFix and failing
+	to scale later, we now bail immediately.
+
+2022-12-20  Alexei Podtelezhnikov  <[email protected]>
+
+	[psaux] Delay the upem validity assertion.

+	

+	Fixes #1194.

+	

+	* src/psaux/psft.c (cf2_getUnitsPerEm): Remove the upem assert.

+	(cf2_checkTransform): Assert the upem validity after checking the scale.
+
+2022-12-14  David Vanderson  <[email protected]>
+	    Werner Lemberg  <[email protected]>
+
+	[gzip] Make static compilation not leak global symbols.
+
+	* src/gzip/ftgzip.c (HAVE_HIDDEN): Do not define; it is no longer needed
+	because everything is static.
+	(HAVE_MEMCPY): Define.
+	(zcalloc, zcfree): Remove no longer needed definitions (because `Z_SOLO` is
+	active).
+
+	* src/gzip/patches/freetype-zlib.diff: Regenerated.
+
+	Fixes #1146.
+
+2022-12-14  Werner Lemberg  <[email protected]>
+
+	* src/gzip/ftzconf.h: Updated to zlib 1.2.13.
+
+	I forgot to copy that file.
+
+2022-12-14  Werner Lemberg  <[email protected]>
+
+	* builds/unix/configure.raw: Don't check for `memcpy` and `memmove`.
+
+	We expect a C99 compiler, and both functions are part of this standard.
+
+2022-12-13  Werner Lemberg  <[email protected]>
+
+	[sdf, sfnt] Handle minor compiler warnings.
+
+	* src/sdf/ftsdf.c (get_min_distance_conic): Initialize `nearest_point`.
+
+	* src/sfnt/ttsvg.c (find_doc): Initialize `mid_doc`.
+
+	Fixes #1195.
+
+2022-12-07  Werner Lemberg  <[email protected]>
+
+	* subprojects/zlib.wrap: Micro-update from upstream.
+
+2022-12-06  Jiří Malák  <[email protected]>
+
+	* include/freetype/internal/ftcalc.h (FT_MSB): Support Open Watcom 2.0.
+
+	Closes !232.
+
+2022-11-23  Luca Bacci  <[email protected]>
+
+	* src/base/ftdbgmem.c (ft_mem_source_compare): Add FT_COMPARE_DEF.
+
+	Closes !230.
+
+2022-11-21  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/autofit/afloader.c (af_loader_load_glyph): Remove `size` check.
+
+	This is done by `FT_Load_Glyph`.
+
+2022-11-18  Alexei Podtelezhnikov  <[email protected]>
+
+	Comments added.
+
+2022-11-16  Johan Matsson  <mjunix@ at github>
+
+	* src/autofit/afloader.c (af_loader_load_glyph): Fix dereference.
+
+	This must happen after the NULL check.
+
+	Taken from
+
+	  https://github.com/freetype/freetype/pull/2
+
+2022-11-15  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/pcf/pcfutil.c ({Two,Four}ByteSwap): Use builtins or shifts.
+
+	We trust glibc which uses shifts or builtins to swap bytes.  This
+	must be more efficient.
+
+2022-11-14  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttgxvar.c (tt_hvadvance_adjust): Integer overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=50462
+
+2022-11-14  Loïc Yhuel  <[email protected]>
+
+	[meson] Use generated ftmodule.h
+
+	ftmodule.h is generated at the root of the build directory, but FT_CONFIG_MODULES_H
+	(freetype/config/ftmodule.h) is used instead.
+	This makes the build fail when disabling modules in modules.cfg.
+
+	* meson.build (harfbuzz_dep): Add '-DFT_CONFIG_MODULES_H=<ftmodule.h>'.
+
+2022-11-14  Loïc Yhuel  <[email protected]>
+
+	[meson] Fix generated ftmodule.h
+
+	The sdf module wasn't recognized, so the generated ftmodule.h had "None_renderer_class".
+
+	* builds/meson/parse_modules_cfg.py: Handle sdf in RASTER_MODULES.
+
+2022-11-12  Dominik Röttsches  <[email protected]>
+
+	Add `TT_CONFIG_OPTION_NO_BORING_EXPANSION` configuration macro.
+
+	This gives users a possibility to deactivate new features not (yet) in the
+	OpenType standard.
+
+	* include/freetype/config/ftoption.h, devel/ftoption.h
+	(TT_CONFIG_OPTION_NO_BORING_EXPANSION): New macro.
+
+	* src/truetype/ttgxvar.c (ft_var_load_avar): Use it to disable 'avar'
+	version 2.0 support.
+
+2022-11-12  Behdad Esfahbod  <[email protected]>
+
+	[truetype] Improve bounds checks for `ItemVariationStore`.
+
+	* src/truetype/ttgxvar.c (tt_hvadvance_adjust): Move bounds check ...
+	(tt_var_get_item_delta): ...  to this function, because it is safer.  For
+	example, the 'avar' table 2.0 codepath was not performing a bounds check at
+	all.
+
+2022-11-12  Behdad Esfahbod  <[email protected]>
+
+	[truetype] In `ItemVariationStore`, value 0xFFFF for `dataCount` is valid.
+
+	It corresponds to outer indices of 0 to 0xFFFE.
+
+	* src/truetype/ttgxvar.c (tt_var_load_item_variation_store): Remove invalid
+	code.
+
+2022-11-11  Alexei Podtelezhnikov  <[email protected]>
+
+	[pcf] Improve CMap efficiency and readability.
+
+	* src/pcf/pcfdrivr.c (pcf_cmap_char_{index,next}): Check and walk
+	the encoding array indexes.
+
+2022-11-10  Sam James  <[email protected]>
+
+	Fix `-Wstrict-prototypes`.
+
+	* builds/unix/configure.raw: Fix `-Wstrict-prototypes`.
+	Clang 16 warns on these and they will be dropped in C23.
+
+	* builds/unix/freetype2.m4: Ditto.
+
+2022-11-09  Ben Wagner  <[email protected]>
+
+	[truetype] Check avar_segment before access
+
+	* src/truetype/ttgxvar.c (tt_done_blend): check `avar_segment` before
+	accessing to free its `correspondence`.
+
+	Reported as:
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53062
+
+2022-11-09  Ben Wagner  <[email protected]>
+
+	[truetype] Restore behavior of ft_var_load_hvvar
+
+	* src/truetype/ttgcvar.c (ft_var_load_hvvar): restore previous behavior
+
+	In a previous change [0] the behavior of `ft_var_load_hvvar` was changed
+	to not load the item variation store if it was at offset 0, but not
+	return an error when this happened. This broke any users, like
+	`tt_hvadvance_adjust`, that rely on successful completion of
+	`ft_var_load_hvvar` to imply that returned table's `itemStore` had been
+	initialized. This lead such users to dereference NULL.
+
+	This change appears to have been unintentional and unrelated to the
+	actual avar2 changes. As a result, fix these NULL dereferences by
+	restoring the code to always attempt to initialize the `itemStore`.
+
+	[0] ae4eb996 "[truetype] Add support for `avar` table 2.0 format."
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53061
+
+2022-11-08  Werner Lemberg  <[email protected]>
+
+	docs/CHANGES: Updated.
+
+2022-11-08  suzuki toshiya  <[email protected]>
+
+	[build] use AC_CHECK_PROG() macro for libpng-config detection
+
+	* builds/unix/configure.raw: use AC_CHECK_PROG() instead of `which` to find `libpng-config`.
+
+2022-11-08  suzuki toshiya  <[email protected]>
+
+	[build] fix for make multi
+
+	Fix "make multi" by MR !223
+
+	* include/freetype/internal/services/svmm.h: include ftmm.h to define FT_Get_MM_Func.
+	* src/truetype/ttgxvar.h: include ftmmtypes.h to use GX_AVarTable properly.
+	* src/base/ftmac.c: include ftdebug.h to use FT_THROW() properly.
+
+2022-11-08  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Accelerate the search.
+
+	This is mostly for consistency because PFR fonts with bitmap strikes
+	do not seem to exist.
+
+2022-11-06  Alexei Podtelezhnikov  <[email protected]>
+
+	[bdf, pfr, psnames] Accelarate charmap searches.
+
+	The binary searches within charmaps can be accelerated because they
+	often contain dense continuous blocks of character codes. Within such
+	blocks, you can predict matches based on misses.  This method has been
+	deployed in `bdf` since 0f122fef34; we only refactor it there.  We now
+	use it in `pfr` and `psnames`, which speeds up the unicode charmap
+	access by about 50% in PFR and Type 1 fonts.
+
+	* src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Refactor.
+	* src/pfr/pfrcmap.c (pfr_cmap_char_{index,next}): Predict `mid` based
+	on the mismatch distance.
+	* src/psnames/psmodule.c (ps_unicodes_char_{index,next}): Ditto.
+
+2022-11-04  Behdad Esfahbod  <[email protected]>
+
+	[truetype] Add support for `avar` table 2.0 format.
+
+	See
+
+	  https://github.com/harfbuzz/boring-expansion-spec/blob/main/avar2.md
+
+	for the specification.
+
+	Currently, this is implemented only in most recent OS versions on Apple
+	platforms and in the HarfBuzz library, but it is expected to be added to the
+	OpenType standard soon.
+
+	* src/truetype/ttgxvar.h (GX_AVarTableRec): New structure.
+	(GX_BlendRec): Use it to replace `avar_segment` with `avar_table`.
+
+	* src/truetype/ttgxvar.c (ft_var_load_avar): Load new table version.
+	(ft_var_to_normalized, tt_done_blend): Extend for new format.
+	(ft_var_load_hvvar, ft_var_to_design): Updated.
+
+2022-10-24  Werner Lemberg  <[email protected]>
+
+	Replace '1/64th' (and similar entries) with '1/64' in docs and comments.
+
+2022-10-24  Ivan Panchenko  <[email protected]>
+
+	* include/freetype/*: Fix documentation typos.
+
+2022-10-21  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/truetype/ttgload.c: Cosmetic changes.
+
+2022-10-21  Alexei Podtelezhnikov  <[email protected]>
+
+	[cff, truetype] Simplify SVG metrics scaling.
+
+	Use pre-calculated scaling factors. Also, the advance widths used
+	to be rounded, which was incorrect.
+
+	* src/cff/cffgload.c (cff_slot_load): Use `x_scale` and `y_scale`.
+	* src/truetype/ttgload.c (TT_Load_Glyph): Ditto.
+
+2022-10-20  Werner Lemberg  <[email protected]>
+
+	* subprojects/zlib.wrap: Update to zlib version 1.2.13.
+
+2022-10-18  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Additional bounds checks for `COLR` v1 table handling.
+
+	* src/sfnt/ttcolr.c (read_paint): Add `colr` argument, necessary for...
+	... another use of `ENSURE_READ_BYTES`.
+	Update callers.
+	(tt_face_get_paint_layers): Ensure that the 4-byte paint table
+	offset can be read.
+
+	This is a follow-up to !124 and issue
+	https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52404
+
+2022-10-18  Werner Lemberg  <[email protected]>
+
+	[gzip] Update sources to zlib 1.2.13.
+
+2022-10-18  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Simplify calculations.
+
+2022-10-18  Werner Lemberg  <[email protected]>
+
+	Minor formatting.
+
+2022-10-18  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Guard individual `COLR` v1 paint field reads.
+
+	* src/sfnt/ttcolr.c (ENSURE_READ_BYTES): New macro.
+	(read_paint): Use it – after the start pointer `p` has been checked for
+	whether it allows reading the format byte, each successive paint table field
+	read need to be bounds-checked before reading further values.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52404
+
+2022-10-17  Xiang Xiao  <[email protected]>
+
+	* builds/toplevel.mk: Prefix all paths with `$(TOP_DIR)/`.
+
+	This is useful for builds that are not started from the root directory.
+
+2022-10-17  Liu Kunpeng(柳鲲鹏)  <[email protected]>
+
+	* src/base/ftsynth.c (FT_GlyphSlot_Slant): New API with custom slant.
+	* include/freetype/ftsynth.h (FT_GlyphSlot_Slant): Declare it.
+
+2022-10-15  Alexei Podtelezhnikov  <[email protected]>
+
+	Note the lack of floating-point data types.
+
+2022-10-10  Werner Lemberg  <[email protected]>
+
+	[cff] Remove `FT_CONFIG_OPTION_NO_GLYPH_NAMES`.
+
+	This ancient option stayed completely undocumented.  Given that the 'cff'
+	driver requires the 'psnames' module, it makes no sense today to have this
+	macro.
+
+	* src/cff/cffdrivr.c (cff_services), src/cff/cffobjs.c (cff_face_init):
+	Remove corresponding conditional code.
+
+2022-10-10  Werner Lemberg  <[email protected]>
+
+	Synchronize `ftoption.h` flavours.
+
+2022-10-10  Werner Lemberg  <[email protected]>
+
+	Minor comment changes.
+
+2022-10-05  Alexei Podtelezhnikov  <[email protected]>
+
+	Improve FT_Get_Name_Index docs and place it next to FT_Get_Glyph_Name.
+
+2022-10-04  Alexei Podtelezhnikov  <[email protected]>
+
+	[autofit] Reset the face charmap directly.
+
+	There is no need to validate the original charmap in `FT_Set_Charmap`.
+	It can be reset directly.
+
+	* src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
+	Use direct assignment.
+	* src/autofit/af{latin,cjk,indic}.c (af_latin_metrics_init): Ditto.
+
+2022-10-04  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/type1/t1afm.c (T1_Read_PFM): Set charmaps directly.
+
+	As with the previous commit, we can avoid the validation checks
+	of `FT_Set_Charmap` and set it directly when choosing from the
+	available list.
+
+2022-10-03  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/cache/ftccmap.c (FTC_CMapCache_Lookup): Avoid `FT_Set_Charmap`.

+	

+	Set charmap aggressively without all validations of `FT_Set_Charmap`

+	because we take it from the available array and only temporarily.

+	Even CMap Format 14 will gracefully return 0.
+
+2022-10-03  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/cache/ftcbasic.c (ftc_basic_family_get_count): Remove redundancy.
+
+2022-09-30  Werner Lemberg  <[email protected]>
+
+	* src/psaux/pshints.c (cf2_hintmap_insertHint): Fix midpoint computation.
+
+	Replace '(start + end) / 2' with 'start + (end - start) / 2' to avoid
+	overflow.
+
+	Fixes #1180.
+
+2022-09-30  Werner Lemberg  <[email protected]>
+
+	* src/psaux/pshints.c (cf2_hintmap_build): Improve debugging output.
+
+2022-09-29  mlugg  <[email protected]>
+
+	[truetype] Fix undefined pointer arithmetic.
+
+	* src/truetype/ttgxvar.c (tt_var_get_item_delta, ft_var_load_mvar): Use
+	`FT_OFFSET`.
+
+2022-09-29  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Use lighter FT_DivFix.
+
+2022-09-29  Ali Chraghi  <[email protected]>
+
+	[base] FT_Attach_Stream: Make `parameters` argument constant.
+
+2022-09-29  Azamat Hackimov  <[email protected]>
+
+	* src/tools/*.py: Migrate to Python 3.
+
+	Fixes #1185, closes !205. Formatting changes according to PEP8.
+
+2022-09-27  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Guard access in 'COLR' table when requesting child table pointer.
+
+	* src/sfnt/ttcolr.c (tt_face_get_colorline_stops, read_paint): Tighten
+	pointer bounds checks.
+	(get_child_table_pointer): Check whether incoming pointer `p` lies within
+	the 'COLR' table.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=51816
+
+2022-09-27  Ben Wagner  <[email protected]>
+
+	[sfnt] Add SVG document bounds checking.
+
+	Add a check that the document content is actually contained within the
+	`SVG ` table.  Without this check a malformed font may claim arbitrary
+	memory as its document content.
+
+	* src/sfnt/ttsvg.c (tt_face_load_svg): Take `numEntries` into account when
+	testing 'documentRecord' extents.
+	(find_doc): Rename `stream` to `document_records` for clarity.
+	(tt_face_load_svg_doc): Split `doc` from `doc_list` pointer for clarity.
+	Test that the document content is contained within the table.
+	Ensure minimum length of document before testing for gzip format.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=51812
+
+2022-09-23  Alexei Podtelezhnikov  <[email protected]>
+
+	[base] Clean up the bitmap flow control.
+
+	* src/base/ftbitmap.c (FT_Bitmap_Copy): Flip the copy if its pitch
+	is trully opposite, zero is not a positive value.
+	(FT_Bitmap_Convert): Set negative pitch as needed, accept negative
+	alignment values.
+
+2022-09-22  Alexei Podtelezhnikov  <[email protected]>
+
+	[base] Discard and recreate bitmaps for copying and converting.

+	

+	Reusing target bitmaps for copying and converting is permitted.  It is,

+	however, pointless to preserve their content before overwriting.  Free-

+	malloc might be faster than realloc.

+	

+	* src/base/ftbitmap.c (FT_Bitmap_Copy, FT_Bitmap_Convert): Free

+	an old buffer and create a new one.
+
+2022-09-16  Dominik Röttsches  <[email protected]>
+
+	Reject 'COLR' table if version is 1 but header too small.
+
+	* src/sfnt/ttcolr.c (tt_face_load_colr): If the version is determined to
+	be 1, then the table size has to be at least the size of the v1 header.
+	Also, for peeking the number of base glyphs and entries in the layer list,
+	ensure that the table is sufficiently long.
+
+	Fixes #1179.  Original patch by Sergey Temnikov.
+
+2022-09-15  Werner Lemberg  <[email protected]>
+
+	* src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix format 1 handling.
+
+	Fixes #1181.
+
+2022-09-06  Dominik Röttsches  <[email protected]>
+
+	[truetype] Reject 'fvar' loading when `num_instances` is too small.
+
+	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Reject retrieving master when
+	'fvar' values locally do not match with sanitized values from initialization
+	at `sfnt_init_face` time.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/chromium/issues/detail?id=1360295
+
+2022-09-05  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Handle variable `COLR` v1 fonts without delta set index map
+
+	Fixes #1178.
+
+	* src/sfnt/ttcolr.c (get_deltas_for_var_index_base): Set outer index to
+	0 and inner index to the delta index when retrieving deltas if the
+	`COLR` table has no delta set index map.
+
+2022-09-05  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Pointer sanity checks before reading layer info in 'COLR' v0
+
+	* src/sfnt/ttcolr.c (tt_face_get_colr_layer): Check that the pointer to
+	read from is within the 'COLR' table.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=50633
+
+2022-09-05  Werner Lemberg  <[email protected]>
+
+	[autofit] Minor fix.
+
+	* src/autofit/afglobal.c (af_face_globals_compute_style_coverage): Avoid
+	compiler warning.
+
+2022-09-05  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Don't require 'gvar' table to support variation fonts.
+
+	Fixes #1172.
+
+	* src/sfnt/sfobjs.c (sfnt_load_face): Tag font as Multiple Masters font if
+	`fvar` is present; do not require other tables to be present.
+
+	* src/truetype/ttgxvar.c (tt_set_mm_blend): Allow for a missing 'gvar' table
+	when setting variation coordinates.  However, if a 'gvar' table is actually
+	present, do perform a sanity check and fail on malformedness.
+	(TT_Get_MM_Var): Don't assume 'fvar' needs 'gvar' or 'CFF2 tables in all
+	cases, which is an overly tight check.
+
+2022-08-27  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftver.rc: Explicitly use UTF-16.
+
+	Fixes #1177 to avoid mistranslation and other problems.
+
+2022-08-26  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Avoid undefined shifts in `COLR` v1 color line retrieval
+
+	* src/sfnt/ttcolr.c (tt_face_get_colorline_stops): Disambiguate shift
+	behavior by using multiplication using macros from ftcalc.h.
+
+	Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=50573
+
+2022-08-21  Sean Farrell  <[email protected]>
+
+	CMakeLists.txt (FT_ENABLE_ERROR_STRINGS): New configuration option.
+
+	This option uncomments FreeType configuration macro
+	`FT_CONFIG_OPTION_ERROR_STRINGS` to make function `FT_Error_String` return
+	meaningful error strings.
+
+	This option is off by default.
+
+2022-08-21  Chris Liddell  <[email protected]>
+
+	[base, type1] Better handling of out-of-memory situations.
+
+	This follows similar code in `cff_slot_done`.
+
+	* src/base/ftobjs.c (ft_glyphslot_done), src/type1/t1objs.c
+	(T1_GlyphSlot_Done): Check `internal` pointer.
+
+	The Type1 problems was reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=50057.
+
+2022-08-06  Tim-Philipp Müller  <[email protected]>
+
+	ci: bump windows image and use newer runner and vs2019
+
+	The old 1809 runner will be decommissioned at some point.
+
+2022-08-04  @udoudou  <>
+
+	* src/cache/ftcmanag.c (FTC_Manager_New): Initialize `cur_weight`.
+
+	See !192.
+
+2022-08-02  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/ttload.c: Trace formatting updates.
+
+2022-08-02  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/psaux/psobjs.c (ps_table_release): Remove redundant casting.
+
+2022-08-02  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftobjs.c (Mac_Read_sfnt_Resource): Reduce casting.
+
+2022-08-02  Alexei Podtelezhnikov  <[email protected]>
+
+	[cache] Remove some casts, clean up tracing.
+
+	* src/cache/ftcbasic.c (FTC_ImageCache_Lookup, FTC_SBitCache_Lookup):
+	Clean up tracing types.
+	* src/cache/ftccache.c (ftc_node_destroy): Ditto.
+	* src/cache/ftcmanag.c (FTC_Manager_Check): Ditto.
+	(FTC_Manager_Check, FTC_Node_Unref): Remove a cast.
+	* src/cache/ftccmap.c (FTC_CMapCache_Lookup): Ditto.
+
+2022-08-01  Alexei Podtelezhnikov  <[email protected]>
+
+	[autofit] Updated to reduce casting (cont'd).
+
+	* src/autofit/afmodule.h (AF_ModuleRec): Change `default_script` type.
+	* src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
+	Remove casting.
+	* src/autofit/afmodule.c (af_property_{set,get}): Updated accordingly.
+
+2022-08-01  Alexei Podtelezhnikov  <[email protected]>
+
+	[autofit] Updated to reduce casting.
+
+	* src/autofit/afglobal.h (AF_FaceGlobalsRec): Change `glyph_count` type.
+	* src/autofit/afglobal.c (af_face_globals_compute_style_coverage,
+	af_face_globals_get_metrics, af_face_globals_is_digit,
+	af_face_globals_new): Changed local types and updated accordingly.
+	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Ditto.
+
+2022-08-01  Alexei Podtelezhnikov  <[email protected]>
+
+	[psaux] Remove unused structure field.
+
+	* include/freetype/internal/psaux.h (PS_TableRec): Remove `num_elems`.
+	* src/psaux/psobjs.c (ps_table_new): Remoove its initialization.
+
+2022-07-30  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Implement VarClipBox.
+
+	* src/sfnt/ttcolr.c (tt_face_get_color_glyph_clipbox): Depending on the
+	format, read `var_index_base`, then retrieve and apply scaled deltas.
+
+2022-07-30  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Fix typo in clip box computation.
+
+	* src/sfnt/ttcolr.c (tt_face_get_color_glyph_clipbox): Use appropriate
+	scale factor for `yMin` and `yMax`.
+
+2022-07-30  Alexei Podtelezhnikov  <[email protected]>
+
+	[autofit] Use unsigned accounting for hints.
+
+	* src/autofit/afhints.h (AF_AxisHintsRec): Use unsigned types.
+
+	* src/autofit/afhints.c (af_axis_hints_new_{segment,edge},
+	af_glyph_hints_get_num_segments, af_glyph_hints_get_segment_offset):
+	Updated accordingly.
+	* src/autofit/aflatin.c (af_cjk_hints_compute_edges): Ditto.
+	* src/autofit/afcjk.c (af_cjk_hints_compute_edges): Ditto.
+
+2022-07-30  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/autofit/afhints.h: Remove dead code.
+
+2022-07-29  Werner Lemberg  <[email protected]>
+
+	* src/base/ftglyph.c (FT_Get_Glyph): Set `*aglyph` to NULL in case of error.
+
+2022-07-29  Werner Lemberg  <[email protected]>
+
+	Fix compilation if `TT_CONFIG_OPTION_GX_VAR_SUPPORT` is not set.
+
+	* src/sfnt/ttcolr.c: Protect relevant code with
+	`TT_CONFIG_OPTION_GX_VAR_SUPPORT`.
+
+2022-07-29  Werner Lemberg  <[email protected]>
+
+	Fix clang14 compiler warnings.
+
+	* include/freetype/internal/ftstream.h (FT_GET_SHORT_LE, FT_GET_USHORT_LE):
+	Fix type.
+
+	* src/sfnt/ttcolr.c (get_deltas_for_var_index_base): Always return boolean
+	value.
+	(tt_face_get_colorline_stops): Fix type of `var_index_base`.
+
+2022-07-26  Alexei Podtelezhnikov  <[email protected]>
+
+	[pfr] Fortify the kerning code.
+
+	Any array index must be strictly less then the array size. Therefore,
+	we must reject indexes that are equal to the array size.  Alternatively,
+	we should move the bounds check before the index decrement but that
+	would be confusing.
+
+	In addition, it is ok to decrement zero (.notdef) and get UINT_MAX,
+	which is then automatically rejected in the bounds check.
+
+	* src/pfr/pfrobjs.c (pfr_face_get_kerning): Fix the bounds checking.
+
+2022-07-26  Werner Lemberg  <[email protected]>
+
+	[pfr] Add some safety guards.
+
+	* src/pfr/pfrload.c (pfr_phy_font_load): Check resolutions and number of
+	characters.
+
+	Fixes #1174.
+
+2022-07-26  Werner Lemberg  <[email protected]>
+
+	* src/pfr/*.c: Trivial improvements and formatting.
+
+2022-07-24  Werner Lemberg  <[email protected]>
+
+	* configure: s/egrep/grep -E/
+
+	`egrep` is deprecated.
+
+2022-07-23  Ben Wagner  <[email protected]>
+
+	[base] Build outlines in amortized constant time.
+
+	When resizing the loader's points and contours, resize them to at least 1.5
+	times their current size.  The code currently only reserves as much space as
+	is currently required, leading to O(n^2) runtime when adding points one at a
+	time.
+
+	This change does not attempt to ever shrink the loader's point and contour
+	storage since this was not attempted previously either.  The 1.5 multiple
+	was chosen as a trade-off between potentially unused space and the runtime.
+
+	* src/base/ftgloader.c (FT_GlyphLoader_CheckPoints): Implement it.
+
+	Fixes #1173.
+
+2022-07-09  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Support variable 'COLR' v1 `PaintVarSkew*`.
+
+	* src/sfnt/ttcolr.c (FT_PaintFormat_Internal): New enumeration values
+	`FT_COLR_PAINTFORMAT_INTERNAL_VAR_SKEW`,
+	`FT_COLR_PAINTFORMAT_INTERNAL_SKEW_CENTER`, and
+	`FT_COLR_PAINTFORMAT_INTERNAL_VAR_SKEW_CENTER`.
+	(read_paint): Handle new enumeration values.
+
+2022-07-09  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Support variable 'COLR' v1 `PaintVarRotate*`.
+
+	* src/sfnt/ttcolr.c (FT_PaintFormat_Internal): New enumeration values
+	`FT_COLR_PAINTFORMAT_INTERNAL_VAR_ROTATE` and
+	`FT_COLR_PAINTFORMAT_INTERNAL_VAR_ROTATE_CENTER`.
+	(read_paint): Handle new enumeration values.
+
+2022-07-09  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Support 'COLR' v1 variable `PaintVarScale*`.
+
+	* src/sfnt/ttcolr.c: (FT_PaintFormatInternal): New enumeration values
+	`FT_COLR_PAINTFORMAT_INTERNAL_VAR_SCALE`,
+	`FT_COLR_PAINTFORMAT_INTERNAL_VAR_SCALE_CENTER`,
+	`FT_COLR_PAINTFORMAT_INTERNAL_VAR_SCALE_UNIFORM`, and
+	`FT_COLR_PAINTFORMAT_INTERNAL_VAR_SCALE_UNIFORM_CENTER`.
+	(read_paint): Handle new enumeration values.
+
+2022-07-09  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Support for 'COLR' v1 variable translate.
+
+	* src/sfnt/ttcolr.c (FT_PaintFormat_Internal): New enumeration value
+	`FT_COLR_PAINTFORMAT_INTERNAL_VAR_TRANSLATE`.
+	(read_paint): Handle new enumeration value.
+
+2022-07-09  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Support for 'COLR' v1 variable transforms.
+
+	* src/sfnt/ttcolr.c (FT_PaintFormat_Internal): New enumeration value
+	`FT_COLR_PAINTFORMAT_INTERNAL_VAR_TRANSFORM`.
+	(read_paint): Handle new enumeration value.
+
+2022-07-09  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Deltas for 'COLR' v1 gradient coordinates.
+
+	* src/sfnt/ttcolr.c (read_paint) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Read and
+	apply deltas to radial, linear, and sweep gradient coordinates such as 'p0',
+	'p1', 'p2', 'center', 'radii', and 'angles'.
+
+2022-07-08  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Support variable 'COLR' v1 color lines.
+
+	* include/freetype/ftcolor.h (FT_ColorStopIterator): Add field
+	`read_variable` to indicate whether a variation index base should be read.
+
+	* src/sfnt/ttcolr.c: (FT_PaintFormat_Internal): New enumerations
+	`FT_COLR_PAINTFORMAT_INTERNAL_VAR_LINEAR_GRADIENT`
+	`FT_COLR_PAINTFORMAT_INTERNAL_VAR_RADIAL_GRADIENT`, and
+	`FT_COLR_PAINTFORMAT_INTERNAL_VAR_SWEEP_GRADIENT`.
+	(read_color_line): New parameter `read_variable`; update callers.
+	(read_paint): Handle new enumerations.
+
+2022-07-07  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Apply variation deltas to `PaintVarSolid`.
+
+	* src/sfnt/ttcolr.c (FT_PaintFormat_Internal_): New enumeration
+	`FT_COLR_PAINTFORMAT_INTERNAL_VAR_SOLID`.
+
+	(get_deltas_for_var_index_base) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New
+	function to retrieve an array of delta values, which will be used for most
+	of 'COLR' v1 variation formats (in follow-up commits).
+
+	(read_paint): Add `face` parameter; update caller.
+	Handle `FT_COLR_PAINTFORMAT_INTERNAL_VAR_SOLID`.
+
+2022-07-07  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Check safety of cast to `TT_Driver` before accessing member.
+
+	* src/sfnt/ttcolr.c (VARIABLE_COLRV1_ENABLED): Access
+	`enable_variable_colrv1` only if driver class matches.
+
+2022-07-06  Stephen Holdaway  <[email protected]>
+
+	doc: Clarify description of `FT_Stream_IoFunc`.
+
+	The existing documentation comments on `FT_Stream_IoFunc` hinted at the dual
+	seek/read behavior required for custom stream implementations to work, but
+	it didn't explicitly explain it.  Without looking at the internals of
+	FreeType, it was easy for someone to assume their implementation should
+	handle both seek and read operations all the time.  If this is done, you get
+	a variety of errors, but mostly just `Unknown_File_Format` (error code
+	0x02).
+
+2022-07-04  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Load variation store for 'COLR' v1.
+
+	* src/sfnt/ttcolr.c: Include `ttobjs.h` temporarily.
+	(VARIABLE_COLRV1_ENABLED): New temporary macro to detect whether variable
+	COLRv1 is enabled.
+	(Colr): New fields `var_store` and `delta_set_idx_map`.
+	(tt_face_load_colr, tt_face_free_colr) [VARIABLE_COLRV1_ENABLED]: Load and
+	free variation store data using the functions from the Multiple Masters
+	service.
+
+2022-07-03  Chris Liddell  <[email protected]>
+
+	[base] Improve error handling in `FT_GlyphLoader_CheckPoints`.
+
+	If `FT_GlyphLoader_CreateExtra` returns an error (and a couple of other
+	places), `FT_GlyphLoader_CheckPoints` would propagate the error immediately,
+	rather than cleaning up the partially set up `FT_GlyphLoader`.  As a
+	consequence, a subsequent attempt to create a glyph could result in a crash.
+
+	* src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Ensure all the error
+	conditions exits are consistent, eventually calling `FT_GlyphLoader_Reset`.
+
+2022-07-03  Thomas Sondergaard  <[email protected]>
+
+	CMakeLists.txt: Provide both 'freetype' and 'Freetype::Freetype' targets.
+
+	FreeType can be located by consuming projects that use
+	`find_package(Freetype)` either via the old `MODULE` path (which uses
+	`FindFreetype.cmake` supplied by CMake), or via the new `CONFIG` path (which
+	uses `freetype-config.cmake` as supplied by this project).  Up to this point
+	the CMake module has supplied the target `Freetype::Freetype` and the config
+	file provided by this project the target `freetype`.  Now we supply both
+	`freetype` and `Freetype::Freetype` so that consuming projects can always
+	use the target `Freetype::Freetype` regardless of what path was taken by
+	`find_package(Freetype)`.
+
+	Fixes #1165.
+
+2022-07-02  Werner Lemberg  <[email protected]>
+
+	include/freetype/ftmm.h: Improve documentation.
+
+2022-07-01  Dominik Röttsches  <[email protected]>
+
+	[base] Round values in `FT_MulAdd_Fix`.
+
+	This avoids regressing Blink layout tests and makes `FT_MulAdd_Fix` delta
+	retrieval implementation consistent with the previous implementation, which
+	used `FT_fixedToInt` and included rounding.
+
+	* src/base/ftcalc.c (FT_MulAdd_Fix): Implement it.
+	Also fix remaining `temp` initialization compilation issue.
+
+	Fixes #1169.
+
+2022-07-01  Werner Lemberg  <[email protected]>
+
+	Minor formatting.
+
+2022-06-30  Dominik Röttsches  <[email protected]>
+
+	Fix initialisation of temp variable in new FT_MulAddFix
+
+	src/truetype/ttgxvar.c (FT_MulAddFix): Initialise `temp`.
+
+2022-06-29  Dominik Röttsches  <[email protected]>
+
+	[truetype] Perform variation store delta computation with 64-bit precision.
+
+	* include/freetype/internal/ftmmtypes.h (FT_ItemVarDelta): Make type
+	explicitly 32-bit.
+	* include/freetype/internal/services/svmm.h
+	(FT_Var_Get_Item_Delta_Func): Change return type to `FT_ItemVarDelta`
+	* truetype/ttgxvar.h (tt_var_get_item_delta): Change return type to
+	`FT_ItemVarDelta`.
+	* truetype/ttgxvar.c (tt_var_get_item_delta): Store scalars and deltas
+	to intermediate array, perform computation using new method
+	`FT_MulAddFix`.
+
+2022-06-29  Dominik Röttsches  <[email protected]>
+
+	New function `FT_MulAddFix` to compute the sum of fixed-point products.
+
+	This function, based on the code of `FT_MulFix`, uses 64-bit precision
+	internally for intermediate computations.
+
+	* include/freetype/internal/ftcalc.h, base/ftcalc.c (FT_MulAddFix):
+	Implement it.
+
+2022-06-22  Werner Lemberg  <[email protected]>
+
+	CMakeLists.txt: Move inclusion of `FindPkgConfig` down.
+
+	It must come after `CMAKE_TOOLCHAIN_FILE`.
+
+	Fixes #1167.
+
+2022-06-22  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Upgrade stop_offset to FT_Fixed from FT_F2Dot14
+
+2022-06-21  Alexei Podtelezhnikov  <[email protected]>
+
+	* docs/CHANGES: Announce impending Infinality removal.
+
+2022-06-21  Alexei Podtelezhnikov  <[email protected]>
+
+	* ttgload.c (TT_Process_Composite_Glyph): Fix a signedness warning.
+
+2022-06-21  Werner Lemberg  <[email protected]>
+
+	s/fixed point/fixed-point/
+
+2022-06-21  Werner Lemberg  <[email protected]>
+
+	.gitlab-ci.yml: Correctly upgrade `meson`.
+
+2022-06-21  Dominik Röttsches  <[email protected]>
+
+	Proposal: Feature control for variable COLRv1
+
+	* include/freetype/ftdriver.h (variable-color-v1 property): Add documentation
+	for variable-colr-v1 property.
+	* src/truetype/ttdriver.c (tt_property_set): Ingest variable-control property
+	when called, set to enable_variable_colrv1 driver flag.
+	* src/truetype/ttobjs.h (TT_DriverRec): Add enable_variable_colrv1 flag.
+
+2022-06-21  Xavier Claessens  <[email protected]>
+
+	[meson] Disable FreeType in HarfBuzz fallback.
+
+	This avoids cyclic subproject configuration when the 'harfbuzz' feature is
+	enabled, or `--wrap-mode=forcefallback` is used, but HarfBuzz is built as a
+	subproject.  HarfBuzz does the same and disables HarfBuzz support when
+	configuring FreeType as a subproject.
+
+	* meson.build (harfbuzz_dep): Implement it.
+
+	* subprojects/harfbuzz.wrap: New file.
+
+	* .gitlab-ci.yml [windows meson]: Use latest version of the meson 0.59
+	  series, which has a necessary bug fix to make CI work.
+
+2022-06-19  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype] Clean up phantom point accounting.
+
+	This formalizes that the phantom points appended in the outline
+	do not increase its point count, nor are they tagged or included
+	in any additional contours.  Only their coordinates are stored.
+	They are counted in the glyph zone, however.
+
+	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Infer `n_points`
+	from the outline size plus four phantom points.
+	* src/truetype/ttgxvar.h (TT_Vary_Apply_Glyph_Deltas): Remove this
+	argument.
+	* src/truetype/ttgload.c (tt_prepare_zone): Add phantom four.
+	(TT_Process_Simple_Glyph, load_truetype_glyph): Update all callers.
+
+2022-06-19  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype/GX] Clean up phantom point adjustment.
+
+	This moves phantom point and advance variation adjustment next to
+	calculations. The logic stays the same, HVAR and VVAR take priority.
+
+	* src/truetype/ttgload.c (load_truetype_glyph): Move it from here...
+	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): ... to here
+	and check for HVAR and VVAR presence outside the main loop.
+
+2022-06-18  Ben Wagner  <[email protected]>
+
+	[stream] Fix reading s32 when long is s64
+
+	`FT_READ_LONG`, `FT_GET_LONG`, and related macros did not return
+	negative values when `long` is more than 32 bits. `FT_Stream_ReadULong`
+	would read four bytes into the LSB of an `FT_ULong` and return that.
+	Since this can never set the MSb of the `FT_ULong` when `FT_ULong` is
+	more than 32 bits the cast to `FT_Long` never resulted in a negative
+	value.
+
+	Fix this by modifying `FT_Stream_Read*` to return a type of the same
+	size as the bytes it is reading and changing the `FT_READ_*` and
+	`FT_GET_*` macros to cast to the same type returned by `FT_Stream_Read*`
+	but with the correctly signed type (instead of casting to what is
+	assumed to be the type of `var` which will happen automatically anyway).
+
+	There exist a few cases like with the `OFF3` variants where there isn't
+	generally a type with the correct size. `FT_PEEK_OFF3` works around this
+	loading the bytes into the three most significant bits and then doing a
+	signed shift down. `FT_NEXT_OFF3` also already worked correctly by
+	casting this signed value to another signed type. `FT_Stream_GetUOffset`
+	works correctly but one must be careful not to attempt to cast the
+	returned value to a signed type. Fortunately there is only
+	`FT_GET_UOFF3` and no `FT_GET_OFF3`.
+
+	All of these cases are handled correctly when reading values through
+	`FT_Stream_ReadFields` since it generically computes the signed value
+	through an `FT_Int32`. This change is essentially doing the same for
+	these macros.
+
+	* include/freetype/internal/ftstream.h (FT_NEXT_*, FT_GET_*, FT_READ*):
+	Update macros and return types to use fixed size types for fixed size
+	values.
+
+	* src/base/ftstream.c (FT_StreamGet*, FT_StreamRead*): Dito.
+
+	Issue: #1161
+
+2022-06-17  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype/GX] Fix an old typo.
+
+	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Vertical
+	advance is measured along y-coordinate.
+
+2022-06-16  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype/GX] Clean up advance adjustment (Brrr).

+	

+	* src/truetype/ttgload.c (load_truetype_glyph): Remove remaining code.
+
+2022-06-16  Ben Wagner  <[email protected]>
+
+	[type1] Directly search for eexec in private dict
+
+	This code originally just searched for `eexec`. This was later modified
+	to check that the `eexec` found is valid (not in a string or comment).
+	This was done by searching for `eexec` as before and then, for each
+	`eexec` found, searching from the beginning using the correct parsing to
+	see if the `eexec` was still found. If the private dictionary is large
+	and contains many copies of `eexec` which are not valid, the initial
+	part of the private dictionary is scanned once for each, potentially
+	leading to n^2 parsing time.
+
+	Instead of finding an initial `eexec` and then re-parsing to discover if
+	it is valid, drop the initial search for `eexec` and just parse to find
+	a valid `eexec`. This is strictly faster since the validation must
+	happen anyway and avoids restarting from the beginning each time an
+	`eexec` is found in the data.
+
+	* src/type1/t1parse.c (T1_Get_Private_Dict): avoid n^2 parsing
+
+	Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1328883
+
+2022-06-16  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype/GX] Clean up advance adjustment.
+
+	* src/truetype/ttgload.c (TT_Process_Simple_Glyph, load_truetype_glyph):
+	Move the advance adjustment from here...
+	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): ... to here and
+	simplify arguments.
+	* src/truetype/ttgxvar.h (TT_Vary_Apply_Glyph_Deltas): Update prototype
+	with fewer arguments.
+
+2022-06-14  Ben Wagner  <[email protected]>
+
+	[gzip] Handle inflate returning Z_NEED_DICT
+
+	When `inflate` returns `Z_NEED_DICT` this is currently not reported as
+	an error and callers may assume that the decompression succeeded when it
+	did not. In particular, a compressed table in a woff file may not
+	actually be decompressed and written as expected, leaving the backing
+	memory for the expanded table uninitialized.
+
+	* src/gzlip/ftgzip.c (FT_Gzip_Uncompress): treat `Z_NEED_DICT` as
+	indicating invalid data since there is no means to provide a dictionary.
+
+	Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1335712
+
+2022-06-13  Ben Wagner  <[email protected]>
+
+	[woff] Don't allocate table entries until needed
+
+	* src/sfnt/sfwoff.c (woff_open_font): delay allocating space for the
+	table entries until they are actually written out with the data.
+
+2022-06-12  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/sfwoff2.c (woff2_open_font): Partial revert.
+
+	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47981.
+
+2022-06-12  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/lzw/ftzopen.c (ft_lzwstate_stack_grow): Cosmetic macro change.
+
+2022-06-11  Alexei Podtelezhnikov  <[email protected]>
+
+	[woff, woff2] Avoid buffer zeroing.
+
+	* src/sfnt/sfwoff.c (woff_open_font): Use Q-macros.
+	* src/sfnt/sfwoff2.c: Ditto.
+	(reconstruct_font): Allocate table_entry on stack.
+
+2022-06-10  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Fix GCC LTO crashes on Windows.
+
+	Fixes #1164 by using a volatile variable around `setjmp`.  It is hard to
+	say how this fixes crashes related to certain link-time optimizations.
+	This does not decrease the rendering performance.
+
+	* src/smooth/ftgrays.c (gray_convert_glyph_inner): Use volatile `error`.
+
+2022-06-09  bruvzg  <@bruvzg>
+
+	* src/smooth/ftgrays.c [FT_STATIC_RASTER]: Fix compilation.
+
+2022-06-06  Ben Wagner  <[email protected]>
+
+	[svg] Set linear advances when loading SVG glyphs
+
+	* include/freetype/freetype.h (FT_GlyphSlotRec_): update doc
+	* src/cff/cffgload.c (cff_slot_load): do it
+	* src/truetype/ttgload.c (TT_Load_Glyph): do it
+
+	Fixes: #1156
+
+2022-06-01  Ben Wagner  <[email protected]>
+
+	[svg] Clear correct flags for doc ownership
+
+	This issue was discovered with an SVG based font with some documents
+	compressed and other uncompressed. After loading the first compressed
+	document the ownership flag on the glyph slot was set to true but never
+	set to false. As a result after loading a compressed document a glyph
+	from an uncompressed document would load fine, but when this glyph slot
+	was cleared it would try to free its document resulting in a wild free.
+
+	* src/base/ftobjs.c (ft_glyphslot_clear): clear correct flags
+
+	Fixes: #1162
+
+2022-06-01  Alexei Podtelezhnikov  <[email protected]>
+
+	[docs] Correct favicon.
+
+2022-06-01  Alexei Podtelezhnikov  <[email protected]>
+
+	[docs] Use hinted favicon.
+
+2022-05-27  Alexei Podtelezhnikov  <[email protected]>
+
+	[docs] Update favicon.
+
+2022-05-25  Behdad Esfahbod (بهداد اسفهبد)  <[email protected]>
+
+	* src/sfnt/ttmtx.c (tt_face_get_metrics): Apply variations unconditionally.
+
+	This causes a speed-up of approx. 20% for getting advance widths.
+
+2022-05-23  Dominik Röttsches  <[email protected]>
+
+	[truetype] Support reading 32bit/16bit VarStore deltas
+
+	* include/freetype/internal/ftmmtypes.h (FT_ItemVarDelta): Define type
+	to be used for delta arrays, upgrade to FT_long.
+	* src/truetype/ttgxvar.c: Adhere to long_words bit and read either
+	Short/Byte pairs or Long/Short pairs, as defined by spec. For better
+	readability, define macro for repetitive read code.
+
+2022-05-20  Dominik Röttsches  <[email protected]>
+
+	[truetype] Handle 0xFFFF special value inside delta retrieval function
+
+	* truetype/ttgxvar.c (tt_hvadvance_adjust, tt_apply_mvar,
+	tt_var_get_item_delta): Remove special 0xFFFF handling in favor of less
+	redundant handling inside the tt_var_get_item_delta function, as it is
+	equivalent to returning a 0 delta. Avoids code-duplication checking for
+	special value 0xFFFF.
+
+2022-05-19  Dominik Röttsches  <[email protected]>
+
+	[truetype, snft] Add service methods for `DeltaSetIdxMap` and `VarStore`.
+
+	This will be needed for 'COLR' v1 variation support.
+
+	* src/truetype/ttgxvar.h (GX_ItemVarData, GX_AxisCoords, GX_VarRegion,
+	GX_VarItemStore, GX_DeltaSetIdxMap): Move structures to...
+	* include/freetype/internal/ftmmtypes.h: ... this new file.
+
+	* include/freetype/internal/service/svmm.h (MultiMasters): Include
+	`ftmmtypes.h`.
+	(FT_Var_Load_Delta_Set_Idx_Map_Func, FT_Var_Load_Item_Var_Store_Func,
+	FT_Var_Get_Item_Delta_Func, FT_Var_Done_Item_Var_Store_Func,
+	FT_Var_Done_Delta_Set_Idx_Map_Func): New function typedefs.
+	(MultiMasters): Add them.
+	(FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
+
+	* src/cff/cffdrivr.c (cff_load_item_variation_store,
+	cff_load_delta_set_index_mapping, cff_get_item_delta,
+	cff_done_item_variation_store, cff_done_delta_set_index_map): New wrapper
+	methods calling into mm service.
+	(cff_service_multi_masters): Updated.
+
+	* src/truetype/ttgxvar.c (ft_var_load_item_variation_store,
+	ft_var_load_delta_set_index_mapping, ft_var_get_item_delta,
+	ft_var_done_item_variation_store, ft_var_done_delta_set_index_map): Renamed
+	to ...
+	(tt_var_load_item_variation_store, tt_var_load_delta_set_index_mapping,
+	tt_var_get_item_delta, tt_var_done_item_variation_store,
+	tt_var_done_delta_set_index_map): ... this for consistency.
+	Mark them as non-static.
+	* src/truetype/ttgxvar.h: Add corresponding prototypes.
+
+	* src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated.
+
+	* src/type1/t1driver.c (t1_service_multi_masters): Updated.
+
+2022-05-19  Dominik Röttsches  <[email protected]>
+
+	[truetype] Move deallocation of `DeltaSetIdxMap` into own function.
+
+	This is a preparation for handling `DeltaSetIdxMap` and `VarStore` as a
+	FreeType service.
+
+	* src/truetype/ttgxvar.c (ft_var_done_delta_set_index_map): New function.
+	(tt_done_blend): Use it.
+
+2022-05-18  Werner Lemberg  <[email protected]>
+
+	* builds/toplevel.mk (do-dist): Don't remove meson wrap files.
+
+	Fixes #1157.
+
+2022-05-18  Werner Lemberg  <[email protected]>
+
+	* subprojects/zlib.wrap: Update to zlib version 1.2.12.
+
+2022-05-18  Werner Lemberg  <[email protected]>
+
+	REAMDE: Mention that gitlab's 'download' button doesn't work.
+
+	This is because the `git archive` command doesn't preserve submodules.
+
+	Note that currently there is no support for disabling the 'download' button
+	in gitlab (https://gitlab.com/gitlab-org/gitlab/-/issues/17032).
+
+	Fixes issue #1158.
+
+2022-05-11  Werner Lemberg  <[email protected]>
+
+	[truetype] Handle inner/outer index values 0xFFFF/0xFFFF.
+
+	This was introduced in OpenType 1.8.4.
+
+	* src/truetype/ttgxvar.c (ft_var_load_delta_set_index_mapping,
+	tt_hvadvance_adjust, ft_var_load_mvar, tt_apply_mvar): Handle special
+	inner/outer index values.
+	(ft_var_load_item_variation_store): Add test.
+
+	Fixes #1154.
+
+2022-05-01  Werner Lemberg  <[email protected]>
+
+	* Version 2.12.1 released.
+	==========================
+
+	Tag sources with `VER-2-12-1'.
+
+	* docs/VERSION.TXT: Add entry for version 2.12.1.
+	* docs/CHANGES, docs/release: Updated.
+
+	* README, src/base/ftver.rc, builds/windows/vc2010/index.html,
+	builds/windows/visualc/index.html, builds/windows/visualce/index.html,
+	builds/wince/vc2005-ce/index.html, builds/wince/vc2008-ce/index.html,
+	docs/freetype-config.1: s/2.12.0/2.12.1/, s/2120/2121/.
+
+	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
+
+	* builds/unix/configure.raw (version_info): Set to 24:3:18.
+	* CMakeLists.txt (VERSION_PATCH): Set to 1.
+
+2022-04-30  Anuj Verma  <[email protected]>
+
+	[sdf] Do not throw errors for invisible glyphs.
+
+	* src/sdf/ftsdfrend.c (ft_sdf_render, ft_bsdf_render): Return `FT_Err_Ok` if
+	width or height is zero, since some glyphs do not generate visible bitmaps.
+
+	Fixes #1150.
+
+2022-04-30  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfobjs.c (sfnt_load_face): Set `FT_FACE_FLAG_COLOR` for SVG fonts.
+
+	Fixes #1151.
+
+2022-04-27  Brendan Shanks  <[email protected]>
+
+	autogen.sh: Fix building when freetype is itself a git submodule.
+
+	There are situations where .git is not a directory, like when
+	freetype is a submodule in another repository.
+
+2022-04-26  Alexei Podtelezhnikov  <[email protected]>
+
+	[builds/windows] Simplify non-desktop UWP check.
+
+	Fixes mingw compilation described in !159.
+
+	* builds/windows/ftsystem.c: Do not use WINAPI_FAMILY_PARTITION macro.
+
+2022-04-25  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype] Reset IUP flags in `TT_RunIns`.
+
+	Fixes #1148 by moving the flag initialization back, partly reverting
+	7809007a and fd03dcc1.  Initializing these flags elsewhere skips 'cvt'.
+
+	* src/truetype/ttinterp.c (TT_RunIns): Initialize the IUP flag here...
+	(TT_Run_Context): ... instead of here.
+
+2022-04-24  Xavier Claessens  <[email protected]>
+
+	[meson] Remove `default_library=both` from `default_options`.
+
+	It is inconsistent with what all other Meson projects do.
+
+	It also prevents static linking to FreeType when it is a subproject because
+	`default_options` in a subproject takes precedence on values set on the main
+	project.  For example, building 'GStreamer' with `-Ddefault_library=static`
+	would still dynamically link on FreeType unless the user also sets
+	`-Dfreetype2:default_library=static`.
+
+	* meson.build: Updated.
+
+	* .gitlab-ci.yml: Retain `both` option for testing.
+
+2022-04-19  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Integer overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=46792
+
+2022-04-16  Georg Brandl  <[email protected]>
+
+	* src/cff/cffgload.c (cff_slot_load) [FT_CONFIG_OPTION_SVG]: Fix segfault.
+
+	This can happen if the function is called with `size` being `NULL`.
+
+	Fixes #1147.
+
+2022-04-14  Steve Lhomme  <[email protected]>
+
+	.gitlab-ci.yml: Add a Universal Windows build target
+
+	It's compiled for Windows 10 and up, ensuring UNICODE is set (default for UWP)
+	and selecting the proper WINAPI_FAMILY (WINAPI_FAMILY_APP).
+
+	Do not try to run the UWP exe in the Docker as it doesn't work.
+
+2022-04-04  Ben Wagner  <[email protected]>
+
+	[sfnt] Correct FT_ColorStopIterator documentation.
+
+	* include/freetype/ftcolor.h (FT_ColorStopIterator): the user should not
+	 set `p` to NULL before calling `FT_Get_Colorline_Stops`. `p` and
+	`num_color_stops` are set by `FT_Get_Paint`. `p` and
+	`current_color_stop` are updated by `FT_Get_Colorline_Stops`.
+
+2022-04-01  Werner Lemberg  <[email protected]>
+
+	* builds/unix/configure.raw: Add option `--with-librsvg`.
+
+	Since 'librsvg' is written in Rust, this option allows distributions to
+	avoid a dependency on the entire Rust toolchain to provide the FreeType demo
+	programs.
+
+	Suggested by Lars Wendler in !156.
+
+2022-04-01  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfwoff.c (reconstruct_glyf): Fix gcc 10 warning.
+
+2022-04-01  Werner Lemberg  <[email protected]>
+
+	[gzip] Update sources to zlib 1.2.12.
+
+2022-04-01  Eric Jing  <@CPUcontrol>
+
+	CMakeLists.txt: Fix `Info.plist` path.
+
+	When building a framework using CMake with `add_subdirectory`, CMake must be
+	able to find `freetype-Info.plist` when configuring the framework
+	properties.
+
+	Fixes #1145.
+
+2022-04-01  Werner Lemberg  <[email protected]>
+
+	Whitespace.
+
+2022-04-01  Ben Wagner  <[email protected]>
+
+	[truetype] Use SUB_LONG for component offset.
+
+	* src/truetype/ttgload.c (TT_Process_Composite_Component): do it.
+
+	Bug: https://crbug.com/1309429
+
+2022-03-31  Werner Lemberg  <[email protected]>
+
+	CMakeList.txt: Update code to handle recent changes for `freetype.pc`.
+
+	Fixes #1144.
+
+2022-03-31  Werner Lemberg  <[email protected]>
+
+	CMakeLists.txt: s/PKG_CONFIG/PKGCONFIG/, s/REQUIRED_/REQUIRES_/.
+
 2022-03-31  Werner Lemberg  <[email protected]>
 
 	* Version 2.12.0 released.

+ 5 - 1
libs/freetype/LICENSE.TXT

@@ -29,12 +29,16 @@ The contributed  BDF and PCF  drivers come  with a license  similar to
 that  of the  X Window  System.   It is  compatible to  the above  two
 licenses (see files `src/bdf/README`  and `src/pcf/README`).  The same
 holds   for   the   source    code   files   `src/base/fthash.c`   and
-`include/freetype/internal/fthash.h`; they wer part  of the BDF driver
+`include/freetype/internal/fthash.h`; they were part of the BDF driver
 in earlier FreeType versions.
 
 The gzip  module uses the  zlib license (see  `src/gzip/zlib.h`) which
 too is compatible to the above two licenses.
 
+The files `src/autofit/ft-hb.c` and `src/autofit/ft-hb.h` contain code
+taken almost  verbatim from the  HarfBuzz file `hb-ft.cc`,  which uses
+the 'Old MIT' license, compatible to the above two licenses.
+
 The  MD5 checksum  support  (only used  for  debugging in  development
 builds) is in the public domain.
 

+ 1 - 1
libs/freetype/Makefile

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 8 - 6
libs/freetype/README

@@ -1,4 +1,4 @@
-FreeType 2.12.0
+FreeType 2.13.2
 ===============
 
 Homepage: https://www.freetype.org
@@ -16,7 +16,9 @@ Read the files `docs/INSTALL*`  for installation instructions; see the
 file `docs/LICENSE.TXT` for the available licenses.
 
 For using FreeType's git repository  instead of a distribution bundle,
-please read file `README.git`.
+please read file  `README.git`.  Note that you have  to actually clone
+the repository; using a snapshot will  not work (in other words, don't
+use gitlab's 'Download' button).
 
 The FreeType 2 API reference is located in directory `docs/reference`;
 use the file  `index.html` as the top entry point.   [Please note that
@@ -30,9 +32,9 @@ sites.  Go to
 
 and download one of the following files.
 
-  freetype-doc-2.12.0.tar.xz
-  freetype-doc-2.12.0.tar.gz
-  ftdoc2120.zip
+  freetype-doc-2.13.2.tar.xz
+  freetype-doc-2.13.2.tar.gz
+  ftdoc2132.zip
 
 To view the documentation online, go to
 
@@ -92,7 +94,7 @@ Enjoy!
 
 ----------------------------------------------------------------------
 
-Copyright (C) 2006-2022 by
+Copyright (C) 2006-2023 by
 David Turner, Robert Wilhelm, and Werner Lemberg.
 
 This  file is  part of  the FreeType  project, and  may only  be used,

+ 1 - 1
libs/freetype/README.git

@@ -89,7 +89,7 @@ address:
 
 ----------------------------------------------------------------------
 
-Copyright (C) 2005-2022 by
+Copyright (C) 2005-2023 by
 David Turner, Robert Wilhelm, and Werner Lemberg.
 
 This  file is  part of  the FreeType  project, and  may only  be used,

+ 2 - 2
libs/freetype/autogen.sh

@@ -1,6 +1,6 @@
 #!/bin/sh
 
-# Copyright (C) 2005-2022 by
+# Copyright (C) 2005-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,
@@ -182,7 +182,7 @@ copy_submodule_files ()
   cp $DLG_SRC_DIR/* src/dlg
 }
 
-if test -d ".git"; then
+if test -e ".git"; then
   DLG_INC_DIR=subprojects/dlg/include/dlg
   DLG_SRC_DIR=subprojects/dlg/src/dlg
 

+ 1 - 1
libs/freetype/builds/amiga/README

@@ -1,7 +1,7 @@
 
 README for the builds/amiga subdirectory.
 
-Copyright (C) 2005-2022 by
+Copyright (C) 2005-2023 by
 Werner Lemberg and Detlef Würkner.
 
 This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/amiga/include/config/ftconfig.h

@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    Amiga-specific configuration file (specification only).              */
 /*                                                                         */
-/*  Copyright (C) 2005-2022 by                                             */
+/*  Copyright (C) 2005-2023 by                                             */
 /*  Werner Lemberg and Detlef Würkner.                                     */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */

+ 1 - 1
libs/freetype/builds/amiga/include/config/ftmodule.h

@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    Amiga-specific FreeType module selection.                            */
 /*                                                                         */
-/*  Copyright (C) 2005-2022 by                                             */
+/*  Copyright (C) 2005-2023 by                                             */
 /*  Werner Lemberg and Detlef Würkner.                                     */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */

+ 1 - 1
libs/freetype/builds/amiga/makefile

@@ -5,7 +5,7 @@
 #
 
 
-# Copyright (C) 2005-2022 by
+# Copyright (C) 2005-2023 by
 # Werner Lemberg and Detlef Würkner.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/amiga/makefile.os4

@@ -4,7 +4,7 @@
 #
 
 
-# Copyright (C) 2005-2022 by
+# Copyright (C) 2005-2023 by
 # Werner Lemberg and Detlef Würkner.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/amiga/smakefile

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 2005-2022 by
+# Copyright (C) 2005-2023 by
 # Werner Lemberg and Detlef Würkner.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/amiga/src/base/ftdebug.c

@@ -4,7 +4,7 @@
  *
  *   Debugging and logging component for amiga (body).
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 by
  * David Turner, Robert Wilhelm, Werner Lemberg, and Detlef Wuerkner.
  *
  * This file is part of the FreeType project, and may only be used,

+ 1 - 1
libs/freetype/builds/amiga/src/base/ftsystem.c

@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    Amiga-specific FreeType low-level system interface (body).           */
 /*                                                                         */
-/*  Copyright (C) 1996-2022 by                                             */
+/*  Copyright (C) 1996-2023 by                                             */
 /*  David Turner, Robert Wilhelm, Werner Lemberg and Detlef Würkner.       */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */

+ 1 - 1
libs/freetype/builds/ansi/ansi-def.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/ansi/ansi.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/beos/beos-def.mk

@@ -5,7 +5,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/beos/beos.mk

@@ -2,7 +2,7 @@
 # FreeType 2 configuration rules for a BeOS system
 #
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/beos/detect.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/cmake/FindBrotliDec.cmake

@@ -1,6 +1,6 @@
 # FindBrotliDec.cmake
 #
-# Copyright (C) 2019-2022 by
+# Copyright (C) 2019-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # Written by Werner Lemberg <[email protected]>

+ 1 - 1
libs/freetype/builds/cmake/iOS.cmake

@@ -1,6 +1,6 @@
 # iOS.cmake
 #
-# Copyright (C) 2014-2022 by
+# Copyright (C) 2014-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # Written by David Wimsey <[email protected]>

+ 1 - 1
libs/freetype/builds/cmake/testbuild.sh

@@ -1,6 +1,6 @@
 #!/bin/sh -e
 
-# Copyright (C) 2015-2022 by
+# Copyright (C) 2015-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/compiler/ansi-cc.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/compiler/bcc-dev.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/compiler/bcc.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/compiler/emx.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 2003-2022 by
+# Copyright (C) 2003-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/compiler/gcc-dev.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/compiler/gcc.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/compiler/intelc.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/compiler/unix-lcc.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/compiler/visualage.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/compiler/visualc.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/compiler/watcom.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/compiler/win-lcc.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/detect.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/dos/detect.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/dos/dos-def.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/dos/dos-emx.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 2003-2022 by
+# Copyright (C) 2003-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/dos/dos-gcc.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/dos/dos-wat.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 2003-2022 by
+# Copyright (C) 2003-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/exports.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 2005-2022 by
+# Copyright (C) 2005-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 2 - 2
libs/freetype/builds/freetype.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,
@@ -299,7 +299,7 @@ refdoc:
                   $(PUBLIC_DIR)/config/*.h \
                   $(PUBLIC_DIR)/cache/*.h
 	@echo Building static site...
-	cd $(DOC_DIR) && mkdocs build
+	cd $(DOC_DIR) && $(PYTHON) -m mkdocs build
 	@echo Done.
 
 # Variables for running `refdoc' with Python's `virtualenv'.  The

+ 1 - 1
libs/freetype/builds/link_dos.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/link_std.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 0 - 8
libs/freetype/builds/mac/README

@@ -200,14 +200,6 @@ environment by Metrowerks. GCC for MPW and Symantec
   behaviours are not tested at all. Building ftdemos
   for classic MacOS and working test is required.
 
-  4-3. Porting Jam onto MPW
-  -------------------------
-
-  FreeType uses Jam (and FT-Jam) for unified cross-
-  platform building tool. At present, Jam is not ported
-  to MPW. To update classic MacOS support easily,
-  building by Jam is expected on MPW.
-
 
 APPENDIX I
 ----------

+ 1 - 1
libs/freetype/builds/mac/ftmac.c

@@ -5,7 +5,7 @@
 /*    Mac FOND support.  Written by [email protected].                    */
 /*  Heavily Fixed by mpsuzuki, George Williams and Sean McBride            */
 /*                                                                         */
-/*  Copyright (C) 1996-2022 by                                             */
+/*  Copyright (C) 1996-2023 by                                             */
 /*  Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.     */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */

+ 1 - 1
libs/freetype/builds/meson/extract_freetype_version.py

@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 #
-# Copyright (C) 2020-2022 by
+# Copyright (C) 2020-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/meson/extract_libtool_version.py

@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 #
-# Copyright (C) 2020-2022 by
+# Copyright (C) 2020-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/meson/generate_reference_docs.py

@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 #
-# Copyright (C) 2020-2022 by
+# Copyright (C) 2020-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 15 - 9
libs/freetype/builds/meson/parse_modules_cfg.py

@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 #
-# Copyright (C) 2020-2022 by
+# Copyright (C) 2020-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,
@@ -84,19 +84,25 @@ def generate_ftmodule(lists):
         )
 
     for module in lists["RASTER_MODULES"]:
-        name = {
-            "raster": "ft_raster1",
-            "smooth": "ft_smooth",
-            "svg": "ft_svg",
+        names = {
+            "raster": ("ft_raster1",),
+            "smooth": ("ft_smooth",),
+            "svg": ("ft_svg",),
+            "sdf": ("ft_sdf", "ft_bitmap_sdf"),
         }.get(module)
-        result += (
-            "FT_USE_MODULE( FT_Renderer_Class, %s_renderer_class )\n" % name
-        )
+        for name in names:
+            result += (
+                "FT_USE_MODULE( FT_Renderer_Class, %s_renderer_class )\n" % name
+            )
 
     for module in lists["AUX_MODULES"]:
         if module in ("psaux", "psnames", "otvalid", "gxvalid"):
+            name = {
+                "gxvalid": "gxv",
+                "otvalid": "otv",
+            }.get(module, module)
             result += (
-                "FT_USE_MODULE( FT_Module_Class, %s_module_class )\n" % module
+                "FT_USE_MODULE( FT_Module_Class, %s_module_class )\n" % name
             )
 
     result += "/* EOF */\n"

+ 1 - 1
libs/freetype/builds/meson/process_ftoption_h.py

@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 #
-# Copyright (C) 2020-2022 by
+# Copyright (C) 2020-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/modules.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/os2/detect.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/os2/os2-def.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/os2/os2-dev.mk

@@ -5,7 +5,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/os2/os2-gcc.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/symbian/bld.inf

@@ -2,7 +2,7 @@
 // FreeType 2 project for the symbian platform
 //
 
-// Copyright (C) 2008-2022 by
+// Copyright (C) 2008-2023 by
 // David Turner, Robert Wilhelm, and Werner Lemberg.
 //
 // This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/symbian/freetype.mmp

@@ -2,7 +2,7 @@
 // FreeType 2 makefile for the symbian platform
 //
 
-// Copyright (C) 2008-2022 by
+// Copyright (C) 2008-2023 by
 // David Turner, Robert Wilhelm, and Werner Lemberg.
 //
 // This file is part of the FreeType project, and may only be used, modified,

+ 36 - 41
libs/freetype/builds/toplevel.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,
@@ -139,12 +139,12 @@ ifdef check_platform
   ifneq ($(is_unix),)
 
     distclean:
-	  $(RM) builds/unix/config.cache
-	  $(RM) builds/unix/config.log
-	  $(RM) builds/unix/config.status
-	  $(RM) builds/unix/unix-def.mk
-	  $(RM) builds/unix/unix-cc.mk
-	  $(RM) builds/unix/freetype2.pc
+	  $(RM) $(TOP_DIR)/builds/unix/config.cache
+	  $(RM) $(TOP_DIR)/builds/unix/config.log
+	  $(RM) $(TOP_DIR)/builds/unix/config.status
+	  $(RM) $(TOP_DIR)/builds/unix/unix-def.mk
+	  $(RM) $(TOP_DIR)/builds/unix/unix-cc.mk
+	  $(RM) $(TOP_DIR)/builds/unix/freetype2.pc
 	  $(RM) nul
 
   endif # test is_unix
@@ -170,17 +170,17 @@ endif # test check_platform
 
 check_out_submodule:
 	$(info Checking out submodule in `subprojects/dlg')
-	git submodule init
-	git submodule update
+	git --git-dir=$(TOP_DIR) submodule init
+	git --git-dir=$(TOP_DIR) submodule update
 
 copy_submodule:
 	$(info Copying files from `subprojects/dlg' to `src/dlg' and `include/dlg')
-  ifeq ($(wildcard include/dlg),)
-	mkdir $(subst /,$(SEP),include/dlg)
+  ifeq ($(wildcard $(TOP_DIR)/include/dlg),)
+	mkdir $(subst /,$(SEP),$(TOP_DIR)/include/dlg)
   endif
-	$(COPY) $(subst /,$(SEP),subprojects/dlg/include/dlg/output.h include/dlg)
-	$(COPY) $(subst /,$(SEP),subprojects/dlg/include/dlg/dlg.h include/dlg)
-	$(COPY) $(subst /,$(SEP),subprojects/dlg/src/dlg/dlg.c src/dlg)
+	$(COPY) $(subst /,$(SEP),$(TOP_DIR)/subprojects/dlg/include/dlg/output.h $(TOP_DIR)/include/dlg)
+	$(COPY) $(subst /,$(SEP),$(TOP_DIR)/subprojects/dlg/include/dlg/dlg.h $(TOP_DIR)/include/dlg)
+	$(COPY) $(subst /,$(SEP),$(TOP_DIR)/subprojects/dlg/src/dlg/dlg.c $(TOP_DIR)/src/dlg)
 
 
 # We always need the list of modules in ftmodule.h.
@@ -198,27 +198,22 @@ modules:
 include $(TOP_DIR)/builds/modules.mk
 
 
-# get FreeType version string, using a
-# poor man's `sed' emulation with make's built-in string functions
+# get FreeType version string using built-in string functions
 #
+hash := \#
+
 work := $(strip $(shell $(CAT) \
                   $(subst /,$(SEP),$(TOP_DIR)/include/freetype/freetype.h)))
-work := $(subst |,x,$(work))
-work := $(subst $(space),|,$(work))
-work := $(subst \#define|FREETYPE_MAJOR|,$(space),$(work))
-work := $(word 2,$(work))
-major := $(subst |,$(space),$(work))
-major := $(firstword $(major))
-
-work := $(subst \#define|FREETYPE_MINOR|,$(space),$(work))
-work := $(word 2,$(work))
-minor := $(subst |,$(space),$(work))
-minor := $(firstword $(minor))
-
-work := $(subst \#define|FREETYPE_PATCH|,$(space),$(work))
-work := $(word 2,$(work))
-patch := $(subst |,$(space),$(work))
-patch := $(firstword $(patch))
+
+work := $(subst $(hash)define$(space)FREETYPE_MAJOR$(space),MAjOR=,$(work))
+work := $(subst $(hash)define$(space)FREETYPE_MINOR$(space),MInOR=,$(work))
+work := $(subst $(hash)define$(space)FREETYPE_PATCH$(space),PAtCH=,$(work))
+
+major := $(subst MAjOR=,,$(filter MAjOR=%,$(work)))
+minor := $(subst MInOR=,,$(filter MInOR=%,$(work)))
+patch := $(subst PAtCH=,,$(filter PAtCH=%,$(work)))
+
+work :=
 
 # ifneq ($(findstring x0x,x$(patch)x),)
 #   version := $(major).$(minor)
@@ -294,15 +289,15 @@ CHANGELOG_SCRIPT = ~/git/config/gitlog-to-changelog
 
 do-dist: distclean refdoc
 	@# Without removing the files, `autoconf' and friends follow links.
-	rm -f builds/unix/aclocal.m4
-	rm -f builds/unix/configure.ac
-	rm -f builds/unix/configure
+	rm -f $(TOP_DIR)/builds/unix/aclocal.m4
+	rm -f $(TOP_DIR)/builds/unix/configure.ac
+	rm -f $(TOP_DIR)/builds/unix/configure
 
 	sh autogen.sh
-	rm -rf builds/unix/autom4te.cache
+	rm -rf $(TOP_DIR)/builds/unix/autom4te.cache
 
-	cp $(CONFIG_GUESS) builds/unix
-	cp $(CONFIG_SUB) builds/unix
+	cp $(CONFIG_GUESS) $(TOP_DIR)/builds/unix
+	cp $(CONFIG_SUB) $(TOP_DIR)/builds/unix
 
 	@# Generate `ChangeLog' file with commits since release 2.11.0
 	@# (when we stopped creating this file manually).
@@ -313,10 +308,10 @@ do-dist: distclean refdoc
 	> ChangeLog
 
 	@# Remove intermediate files created by the `refdoc' target.
-	rm -rf docs/markdown
-	rm -f docs/mkdocs.yml
+	rm -rf $(TOP_DIR)/docs/markdown
+	rm -f $(TOP_DIR)/docs/mkdocs.yml
 
 	@# Remove more stuff related to git.
-	rm -rf subprojects
+	rm -rf $(TOP_DIR)/subprojects/dlg
 
 # EOF

+ 141 - 109
libs/freetype/builds/unix/aclocal.m4

@@ -14,7 +14,8 @@
 m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
-#   Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.
+#   Copyright (C) 1996-2001, 2003-2019, 2021-2022 Free Software
+#   Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
@@ -45,7 +46,7 @@ m4_define([_LT_COPYING], [dnl
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ])
 
-# serial 58 LT_INIT
+# serial 59 LT_INIT
 
 
 # LT_PREREQ(VERSION)
@@ -195,6 +196,7 @@ m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
 m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
 m4_require([_LT_CMD_RELOAD])dnl
+m4_require([_LT_DECL_FILECMD])dnl
 m4_require([_LT_CHECK_MAGIC_METHOD])dnl
 m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
@@ -233,8 +235,8 @@ esac
 ofile=libtool
 can_build_shared=yes
 
-# All known linkers require a '.a' archive for static linking (except MSVC,
-# which needs '.lib').
+# All known linkers require a '.a' archive for static linking (except MSVC and
+# ICC, which need '.lib').
 libext=a
 
 with_gnu_ld=$lt_cv_prog_gnu_ld
@@ -785,7 +787,7 @@ _LT_EOF
   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
   # text mode, it properly converts lines to CR/LF.  This bash problem
   # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" \
+  $SED '$q' "$ltmain" >> "$cfgfile" \
      || (rm -f "$cfgfile"; exit 1)
 
    mv -f "$cfgfile" "$ofile" ||
@@ -1047,8 +1049,8 @@ int forced_loaded() { return 2;}
 _LT_EOF
       echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
       $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
-      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
-      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+      echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+      $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
       echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
       $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
       cat > conftest.c << _LT_EOF
@@ -1072,17 +1074,12 @@ _LT_EOF
       _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
     darwin1.*)
       _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
-    darwin*) # darwin 5.x on
-      # if running on 10.5 or later, the deployment target defaults
-      # to the OS version, if on x86, and 10.4, the deployment
-      # target defaults to 10.4. Don't you love it?
-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
-	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
-	10.[[012]][[,.]]*)
-	  _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
-	10.*)
-	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+    darwin*)
+      case $MACOSX_DEPLOYMENT_TARGET,$host in
+        10.[[012]],*|,*powerpc*-darwin[[5-8]]*)
+          _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+        *)
+          _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
       esac
     ;;
   esac
@@ -1131,12 +1128,12 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
     output_verbose_link_cmd=func_echo_all
     _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
     _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
-    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
-    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+    _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+    _LT_TAGVAR(module_expsym_cmds, $1)="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
     m4_if([$1], [CXX],
 [   if test yes != "$lt_cv_apple_cc_single_mod"; then
       _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
-      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
+      _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
     fi
 ],[])
   else
@@ -1250,7 +1247,8 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
 # _LT_WITH_SYSROOT
 # ----------------
 AC_DEFUN([_LT_WITH_SYSROOT],
-[AC_MSG_CHECKING([for sysroot])
+[m4_require([_LT_DECL_SED])dnl
+AC_MSG_CHECKING([for sysroot])
 AC_ARG_WITH([sysroot],
 [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
   [Search for dependent libraries within DIR (or the compiler's sysroot
@@ -1267,7 +1265,7 @@ case $with_sysroot in #(
    fi
    ;; #(
  /*)
-   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
    ;; #(
  no|'')
    ;; #(
@@ -1297,7 +1295,7 @@ ia64-*-hpux*)
   # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.$ac_objext` in
+    case `$FILECMD conftest.$ac_objext` in
       *ELF-32*)
 	HPUX_IA64_MODE=32
 	;;
@@ -1314,7 +1312,7 @@ ia64-*-hpux*)
   echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     if test yes = "$lt_cv_prog_gnu_ld"; then
-      case `/usr/bin/file conftest.$ac_objext` in
+      case `$FILECMD conftest.$ac_objext` in
 	*32-bit*)
 	  LD="${LD-ld} -melf32bsmip"
 	  ;;
@@ -1326,7 +1324,7 @@ ia64-*-hpux*)
 	;;
       esac
     else
-      case `/usr/bin/file conftest.$ac_objext` in
+      case `$FILECMD conftest.$ac_objext` in
 	*32-bit*)
 	  LD="${LD-ld} -32"
 	  ;;
@@ -1348,7 +1346,7 @@ mips64*-*linux*)
   echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     emul=elf
-    case `/usr/bin/file conftest.$ac_objext` in
+    case `$FILECMD conftest.$ac_objext` in
       *32-bit*)
 	emul="${emul}32"
 	;;
@@ -1356,7 +1354,7 @@ mips64*-*linux*)
 	emul="${emul}64"
 	;;
     esac
-    case `/usr/bin/file conftest.$ac_objext` in
+    case `$FILECMD conftest.$ac_objext` in
       *MSB*)
 	emul="${emul}btsmip"
 	;;
@@ -1364,7 +1362,7 @@ mips64*-*linux*)
 	emul="${emul}ltsmip"
 	;;
     esac
-    case `/usr/bin/file conftest.$ac_objext` in
+    case `$FILECMD conftest.$ac_objext` in
       *N32*)
 	emul="${emul}n32"
 	;;
@@ -1384,14 +1382,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # not appear in the list.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
+    case `$FILECMD conftest.o` in
       *32-bit*)
 	case $host in
 	  x86_64-*kfreebsd*-gnu)
 	    LD="${LD-ld} -m elf_i386_fbsd"
 	    ;;
 	  x86_64-*linux*)
-	    case `/usr/bin/file conftest.o` in
+	    case `$FILECMD conftest.o` in
 	      *x86-64*)
 		LD="${LD-ld} -m elf32_x86_64"
 		;;
@@ -1459,7 +1457,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
+    case `$FILECMD conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
       yes*)
@@ -1498,9 +1496,22 @@ need_locks=$enable_libtool_lock
 m4_defun([_LT_PROG_AR],
 [AC_CHECK_TOOLS(AR, [ar], false)
 : ${AR=ar}
-: ${AR_FLAGS=cru}
 _LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+# Use ARFLAGS variable as AR's operation code to sync the variable naming with
+# Automake.  If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
+# higher priority because thats what people were doing historically (setting
+# ARFLAGS for automake and AR_FLAGS for libtool).  FIXME: Make the AR_FLAGS
+# variable obsoleted/removed.
+
+test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
+lt_ar_flags=$AR_FLAGS
+_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)])
+
+# Make AR_FLAGS overridable by 'make ARFLAGS='.  Don't try to run-time override
+# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
+_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}],
+         [Flags to create an archive])
 
 AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
   [lt_cv_ar_at_file=no
@@ -1719,7 +1730,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
-  bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
+  bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*)
     # This has been around since 386BSD, at least.  Likely further.
     if test -x /sbin/sysctl; then
       lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@@ -1762,7 +1773,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
   sysv5* | sco5v6* | sysv4.2uw2*)
     kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
     if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
+      lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[[	 ]]//'`
     else
       lt_cv_sys_max_cmd_len=32768
     fi
@@ -2212,26 +2223,35 @@ m4_defun([_LT_CMD_STRIPLIB],
 striplib=
 old_striplib=
 AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  AC_MSG_RESULT([yes])
+if test -z "$STRIP"; then
+  AC_MSG_RESULT([no])
 else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-  darwin*)
-    if test -n "$STRIP"; then
+  if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+    old_striplib="$STRIP --strip-debug"
+    striplib="$STRIP --strip-unneeded"
+    AC_MSG_RESULT([yes])
+  else
+    case $host_os in
+    darwin*)
+      # FIXME - insert some real tests, host_os isn't really good enough
       striplib="$STRIP -x"
       old_striplib="$STRIP -S"
       AC_MSG_RESULT([yes])
-    else
+      ;;
+    freebsd*)
+      if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
+        old_striplib="$STRIP --strip-debug"
+        striplib="$STRIP --strip-unneeded"
+        AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+      fi
+      ;;
+    *)
       AC_MSG_RESULT([no])
-    fi
-    ;;
-  *)
-    AC_MSG_RESULT([no])
-    ;;
-  esac
+      ;;
+    esac
+  fi
 fi
 _LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
 _LT_DECL([], [striplib], [1])
@@ -2554,7 +2574,7 @@ cygwin* | mingw* | pw32* | cegcc*)
     case $host_os in
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+      soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
 m4_if([$1], [],[
       sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
       ;;
@@ -2564,14 +2584,14 @@ m4_if([$1], [],[
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+      library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
       ;;
     esac
     dynamic_linker='Win32 ld.exe'
     ;;
 
-  *,cl*)
-    # Native MSVC
+  *,cl* | *,icl*)
+    # Native MSVC or ICC
     libname_spec='$name'
     soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
     library_names_spec='$libname.dll.lib'
@@ -2590,7 +2610,7 @@ m4_if([$1], [],[
       done
       IFS=$lt_save_ifs
       # Convert to MSYS style.
-      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
       ;;
     cygwin*)
       # Convert to unix form, then to dos form, then back to unix form
@@ -2627,7 +2647,7 @@ m4_if([$1], [],[
     ;;
 
   *)
-    # Assume MSVC wrapper
+    # Assume MSVC and ICC wrapper
     library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
     dynamic_linker='Win32 ld.exe'
     ;;
@@ -2660,7 +2680,7 @@ dgux*)
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd* | dragonfly*)
+freebsd* | dragonfly* | midnightbsd*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
   if test -x /usr/bin/objformat; then
@@ -3459,7 +3479,7 @@ beos*)
 
 bsdi[[45]]*)
   lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_cmd='$FILECMD -L'
   lt_cv_file_magic_test_file=/shlib/libc.so
   ;;
 
@@ -3493,14 +3513,14 @@ darwin* | rhapsody*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-freebsd* | dragonfly*)
+freebsd* | dragonfly* | midnightbsd*)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     case $host_cpu in
     i*86 )
       # Not sure whether the presence of OpenBSD here was a mistake.
       # Let's accept both of them until this is cleared up.
       lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_cmd=$FILECMD
       lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
       ;;
     esac
@@ -3514,7 +3534,7 @@ haiku*)
   ;;
 
 hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_cmd=$FILECMD
   case $host_cpu in
   ia64*)
     lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
@@ -3561,7 +3581,7 @@ netbsd*)
 
 newos6*)
   lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_cmd=$FILECMD
   lt_cv_file_magic_test_file=/usr/lib/libnls.so
   ;;
 
@@ -3688,13 +3708,13 @@ else
 	mingw*) lt_bad_file=conftest.nm/nofile ;;
 	*) lt_bad_file=/dev/null ;;
 	esac
-	case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+	case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in
 	*$lt_bad_file* | *'Invalid file or object type'*)
 	  lt_cv_path_NM="$tmp_nm -B"
 	  break 2
 	  ;;
 	*)
-	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in
 	  */dev/null*)
 	    lt_cv_path_NM="$tmp_nm -p"
 	    break 2
@@ -3720,7 +3740,7 @@ else
     # Let the user override the test.
   else
     AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
-    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
+    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in
     *COFF*)
       DUMPBIN="$DUMPBIN -symbols -headers"
       ;;
@@ -3960,7 +3980,7 @@ esac
 
 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
   # Gets list of data symbols to import.
-  lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+  lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"
   # Adjust the below global symbol transforms to fixup imported variables.
   lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
   lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/p'"
@@ -3978,20 +3998,20 @@ fi
 # Transform an extracted symbol line into a proper C declaration.
 # Some systems (esp. on ia64) link data and code symbols differently,
 # so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+lt_cv_sys_global_symbol_to_cdecl="$SED -n"\
 $lt_cdecl_hook\
 " -e 's/^T .* \(.*\)$/extern int \1();/p'"\
 " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\
 $lt_c_name_hook\
 " -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
 " -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
 
 # Transform an extracted symbol line into symbol name with lib prefix and
 # symbol address.
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\
 $lt_c_name_lib_hook\
 " -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
 " -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
@@ -4015,7 +4035,7 @@ for ac_symprfx in "" "_"; do
   if test "$lt_cv_nm_interface" = "MS dumpbin"; then
     # Fake it for dumpbin and say T for any non-static function,
     # D for any global variable and I for any imported variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
+    # Also find C++ and __fastcall symbols from MSVC++ or ICC,
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
 "     {last_section=section; section=\$ 3};"\
@@ -4033,9 +4053,9 @@ for ac_symprfx in "" "_"; do
 "     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
 "     ' prfx=^$ac_symprfx]"
   else
-    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+    lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
   fi
-  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'"
 
   # Check to see that the pipe works correctly.
   pipe_works=no
@@ -4322,7 +4342,7 @@ m4_if([$1], [CXX], [
 	    ;;
 	esac
 	;;
-      freebsd* | dragonfly*)
+      freebsd* | dragonfly* | midnightbsd*)
 	# FreeBSD uses GNU C++
 	;;
       hpux9* | hpux10* | hpux11*)
@@ -4405,7 +4425,7 @@ m4_if([$1], [CXX], [
 	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
 	    ;;
 	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
+	    case `$CC -V 2>&1 | $SED 5q` in
 	    *Sun\ C*)
 	      # Sun C++ 5.9
 	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
@@ -4741,7 +4761,7 @@ m4_if([$1], [CXX], [
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
 	;;
       *)
-	case `$CC -V 2>&1 | sed 5q` in
+	case `$CC -V 2>&1 | $SED 5q` in
 	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
 	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
 	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
@@ -4924,7 +4944,7 @@ m4_if([$1], [CXX], [
     if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
       _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
     else
-      _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
     fi
     ;;
   pw32*)
@@ -4932,7 +4952,7 @@ m4_if([$1], [CXX], [
     ;;
   cygwin* | mingw* | cegcc*)
     case $cc_basename in
-    cl*)
+    cl* | icl*)
       _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
       ;;
     *)
@@ -4989,15 +5009,15 @@ dnl Note also adjust exclude_expsyms for C++ above.
 
   case $host_os in
   cygwin* | mingw* | pw32* | cegcc*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
     # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
+    # Microsoft Visual C++ or Intel C++ Compiler.
     if test yes != "$GCC"; then
       with_gnu_ld=no
     fi
     ;;
   interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
     with_gnu_ld=yes
     ;;
   openbsd* | bitrig*)
@@ -5049,7 +5069,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
       _LT_TAGVAR(whole_archive_flag_spec, $1)=
     fi
     supports_anon_versioning=no
-    case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
+    case `$LD -v | $SED -e 's/([[^)]]\+)\s\+//' 2>&1` in
       *GNU\ gold*) supports_anon_versioning=yes ;;
       *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
       *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
@@ -5161,6 +5181,7 @@ _LT_EOF
 	emximp -o $lib $output_objdir/$libname.def'
       _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='@'
       ;;
 
     interix[[3-9]]*)
@@ -5175,7 +5196,7 @@ _LT_EOF
       # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
       # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       ;;
 
     gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
@@ -5218,7 +5239,7 @@ _LT_EOF
 	  _LT_TAGVAR(compiler_needs_object, $1)=yes
 	  ;;
 	esac
-	case `$CC -V 2>&1 | sed 5q` in
+	case `$CC -V 2>&1 | $SED 5q` in
 	*Sun\ C*)			# Sun C 5.9
 	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
 	  _LT_TAGVAR(compiler_needs_object, $1)=yes
@@ -5230,7 +5251,7 @@ _LT_EOF
 
         if test yes = "$supports_anon_versioning"; then
           _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-            cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+            cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
             echo "local: *; };" >> $output_objdir/$libname.ver~
             $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
         fi
@@ -5246,7 +5267,7 @@ _LT_EOF
 	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
 	  if test yes = "$supports_anon_versioning"; then
 	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+              cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
               echo "local: *; };" >> $output_objdir/$libname.ver~
               $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
 	  fi
@@ -5378,7 +5399,7 @@ _LT_EOF
 	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
 	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
 	else
-	  _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+	  _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
 	fi
 	aix_use_runtimelinking=no
 
@@ -5561,12 +5582,12 @@ _LT_EOF
 
     cygwin* | mingw* | pw32* | cegcc*)
       # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
+      # Microsoft Visual C++ or Intel C++ Compiler.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
       case $cc_basename in
-      cl*)
-	# Native MSVC
+      cl* | icl*)
+	# Native MSVC or ICC
 	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
 	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
 	_LT_TAGVAR(always_export_symbols, $1)=yes
@@ -5607,7 +5628,7 @@ _LT_EOF
           fi'
 	;;
       *)
-	# Assume MSVC wrapper
+	# Assume MSVC and ICC wrapper
 	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
 	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
 	# Tell ltmain to make .lib files, not .a files.
@@ -5655,7 +5676,7 @@ _LT_EOF
       ;;
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | dragonfly*)
+    freebsd* | dragonfly* | midnightbsd*)
       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
       _LT_TAGVAR(hardcode_direct, $1)=yes
@@ -5866,6 +5887,7 @@ _LT_EOF
 	emximp -o $lib $output_objdir/$libname.def'
       _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='@'
       ;;
 
     osf3*)
@@ -6632,8 +6654,8 @@ if test yes != "$_lt_caught_CXX_error"; then
 
       cygwin* | mingw* | pw32* | cegcc*)
 	case $GXX,$cc_basename in
-	,cl* | no,cl*)
-	  # Native MSVC
+	,cl* | no,cl* | ,icl* | no,icl*)
+	  # Native MSVC or ICC
 	  # hardcode_libdir_flag_spec is actually meaningless, as there is
 	  # no search path for DLLs.
 	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
@@ -6731,6 +6753,7 @@ if test yes != "$_lt_caught_CXX_error"; then
 	  emximp -o $lib $output_objdir/$libname.def'
 	_LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
 	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	_LT_TAGVAR(file_list_spec, $1)='@'
 	;;
 
       dgux*)
@@ -6761,7 +6784,7 @@ if test yes != "$_lt_caught_CXX_error"; then
         _LT_TAGVAR(archive_cmds_need_lc, $1)=no
         ;;
 
-      freebsd* | dragonfly*)
+      freebsd* | dragonfly* | midnightbsd*)
         # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
         # conventions
         _LT_TAGVAR(ld_shlibs, $1)=yes
@@ -6898,7 +6921,7 @@ if test yes != "$_lt_caught_CXX_error"; then
 	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
 	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
 	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
 	;;
       irix5* | irix6*)
         case $cc_basename in
@@ -7038,13 +7061,13 @@ if test yes != "$_lt_caught_CXX_error"; then
 	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
 	    if test yes = "$supports_anon_versioning"; then
 	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-                cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+                cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
                 echo "local: *; };" >> $output_objdir/$libname.ver~
                 $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
 	    fi
 	    ;;
 	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
+	    case `$CC -V 2>&1 | $SED 5q` in
 	    *Sun\ C*)
 	      # Sun C++ 5.9
 	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
@@ -8182,6 +8205,14 @@ _LT_DECL([], [DLLTOOL], [1], [DLL creation program])
 AC_SUBST([DLLTOOL])
 ])
 
+# _LT_DECL_FILECMD
+# ----------------
+# Check for a file(cmd) program that can be used to detect file type and magic
+m4_defun([_LT_DECL_FILECMD],
+[AC_CHECK_TOOL([FILECMD], [file], [:])
+_LT_DECL([], [FILECMD], [1], [A file(cmd) program that detects file types])
+])# _LD_DECL_FILECMD
+
 # _LT_DECL_SED
 # ------------
 # Check for a fully-functional sed program, that truncates
@@ -8361,8 +8392,8 @@ _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
 
 # Helper functions for option handling.                    -*- Autoconf -*-
 #
-#   Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
-#   Foundation, Inc.
+#   Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2022 Free
+#   Software Foundation, Inc.
 #   Written by Gary V. Vaughan, 2004
 #
 # This file is free software; the Free Software Foundation gives
@@ -8793,7 +8824,7 @@ LT_OPTION_DEFINE([LTDL_INIT], [convenience],
 
 # ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
 #
-# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
+# Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2022 Free Software
 # Foundation, Inc.
 # Written by Gary V. Vaughan, 2004
 #
@@ -8918,7 +8949,8 @@ m4_define([lt_dict_filter],
 
 # ltversion.m4 -- version numbers			-*- Autoconf -*-
 #
-#   Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
+#   Copyright (C) 2004, 2011-2019, 2021-2022 Free Software Foundation,
+#   Inc.
 #   Written by Scott James Remnant, 2004
 #
 # This file is free software; the Free Software Foundation gives
@@ -8927,23 +8959,23 @@ m4_define([lt_dict_filter],
 
 # @configure_input@
 
-# serial 4179 ltversion.m4
+# serial 4245 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.4.6])
-m4_define([LT_PACKAGE_REVISION], [2.4.6])
+m4_define([LT_PACKAGE_VERSION], [2.4.7])
+m4_define([LT_PACKAGE_REVISION], [2.4.7])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.6'
-macro_revision='2.4.6'
+[macro_version='2.4.7'
+macro_revision='2.4.7'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])
 
 # lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
 #
-#   Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
-#   Foundation, Inc.
+#   Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2022 Free
+#   Software Foundation, Inc.
 #   Written by Scott James Remnant, 2004.
 #
 # This file is free software; the Free Software Foundation gives

+ 70 - 21
libs/freetype/builds/unix/config.guess

@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2022 Free Software Foundation, Inc.
+#   Copyright 1992-2023 Free Software Foundation, Inc.
 
 # shellcheck disable=SC2006,SC2268 # see below for rationale
 
-timestamp='2022-01-09'
+timestamp='2023-07-20'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -47,7 +47,7 @@ me=`echo "$0" | sed -e 's,.*/,,'`
 usage="\
 Usage: $0 [OPTION]
 
-Output the configuration name of the system \`$me' is run on.
+Output the configuration name of the system '$me' is run on.
 
 Options:
   -h, --help         print this help, then exit
@@ -60,13 +60,13 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2022 Free Software Foundation, Inc.
+Copyright 1992-2023 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 
 help="
-Try \`$me --help' for more information."
+Try '$me --help' for more information."
 
 # Parse command line
 while test $# -gt 0 ; do
@@ -102,8 +102,8 @@ GUESS=
 # temporary files to be created and, as you can see below, it is a
 # headache to deal with in a portable fashion.
 
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
+# Historically, 'CC_FOR_BUILD' used to be named 'HOST_CC'. We still
+# use 'HOST_CC' if defined, but it is deprecated.
 
 # Portable tmp directory creation inspired by the Autoconf team.
 
@@ -459,7 +459,7 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
 		UNAME_RELEASE=`uname -v`
 		;;
 	esac
-	# Japanese Language versions have a version number like `4.1.3-JL'.
+	# Japanese Language versions have a version number like '4.1.3-JL'.
 	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
 	GUESS=sparc-sun-sunos$SUN_REL
 	;;
@@ -966,11 +966,37 @@ EOF
 	GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
 	GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
 	;;
+    x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)
+	GUESS="$UNAME_MACHINE-pc-managarm-mlibc"
+	;;
+    *:[Mm]anagarm:*:*)
+	GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"
+	;;
     *:Minix:*:*)
 	GUESS=$UNAME_MACHINE-unknown-minix
 	;;
     aarch64:Linux:*:*)
-	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	set_cc_for_build
+	CPU=$UNAME_MACHINE
+	LIBCABI=$LIBC
+	if test "$CC_FOR_BUILD" != no_compiler_found; then
+	    ABI=64
+	    sed 's/^	    //' << EOF > "$dummy.c"
+	    #ifdef __ARM_EABI__
+	    #ifdef __ARM_PCS_VFP
+	    ABI=eabihf
+	    #else
+	    ABI=eabi
+	    #endif
+	    #endif
+EOF
+	    cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
+	    eval "$cc_set_abi"
+	    case $ABI in
+		eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;;
+	    esac
+	fi
+	GUESS=$CPU-unknown-linux-$LIBCABI
 	;;
     aarch64_be:Linux:*:*)
 	UNAME_MACHINE=aarch64_be
@@ -1036,7 +1062,16 @@ EOF
     k1om:Linux:*:*)
 	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
 	;;
-    loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
+    kvx:Linux:*:*)
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
+    kvx:cos:*:*)
+	GUESS=$UNAME_MACHINE-unknown-cos
+	;;
+    kvx:mbr:*:*)
+	GUESS=$UNAME_MACHINE-unknown-mbr
+	;;
+    loongarch32:Linux:*:* | loongarch64:Linux:*:*)
 	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
 	;;
     m32r*:Linux:*:*)
@@ -1151,16 +1186,27 @@ EOF
 	;;
     x86_64:Linux:*:*)
 	set_cc_for_build
+	CPU=$UNAME_MACHINE
 	LIBCABI=$LIBC
 	if test "$CC_FOR_BUILD" != no_compiler_found; then
-	    if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
-		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
-		grep IS_X32 >/dev/null
-	    then
-		LIBCABI=${LIBC}x32
-	    fi
+	    ABI=64
+	    sed 's/^	    //' << EOF > "$dummy.c"
+	    #ifdef __i386__
+	    ABI=x86
+	    #else
+	    #ifdef __ILP32__
+	    ABI=x32
+	    #endif
+	    #endif
+EOF
+	    cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
+	    eval "$cc_set_abi"
+	    case $ABI in
+		x86) CPU=i686 ;;
+		x32) LIBCABI=${LIBC}x32 ;;
+	    esac
 	fi
-	GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
+	GUESS=$CPU-pc-linux-$LIBCABI
 	;;
     xtensa*:Linux:*:*)
 	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
@@ -1180,7 +1226,7 @@ EOF
 	GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
 	;;
     i*86:OS/2:*:*)
-	# If we were able to find `uname', then EMX Unix compatibility
+	# If we were able to find 'uname', then EMX Unix compatibility
 	# is probably installed.
 	GUESS=$UNAME_MACHINE-pc-os2-emx
 	;;
@@ -1321,7 +1367,7 @@ EOF
 		GUESS=ns32k-sni-sysv
 	fi
 	;;
-    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+    PENTIUM:*:4.0*:*)	# Unisys 'ClearPath HMP IX 4000' SVR4/MP effort
 			# says <[email protected]>
 	GUESS=i586-unisys-sysv4
 	;;
@@ -1367,8 +1413,11 @@ EOF
     BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
 	GUESS=i586-pc-haiku
 	;;
-    x86_64:Haiku:*:*)
-	GUESS=x86_64-unknown-haiku
+    ppc:Haiku:*:*)	# Haiku running on Apple PowerPC
+	GUESS=powerpc-apple-haiku
+	;;
+    *:Haiku:*:*)	# Haiku modern gcc (not bound by BeOS compat)
+	GUESS=$UNAME_MACHINE-unknown-haiku
 	;;
     SX-4:SUPER-UX:*:*)
 	GUESS=sx4-nec-superux$UNAME_RELEASE

+ 47 - 42
libs/freetype/builds/unix/config.sub

@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2022 Free Software Foundation, Inc.
+#   Copyright 1992-2023 Free Software Foundation, Inc.
 
 # shellcheck disable=SC2006,SC2268 # see below for rationale
 
-timestamp='2022-01-03'
+timestamp='2023-07-31'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -76,13 +76,13 @@ Report bugs and patches to <[email protected]>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2022 Free Software Foundation, Inc.
+Copyright 1992-2023 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 
 help="
-Try \`$me --help' for more information."
+Try '$me --help' for more information."
 
 # Parse command line
 while test $# -gt 0 ; do
@@ -130,7 +130,7 @@ IFS=$saved_IFS
 # Separate into logical components for further validation
 case $1 in
 	*-*-*-*-*)
-		echo Invalid configuration \`"$1"\': more than four components >&2
+		echo "Invalid configuration '$1': more than four components" >&2
 		exit 1
 		;;
 	*-*-*-*)
@@ -145,7 +145,8 @@ case $1 in
 			nto-qnx* | linux-* | uclinux-uclibc* \
 			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
 			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
-			| storm-chaos* | os2-emx* | rtmk-nova*)
+			| storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \
+			| windows-* )
 				basic_machine=$field1
 				basic_os=$maybe_os
 				;;
@@ -943,7 +944,7 @@ $basic_machine
 EOF
 		IFS=$saved_IFS
 		;;
-	# We use `pc' rather than `unknown'
+	# We use 'pc' rather than 'unknown'
 	# because (1) that's what they normally are, and
 	# (2) the word "unknown" tends to confuse beginning users.
 	i*86 | x86_64)
@@ -1075,7 +1076,7 @@ case $cpu-$vendor in
 	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
 		cpu=i586
 		;;
-	pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+	pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
 		cpu=i686
 		;;
 	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
@@ -1205,39 +1206,16 @@ case $cpu-$vendor in
 			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
 			| ip2k | iq2000 \
 			| k1om \
+			| kvx \
 			| le32 | le64 \
 			| lm32 \
-			| loongarch32 | loongarch64 | loongarchx32 \
+			| loongarch32 | loongarch64 \
 			| m32c | m32r | m32rle \
 			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
 			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
 			| m88110 | m88k | maxq | mb | mcore | mep | metag \
 			| microblaze | microblazeel \
-			| mips | mipsbe | mipseb | mipsel | mipsle \
-			| mips16 \
-			| mips64 | mips64eb | mips64el \
-			| mips64octeon | mips64octeonel \
-			| mips64orion | mips64orionel \
-			| mips64r5900 | mips64r5900el \
-			| mips64vr | mips64vrel \
-			| mips64vr4100 | mips64vr4100el \
-			| mips64vr4300 | mips64vr4300el \
-			| mips64vr5000 | mips64vr5000el \
-			| mips64vr5900 | mips64vr5900el \
-			| mipsisa32 | mipsisa32el \
-			| mipsisa32r2 | mipsisa32r2el \
-			| mipsisa32r3 | mipsisa32r3el \
-			| mipsisa32r5 | mipsisa32r5el \
-			| mipsisa32r6 | mipsisa32r6el \
-			| mipsisa64 | mipsisa64el \
-			| mipsisa64r2 | mipsisa64r2el \
-			| mipsisa64r3 | mipsisa64r3el \
-			| mipsisa64r5 | mipsisa64r5el \
-			| mipsisa64r6 | mipsisa64r6el \
-			| mipsisa64sb1 | mipsisa64sb1el \
-			| mipsisa64sr71k | mipsisa64sr71kel \
-			| mipsr5900 | mipsr5900el \
-			| mipstx39 | mipstx39el \
+			| mips* \
 			| mmix \
 			| mn10200 | mn10300 \
 			| moxie \
@@ -1285,7 +1263,7 @@ case $cpu-$vendor in
 				;;
 
 			*)
-				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
+				echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2
 				exit 1
 				;;
 		esac
@@ -1341,6 +1319,10 @@ EOF
 		kernel=linux
 		os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
 		;;
+	managarm*)
+		kernel=managarm
+		os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
+		;;
 	*)
 		kernel=
 		os=$basic_os
@@ -1728,7 +1710,7 @@ case $os in
 	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
 	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
 	     | hiux* | abug | nacl* | netware* | windows* \
-	     | os9* | macos* | osx* | ios* \
+	     | os9* | macos* | osx* | ios* | tvos* | watchos* \
 	     | mpw* | magic* | mmixware* | mon960* | lnews* \
 	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
 	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
@@ -1754,7 +1736,7 @@ case $os in
 	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
 	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
 	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
-	     | fiwix* )
+	     | fiwix* | mlibc* | cos* | mbr* )
 		;;
 	# This one is extra strict with allowed versions
 	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
@@ -1762,8 +1744,11 @@ case $os in
 		;;
 	none)
 		;;
+	kernel* | msvc* )
+		# Restricted further below
+		;;
 	*)
-		echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
+		echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2
 		exit 1
 		;;
 esac
@@ -1772,14 +1757,30 @@ esac
 # (given a valid OS), if there is a kernel.
 case $kernel-$os in
 	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
-		   | linux-musl* | linux-relibc* | linux-uclibc* )
+		   | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
 		;;
 	uclinux-uclibc* )
 		;;
-	-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
+	managarm-mlibc* | managarm-kernel* )
+		;;
+	windows*-gnu* | windows*-msvc*)
+		;;
+	-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
 		# These are just libc implementations, not actual OSes, and thus
 		# require a kernel.
-		echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
+		echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
+		exit 1
+		;;
+	-kernel* )
+		echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2
+		exit 1
+		;;
+	*-kernel* )
+		echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2
+		exit 1
+		;;
+	*-msvc* )
+		echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2
 		exit 1
 		;;
 	kfreebsd*-gnu* | kopensolaris*-gnu*)
@@ -1792,11 +1793,15 @@ case $kernel-$os in
 		;;
 	*-eabi* | *-gnueabi*)
 		;;
+	none-coff* | none-elf*)
+		# None (no kernel, i.e. freestanding / bare metal),
+		# can be paired with an output format "OS"
+		;;
 	-*)
 		# Blank kernel with real OS is always fine.
 		;;
 	*-*)
-		echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
+		echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2
 		exit 1
 		;;
 esac

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 308 - 131
libs/freetype/builds/unix/configure


+ 28 - 23
libs/freetype/builds/unix/configure.ac

@@ -2,7 +2,7 @@
 #
 # Process this file with autoconf to produce a configure script.
 #
-# Copyright (C) 2001-2022 by
+# Copyright (C) 2001-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,
@@ -11,13 +11,13 @@
 # indicate that you have read the license and understand and accept it
 # fully.
 
-AC_INIT([FreeType], [2.12], [[email protected]], [freetype])
+AC_INIT([FreeType], [2.13.2], [[email protected]], [freetype])
 AC_CONFIG_SRCDIR([ftconfig.h.in])
 
 
 # Don't forget to update `docs/VERSIONS.TXT'!
 
-version_info='24:2:18'
+version_info='26:1:20'
 AC_SUBST([version_info])
 ft_version=`echo $version_info | tr : .`
 AC_SUBST([ft_version])
@@ -50,7 +50,7 @@ if test ${cross_compiling} = yes; then
 
   AC_MSG_CHECKING([for suffix of native executables])
   rm -f a.* b.* a_out.exe conftest.*
-  echo > conftest.c "int main() { return 0;}"
+  echo > conftest.c "int main(void) { return 0;}"
   ${CC_BUILD} conftest.c || AC_MSG_ERROR([native C compiler is not working])
   rm -f conftest.c
   if test -x a.out -o -x b.out -o -x conftest; then
@@ -163,9 +163,6 @@ fi
 AC_SUBST([FTSYS_SRC])
 
 
-AC_CHECK_FUNCS([memcpy memmove])
-
-
 # get compiler flags right
 #
 #   We try to make the compiler work for C99-strict source.  Even if the
@@ -406,16 +403,12 @@ if test x"$with_png" = xyes -o x"$with_png" = xauto; then
       have_libpng="yes (LIBPNG_CFLAGS and LIBPNG_LIBS)"
     else
       # fall back to config script
-      AC_MSG_CHECKING([for libpng-config])
-      if which libpng-config > /dev/null 2>&1; then
+      AC_CHECK_PROG(have_libpng, [libpng-config], [yes (libpng-config)], [no])
+      if test "$have_libpng" != no; then
         LIBPNG_CFLAGS=`libpng-config --cflags`
         LIBPNG_LIBS=`libpng-config --ldflags`
         libpng_libspriv=`libpng-config --static --ldflags`
         libpng_libsstaticconf="$libpng_libspriv"
-        have_libpng="yes (libpng-config)"
-        AC_MSG_RESULT([yes])
-      else
-        AC_MSG_RESULT([no])
       fi
     fi
   fi
@@ -530,16 +523,28 @@ AC_SEARCH_LIBS([clock_gettime],
                [test "$ac_cv_search_clock_gettime" = "none required" \
                 || LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
 
-# 'librsvg' is needed to demonstrate SVG support.
-PKG_CHECK_MODULES([LIBRSVG], [librsvg-2.0 >= 2.46.0],
-                  [have_librsvg="yes (pkg-config)"], [have_librsvg=no])
-
 FT_DEMO_CFLAGS=""
 FT_DEMO_LDFLAGS="$LIB_CLOCK_GETTIME"
 
-if test "$have_librsvg" != no; then
-  FT_DEMO_CFLAGS="$FT_DEMO_CFLAGS $LIBRSVG_CFLAGS -DHAVE_LIBRSVG"
-  FT_DEMO_LDFLAGS="$FT_DEMO_LDFLAGS $LIBRSVG_LIBS"
+# 'librsvg' is needed to demonstrate SVG support.
+AC_ARG_WITH([librsvg],
+  [AS_HELP_STRING([--with-librsvg=@<:@yes|no|auto@:>@],
+                  [support OpenType SVG fonts in FreeType demo programs @<:@default=auto@:>@])],
+  [], [with_librsvg=auto])
+
+have_librsvg=no
+if test x"$with_librsvg" = xyes -o x"$with_librsvg" = xauto; then
+  PKG_CHECK_MODULES([LIBRSVG], [librsvg-2.0 >= 2.46.0],
+                    [have_librsvg="yes (pkg-config)"], [:])
+
+  if test "$have_librsvg" != no; then
+    FT_DEMO_CFLAGS="$FT_DEMO_CFLAGS $LIBRSVG_CFLAGS -DHAVE_LIBRSVG"
+    FT_DEMO_LDFLAGS="$FT_DEMO_LDFLAGS $LIBRSVG_LIBS"
+  fi
+fi
+
+if test x"$with_librsvg" = xyes -a "$have_librsvg" = no; then
+  AC_MSG_ERROR([librsvg support requested but library not found])
 fi
 
 AC_SUBST([FT_DEMO_CFLAGS])
@@ -961,14 +966,14 @@ esac
 AX_PTHREAD([have_pthread=yes], [have_pthread=no])
 
 # Check for Python and docwriter
-
+PYTHON_MIN_VERSION=3.5
 have_py3=no
 have_docwriter=no
 PIP=pip
 
 AC_CHECK_PROGS([PYTHON], [python3 python], [missing])
 if test "x$PYTHON" != "xmissing"; then
-  AX_PROG_PYTHON_VERSION([3.5], [have_py3=yes], [])
+  AX_PROG_PYTHON_VERSION([$PYTHON_MIN_VERSION], [have_py3=yes], [])
 
   if test "x$have_py3" = "xyes"; then
     PIP="$PYTHON -m $PIP"
@@ -1157,7 +1162,7 @@ if test $have_docwriter = no; then
   `make refdoc' will fail since pip package `docwriter' is not installed.
   To install, run `$PIP install docwriter', or to use a Python
   virtual environment, run `make refdoc-venv' (requires pip package
-  `virtualenv').  These operations require Python >= 3.5.
+  `virtualenv').  These operations require Python >= $PYTHON_MIN_VERSION.
   ])
 fi
 

+ 27 - 22
libs/freetype/builds/unix/configure.raw

@@ -2,7 +2,7 @@
 #
 # Process this file with autoconf to produce a configure script.
 #
-# Copyright (C) 2001-2022 by
+# Copyright (C) 2001-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,
@@ -17,7 +17,7 @@ AC_CONFIG_SRCDIR([ftconfig.h.in])
 
 # Don't forget to update `docs/VERSIONS.TXT'!
 
-version_info='24:2:18'
+version_info='26:1:20'
 AC_SUBST([version_info])
 ft_version=`echo $version_info | tr : .`
 AC_SUBST([ft_version])
@@ -50,7 +50,7 @@ if test ${cross_compiling} = yes; then
 
   AC_MSG_CHECKING([for suffix of native executables])
   rm -f a.* b.* a_out.exe conftest.*
-  echo > conftest.c "int main() { return 0;}"
+  echo > conftest.c "int main(void) { return 0;}"
   ${CC_BUILD} conftest.c || AC_MSG_ERROR([native C compiler is not working])
   rm -f conftest.c
   if test -x a.out -o -x b.out -o -x conftest; then
@@ -163,9 +163,6 @@ fi
 AC_SUBST([FTSYS_SRC])
 
 
-AC_CHECK_FUNCS([memcpy memmove])
-
-
 # get compiler flags right
 #
 #   We try to make the compiler work for C99-strict source.  Even if the
@@ -406,16 +403,12 @@ if test x"$with_png" = xyes -o x"$with_png" = xauto; then
       have_libpng="yes (LIBPNG_CFLAGS and LIBPNG_LIBS)"
     else
       # fall back to config script
-      AC_MSG_CHECKING([for libpng-config])
-      if which libpng-config > /dev/null 2>&1; then
+      AC_CHECK_PROG(have_libpng, [libpng-config], [yes (libpng-config)], [no])
+      if test "$have_libpng" != no; then
         LIBPNG_CFLAGS=`libpng-config --cflags`
         LIBPNG_LIBS=`libpng-config --ldflags`
         libpng_libspriv=`libpng-config --static --ldflags`
         libpng_libsstaticconf="$libpng_libspriv"
-        have_libpng="yes (libpng-config)"
-        AC_MSG_RESULT([yes])
-      else
-        AC_MSG_RESULT([no])
       fi
     fi
   fi
@@ -530,16 +523,28 @@ AC_SEARCH_LIBS([clock_gettime],
                [test "$ac_cv_search_clock_gettime" = "none required" \
                 || LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
 
-# 'librsvg' is needed to demonstrate SVG support.
-PKG_CHECK_MODULES([LIBRSVG], [librsvg-2.0 >= 2.46.0],
-                  [have_librsvg="yes (pkg-config)"], [have_librsvg=no])
-
 FT_DEMO_CFLAGS=""
 FT_DEMO_LDFLAGS="$LIB_CLOCK_GETTIME"
 
-if test "$have_librsvg" != no; then
-  FT_DEMO_CFLAGS="$FT_DEMO_CFLAGS $LIBRSVG_CFLAGS -DHAVE_LIBRSVG"
-  FT_DEMO_LDFLAGS="$FT_DEMO_LDFLAGS $LIBRSVG_LIBS"
+# 'librsvg' is needed to demonstrate SVG support.
+AC_ARG_WITH([librsvg],
+  [AS_HELP_STRING([--with-librsvg=@<:@yes|no|auto@:>@],
+                  [support OpenType SVG fonts in FreeType demo programs @<:@default=auto@:>@])],
+  [], [with_librsvg=auto])
+
+have_librsvg=no
+if test x"$with_librsvg" = xyes -o x"$with_librsvg" = xauto; then
+  PKG_CHECK_MODULES([LIBRSVG], [librsvg-2.0 >= 2.46.0],
+                    [have_librsvg="yes (pkg-config)"], [:])
+
+  if test "$have_librsvg" != no; then
+    FT_DEMO_CFLAGS="$FT_DEMO_CFLAGS $LIBRSVG_CFLAGS -DHAVE_LIBRSVG"
+    FT_DEMO_LDFLAGS="$FT_DEMO_LDFLAGS $LIBRSVG_LIBS"
+  fi
+fi
+
+if test x"$with_librsvg" = xyes -a "$have_librsvg" = no; then
+  AC_MSG_ERROR([librsvg support requested but library not found])
 fi
 
 AC_SUBST([FT_DEMO_CFLAGS])
@@ -961,14 +966,14 @@ esac
 AX_PTHREAD([have_pthread=yes], [have_pthread=no])
 
 # Check for Python and docwriter
-
+PYTHON_MIN_VERSION=3.5
 have_py3=no
 have_docwriter=no
 PIP=pip
 
 AC_CHECK_PROGS([PYTHON], [python3 python], [missing])
 if test "x$PYTHON" != "xmissing"; then
-  AX_PROG_PYTHON_VERSION([3.5], [have_py3=yes], [])
+  AX_PROG_PYTHON_VERSION([$PYTHON_MIN_VERSION], [have_py3=yes], [])
 
   if test "x$have_py3" = "xyes"; then
     PIP="$PYTHON -m $PIP"
@@ -1157,7 +1162,7 @@ if test $have_docwriter = no; then
   `make refdoc' will fail since pip package `docwriter' is not installed.
   To install, run `$PIP install docwriter', or to use a Python
   virtual environment, run `make refdoc-venv' (requires pip package
-  `virtualenv').  These operations require Python >= 3.5.
+  `virtualenv').  These operations require Python >= $PYTHON_MIN_VERSION.
   ])
 fi
 

+ 1 - 1
libs/freetype/builds/unix/detect.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/unix/freetype-config.in

@@ -1,6 +1,6 @@
 #! /bin/sh
 #
-# Copyright (C) 2000-2022 by
+# Copyright (C) 2000-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 3 - 3
libs/freetype/builds/unix/freetype2.m4

@@ -1,7 +1,7 @@
 # Configure paths for FreeType2
 # Marcelo Magallon 2001-10-26, based on `gtk.m4` by Owen Taylor
 #
-# Copyright (C) 2001-2022 by
+# Copyright (C) 2001-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,
@@ -15,7 +15,7 @@
 # generated by Autoconf, under the same distribution terms as the rest of
 # that program.
 #
-# serial 6
+# serial 7
 
 # AC_CHECK_FT2([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
 # Test for FreeType 2, and define FT2_CFLAGS and FT2_LIBS.
@@ -121,7 +121,7 @@ AC_DEFUN([AC_CHECK_FT2],
 #include <stdlib.h>
 
 int
-main()
+main(void)
 {
   FT_Library library;
   FT_Error  error;

+ 1 - 1
libs/freetype/builds/unix/ft-munmap.m4

@@ -1,6 +1,6 @@
 ## FreeType specific autoconf tests
 #
-# Copyright (C) 2002-2022 by
+# Copyright (C) 2002-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/unix/ftconfig.h.in

@@ -4,7 +4,7 @@
  *
  *   UNIX-specific configuration file (specification only).
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 by
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  * This file is part of the FreeType project, and may only be used,

+ 1 - 1
libs/freetype/builds/unix/ftsystem.c

@@ -4,7 +4,7 @@
  *
  *   Unix-specific FreeType low-level system interface (body).
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 by
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  * This file is part of the FreeType project, and may only be used,

+ 107 - 67
libs/freetype/builds/unix/install-sh

@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2013-12-25.23; # UTC
+scriptversion=2020-11-14.01; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -69,6 +69,11 @@ posix_mkdir=
 # Desired mode of installed file.
 mode=0755
 
+# Create dirs (including intermediate dirs) using mode 755.
+# This is like GNU 'install' as of coreutils 8.32 (2020).
+mkdir_umask=22
+
+backupsuffix=
 chgrpcmd=
 chmodcmd=$chmodprog
 chowncmd=
@@ -99,18 +104,28 @@ Options:
      --version  display version info and exit.
 
   -c            (ignored)
-  -C            install only if different (preserve the last data modification time)
+  -C            install only if different (preserve data modification time)
   -d            create directories instead of installing files.
   -g GROUP      $chgrpprog installed files to GROUP.
   -m MODE       $chmodprog installed files to MODE.
   -o USER       $chownprog installed files to USER.
+  -p            pass -p to $cpprog.
   -s            $stripprog installed files.
+  -S SUFFIX     attempt to back up existing files, with suffix SUFFIX.
   -t DIRECTORY  install into DIRECTORY.
   -T            report an error if DSTFILE is a directory.
 
 Environment variables override the default commands:
   CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
   RMPROG STRIPPROG
+
+By default, rm is invoked with -f; when overridden with RMPROG,
+it's up to you to specify -f if you want it.
+
+If -S is not specified, no backups are attempted.
+
+Email bug reports to [email protected].
+Automake home page: https://www.gnu.org/software/automake/
 "
 
 while test $# -ne 0; do
@@ -137,8 +152,13 @@ while test $# -ne 0; do
     -o) chowncmd="$chownprog $2"
         shift;;
 
+    -p) cpprog="$cpprog -p";;
+
     -s) stripcmd=$stripprog;;
 
+    -S) backupsuffix="$2"
+        shift;;
+
     -t)
         is_target_a_directory=always
         dst_arg=$2
@@ -255,6 +275,10 @@ do
     dstdir=$dst
     test -d "$dstdir"
     dstdir_status=$?
+    # Don't chown directories that already exist.
+    if test $dstdir_status = 0; then
+      chowncmd=""
+    fi
   else
 
     # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
@@ -271,15 +295,18 @@ do
     fi
     dst=$dst_arg
 
-    # If destination is a directory, append the input filename; won't work
-    # if double slashes aren't ignored.
+    # If destination is a directory, append the input filename.
     if test -d "$dst"; then
       if test "$is_target_a_directory" = never; then
         echo "$0: $dst_arg: Is a directory" >&2
         exit 1
       fi
       dstdir=$dst
-      dst=$dstdir/`basename "$src"`
+      dstbase=`basename "$src"`
+      case $dst in
+	*/) dst=$dst$dstbase;;
+	*)  dst=$dst/$dstbase;;
+      esac
       dstdir_status=0
     else
       dstdir=`dirname "$dst"`
@@ -288,27 +315,16 @@ do
     fi
   fi
 
+  case $dstdir in
+    */) dstdirslash=$dstdir;;
+    *)  dstdirslash=$dstdir/;;
+  esac
+
   obsolete_mkdir_used=false
 
   if test $dstdir_status != 0; then
     case $posix_mkdir in
       '')
-        # Create intermediate dirs using mode 755 as modified by the umask.
-        # This is like FreeBSD 'install' as of 1997-10-28.
-        umask=`umask`
-        case $stripcmd.$umask in
-          # Optimize common cases.
-          *[2367][2367]) mkdir_umask=$umask;;
-          .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
-          *[0-7])
-            mkdir_umask=`expr $umask + 22 \
-              - $umask % 100 % 40 + $umask % 20 \
-              - $umask % 10 % 4 + $umask % 2
-            `;;
-          *) mkdir_umask=$umask,go-w;;
-        esac
-
         # With -d, create the new directory with the user-specified mode.
         # Otherwise, rely on $mkdir_umask.
         if test -n "$dir_arg"; then
@@ -318,43 +334,49 @@ do
         fi
 
         posix_mkdir=false
-        case $umask in
-          *[123567][0-7][0-7])
-            # POSIX mkdir -p sets u+wx bits regardless of umask, which
-            # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
-            ;;
-          *)
-            tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-            trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
-            if (umask $mkdir_umask &&
-                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
-            then
-              if test -z "$dir_arg" || {
-                   # Check for POSIX incompatibilities with -m.
-                   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
-                   # other-writable bit of parent directory when it shouldn't.
-                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
-                   ls_ld_tmpdir=`ls -ld "$tmpdir"`
-                   case $ls_ld_tmpdir in
-                     d????-?r-*) different_mode=700;;
-                     d????-?--*) different_mode=755;;
-                     *) false;;
-                   esac &&
-                   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
-                     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
-                     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
-                   }
-                 }
-              then posix_mkdir=:
-              fi
-              rmdir "$tmpdir/d" "$tmpdir"
-            else
-              # Remove any dirs left behind by ancient mkdir implementations.
-              rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
-            fi
-            trap '' 0;;
-        esac;;
+	# The $RANDOM variable is not portable (e.g., dash).  Use it
+	# here however when possible just to lower collision chance.
+	tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+
+	trap '
+	  ret=$?
+	  rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
+	  exit $ret
+	' 0
+
+	# Because "mkdir -p" follows existing symlinks and we likely work
+	# directly in world-writeable /tmp, make sure that the '$tmpdir'
+	# directory is successfully created first before we actually test
+	# 'mkdir -p'.
+	if (umask $mkdir_umask &&
+	    $mkdirprog $mkdir_mode "$tmpdir" &&
+	    exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+	then
+	  if test -z "$dir_arg" || {
+	       # Check for POSIX incompatibilities with -m.
+	       # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+	       # other-writable bit of parent directory when it shouldn't.
+	       # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+	       test_tmpdir="$tmpdir/a"
+	       ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+	       case $ls_ld_tmpdir in
+		 d????-?r-*) different_mode=700;;
+		 d????-?--*) different_mode=755;;
+		 *) false;;
+	       esac &&
+	       $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+		 ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+		 test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+	       }
+	     }
+	  then posix_mkdir=:
+	  fi
+	  rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+	else
+	  # Remove any dirs left behind by ancient mkdir implementations.
+	  rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+	fi
+	trap '' 0;;
     esac
 
     if
@@ -365,7 +387,7 @@ do
     then :
     else
 
-      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # mkdir does not conform to POSIX,
       # or it failed possibly due to a race condition.  Create the
       # directory the slow way, step by step, checking for races as we go.
 
@@ -394,7 +416,7 @@ do
           prefixes=
         else
           if $posix_mkdir; then
-            (umask=$mkdir_umask &&
+            (umask $mkdir_umask &&
              $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
             # Don't fail if two instances are running concurrently.
             test -d "$prefix" || exit 1
@@ -427,14 +449,25 @@ do
   else
 
     # Make a couple of temp file names in the proper directory.
-    dsttmp=$dstdir/_inst.$$_
-    rmtmp=$dstdir/_rm.$$_
+    dsttmp=${dstdirslash}_inst.$$_
+    rmtmp=${dstdirslash}_rm.$$_
 
     # Trap to clean up those temp files at exit.
     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
 
     # Copy the file name to the temp name.
-    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+    (umask $cp_umask &&
+     { test -z "$stripcmd" || {
+	 # Create $dsttmp read-write so that cp doesn't create it read-only,
+	 # which would cause strip to fail.
+	 if test -z "$doit"; then
+	   : >"$dsttmp" # No need to fork-exec 'touch'.
+	 else
+	   $doit touch "$dsttmp"
+	 fi
+       }
+     } &&
+     $doit_exec $cpprog "$src" "$dsttmp") &&
 
     # and set any options; do chmod last to preserve setuid bits.
     #
@@ -460,6 +493,13 @@ do
     then
       rm -f "$dsttmp"
     else
+      # If $backupsuffix is set, and the file being installed
+      # already exists, attempt a backup.  Don't worry if it fails,
+      # e.g., if mv doesn't support -f.
+      if test -n "$backupsuffix" && test -f "$dst"; then
+        $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
+      fi
+
       # Rename the file to the real destination.
       $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
 
@@ -474,9 +514,9 @@ do
         # file should still install successfully.
         {
           test ! -f "$dst" ||
-          $doit $rmcmd -f "$dst" 2>/dev/null ||
+          $doit $rmcmd "$dst" 2>/dev/null ||
           { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
-            { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+            { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
           } ||
           { echo "$0: cannot unlink or rename $dst" >&2
             (exit 1); exit 1
@@ -493,9 +533,9 @@ do
 done
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:

+ 1 - 1
libs/freetype/builds/unix/install.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 448 - 210
libs/freetype/builds/unix/ltmain.sh


+ 1 - 1
libs/freetype/builds/unix/unix-cc.in

@@ -2,7 +2,7 @@
 # FreeType 2 template for Unix-specific compiler definitions
 #
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/unix/unix-def.in

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/unix/unix-dev.mk

@@ -6,7 +6,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/unix/unix-lcc.mk

@@ -6,7 +6,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/unix/unix.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/unix/unixddef.mk

@@ -4,7 +4,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

BIN
libs/freetype/builds/vms/LIBS.OPT_IA64


BIN
libs/freetype/builds/vms/_LINK.OPT_IA64


+ 2 - 0
libs/freetype/builds/vms/apinames_vms.bash

@@ -0,0 +1,2 @@
+src/tools/apinames -wV include/freetype/*.h > freetype_vms0.opt
+mv freetype_vms0.opt freetype_vms.opt

+ 1 - 1
libs/freetype/builds/vms/ftconfig.h

@@ -4,7 +4,7 @@
  *
  *   VMS-specific configuration file (specification only).
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 by
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  * This file is part of the FreeType project, and may only be used,

+ 1 - 1
libs/freetype/builds/vms/ftsystem.c

@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    VMS-specific FreeType low-level system interface (body).             */
 /*                                                                         */
-/*  Copyright (C) 1996-2022 by                                             */
+/*  Copyright (C) 1996-2023 by                                             */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */

+ 0 - 28
libs/freetype/builds/vms/vmslib.dat

@@ -1,28 +0,0 @@
-!
-! This is a simple driver file with information used by make.com to
-! check if external libraries (like t1lib and freetype) are available on
-! the system.
-!
-! Layout of the file:
-!
-!    - Lines starting with ! are treated as comments
-!    - Elements in a data line are separated by # signs
-!    - The elements need to be listed in the following order
-!      1.) Name of the Library 
-!      2.) Location where the object library can be found
-!      3.) Location where the include files for the library can be found
-!      4.) Include file used to verify library location
-!      5.) CPP define to pass to the build to indicate availability of
-!          the library
-!
-! Example: The following  lines show how definitions
-!          might look like. They are site specific and the locations of the
-!          library and include files need almost certainly to be changed.
-!
-! Location: All of the libaries can be found at the following addresses
-!
-!   ZLIB:     http://www.decus.de:8080/www/vms/sw/zlib.htmlx
-!
-BZ2LIB # sys$library:libbz2.olb # decc$user_include: # bzlib.h # FT_CONFIG_OPTION_SYSTEM_ZLIB
-PNGLIB # sys$library:libpng.olb # sys$library: # png.h # FT_CONFIG_OPTION_SYSTEM_ZLIB
-ZLIB # sys$library:libz.olb # sys$library: # zlib.h # FT_CONFIG_OPTION_SYSTEM_ZLIB

+ 1 - 1
libs/freetype/builds/wince/ftdebug.c

@@ -4,7 +4,7 @@
  *
  *   Debugging and logging component for WinCE (body).
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 by
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  * This file is part of the FreeType project, and may only be used,

+ 1 - 1
libs/freetype/builds/wince/vc2005-ce/index.html

@@ -21,7 +21,7 @@ the following targets:
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 
-It compiles the following libraries from the FreeType 2.12.0 sources:</p>
+It compiles the following libraries from the FreeType 2.13.2 sources:</p>
 
 <ul>
   <pre>

+ 1 - 1
libs/freetype/builds/wince/vc2008-ce/index.html

@@ -21,7 +21,7 @@ the following targets:
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 
-It compiles the following libraries from the FreeType 2.12.0 sources:</p>
+It compiles the following libraries from the FreeType 2.13.2 sources:</p>
 
 <ul>
   <pre>

+ 1 - 1
libs/freetype/builds/windows/detect.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/windows/ftdebug.c

@@ -4,7 +4,7 @@
  *
  *   Debugging and logging component for Win32 (body).
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 by
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  * This file is part of the FreeType project, and may only be used,

+ 2 - 3
libs/freetype/builds/windows/ftsystem.c

@@ -4,7 +4,7 @@
  *
  *   Windows-specific FreeType low-level system interface (body).
  *
- * Copyright (C) 2021-2022 by
+ * Copyright (C) 2021-2023 by
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  * This file is part of the FreeType project, and may only be used,
@@ -197,8 +197,7 @@
 
 
   /* non-desktop Universal Windows Platform */
-#if defined( WINAPI_FAMILY_PARTITION )                 && \
-    !WINAPI_FAMILY_PARTITION( WINAPI_PARTITION_DESKTOP )
+#if defined( WINAPI_FAMILY ) && WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP
 
 #define PACK_DWORD64( hi, lo )  ( ( (DWORD64)(hi) << 32 ) | (DWORD)(lo) )
 

+ 8 - 8
libs/freetype/builds/windows/vc2010/freetype.vcxproj

@@ -168,7 +168,7 @@
       <WarningLevel>Level4</WarningLevel>

       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

       <CompileAs>Default</CompileAs>

-      <DisableSpecificWarnings>4001</DisableSpecificWarnings>

+      <DisableSpecificWarnings>4001;4267</DisableSpecificWarnings>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>

       <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

@@ -195,7 +195,7 @@
       <WarningLevel>Level4</WarningLevel>

       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

       <CompileAs>Default</CompileAs>

-      <DisableSpecificWarnings>4001</DisableSpecificWarnings>

+      <DisableSpecificWarnings>4001;4267</DisableSpecificWarnings>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>

       <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

@@ -248,7 +248,7 @@
       <WarningLevel>Level4</WarningLevel>

       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

       <CompileAs>Default</CompileAs>

-      <DisableSpecificWarnings>4001</DisableSpecificWarnings>

+      <DisableSpecificWarnings>4001;4267</DisableSpecificWarnings>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>

       <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

@@ -274,7 +274,7 @@
       <WarningLevel>Level4</WarningLevel>

       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

       <CompileAs>Default</CompileAs>

-      <DisableSpecificWarnings>4001</DisableSpecificWarnings>

+      <DisableSpecificWarnings>4001;4267</DisableSpecificWarnings>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>

       <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

@@ -328,7 +328,7 @@
       <DisableLanguageExtensions>true</DisableLanguageExtensions>

       <WarningLevel>Level4</WarningLevel>

       <CompileAs>Default</CompileAs>

-      <DisableSpecificWarnings>4001</DisableSpecificWarnings>

+      <DisableSpecificWarnings>4001;4267</DisableSpecificWarnings>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>

       <IntrinsicFunctions>true</IntrinsicFunctions>

@@ -356,7 +356,7 @@
       <DisableLanguageExtensions>true</DisableLanguageExtensions>

       <WarningLevel>Level4</WarningLevel>

       <CompileAs>Default</CompileAs>

-      <DisableSpecificWarnings>4001</DisableSpecificWarnings>

+      <DisableSpecificWarnings>4001;4267</DisableSpecificWarnings>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <IntrinsicFunctions>true</IntrinsicFunctions>

     </ClCompile>

@@ -409,7 +409,7 @@
       <DisableLanguageExtensions>true</DisableLanguageExtensions>

       <WarningLevel>Level4</WarningLevel>

       <CompileAs>Default</CompileAs>

-      <DisableSpecificWarnings>4001</DisableSpecificWarnings>

+      <DisableSpecificWarnings>4001;4267</DisableSpecificWarnings>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>

       <IntrinsicFunctions>true</IntrinsicFunctions>

@@ -435,7 +435,7 @@
       <DisableLanguageExtensions>true</DisableLanguageExtensions>

       <WarningLevel>Level4</WarningLevel>

       <CompileAs>Default</CompileAs>

-      <DisableSpecificWarnings>4001</DisableSpecificWarnings>

+      <DisableSpecificWarnings>4001;4267</DisableSpecificWarnings>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <IntrinsicFunctions>true</IntrinsicFunctions>

     </ClCompile>


+ 1 - 1
libs/freetype/builds/windows/vc2010/index.html

@@ -12,7 +12,7 @@
 <p>This directory contains solution and project files for
 Visual&nbsp;C++&nbsp;2010 or newer, named <tt>freetype.sln</tt>,
 and <tt>freetype.vcxproj</tt>.  It compiles the following libraries
-from the FreeType 2.12.0 sources:</p>
+from the FreeType 2.13.2 sources:</p>
 
 <ul>
   <li>freetype.dll using 'Release' or 'Debug' configurations</li>

+ 1 - 1
libs/freetype/builds/windows/visualc/index.html

@@ -12,7 +12,7 @@
 <p>This directory contains project files <tt>freetype.dsp</tt> for
 Visual C++ 6.0, and <tt>freetype.vcproj</tt> for Visual C++ 2002
 through 2008, which you might need to upgrade automatically.
-It compiles the following libraries from the FreeType 2.12.0 sources:</p>
+It compiles the following libraries from the FreeType 2.13.2 sources:</p>
 
 <ul>
   <li>freetype.dll using 'Release' or 'Debug' configurations</li>

+ 1 - 1
libs/freetype/builds/windows/visualce/index.html

@@ -21,7 +21,7 @@ the following targets:
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 
-It compiles the following libraries from the FreeType 2.12.0 sources:</p>
+It compiles the following libraries from the FreeType 2.13.2 sources:</p>
 
 <ul>
   <pre>

+ 1 - 1
libs/freetype/builds/windows/w32-bcc.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

+ 1 - 1
libs/freetype/builds/windows/w32-bccd.mk

@@ -3,7 +3,7 @@
 #
 
 
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно