浏览代码

update freetype to 2.13.2.

Sasha Szpakowski 1 年之前
父节点
当前提交
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. 二进制
      libs/freetype/builds/vms/LIBS.OPT_IA64
  84. 二进制
      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_LIBOGG_VER "1.3.2")
 set(MEGA_LIBVORBIS_VER "1.3.5")
 set(MEGA_LIBVORBIS_VER "1.3.5")
 set(MEGA_LIBTHEORA_VER "1.1.1")
 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_SDL2_VER "2.28.5")
 set(MEGA_OPENAL_VER "1.22.0")
 set(MEGA_OPENAL_VER "1.22.0")
 set(MEGA_MODPLUG_VER "0.8.8.4")
 set(MEGA_MODPLUG_VER "0.8.8.4")

+ 55 - 21
libs/freetype/CMakeLists.txt

@@ -1,6 +1,6 @@
 # CMakeLists.txt
 # CMakeLists.txt
 #
 #
-# Copyright (C) 2013-2022 by
+# Copyright (C) 2013-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # Written originally by John Cary <[email protected]>
 # Written originally by John Cary <[email protected]>
@@ -61,6 +61,8 @@
 #
 #
 # Some notes.
 # Some notes.
 #
 #
+# - Say `cmake -LAH` to see all configuration options.
+#
 # - `cmake' creates configuration files in
 # - `cmake' creates configuration files in
 #
 #
 #     <build-directory>/include/freetype/config
 #     <build-directory>/include/freetype/config
@@ -121,7 +123,6 @@ endif ()
 
 
 include(CheckIncludeFile)
 include(CheckIncludeFile)
 include(CMakeDependentOption)
 include(CMakeDependentOption)
-include(FindPkgConfig)
 
 
 # CMAKE_TOOLCHAIN_FILE must be set before `project' is called, which
 # CMAKE_TOOLCHAIN_FILE must be set before `project' is called, which
 # configures the base build environment and references the toolchain file
 # configures the base build environment and references the toolchain file
@@ -162,8 +163,8 @@ endif ()
 project(freetype C)
 project(freetype C)
 
 
 set(VERSION_MAJOR "2")
 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.
 # Generate LIBRARY_VERSION and LIBRARY_SOVERSION.
 set(LIBTOOL_REGEX "version_info='([0-9]+):([0-9]+):([0-9]+)'")
 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
   "Require support of compressed WOFF2 fonts." OFF
   "NOT FT_DISABLE_BROTLI" OFF)
   "NOT FT_DISABLE_BROTLI" OFF)
 
 
+option(FT_ENABLE_ERROR_STRINGS
+  "Enable support for meaningful error descriptions." OFF)
 
 
 # Disallow in-source builds
 # Disallow in-source builds
 if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
 if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
@@ -245,6 +248,8 @@ endif ()
 
 
 
 
 # Find dependencies
 # Find dependencies
+include(FindPkgConfig)
+
 if (NOT FT_DISABLE_HARFBUZZ)
 if (NOT FT_DISABLE_HARFBUZZ)
   set(HARFBUZZ_MIN_VERSION "2.0.0")
   set(HARFBUZZ_MIN_VERSION "2.0.0")
   if (FT_REQUIRE_HARFBUZZ)
   if (FT_REQUIRE_HARFBUZZ)
@@ -353,6 +358,12 @@ if (BROTLIDEC_FOUND)
     FTOPTION_H "${FTOPTION_H}")
     FTOPTION_H "${FTOPTION_H}")
 endif ()
 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")
 set(FTOPTION_H_NAME "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h")
 if (EXISTS "${FTOPTION_H_NAME}")
 if (EXISTS "${FTOPTION_H_NAME}")
   file(READ "${FTOPTION_H_NAME}" ORIGINAL_FTOPTION_H)
   file(READ "${FTOPTION_H_NAME}" ORIGINAL_FTOPTION_H)
@@ -469,8 +480,6 @@ if (BUILD_SHARED_LIBS)
     SOVERSION ${LIBRARY_SOVERSION})
     SOVERSION ${LIBRARY_SOVERSION})
 endif ()
 endif ()
 
 
-message(STATUS ${CMAKE_CURRENT_BINARY_DIR})
-
 # Pick up ftconfig.h and ftoption.h generated above, first.
 # Pick up ftconfig.h and ftoption.h generated above, first.
 target_include_directories(
 target_include_directories(
   freetype
   freetype
@@ -493,46 +502,55 @@ if (BUILD_FRAMEWORK)
   )
   )
   set_target_properties(freetype PROPERTIES
   set_target_properties(freetype PROPERTIES
     FRAMEWORK TRUE
     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}"
     PUBLIC_HEADER "${PUBLIC_HEADERS}"
     XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
     XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
   )
   )
 endif ()
 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)
 if (ZLIB_FOUND)
   target_link_libraries(freetype PRIVATE ${ZLIB_LIBRARIES})
   target_link_libraries(freetype PRIVATE ${ZLIB_LIBRARIES})
   target_include_directories(freetype PRIVATE ${ZLIB_INCLUDE_DIRS})
   target_include_directories(freetype PRIVATE ${ZLIB_INCLUDE_DIRS})
-  list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "zlib")
+  list(APPEND PKGCONFIG_REQUIRES_PRIVATE "zlib")
 endif ()
 endif ()
 if (BZIP2_FOUND)
 if (BZIP2_FOUND)
   target_link_libraries(freetype PRIVATE ${BZIP2_LIBRARIES})
   target_link_libraries(freetype PRIVATE ${BZIP2_LIBRARIES})
   target_include_directories(freetype PRIVATE ${BZIP2_INCLUDE_DIR}) # not BZIP2_INCLUDE_DIRS
   target_include_directories(freetype PRIVATE ${BZIP2_INCLUDE_DIR}) # not BZIP2_INCLUDE_DIRS
   if (PC_BZIP2_FOUND)
   if (PC_BZIP2_FOUND)
-    list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "bzip2")
+    list(APPEND PKGCONFIG_REQUIRES_PRIVATE "bzip2")
   else ()
   else ()
-    list(APPEND PKG_CONFIG_LIBS_PRIVATE "-lbz2")
+    list(APPEND PKGCONFIG_LIBS_PRIVATE "-lbz2")
   endif ()
   endif ()
 endif ()
 endif ()
 if (PNG_FOUND)
 if (PNG_FOUND)
   target_link_libraries(freetype PRIVATE ${PNG_LIBRARIES})
   target_link_libraries(freetype PRIVATE ${PNG_LIBRARIES})
   target_compile_definitions(freetype PRIVATE ${PNG_DEFINITIONS})
   target_compile_definitions(freetype PRIVATE ${PNG_DEFINITIONS})
   target_include_directories(freetype PRIVATE ${PNG_INCLUDE_DIRS})
   target_include_directories(freetype PRIVATE ${PNG_INCLUDE_DIRS})
-  list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "libpng")
+  list(APPEND PKGCONFIG_REQUIRES_PRIVATE "libpng")
 endif ()
 endif ()
 if (HarfBuzz_FOUND)
 if (HarfBuzz_FOUND)
   target_link_libraries(freetype PRIVATE ${HarfBuzz_LIBRARY})
   target_link_libraries(freetype PRIVATE ${HarfBuzz_LIBRARY})
   target_include_directories(freetype PRIVATE ${HarfBuzz_INCLUDE_DIRS})
   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 ()
 endif ()
 if (BROTLIDEC_FOUND)
 if (BROTLIDEC_FOUND)
   target_link_libraries(freetype PRIVATE ${BROTLIDEC_LIBRARIES})
   target_link_libraries(freetype PRIVATE ${BROTLIDEC_LIBRARIES})
   target_compile_definitions(freetype PRIVATE ${BROTLIDEC_DEFINITIONS})
   target_compile_definitions(freetype PRIVATE ${BROTLIDEC_DEFINITIONS})
   target_include_directories(freetype PRIVATE ${BROTLIDEC_INCLUDE_DIRS})
   target_include_directories(freetype PRIVATE ${BROTLIDEC_INCLUDE_DIRS})
-  list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "libbrotlidec")
+  list(APPEND PKGCONFIG_REQUIRES_PRIVATE "libbrotlidec")
 endif ()
 endif ()
 
 
 
 
