SDL: SDL_GetClosestFullscreenDisplayMode(): Rename parameter `mode` to `closest`

From 96729e745a9f7b2cdb5d8fe272a5253b6f9d045e Mon Sep 17 00:00:00 2001
From: Petar Popovic <[EMAIL REDACTED]>
Date: Sun, 3 Nov 2024 18:36:07 +0100
Subject: [PATCH] SDL_GetClosestFullscreenDisplayMode(): Rename parameter
 `mode` to `closest`

Also: Check, if the parameter is NULL inside the function.
---
 docs/README-migration.md |  1 -
 include/SDL3/SDL_video.h |  4 ++--
 src/video/SDL_video.c    | 14 ++++++++------
 3 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/docs/README-migration.md b/docs/README-migration.md
index e213fa813dcdc..a6f9a64acbc76 100644
--- a/docs/README-migration.md
+++ b/docs/README-migration.md
@@ -2210,7 +2210,6 @@ The following functions have been renamed:
 * SDL_SetWindowDisplayMode() => SDL_SetWindowFullscreenMode(), returns bool
 
 The following functions have been removed:
-* SDL_GetClosestFullscreenDisplayMode()
 * SDL_GetDisplayDPI() - not reliable across platforms, approximately replaced by multiplying SDL_GetWindowDisplayScale() times 160 on iPhone and Android, and 96 on other platforms.
 * SDL_GetDisplayMode()
 * SDL_GetNumDisplayModes() - replaced with SDL_GetFullscreenDisplayModes()
diff --git a/include/SDL3/SDL_video.h b/include/SDL3/SDL_video.h
index de793bdc7cee1..44540c5323645 100644
--- a/include/SDL3/SDL_video.h
+++ b/include/SDL3/SDL_video.h
@@ -665,7 +665,7 @@ extern SDL_DECLSPEC SDL_DisplayMode ** SDLCALL SDL_GetFullscreenDisplayModes(SDL
  *                     for the desktop refresh rate.
  * \param include_high_density_modes boolean to include high density modes in
  *                                   the search.
- * \param mode a pointer filled in with the closest display mode equal to or
+ * \param closest a pointer filled in with the closest display mode equal to or
  *             larger than the desired mode.
  * \returns true on success or false on failure; call SDL_GetError() for more
  *          information.
@@ -675,7 +675,7 @@ extern SDL_DECLSPEC SDL_DisplayMode ** SDLCALL SDL_GetFullscreenDisplayModes(SDL
  * \sa SDL_GetDisplays
  * \sa SDL_GetFullscreenDisplayModes
  */
-extern SDL_DECLSPEC bool SDLCALL SDL_GetClosestFullscreenDisplayMode(SDL_DisplayID displayID, int w, int h, float refresh_rate, bool include_high_density_modes, SDL_DisplayMode *mode);
+extern SDL_DECLSPEC bool SDLCALL SDL_GetClosestFullscreenDisplayMode(SDL_DisplayID displayID, int w, int h, float refresh_rate, bool include_high_density_modes, SDL_DisplayMode *closest);
 
 /**
  * Get information about the desktop's display mode.
diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c
index 2e2a4bd3d565f..37ce7697e6d9f 100644
--- a/src/video/SDL_video.c
+++ b/src/video/SDL_video.c
@@ -1319,14 +1319,16 @@ SDL_DisplayMode **SDL_GetFullscreenDisplayModes(SDL_DisplayID displayID, int *co
 
 bool SDL_GetClosestFullscreenDisplayMode(SDL_DisplayID displayID, int w, int h, float refresh_rate, bool include_high_density_modes, SDL_DisplayMode *result)
 {
+    if (!result) {
+        return SDL_InvalidParamError("closest"); // Parameter `result` is called `closest` in the header.
+    }
+
     const SDL_DisplayMode *mode, *closest = NULL;
     float aspect_ratio;
     int i;
     SDL_VideoDisplay *display = SDL_GetVideoDisplay(displayID);
 
-    if (result) {
-        SDL_zerop(result);
-    }
+    SDL_zerop(result);
 
     CHECK_DISPLAY_MAGIC(display, false);
 
@@ -1378,9 +1380,9 @@ bool SDL_GetClosestFullscreenDisplayMode(SDL_DisplayID displayID, int w, int h,
     if (!closest) {
         return SDL_SetError("Couldn't find any matching video modes");
     }
-    if (result) {
-        SDL_copyp(result, closest);
-    }
+
+    SDL_copyp(result, closest);
+
     return true;
 }