SDL_ttf: Re-added TTF_GetNumFontFaces() to the API

From 205290043e82bd19b9c50514787c65d574724d4f Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Mon, 27 Jan 2025 16:11:13 -0800
Subject: [PATCH] Re-added TTF_GetNumFontFaces() to the API

Closes https://github.com/libsdl-org/SDL_ttf/pull/466
---
 build-scripts/SDL_migration.cocci |  5 +++++
 docs/README-migration.md          |  3 +--
 include/SDL3_ttf/SDL_ttf.h        | 12 ++++++++++++
 src/SDL_ttf.sym                   |  1 +
 4 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/build-scripts/SDL_migration.cocci b/build-scripts/SDL_migration.cocci
index 2d75ba16..a4ab7eec 100644
--- a/build-scripts/SDL_migration.cocci
+++ b/build-scripts/SDL_migration.cocci
@@ -132,6 +132,11 @@
   (...)
 @@
 @@
+- TTF_FontFaces
++ TTF_GetNumFontFaces
+  (...)
+@@
+@@
 - TTF_FontFaceIsFixedWidth
 + TTF_FontIsFixedWidth
   (...)
diff --git a/docs/README-migration.md b/docs/README-migration.md
index be2903a9..dc449243 100644
--- a/docs/README-migration.md
+++ b/docs/README-migration.md
@@ -44,6 +44,7 @@ The following functions have been renamed:
 * TTF_FontFaceFamilyName() => TTF_GetFontFamilyName()
 * TTF_FontFaceIsFixedWidth() => TTF_FontIsFixedWidth()
 * TTF_FontFaceStyleName() => TTF_GetFontStyleName()
+* TTF_FontFaces() => TTF_GetNumFontFaces()
 * TTF_FontHeight() => TTF_GetFontHeight()
 * TTF_FontLineSkip() => TTF_GetFontLineSkip()
 * TTF_GetFontWrappedAlign() => TTF_GetFontWrapAlignment()
@@ -71,7 +72,6 @@ The following functions have been renamed:
 
 The following functions have been removed:
 * TTF_ByteSwappedUNICODE()
-* TTF_FontFaces() - can be retrieved from the font FT_Face, available in TTF_PROP_FONT_FACE_POINTER
 * TTF_GetFontKerningSizeGlyphs() - replaced with TTF_GetGlyphKerning()
 * TTF_GetFontKerningSizeGlyphs32() - replaced with TTF_GetGlyphKerning()
 * TTF_MeasureText() - replaced with TTF_MeasureString()
@@ -95,7 +95,6 @@ The following functions have been removed:
 * TTF_RenderUNICODE_Solid()
 * TTF_RenderUNICODE_Solid_Wrapped()
 * TTF_SizeUNICODE()
-
 The following symbols have been renamed:
 * TTF_WRAPPED_ALIGN_CENTER => TTF_HORIZONTAL_ALIGN_CENTER
 * TTF_WRAPPED_ALIGN_LEFT => TTF_HORIZONTAL_ALIGN_LEFT
diff --git a/include/SDL3_ttf/SDL_ttf.h b/include/SDL3_ttf/SDL_ttf.h
index 5501b4bb..d5a82f89 100644
--- a/include/SDL3_ttf/SDL_ttf.h
+++ b/include/SDL3_ttf/SDL_ttf.h
@@ -564,6 +564,18 @@ typedef enum TTF_HintingFlags
  */
 extern SDL_DECLSPEC void SDLCALL TTF_SetFontHinting(TTF_Font *font, TTF_HintingFlags hinting);
 
+/**
+ * Query the number of faces of a font.
+ *
+ * \param font the font to query.
+ * \returns the number of FreeType font faces.
+ *
+ * \threadsafety It is safe to call this function from any thread.
+ *
+ * \since This function is available since SDL_ttf 3.0.0.
+ */
+extern SDL_DECLSPEC int SDLCALL TTF_GetNumFontFaces(const TTF_Font *font);
+
 /**
  * Query a font's current FreeType hinter setting.
  *
diff --git a/src/SDL_ttf.sym b/src/SDL_ttf.sym
index f79e51a6..bfe5fae3 100644
--- a/src/SDL_ttf.sym
+++ b/src/SDL_ttf.sym
@@ -46,6 +46,7 @@ SDL3_ttf_0.0.0 {
     TTF_GetGPUTextEngineWinding;
     TTF_GetHarfBuzzVersion;
     TTF_GetNextTextSubString;
+    TTF_GetNumFontFaces;
     TTF_GetPreviousTextSubString;
     TTF_GetStringSize;
     TTF_GetStringSizeWrapped;