@@ -559,7 +577,7 @@ if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
   # Generate the pkg-config file
   # Generate the pkg-config file
   file(READ "${PROJECT_SOURCE_DIR}/builds/unix/freetype2.in" FREETYPE2_PC_IN)
   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}
   string(REPLACE "%prefix%" ${CMAKE_INSTALL_PREFIX}
           FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
           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})
           FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
   string(REPLACE "%ft_version%" "${LIBTOOL_CURRENT}.${LIBTOOL_REVISION}.${LIBTOOL_AGE}"
   string(REPLACE "%ft_version%" "${LIBTOOL_CURRENT}.${LIBTOOL_REVISION}.${LIBTOOL_AGE}"
           FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
           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")
   set(FREETYPE2_PC_IN_NAME "${PROJECT_BINARY_DIR}/freetype2.pc")
   if (EXISTS "${FREETYPE2_PC_IN_NAME}")
   if (EXISTS "${FREETYPE2_PC_IN_NAME}")
@@ -598,7 +632,7 @@ if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
     COMPATIBILITY SameMajorVersion)
     COMPATIBILITY SameMajorVersion)
 
 
   install(
   install(
-    TARGETS freetype
+    TARGETS freetype freetype-interface
       EXPORT freetype-targets
       EXPORT freetype-targets
       LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
       LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
       ARCHIVE 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]>
 2022-03-31  Werner Lemberg  <[email protected]>
 
 
 	* Version 2.12.0 released.
 	* 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
 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
 licenses (see files `src/bdf/README`  and `src/pcf/README`).  The same
 holds   for   the   source    code   files   `src/base/fthash.c`   and
 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.
 in earlier FreeType versions.
 
 
 The gzip  module uses the  zlib license (see  `src/gzip/zlib.h`) which
 The gzip  module uses the  zlib license (see  `src/gzip/zlib.h`) which
 too is compatible to the above two licenses.
 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
 The  MD5 checksum  support  (only used  for  debugging in  development
 builds) is in the public domain.
 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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
 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.
 file `docs/LICENSE.TXT` for the available licenses.
 
 
 For using FreeType's git repository  instead of a distribution bundle,
 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`;
 The FreeType 2 API reference is located in directory `docs/reference`;
 use the file  `index.html` as the top entry point.   [Please note that
 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.
 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
 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.
 David Turner, Robert Wilhelm, and Werner Lemberg.
 
 
 This  file is  part of  the FreeType  project, and  may only  be used,
 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.
 David Turner, Robert Wilhelm, and Werner Lemberg.
 
 
 This  file is  part of  the FreeType  project, and  may only  be used,
 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
 #!/bin/sh
 
 
-# Copyright (C) 2005-2022 by
+# Copyright (C) 2005-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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
   cp $DLG_SRC_DIR/* src/dlg
 }
 }
 
 
-if test -d ".git"; then
+if test -e ".git"; then
   DLG_INC_DIR=subprojects/dlg/include/dlg
   DLG_INC_DIR=subprojects/dlg/include/dlg
   DLG_SRC_DIR=subprojects/dlg/src/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.
 README for the builds/amiga subdirectory.
 
 
-Copyright (C) 2005-2022 by
+Copyright (C) 2005-2023 by
 Werner Lemberg and Detlef Würkner.
 Werner Lemberg and Detlef Würkner.
 
 
 This file is part of the FreeType project, and may only be used, modified,
 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).              */
 /*    Amiga-specific configuration file (specification only).              */
 /*                                                                         */
 /*                                                                         */
-/*  Copyright (C) 2005-2022 by                                             */
+/*  Copyright (C) 2005-2023 by                                             */
 /*  Werner Lemberg and Detlef Würkner.                                     */
 /*  Werner Lemberg and Detlef Würkner.                                     */
 /*                                                                         */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
 /*  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.                            */
 /*    Amiga-specific FreeType module selection.                            */
 /*                                                                         */
 /*                                                                         */
-/*  Copyright (C) 2005-2022 by                                             */
+/*  Copyright (C) 2005-2023 by                                             */
 /*  Werner Lemberg and Detlef Würkner.                                     */
 /*  Werner Lemberg and Detlef Würkner.                                     */
 /*                                                                         */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
 /*  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.
 # Werner Lemberg and Detlef Würkner.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # Werner Lemberg and Detlef Würkner.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # Werner Lemberg and Detlef Würkner.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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).
  *   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.
  * David Turner, Robert Wilhelm, Werner Lemberg, and Detlef Wuerkner.
  *
  *
  * This file is part of the FreeType project, and may only be used,
  * 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).           */
 /*    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.       */
 /*  David Turner, Robert Wilhelm, Werner Lemberg and Detlef Würkner.       */
 /*                                                                         */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
 /*  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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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
 # FindBrotliDec.cmake
 #
 #
-# Copyright (C) 2019-2022 by
+# Copyright (C) 2019-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # Written by Werner Lemberg <[email protected]>
 # Written by Werner Lemberg <[email protected]>

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

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

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

@@ -1,6 +1,6 @@
 #!/bin/sh -e
 #!/bin/sh -e
 
 
-# Copyright (C) 2015-2022 by
+# Copyright (C) 2015-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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)/config/*.h \
                   $(PUBLIC_DIR)/cache/*.h
                   $(PUBLIC_DIR)/cache/*.h
 	@echo Building static site...
 	@echo Building static site...
-	cd $(DOC_DIR) && mkdocs build
+	cd $(DOC_DIR) && $(PYTHON) -m mkdocs build
 	@echo Done.
 	@echo Done.
 
 
 # Variables for running `refdoc' with Python's `virtualenv'.  The
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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
   behaviours are not tested at all. Building ftdemos
   for classic MacOS and working test is required.
   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
 APPENDIX I
 ----------
 ----------

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

@@ -5,7 +5,7 @@
 /*    Mac FOND support.  Written by [email protected].                    */
 /*    Mac FOND support.  Written by [email protected].                    */
 /*  Heavily Fixed by mpsuzuki, George Williams and Sean McBride            */
 /*  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.     */
 /*  Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.     */
 /*                                                                         */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
 /*  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
 #!/usr/bin/env python3
 #
 #
-# Copyright (C) 2020-2022 by
+# Copyright (C) 2020-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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
 #!/usr/bin/env python3
 #
 #
-# Copyright (C) 2020-2022 by
+# Copyright (C) 2020-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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
 #!/usr/bin/env python3
 #
 #
-# Copyright (C) 2020-2022 by
+# Copyright (C) 2020-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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
 #!/usr/bin/env python3
 #
 #
-# Copyright (C) 2020-2022 by
+# Copyright (C) 2020-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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"]:
     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)
         }.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"]:
     for module in lists["AUX_MODULES"]:
         if module in ("psaux", "psnames", "otvalid", "gxvalid"):
         if module in ("psaux", "psnames", "otvalid", "gxvalid"):
+            name = {
+                "gxvalid": "gxv",
+                "otvalid": "otv",
+            }.get(module, module)
             result += (
             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"
     result += "/* EOF */\n"

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

@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 #!/usr/bin/env python3
 #
 #
-# Copyright (C) 2020-2022 by
+# Copyright (C) 2020-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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
 // FreeType 2 project for the symbian platform
 //
 //
 
 
-// Copyright (C) 2008-2022 by
+// Copyright (C) 2008-2023 by
 // David Turner, Robert Wilhelm, and Werner Lemberg.
 // David Turner, Robert Wilhelm, and Werner Lemberg.
 //
 //
 // This file is part of the FreeType project, and may only be used, modified,
 // 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
 // FreeType 2 makefile for the symbian platform
 //
 //
 
 
-// Copyright (C) 2008-2022 by
+// Copyright (C) 2008-2023 by
 // David Turner, Robert Wilhelm, and Werner Lemberg.
 // David Turner, Robert Wilhelm, and Werner Lemberg.
 //
 //
 // This file is part of the FreeType project, and may only be used, modified,
 // 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # This file is part of the FreeType project, and may only be used, modified,
@@ -139,12 +139,12 @@ ifdef check_platform
   ifneq ($(is_unix),)
   ifneq ($(is_unix),)
 
 
     distclean:
     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
 	  $(RM) nul
 
 
   endif # test is_unix
   endif # test is_unix
@@ -170,17 +170,17 @@ endif # test check_platform
 
 
 check_out_submodule:
 check_out_submodule:
 	$(info Checking out submodule in `subprojects/dlg')
 	$(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:
 copy_submodule:
 	$(info Copying files from `subprojects/dlg' to `src/dlg' and `include/dlg')
 	$(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
   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.
 # We always need the list of modules in ftmodule.h.
@@ -198,27 +198,22 @@ modules:
 include $(TOP_DIR)/builds/modules.mk
 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) \
 work := $(strip $(shell $(CAT) \
                   $(subst /,$(SEP),$(TOP_DIR)/include/freetype/freetype.h)))
                   $(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),)
 # ifneq ($(findstring x0x,x$(patch)x),)
 #   version := $(major).$(minor)
 #   version := $(major).$(minor)
@@ -294,15 +289,15 @@ CHANGELOG_SCRIPT = ~/git/config/gitlog-to-changelog
 
 
 do-dist: distclean refdoc
 do-dist: distclean refdoc
 	@# Without removing the files, `autoconf' and friends follow links.
 	@# 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
 	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
 	@# Generate `ChangeLog' file with commits since release 2.11.0
 	@# (when we stopped creating this file manually).
 	@# (when we stopped creating this file manually).
@@ -313,10 +308,10 @@ do-dist: distclean refdoc
 	> ChangeLog
 	> ChangeLog
 
 
 	@# Remove intermediate files created by the `refdoc' target.
 	@# 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.
 	@# Remove more stuff related to git.
-	rm -rf subprojects
+	rm -rf $(TOP_DIR)/subprojects/dlg
 
 
 # EOF
 # 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($@)])])
 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-*-
 # 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
 #   Written by Gordon Matzigkeit, 1996
 #
 #
 # This file is free software; the Free Software Foundation gives
 # 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/>.
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ])
 ])
 
 
-# serial 58 LT_INIT
+# serial 59 LT_INIT
 
 
 
 
 # LT_PREREQ(VERSION)
 # LT_PREREQ(VERSION)
@@ -195,6 +196,7 @@ m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
 m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
 m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
 m4_require([_LT_CMD_RELOAD])dnl
 m4_require([_LT_CMD_RELOAD])dnl
+m4_require([_LT_DECL_FILECMD])dnl
 m4_require([_LT_CHECK_MAGIC_METHOD])dnl
 m4_require([_LT_CHECK_MAGIC_METHOD])dnl
 m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
 m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
@@ -233,8 +235,8 @@ esac
 ofile=libtool
 ofile=libtool
 can_build_shared=yes
 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
 libext=a
 
 
 with_gnu_ld=$lt_cv_prog_gnu_ld
 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
   # 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
   # text mode, it properly converts lines to CR/LF.  This bash problem
   # is reportedly fixed, but why not run on old versions too?
   # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" \
+  $SED '$q' "$ltmain" >> "$cfgfile" \
      || (rm -f "$cfgfile"; exit 1)
      || (rm -f "$cfgfile"; exit 1)
 
 
    mv -f "$cfgfile" "$ofile" ||
    mv -f "$cfgfile" "$ofile" ||
@@ -1047,8 +1049,8 @@ int forced_loaded() { return 2;}
 _LT_EOF
 _LT_EOF
       echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
       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
       $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
       echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
       $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
       $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
       cat > conftest.c << _LT_EOF
       cat > conftest.c << _LT_EOF
@@ -1072,17 +1074,12 @@ _LT_EOF
       _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
       _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
     darwin1.*)
     darwin1.*)
       _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
       _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
     ;;
     ;;
   esac
   esac
@@ -1131,12 +1128,12 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
     output_verbose_link_cmd=func_echo_all
     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(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(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],
     m4_if([$1], [CXX],
 [   if test yes != "$lt_cv_apple_cc_single_mod"; then
 [   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_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
     fi
 ],[])
 ],[])
   else
   else
@@ -1250,7 +1247,8 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
 # _LT_WITH_SYSROOT
 # _LT_WITH_SYSROOT
 # ----------------
 # ----------------
 AC_DEFUN([_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],
 AC_ARG_WITH([sysroot],
 [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
 [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
   [Search for dependent libraries within DIR (or the compiler's sysroot
   [Search for dependent libraries within DIR (or the compiler's sysroot
@@ -1267,7 +1265,7 @@ case $with_sysroot in #(
    fi
    fi
    ;; #(
    ;; #(
  /*)
  /*)
-   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
    ;; #(
    ;; #(
  no|'')
  no|'')
    ;; #(
    ;; #(
@@ -1297,7 +1295,7 @@ ia64-*-hpux*)
   # options accordingly.
   # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
   if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.$ac_objext` in
+    case `$FILECMD conftest.$ac_objext` in
       *ELF-32*)
       *ELF-32*)
 	HPUX_IA64_MODE=32
 	HPUX_IA64_MODE=32
 	;;
 	;;
@@ -1314,7 +1312,7 @@ ia64-*-hpux*)
   echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
   if AC_TRY_EVAL(ac_compile); then
     if test yes = "$lt_cv_prog_gnu_ld"; 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*)
 	*32-bit*)
 	  LD="${LD-ld} -melf32bsmip"
 	  LD="${LD-ld} -melf32bsmip"
 	  ;;
 	  ;;
@@ -1326,7 +1324,7 @@ ia64-*-hpux*)
 	;;
 	;;
       esac
       esac
     else
     else
-      case `/usr/bin/file conftest.$ac_objext` in
+      case `$FILECMD conftest.$ac_objext` in
 	*32-bit*)
 	*32-bit*)
 	  LD="${LD-ld} -32"
 	  LD="${LD-ld} -32"
 	  ;;
 	  ;;
@@ -1348,7 +1346,7 @@ mips64*-*linux*)
   echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
   if AC_TRY_EVAL(ac_compile); then
     emul=elf
     emul=elf
-    case `/usr/bin/file conftest.$ac_objext` in
+    case `$FILECMD conftest.$ac_objext` in
       *32-bit*)
       *32-bit*)
 	emul="${emul}32"
 	emul="${emul}32"
 	;;
 	;;
@@ -1356,7 +1354,7 @@ mips64*-*linux*)
 	emul="${emul}64"
 	emul="${emul}64"
 	;;
 	;;
     esac
     esac
-    case `/usr/bin/file conftest.$ac_objext` in
+    case `$FILECMD conftest.$ac_objext` in
       *MSB*)
       *MSB*)
 	emul="${emul}btsmip"
 	emul="${emul}btsmip"
 	;;
 	;;
@@ -1364,7 +1362,7 @@ mips64*-*linux*)
 	emul="${emul}ltsmip"
 	emul="${emul}ltsmip"
 	;;
 	;;
     esac
     esac
-    case `/usr/bin/file conftest.$ac_objext` in
+    case `$FILECMD conftest.$ac_objext` in
       *N32*)
       *N32*)
 	emul="${emul}n32"
 	emul="${emul}n32"
 	;;
 	;;
@@ -1384,14 +1382,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # not appear in the list.
   # not appear in the list.
   echo 'int i;' > conftest.$ac_ext
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
   if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
+    case `$FILECMD conftest.o` in
       *32-bit*)
       *32-bit*)
 	case $host in
 	case $host in
 	  x86_64-*kfreebsd*-gnu)
 	  x86_64-*kfreebsd*-gnu)
 	    LD="${LD-ld} -m elf_i386_fbsd"
 	    LD="${LD-ld} -m elf_i386_fbsd"
 	    ;;
 	    ;;
 	  x86_64-*linux*)
 	  x86_64-*linux*)
-	    case `/usr/bin/file conftest.o` in
+	    case `$FILECMD conftest.o` in
 	      *x86-64*)
 	      *x86-64*)
 		LD="${LD-ld} -m elf32_x86_64"
 		LD="${LD-ld} -m elf32_x86_64"
 		;;
 		;;
@@ -1459,7 +1457,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # options accordingly.
   # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
   if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
+    case `$FILECMD conftest.o` in
     *64-bit*)
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
       case $lt_cv_prog_gnu_ld in
       yes*)
       yes*)
@@ -1498,9 +1496,22 @@ need_locks=$enable_libtool_lock
 m4_defun([_LT_PROG_AR],
 m4_defun([_LT_PROG_AR],
 [AC_CHECK_TOOLS(AR, [ar], false)
 [AC_CHECK_TOOLS(AR, [ar], false)
 : ${AR=ar}
 : ${AR=ar}
-: ${AR_FLAGS=cru}
 _LT_DECL([], [AR], [1], [The archiver])
 _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],
 AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
   [lt_cv_ar_at_file=no
   [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;
     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.
     # This has been around since 386BSD, at least.  Likely further.
     if test -x /sbin/sysctl; then
     if test -x /sbin/sysctl; then
       lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
       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*)
   sysv5* | sco5v6* | sysv4.2uw2*)
     kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
     kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
     if test -n "$kargmax"; then
     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
     else
       lt_cv_sys_max_cmd_len=32768
       lt_cv_sys_max_cmd_len=32768
     fi
     fi
@@ -2212,26 +2223,35 @@ m4_defun([_LT_CMD_STRIPLIB],
 striplib=
 striplib=
 old_striplib=
 old_striplib=
 AC_MSG_CHECKING([whether stripping libraries is possible])
 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
 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"
       striplib="$STRIP -x"
       old_striplib="$STRIP -S"
       old_striplib="$STRIP -S"
       AC_MSG_RESULT([yes])
       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])
       AC_MSG_RESULT([no])
-    fi
-    ;;
-  *)
-    AC_MSG_RESULT([no])
-    ;;
-  esac
+      ;;
+    esac
+  fi
 fi
 fi
 _LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
 _LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
 _LT_DECL([], [striplib], [1])
 _LT_DECL([], [striplib], [1])
@@ -2554,7 +2574,7 @@ cygwin* | mingw* | pw32* | cegcc*)
     case $host_os in
     case $host_os in
     cygwin*)
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
       # 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], [],[
 m4_if([$1], [],[
       sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
       sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
       ;;
       ;;
@@ -2564,14 +2584,14 @@ m4_if([$1], [],[
       ;;
       ;;
     pw32*)
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
       # 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
     esac
     dynamic_linker='Win32 ld.exe'
     dynamic_linker='Win32 ld.exe'
     ;;
     ;;
 
 
-  *,cl*)
-    # Native MSVC
+  *,cl* | *,icl*)
+    # Native MSVC or ICC
     libname_spec='$name'
     libname_spec='$name'
     soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
     soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
     library_names_spec='$libname.dll.lib'
     library_names_spec='$libname.dll.lib'
@@ -2590,7 +2610,7 @@ m4_if([$1], [],[
       done
       done
       IFS=$lt_save_ifs
       IFS=$lt_save_ifs
       # Convert to MSYS style.
       # 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*)
     cygwin*)
       # Convert to unix form, then to dos form, then back to unix form
       # 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'
     library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
     dynamic_linker='Win32 ld.exe'
     dynamic_linker='Win32 ld.exe'
     ;;
     ;;
@@ -2660,7 +2680,7 @@ dgux*)
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_var=LD_LIBRARY_PATH
   ;;
   ;;
 
 
-freebsd* | dragonfly*)
+freebsd* | dragonfly* | midnightbsd*)
   # DragonFly does not have aout.  When/if they implement a new
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
   # versioning mechanism, adjust this.
   if test -x /usr/bin/objformat; then
   if test -x /usr/bin/objformat; then
@@ -3459,7 +3479,7 @@ beos*)
 
 
 bsdi[[45]]*)
 bsdi[[45]]*)
   lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
   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
   lt_cv_file_magic_test_file=/shlib/libc.so
   ;;
   ;;
 
 
@@ -3493,14 +3513,14 @@ darwin* | rhapsody*)
   lt_cv_deplibs_check_method=pass_all
   lt_cv_deplibs_check_method=pass_all
   ;;
   ;;
 
 
-freebsd* | dragonfly*)
+freebsd* | dragonfly* | midnightbsd*)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     case $host_cpu in
     case $host_cpu in
     i*86 )
     i*86 )
       # Not sure whether the presence of OpenBSD here was a mistake.
       # Not sure whether the presence of OpenBSD here was a mistake.
       # Let's accept both of them until this is cleared up.
       # 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_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.*`
       lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
       ;;
       ;;
     esac
     esac
@@ -3514,7 +3534,7 @@ haiku*)
   ;;
   ;;
 
 
 hpux10.20* | hpux11*)
 hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_cmd=$FILECMD
   case $host_cpu in
   case $host_cpu in
   ia64*)
   ia64*)
     lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - 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*)
 newos6*)
   lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
   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
   lt_cv_file_magic_test_file=/usr/lib/libnls.so
   ;;
   ;;
 
 
@@ -3688,13 +3708,13 @@ else
 	mingw*) lt_bad_file=conftest.nm/nofile ;;
 	mingw*) lt_bad_file=conftest.nm/nofile ;;
 	*) lt_bad_file=/dev/null ;;
 	*) lt_bad_file=/dev/null ;;
 	esac
 	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_bad_file* | *'Invalid file or object type'*)
 	  lt_cv_path_NM="$tmp_nm -B"
 	  lt_cv_path_NM="$tmp_nm -B"
 	  break 2
 	  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*)
 	  */dev/null*)
 	    lt_cv_path_NM="$tmp_nm -p"
 	    lt_cv_path_NM="$tmp_nm -p"
 	    break 2
 	    break 2
@@ -3720,7 +3740,7 @@ else
     # Let the user override the test.
     # Let the user override the test.
   else
   else
     AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
     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*)
     *COFF*)
       DUMPBIN="$DUMPBIN -symbols -headers"
       DUMPBIN="$DUMPBIN -symbols -headers"
       ;;
       ;;
@@ -3960,7 +3980,7 @@ esac
 
 
 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
   # Gets list of data symbols to import.
   # 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.
   # Adjust the below global symbol transforms to fixup imported variables.
   lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
   lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
   lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/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.
 # Transform an extracted symbol line into a proper C declaration.
 # Some systems (esp. on ia64) link data and code symbols differently,
 # Some systems (esp. on ia64) link data and code symbols differently,
 # so use this general approach.
 # 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\
 $lt_cdecl_hook\
 " -e 's/^T .* \(.*\)$/extern int \1();/p'"\
 " -e 's/^T .* \(.*\)$/extern int \1();/p'"\
 " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
 " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
 
 
 # Transform an extracted symbol line into symbol name and symbol address
 # 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\
 $lt_c_name_hook\
 " -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
 " -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
 " -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
 " -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
 
 
 # Transform an extracted symbol line into symbol name with lib prefix and
 # Transform an extracted symbol line into symbol name with lib prefix and
 # symbol address.
 # 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\
 $lt_c_name_lib_hook\
 " -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
 " -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
 " -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/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
   if test "$lt_cv_nm_interface" = "MS dumpbin"; then
     # Fake it for dumpbin and say T for any non-static function,
     # Fake it for dumpbin and say T for any non-static function,
     # D for any global variable and I for any imported variable.
     # 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 ?.
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
 "     {last_section=section; section=\$ 3};"\
 "     {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))}"\
 "     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
 "     ' prfx=^$ac_symprfx]"
 "     ' prfx=^$ac_symprfx]"
   else
   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
   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.
   # Check to see that the pipe works correctly.
   pipe_works=no
   pipe_works=no
@@ -4322,7 +4342,7 @@ m4_if([$1], [CXX], [
 	    ;;
 	    ;;
 	esac
 	esac
 	;;
 	;;
-      freebsd* | dragonfly*)
+      freebsd* | dragonfly* | midnightbsd*)
 	# FreeBSD uses GNU C++
 	# FreeBSD uses GNU C++
 	;;
 	;;
       hpux9* | hpux10* | hpux11*)
       hpux9* | hpux10* | hpux11*)
@@ -4405,7 +4425,7 @@ m4_if([$1], [CXX], [
 	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
 	    _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*)
 	      # Sun C++ 5.9
 	      # Sun C++ 5.9
 	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
@@ -4741,7 +4761,7 @@ m4_if([$1], [CXX], [
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
 	_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\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
 	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
 	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
 	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	  _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
     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'
       _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
     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
     fi
     ;;
     ;;
   pw32*)
   pw32*)
@@ -4932,7 +4952,7 @@ m4_if([$1], [CXX], [
     ;;
     ;;
   cygwin* | mingw* | cegcc*)
   cygwin* | mingw* | cegcc*)
     case $cc_basename in
     case $cc_basename in
-    cl*)
+    cl* | icl*)
       _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
       _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
   case $host_os in
   cygwin* | mingw* | pw32* | cegcc*)
   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
     # 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
     if test yes != "$GCC"; then
       with_gnu_ld=no
       with_gnu_ld=no
     fi
     fi
     ;;
     ;;
   interix*)
   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
     with_gnu_ld=yes
     ;;
     ;;
   openbsd* | bitrig*)
   openbsd* | bitrig*)
@@ -5049,7 +5069,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
       _LT_TAGVAR(whole_archive_flag_spec, $1)=
       _LT_TAGVAR(whole_archive_flag_spec, $1)=
     fi
     fi
     supports_anon_versioning=no
     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 ;;
       *GNU\ gold*) supports_anon_versioning=yes ;;
       *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
       *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
       *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
       *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
@@ -5161,6 +5181,7 @@ _LT_EOF
 	emximp -o $lib $output_objdir/$libname.def'
 	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(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(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='@'
       ;;
       ;;
 
 
     interix[[3-9]]*)
     interix[[3-9]]*)
@@ -5175,7 +5196,7 @@ _LT_EOF
       # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
       # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
       # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
       # 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_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)
     gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
@@ -5218,7 +5239,7 @@ _LT_EOF
 	  _LT_TAGVAR(compiler_needs_object, $1)=yes
 	  _LT_TAGVAR(compiler_needs_object, $1)=yes
 	  ;;
 	  ;;
 	esac
 	esac
-	case `$CC -V 2>&1 | sed 5q` in
+	case `$CC -V 2>&1 | $SED 5q` in
 	*Sun\ C*)			# Sun C 5.9
 	*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(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
 	  _LT_TAGVAR(compiler_needs_object, $1)=yes
@@ -5230,7 +5251,7 @@ _LT_EOF
 
 
         if test yes = "$supports_anon_versioning"; then
         if test yes = "$supports_anon_versioning"; then
           _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
           _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~
             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'
             $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
         fi
         fi
@@ -5246,7 +5267,7 @@ _LT_EOF
 	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
 	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
 	  if test yes = "$supports_anon_versioning"; then
 	  if test yes = "$supports_anon_versioning"; then
 	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
 	    _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~
               echo "local: *; };" >> $output_objdir/$libname.ver~
               $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
               $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
 	  fi
 	  fi
@@ -5378,7 +5399,7 @@ _LT_EOF
 	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
 	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'
 	  _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
 	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
 	fi
 	aix_use_runtimelinking=no
 	aix_use_runtimelinking=no
 
 
@@ -5561,12 +5582,12 @@ _LT_EOF
 
 
     cygwin* | mingw* | pw32* | cegcc*)
     cygwin* | mingw* | pw32* | cegcc*)
       # When not using gcc, we currently assume that we are using
       # 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
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
       # no search path for DLLs.
       case $cc_basename in
       case $cc_basename in
-      cl*)
-	# Native MSVC
+      cl* | icl*)
+	# Native MSVC or ICC
 	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
 	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
 	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
 	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
 	_LT_TAGVAR(always_export_symbols, $1)=yes
 	_LT_TAGVAR(always_export_symbols, $1)=yes
@@ -5607,7 +5628,7 @@ _LT_EOF
           fi'
           fi'
 	;;
 	;;
       *)
       *)
-	# Assume MSVC wrapper
+	# Assume MSVC and ICC wrapper
 	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
 	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
 	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
 	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
 	# Tell ltmain to make .lib files, not .a files.
 	# 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 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(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_libdir_flag_spec, $1)='-R$libdir'
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_direct, $1)=yes
@@ -5866,6 +5887,7 @@ _LT_EOF
 	emximp -o $lib $output_objdir/$libname.def'
 	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(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(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='@'
       ;;
       ;;
 
 
     osf3*)
     osf3*)
@@ -6632,8 +6654,8 @@ if test yes != "$_lt_caught_CXX_error"; then
 
 
       cygwin* | mingw* | pw32* | cegcc*)
       cygwin* | mingw* | pw32* | cegcc*)
 	case $GXX,$cc_basename in
 	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
 	  # hardcode_libdir_flag_spec is actually meaningless, as there is
 	  # no search path for DLLs.
 	  # no search path for DLLs.
 	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
 	  _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'
 	  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(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(enable_shared_with_static_runtimes, $1)=yes
+	_LT_TAGVAR(file_list_spec, $1)='@'
 	;;
 	;;
 
 
       dgux*)
       dgux*)
@@ -6761,7 +6784,7 @@ if test yes != "$_lt_caught_CXX_error"; then
         _LT_TAGVAR(archive_cmds_need_lc, $1)=no
         _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
         # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
         # conventions
         # conventions
         _LT_TAGVAR(ld_shlibs, $1)=yes
         _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
 	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
 	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
 	# 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_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*)
       irix5* | irix6*)
         case $cc_basename in
         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'
 	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
 	    if test yes = "$supports_anon_versioning"; then
 	    if test yes = "$supports_anon_versioning"; then
 	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
 	      _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~
                 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'
                 $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
 	    fi
 	    fi
 	    ;;
 	    ;;
 	  *)
 	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
+	    case `$CC -V 2>&1 | $SED 5q` in
 	    *Sun\ C*)
 	    *Sun\ C*)
 	      # Sun C++ 5.9
 	      # Sun C++ 5.9
 	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
 	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
@@ -8182,6 +8205,14 @@ _LT_DECL([], [DLLTOOL], [1], [DLL creation program])
 AC_SUBST([DLLTOOL])
 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
 # _LT_DECL_SED
 # ------------
 # ------------
 # Check for a fully-functional sed program, that truncates
 # 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 -*-
 # 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
 #   Written by Gary V. Vaughan, 2004
 #
 #
 # This file is free software; the Free Software Foundation gives
 # 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-*-
 # 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.
 # Foundation, Inc.
 # Written by Gary V. Vaughan, 2004
 # Written by Gary V. Vaughan, 2004
 #
 #
@@ -8918,7 +8949,8 @@ m4_define([lt_dict_filter],
 
 
 # ltversion.m4 -- version numbers			-*- Autoconf -*-
 # 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
 #   Written by Scott James Remnant, 2004
 #
 #
 # This file is free software; the Free Software Foundation gives
 # This file is free software; the Free Software Foundation gives
@@ -8927,23 +8959,23 @@ m4_define([lt_dict_filter],
 
 
 # @configure_input@
 # @configure_input@
 
 
-# serial 4179 ltversion.m4
+# serial 4245 ltversion.m4
 # This file is part of GNU Libtool
 # 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],
 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_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 _LT_DECL(, macro_revision, 0)
 ])
 ])
 
 
 # lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
 # 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.
 #   Written by Scott James Remnant, 2004.
 #
 #
 # This file is free software; the Free Software Foundation gives
 # This file is free software; the Free Software Foundation gives

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

@@ -1,10 +1,10 @@
 #! /bin/sh
 #! /bin/sh
 # Attempt to guess a canonical system name.
 # 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
 # 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
 # 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
 # under the terms of the GNU General Public License as published by
@@ -47,7 +47,7 @@ me=`echo "$0" | sed -e 's,.*/,,'`
 usage="\
 usage="\
 Usage: $0 [OPTION]
 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:
 Options:
   -h, --help         print this help, then exit
   -h, --help         print this help, then exit
@@ -60,13 +60,13 @@ version="\
 GNU config.guess ($timestamp)
 GNU config.guess ($timestamp)
 
 
 Originally written by Per Bothner.
 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
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 
 
 help="
 help="
-Try \`$me --help' for more information."
+Try '$me --help' for more information."
 
 
 # Parse command line
 # Parse command line
 while test $# -gt 0 ; do
 while test $# -gt 0 ; do
@@ -102,8 +102,8 @@ GUESS=
 # temporary files to be created and, as you can see below, it is a
 # temporary files to be created and, as you can see below, it is a
 # headache to deal with in a portable fashion.
 # 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.
 # 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`
 		UNAME_RELEASE=`uname -v`
 		;;
 		;;
 	esac
 	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/-/_/'`
 	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
 	GUESS=sparc-sun-sunos$SUN_REL
 	GUESS=sparc-sun-sunos$SUN_REL
 	;;
 	;;
@@ -966,11 +966,37 @@ EOF
 	GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
 	GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
 	GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
 	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:*:*)
     *:Minix:*:*)
 	GUESS=$UNAME_MACHINE-unknown-minix
 	GUESS=$UNAME_MACHINE-unknown-minix
 	;;
 	;;
     aarch64:Linux:*:*)
     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:*:*)
     aarch64_be:Linux:*:*)
 	UNAME_MACHINE=aarch64_be
 	UNAME_MACHINE=aarch64_be
@@ -1036,7 +1062,16 @@ EOF
     k1om:Linux:*:*)
     k1om:Linux:*:*)
 	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
 	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
 	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
 	;;
 	;;
     m32r*:Linux:*:*)
     m32r*:Linux:*:*)
@@ -1151,16 +1186,27 @@ EOF
 	;;
 	;;
     x86_64:Linux:*:*)
     x86_64:Linux:*:*)
 	set_cc_for_build
 	set_cc_for_build
+	CPU=$UNAME_MACHINE
 	LIBCABI=$LIBC
 	LIBCABI=$LIBC
 	if test "$CC_FOR_BUILD" != no_compiler_found; then
 	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
 	fi
-	GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
+	GUESS=$CPU-pc-linux-$LIBCABI
 	;;
 	;;
     xtensa*:Linux:*:*)
     xtensa*:Linux:*:*)
 	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
 	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
@@ -1180,7 +1226,7 @@ EOF
 	GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
 	GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
 	;;
 	;;
     i*86:OS/2:*:*)
     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.
 	# is probably installed.
 	GUESS=$UNAME_MACHINE-pc-os2-emx
 	GUESS=$UNAME_MACHINE-pc-os2-emx
 	;;
 	;;
@@ -1321,7 +1367,7 @@ EOF
 		GUESS=ns32k-sni-sysv
 		GUESS=ns32k-sni-sysv
 	fi
 	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]>
 			# says <[email protected]>
 	GUESS=i586-unisys-sysv4
 	GUESS=i586-unisys-sysv4
 	;;
 	;;
@@ -1367,8 +1413,11 @@ EOF
     BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
     BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
 	GUESS=i586-pc-haiku
 	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:*:*)
     SX-4:SUPER-UX:*:*)
 	GUESS=sx4-nec-superux$UNAME_RELEASE
 	GUESS=sx4-nec-superux$UNAME_RELEASE

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

@@ -1,10 +1,10 @@
 #! /bin/sh
 #! /bin/sh
 # Configuration validation subroutine script.
 # 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
 # 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
 # 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
 # under the terms of the GNU General Public License as published by
@@ -76,13 +76,13 @@ Report bugs and patches to <[email protected]>."
 version="\
 version="\
 GNU config.sub ($timestamp)
 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
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 
 
 help="
 help="
-Try \`$me --help' for more information."
+Try '$me --help' for more information."
 
 
 # Parse command line
 # Parse command line
 while test $# -gt 0 ; do
 while test $# -gt 0 ; do
@@ -130,7 +130,7 @@ IFS=$saved_IFS
 # Separate into logical components for further validation
 # Separate into logical components for further validation
 case $1 in
 case $1 in
 	*-*-*-*-*)
 	*-*-*-*-*)
-		echo Invalid configuration \`"$1"\': more than four components >&2
+		echo "Invalid configuration '$1': more than four components" >&2
 		exit 1
 		exit 1
 		;;
 		;;
 	*-*-*-*)
 	*-*-*-*)
@@ -145,7 +145,8 @@ case $1 in
 			nto-qnx* | linux-* | uclinux-uclibc* \
 			nto-qnx* | linux-* | uclinux-uclibc* \
 			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
 			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
 			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
 			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
-			| storm-chaos* | os2-emx* | rtmk-nova*)
+			| storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \
+			| windows-* )
 				basic_machine=$field1
 				basic_machine=$field1
 				basic_os=$maybe_os
 				basic_os=$maybe_os
 				;;
 				;;
@@ -943,7 +944,7 @@ $basic_machine
 EOF
 EOF
 		IFS=$saved_IFS
 		IFS=$saved_IFS
 		;;
 		;;
-	# We use `pc' rather than `unknown'
+	# We use 'pc' rather than 'unknown'
 	# because (1) that's what they normally are, and
 	# because (1) that's what they normally are, and
 	# (2) the word "unknown" tends to confuse beginning users.
 	# (2) the word "unknown" tends to confuse beginning users.
 	i*86 | x86_64)
 	i*86 | x86_64)
@@ -1075,7 +1076,7 @@ case $cpu-$vendor in
 	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
 	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
 		cpu=i586
 		cpu=i586
 		;;
 		;;
-	pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+	pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
 		cpu=i686
 		cpu=i686
 		;;
 		;;
 	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
 	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
@@ -1205,39 +1206,16 @@ case $cpu-$vendor in
 			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
 			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
 			| ip2k | iq2000 \
 			| ip2k | iq2000 \
 			| k1om \
 			| k1om \
+			| kvx \
 			| le32 | le64 \
 			| le32 | le64 \
 			| lm32 \
 			| lm32 \
-			| loongarch32 | loongarch64 | loongarchx32 \
+			| loongarch32 | loongarch64 \
 			| m32c | m32r | m32rle \
 			| m32c | m32r | m32rle \
 			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
 			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
 			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
 			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
 			| m88110 | m88k | maxq | mb | mcore | mep | metag \
 			| m88110 | m88k | maxq | mb | mcore | mep | metag \
 			| microblaze | microblazeel \
 			| 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 \
 			| mmix \
 			| mn10200 | mn10300 \
 			| mn10200 | mn10300 \
 			| moxie \
 			| 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
 				exit 1
 				;;
 				;;
 		esac
 		esac
@@ -1341,6 +1319,10 @@ EOF
 		kernel=linux
 		kernel=linux
 		os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
 		os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
 		;;
 		;;
+	managarm*)
+		kernel=managarm
+		os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
+		;;
 	*)
 	*)
 		kernel=
 		kernel=
 		os=$basic_os
 		os=$basic_os
@@ -1728,7 +1710,7 @@ case $os in
 	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
 	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
 	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
 	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
 	     | hiux* | abug | nacl* | netware* | windows* \
 	     | hiux* | abug | nacl* | netware* | windows* \
-	     | os9* | macos* | osx* | ios* \
+	     | os9* | macos* | osx* | ios* | tvos* | watchos* \
 	     | mpw* | magic* | mmixware* | mon960* | lnews* \
 	     | mpw* | magic* | mmixware* | mon960* | lnews* \
 	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
 	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
 	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
 	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
@@ -1754,7 +1736,7 @@ case $os in
 	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
 	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
 	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
 	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
 	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
 	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
-	     | fiwix* )
+	     | fiwix* | mlibc* | cos* | mbr* )
 		;;
 		;;
 	# This one is extra strict with allowed versions
 	# This one is extra strict with allowed versions
 	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
 	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
@@ -1762,8 +1744,11 @@ case $os in
 		;;
 		;;
 	none)
 	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
 		exit 1
 		;;
 		;;
 esac
 esac
@@ -1772,14 +1757,30 @@ esac
 # (given a valid OS), if there is a kernel.
 # (given a valid OS), if there is a kernel.
 case $kernel-$os in
 case $kernel-$os in
 	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
 	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
-		   | linux-musl* | linux-relibc* | linux-uclibc* )
+		   | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
 		;;
 		;;
 	uclinux-uclibc* )
 	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
 		# These are just libc implementations, not actual OSes, and thus
 		# require a kernel.
 		# 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
 		exit 1
 		;;
 		;;
 	kfreebsd*-gnu* | kopensolaris*-gnu*)
 	kfreebsd*-gnu* | kopensolaris*-gnu*)
@@ -1792,11 +1793,15 @@ case $kernel-$os in
 		;;
 		;;
 	*-eabi* | *-gnueabi*)
 	*-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.
 		# 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
 		exit 1
 		;;
 		;;
 esac
 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.
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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
 # indicate that you have read the license and understand and accept it
 # fully.
 # fully.
 
 
-AC_INIT([FreeType], [2.12], [[email protected]], [freetype])
+AC_INIT([FreeType], [2.13.2], [[email protected]], [freetype])
 AC_CONFIG_SRCDIR([ftconfig.h.in])
 AC_CONFIG_SRCDIR([ftconfig.h.in])
 
 
 
 
 # Don't forget to update `docs/VERSIONS.TXT'!
 # Don't forget to update `docs/VERSIONS.TXT'!
 
 
-version_info='24:2:18'
+version_info='26:1:20'
 AC_SUBST([version_info])
 AC_SUBST([version_info])
 ft_version=`echo $version_info | tr : .`
 ft_version=`echo $version_info | tr : .`
 AC_SUBST([ft_version])
 AC_SUBST([ft_version])
@@ -50,7 +50,7 @@ if test ${cross_compiling} = yes; then
 
 
   AC_MSG_CHECKING([for suffix of native executables])
   AC_MSG_CHECKING([for suffix of native executables])
   rm -f a.* b.* a_out.exe conftest.*
   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])
   ${CC_BUILD} conftest.c || AC_MSG_ERROR([native C compiler is not working])
   rm -f conftest.c
   rm -f conftest.c
   if test -x a.out -o -x b.out -o -x conftest; then
   if test -x a.out -o -x b.out -o -x conftest; then
@@ -163,9 +163,6 @@ fi
 AC_SUBST([FTSYS_SRC])
 AC_SUBST([FTSYS_SRC])
 
 
 
 
-AC_CHECK_FUNCS([memcpy memmove])
-
-
 # get compiler flags right
 # get compiler flags right
 #
 #
 #   We try to make the compiler work for C99-strict source.  Even if the
 #   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)"
       have_libpng="yes (LIBPNG_CFLAGS and LIBPNG_LIBS)"
     else
     else
       # fall back to config script
       # 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_CFLAGS=`libpng-config --cflags`
         LIBPNG_LIBS=`libpng-config --ldflags`
         LIBPNG_LIBS=`libpng-config --ldflags`
         libpng_libspriv=`libpng-config --static --ldflags`
         libpng_libspriv=`libpng-config --static --ldflags`
         libpng_libsstaticconf="$libpng_libspriv"
         libpng_libsstaticconf="$libpng_libspriv"
-        have_libpng="yes (libpng-config)"
-        AC_MSG_RESULT([yes])
-      else
-        AC_MSG_RESULT([no])
       fi
       fi
     fi
     fi
   fi
   fi
@@ -530,16 +523,28 @@ AC_SEARCH_LIBS([clock_gettime],
                [test "$ac_cv_search_clock_gettime" = "none required" \
                [test "$ac_cv_search_clock_gettime" = "none required" \
                 || LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
                 || 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_CFLAGS=""
 FT_DEMO_LDFLAGS="$LIB_CLOCK_GETTIME"
 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
 fi
 
 
 AC_SUBST([FT_DEMO_CFLAGS])
 AC_SUBST([FT_DEMO_CFLAGS])
@@ -961,14 +966,14 @@ esac
 AX_PTHREAD([have_pthread=yes], [have_pthread=no])
 AX_PTHREAD([have_pthread=yes], [have_pthread=no])
 
 
 # Check for Python and docwriter
 # Check for Python and docwriter
-
+PYTHON_MIN_VERSION=3.5
 have_py3=no
 have_py3=no
 have_docwriter=no
 have_docwriter=no
 PIP=pip
 PIP=pip
 
 
 AC_CHECK_PROGS([PYTHON], [python3 python], [missing])
 AC_CHECK_PROGS([PYTHON], [python3 python], [missing])
 if test "x$PYTHON" != "xmissing"; then
 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
   if test "x$have_py3" = "xyes"; then
     PIP="$PYTHON -m $PIP"
     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.
   `make refdoc' will fail since pip package `docwriter' is not installed.
   To install, run `$PIP install docwriter', or to use a Python
   To install, run `$PIP install docwriter', or to use a Python
   virtual environment, run `make refdoc-venv' (requires pip package
   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
 fi
 
 

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

@@ -2,7 +2,7 @@
 #
 #
 # Process this file with autoconf to produce a configure script.
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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'!
 # Don't forget to update `docs/VERSIONS.TXT'!
 
 
-version_info='24:2:18'
+version_info='26:1:20'
 AC_SUBST([version_info])
 AC_SUBST([version_info])
 ft_version=`echo $version_info | tr : .`
 ft_version=`echo $version_info | tr : .`
 AC_SUBST([ft_version])
 AC_SUBST([ft_version])
@@ -50,7 +50,7 @@ if test ${cross_compiling} = yes; then
 
 
   AC_MSG_CHECKING([for suffix of native executables])
   AC_MSG_CHECKING([for suffix of native executables])
   rm -f a.* b.* a_out.exe conftest.*
   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])
   ${CC_BUILD} conftest.c || AC_MSG_ERROR([native C compiler is not working])
   rm -f conftest.c
   rm -f conftest.c
   if test -x a.out -o -x b.out -o -x conftest; then
   if test -x a.out -o -x b.out -o -x conftest; then
@@ -163,9 +163,6 @@ fi
 AC_SUBST([FTSYS_SRC])
 AC_SUBST([FTSYS_SRC])
 
 
 
 
-AC_CHECK_FUNCS([memcpy memmove])
-
-
 # get compiler flags right
 # get compiler flags right
 #
 #
 #   We try to make the compiler work for C99-strict source.  Even if the
 #   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)"
       have_libpng="yes (LIBPNG_CFLAGS and LIBPNG_LIBS)"
     else
     else
       # fall back to config script
       # 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_CFLAGS=`libpng-config --cflags`
         LIBPNG_LIBS=`libpng-config --ldflags`
         LIBPNG_LIBS=`libpng-config --ldflags`
         libpng_libspriv=`libpng-config --static --ldflags`
         libpng_libspriv=`libpng-config --static --ldflags`
         libpng_libsstaticconf="$libpng_libspriv"
         libpng_libsstaticconf="$libpng_libspriv"
-        have_libpng="yes (libpng-config)"
-        AC_MSG_RESULT([yes])
-      else
-        AC_MSG_RESULT([no])
       fi
       fi
     fi
     fi
   fi
   fi
@@ -530,16 +523,28 @@ AC_SEARCH_LIBS([clock_gettime],
                [test "$ac_cv_search_clock_gettime" = "none required" \
                [test "$ac_cv_search_clock_gettime" = "none required" \
                 || LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
                 || 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_CFLAGS=""
 FT_DEMO_LDFLAGS="$LIB_CLOCK_GETTIME"
 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
 fi
 
 
 AC_SUBST([FT_DEMO_CFLAGS])
 AC_SUBST([FT_DEMO_CFLAGS])
@@ -961,14 +966,14 @@ esac
 AX_PTHREAD([have_pthread=yes], [have_pthread=no])
 AX_PTHREAD([have_pthread=yes], [have_pthread=no])
 
 
 # Check for Python and docwriter
 # Check for Python and docwriter
-
+PYTHON_MIN_VERSION=3.5
 have_py3=no
 have_py3=no
 have_docwriter=no
 have_docwriter=no
 PIP=pip
 PIP=pip
 
 
 AC_CHECK_PROGS([PYTHON], [python3 python], [missing])
 AC_CHECK_PROGS([PYTHON], [python3 python], [missing])
 if test "x$PYTHON" != "xmissing"; then
 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
   if test "x$have_py3" = "xyes"; then
     PIP="$PYTHON -m $PIP"
     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.
   `make refdoc' will fail since pip package `docwriter' is not installed.
   To install, run `$PIP install docwriter', or to use a Python
   To install, run `$PIP install docwriter', or to use a Python
   virtual environment, run `make refdoc-venv' (requires pip package
   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
 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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
 #! /bin/sh
 #
 #
-# Copyright (C) 2000-2022 by
+# Copyright (C) 2000-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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
 # Configure paths for FreeType2
 # Marcelo Magallon 2001-10-26, based on `gtk.m4` by Owen Taylor
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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
 # generated by Autoconf, under the same distribution terms as the rest of
 # that program.
 # that program.
 #
 #
-# serial 6
+# serial 7
 
 
 # AC_CHECK_FT2([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
 # AC_CHECK_FT2([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
 # Test for FreeType 2, and define FT2_CFLAGS and FT2_LIBS.
 # Test for FreeType 2, and define FT2_CFLAGS and FT2_LIBS.
@@ -121,7 +121,7 @@ AC_DEFUN([AC_CHECK_FT2],
 #include <stdlib.h>
 #include <stdlib.h>
 
 
 int
 int
-main()
+main(void)
 {
 {
   FT_Library library;
   FT_Library library;
   FT_Error  error;
   FT_Error  error;

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

@@ -1,6 +1,6 @@
 ## FreeType specific autoconf tests
 ## FreeType specific autoconf tests
 #
 #
-# Copyright (C) 2002-2022 by
+# Copyright (C) 2002-2023 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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).
  *   UNIX-specific configuration file (specification only).
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 by
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  *
  * This file is part of the FreeType project, and may only be used,
  * 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).
  *   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.
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  *
  * This file is part of the FreeType project, and may only be used,
  * 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
 #!/bin/sh
 # install - install a program, script, or datafile
 # 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
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -69,6 +69,11 @@ posix_mkdir=
 # Desired mode of installed file.
 # Desired mode of installed file.
 mode=0755
 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=
 chgrpcmd=
 chmodcmd=$chmodprog
 chmodcmd=$chmodprog
 chowncmd=
 chowncmd=
@@ -99,18 +104,28 @@ Options:
      --version  display version info and exit.
      --version  display version info and exit.
 
 
   -c            (ignored)
   -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.
   -d            create directories instead of installing files.
   -g GROUP      $chgrpprog installed files to GROUP.
   -g GROUP      $chgrpprog installed files to GROUP.
   -m MODE       $chmodprog installed files to MODE.
   -m MODE       $chmodprog installed files to MODE.
   -o USER       $chownprog installed files to USER.
   -o USER       $chownprog installed files to USER.
+  -p            pass -p to $cpprog.
   -s            $stripprog installed files.
   -s            $stripprog installed files.
+  -S SUFFIX     attempt to back up existing files, with suffix SUFFIX.
   -t DIRECTORY  install into DIRECTORY.
   -t DIRECTORY  install into DIRECTORY.
   -T            report an error if DSTFILE is a directory.
   -T            report an error if DSTFILE is a directory.
 
 
 Environment variables override the default commands:
 Environment variables override the default commands:
   CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
   CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
   RMPROG STRIPPROG
   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
 while test $# -ne 0; do
@@ -137,8 +152,13 @@ while test $# -ne 0; do
     -o) chowncmd="$chownprog $2"
     -o) chowncmd="$chownprog $2"
         shift;;
         shift;;
 
 
+    -p) cpprog="$cpprog -p";;
+
     -s) stripcmd=$stripprog;;
     -s) stripcmd=$stripprog;;
 
 
+    -S) backupsuffix="$2"
+        shift;;
+
     -t)
     -t)
         is_target_a_directory=always
         is_target_a_directory=always
         dst_arg=$2
         dst_arg=$2
@@ -255,6 +275,10 @@ do
     dstdir=$dst
     dstdir=$dst
     test -d "$dstdir"
     test -d "$dstdir"
     dstdir_status=$?
     dstdir_status=$?
+    # Don't chown directories that already exist.
+    if test $dstdir_status = 0; then
+      chowncmd=""
+    fi
   else
   else
 
 
     # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
     # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
@@ -271,15 +295,18 @@ do
     fi
     fi
     dst=$dst_arg
     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 -d "$dst"; then
       if test "$is_target_a_directory" = never; then
       if test "$is_target_a_directory" = never; then
         echo "$0: $dst_arg: Is a directory" >&2
         echo "$0: $dst_arg: Is a directory" >&2
         exit 1
         exit 1
       fi
       fi
       dstdir=$dst
       dstdir=$dst
-      dst=$dstdir/`basename "$src"`
+      dstbase=`basename "$src"`
+      case $dst in
+	*/) dst=$dst$dstbase;;
+	*)  dst=$dst/$dstbase;;
+      esac
       dstdir_status=0
       dstdir_status=0
     else
     else
       dstdir=`dirname "$dst"`
       dstdir=`dirname "$dst"`
@@ -288,27 +315,16 @@ do
     fi
     fi
   fi
   fi
 
 
+  case $dstdir in
+    */) dstdirslash=$dstdir;;
+    *)  dstdirslash=$dstdir/;;
+  esac
+
   obsolete_mkdir_used=false
   obsolete_mkdir_used=false
 
 
   if test $dstdir_status != 0; then
   if test $dstdir_status != 0; then
     case $posix_mkdir in
     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.
         # With -d, create the new directory with the user-specified mode.
         # Otherwise, rely on $mkdir_umask.
         # Otherwise, rely on $mkdir_umask.
         if test -n "$dir_arg"; then
         if test -n "$dir_arg"; then
@@ -318,43 +334,49 @@ do
         fi
         fi
 
 
         posix_mkdir=false
         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
     esac
 
 
     if
     if
@@ -365,7 +387,7 @@ do
     then :
     then :
     else
     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
       # or it failed possibly due to a race condition.  Create the
       # directory the slow way, step by step, checking for races as we go.
       # directory the slow way, step by step, checking for races as we go.
 
 
@@ -394,7 +416,7 @@ do
           prefixes=
           prefixes=
         else
         else
           if $posix_mkdir; then
           if $posix_mkdir; then
-            (umask=$mkdir_umask &&
+            (umask $mkdir_umask &&
              $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
              $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
             # Don't fail if two instances are running concurrently.
             # Don't fail if two instances are running concurrently.
             test -d "$prefix" || exit 1
             test -d "$prefix" || exit 1
@@ -427,14 +449,25 @@ do
   else
   else
 
 
     # Make a couple of temp file names in the proper directory.
     # 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 to clean up those temp files at exit.
     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
 
 
     # Copy the file name to the temp name.
     # 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.
     # and set any options; do chmod last to preserve setuid bits.
     #
     #
@@ -460,6 +493,13 @@ do
     then
     then
       rm -f "$dsttmp"
       rm -f "$dsttmp"
     else
     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.
       # Rename the file to the real destination.
       $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
       $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
 
 
@@ -474,9 +514,9 @@ do
         # file should still install successfully.
         # file should still install successfully.
         {
         {
           test ! -f "$dst" ||
           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 $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
           { echo "$0: cannot unlink or rename $dst" >&2
             (exit 1); exit 1
             (exit 1); exit 1
@@ -493,9 +533,9 @@ do
 done
 done
 
 
 # Local variables:
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # time-stamp-end: "; # UTC"
 # End:
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # This file is part of the FreeType project, and may only be used, modified,

二进制
libs/freetype/builds/vms/LIBS.OPT_IA64


二进制
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).
  *   VMS-specific configuration file (specification only).
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 by
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  *
  * This file is part of the FreeType project, and may only be used,
  * 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).             */
 /*    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.                      */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
 /*  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).
  *   Debugging and logging component for WinCE (body).
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 by
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  *
  * This file is part of the FreeType project, and may only be used,
  * 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>
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 </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>
 <ul>
   <pre>
   <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>
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 </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>
 <ul>
   <pre>
   <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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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).
  *   Debugging and logging component for Win32 (body).
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 by
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  *
  * This file is part of the FreeType project, and may only be used,
  * 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).
  *   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.
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  *
  * This file is part of the FreeType project, and may only be used,
  * This file is part of the FreeType project, and may only be used,
@@ -197,8 +197,7 @@
 
 
 
 
   /* non-desktop Universal Windows Platform */
   /* 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) )
 #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>

       <WarningLevel>Level4</WarningLevel>

       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

       <CompileAs>Default</CompileAs>

       <CompileAs>Default</CompileAs>

-      <DisableSpecificWarnings>4001</DisableSpecificWarnings>

+      <DisableSpecificWarnings>4001;4267</DisableSpecificWarnings>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

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

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

       <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

       <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

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

       <WarningLevel>Level4</WarningLevel>

       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

       <CompileAs>Default</CompileAs>

       <CompileAs>Default</CompileAs>

-      <DisableSpecificWarnings>4001</DisableSpecificWarnings>

+      <DisableSpecificWarnings>4001;4267</DisableSpecificWarnings>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

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

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

       <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

       <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

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

       <WarningLevel>Level4</WarningLevel>

       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

       <CompileAs>Default</CompileAs>

       <CompileAs>Default</CompileAs>

-      <DisableSpecificWarnings>4001</DisableSpecificWarnings>

+      <DisableSpecificWarnings>4001;4267</DisableSpecificWarnings>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

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

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

       <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

       <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

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

       <WarningLevel>Level4</WarningLevel>

       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

       <CompileAs>Default</CompileAs>

       <CompileAs>Default</CompileAs>

-      <DisableSpecificWarnings>4001</DisableSpecificWarnings>

+      <DisableSpecificWarnings>4001;4267</DisableSpecificWarnings>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

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

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

       <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

       <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

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

       <DisableLanguageExtensions>true</DisableLanguageExtensions>

       <WarningLevel>Level4</WarningLevel>

       <WarningLevel>Level4</WarningLevel>

       <CompileAs>Default</CompileAs>

       <CompileAs>Default</CompileAs>

-      <DisableSpecificWarnings>4001</DisableSpecificWarnings>

+      <DisableSpecificWarnings>4001;4267</DisableSpecificWarnings>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>

       <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>

       <IntrinsicFunctions>true</IntrinsicFunctions>

       <IntrinsicFunctions>true</IntrinsicFunctions>

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

       <DisableLanguageExtensions>true</DisableLanguageExtensions>

       <WarningLevel>Level4</WarningLevel>

       <WarningLevel>Level4</WarningLevel>

       <CompileAs>Default</CompileAs>

       <CompileAs>Default</CompileAs>

-      <DisableSpecificWarnings>4001</DisableSpecificWarnings>

+      <DisableSpecificWarnings>4001;4267</DisableSpecificWarnings>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <IntrinsicFunctions>true</IntrinsicFunctions>

       <IntrinsicFunctions>true</IntrinsicFunctions>

     </ClCompile>

     </ClCompile>

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

       <DisableLanguageExtensions>true</DisableLanguageExtensions>

       <WarningLevel>Level4</WarningLevel>

       <WarningLevel>Level4</WarningLevel>

       <CompileAs>Default</CompileAs>

       <CompileAs>Default</CompileAs>

-      <DisableSpecificWarnings>4001</DisableSpecificWarnings>

+      <DisableSpecificWarnings>4001;4267</DisableSpecificWarnings>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>

       <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>

       <IntrinsicFunctions>true</IntrinsicFunctions>

       <IntrinsicFunctions>true</IntrinsicFunctions>

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

       <DisableLanguageExtensions>true</DisableLanguageExtensions>

       <WarningLevel>Level4</WarningLevel>

       <WarningLevel>Level4</WarningLevel>

       <CompileAs>Default</CompileAs>

       <CompileAs>Default</CompileAs>

-      <DisableSpecificWarnings>4001</DisableSpecificWarnings>

+      <DisableSpecificWarnings>4001;4267</DisableSpecificWarnings>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <MultiProcessorCompilation>true</MultiProcessorCompilation>

       <IntrinsicFunctions>true</IntrinsicFunctions>

       <IntrinsicFunctions>true</IntrinsicFunctions>

     </ClCompile>

     </ClCompile>


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

@@ -12,7 +12,7 @@
 <p>This directory contains solution and project files for
 <p>This directory contains solution and project files for
 Visual&nbsp;C++&nbsp;2010 or newer, named <tt>freetype.sln</tt>,
 Visual&nbsp;C++&nbsp;2010 or newer, named <tt>freetype.sln</tt>,
 and <tt>freetype.vcxproj</tt>.  It compiles the following libraries
 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>
 <ul>
   <li>freetype.dll using 'Release' or 'Debug' configurations</li>
   <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
 <p>This directory contains project files <tt>freetype.dsp</tt> for
 Visual C++ 6.0, and <tt>freetype.vcproj</tt> for Visual C++ 2002
 Visual C++ 6.0, and <tt>freetype.vcproj</tt> for Visual C++ 2002
 through 2008, which you might need to upgrade automatically.
 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>
 <ul>
   <li>freetype.dll using 'Release' or 'Debug' configurations</li>
   <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>
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 </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>
 <ul>
   <pre>
   <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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # 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.
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 #
 # This file is part of the FreeType project, and may only be used, modified,
 # This file is part of the FreeType project, and may only be used, modified,

部分文件因为文件数量过多而无法显示