SDL: filesystem: SDL_SYS_EnumerateDirectory inexplicably takes the same arg twice.

From 84d35587ee400d9704e38042652fe5cbaab30c68 Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Wed, 15 Jan 2025 14:08:53 -0500
Subject: [PATCH] filesystem: SDL_SYS_EnumerateDirectory inexplicably takes the
 same arg twice.

---
 src/filesystem/SDL_filesystem.c       | 2 +-
 src/filesystem/SDL_sysfilesystem.h    | 2 +-
 src/filesystem/dummy/SDL_sysfsops.c   | 2 +-
 src/filesystem/posix/SDL_sysfsops.c   | 4 ++--
 src/filesystem/windows/SDL_sysfsops.c | 6 +++---
 5 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/filesystem/SDL_filesystem.c b/src/filesystem/SDL_filesystem.c
index e3066f2bef0af..6bb905a0b851e 100644
--- a/src/filesystem/SDL_filesystem.c
+++ b/src/filesystem/SDL_filesystem.c
@@ -121,7 +121,7 @@ bool SDL_EnumerateDirectory(const char *path, SDL_EnumerateDirectoryCallback cal
     } else if (!callback) {
         return SDL_InvalidParamError("callback");
     }
-    return SDL_SYS_EnumerateDirectory(path, path, callback, userdata);
+    return SDL_SYS_EnumerateDirectory(path, callback, userdata);
 }
 
 bool SDL_GetPathInfo(const char *path, SDL_PathInfo *info)
diff --git a/src/filesystem/SDL_sysfilesystem.h b/src/filesystem/SDL_sysfilesystem.h
index 10ca00504c073..f9f4c592a00ef 100644
--- a/src/filesystem/SDL_sysfilesystem.h
+++ b/src/filesystem/SDL_sysfilesystem.h
@@ -28,7 +28,7 @@ extern char *SDL_SYS_GetPrefPath(const char *org, const char *app);
 extern char *SDL_SYS_GetUserFolder(SDL_Folder folder);
 extern char *SDL_SYS_GetCurrentDirectory(void);
 
-extern bool SDL_SYS_EnumerateDirectory(const char *path, const char *dirname, SDL_EnumerateDirectoryCallback cb, void *userdata);
+extern bool SDL_SYS_EnumerateDirectory(const char *path, SDL_EnumerateDirectoryCallback cb, void *userdata);
 extern bool SDL_SYS_RemovePath(const char *path);
 extern bool SDL_SYS_RenamePath(const char *oldpath, const char *newpath);
 extern bool SDL_SYS_CopyFile(const char *oldpath, const char *newpath);
diff --git a/src/filesystem/dummy/SDL_sysfsops.c b/src/filesystem/dummy/SDL_sysfsops.c
index 606202d18ae68..d8553e91e7a60 100644
--- a/src/filesystem/dummy/SDL_sysfsops.c
+++ b/src/filesystem/dummy/SDL_sysfsops.c
@@ -28,7 +28,7 @@
 
 #include "../SDL_sysfilesystem.h"
 
-bool SDL_SYS_EnumerateDirectory(const char *path, const char *dirname, SDL_EnumerateDirectoryCallback cb, void *userdata)
+bool SDL_SYS_EnumerateDirectory(const char *path, SDL_EnumerateDirectoryCallback cb, void *userdata)
 {
     return SDL_Unsupported();
 }
diff --git a/src/filesystem/posix/SDL_sysfsops.c b/src/filesystem/posix/SDL_sysfsops.c
index b16c724058652..0658b8f1554d9 100644
--- a/src/filesystem/posix/SDL_sysfsops.c
+++ b/src/filesystem/posix/SDL_sysfsops.c
@@ -35,7 +35,7 @@
 #include <sys/stat.h>
 #include <unistd.h>
 
-bool SDL_SYS_EnumerateDirectory(const char *path, const char *dirname, SDL_EnumerateDirectoryCallback cb, void *userdata)
+bool SDL_SYS_EnumerateDirectory(const char *path, SDL_EnumerateDirectoryCallback cb, void *userdata)
 {
     SDL_EnumerationResult result = SDL_ENUM_CONTINUE;
 
@@ -51,7 +51,7 @@ bool SDL_SYS_EnumerateDirectory(const char *path, const char *dirname, SDL_Enume
         if ((SDL_strcmp(name, ".") == 0) || (SDL_strcmp(name, "..") == 0)) {
             continue;
         }
-        result = cb(userdata, dirname, name);
+        result = cb(userdata, path, name);
     }
 
     closedir(dir);
diff --git a/src/filesystem/windows/SDL_sysfsops.c b/src/filesystem/windows/SDL_sysfsops.c
index 1c4fe5a99e977..89961c6a8fa8e 100644
--- a/src/filesystem/windows/SDL_sysfsops.c
+++ b/src/filesystem/windows/SDL_sysfsops.c
@@ -29,7 +29,7 @@
 #include "../../core/windows/SDL_windows.h"
 #include "../SDL_sysfilesystem.h"
 
-bool SDL_SYS_EnumerateDirectory(const char *path, const char *dirname, SDL_EnumerateDirectoryCallback cb, void *userdata)
+bool SDL_SYS_EnumerateDirectory(const char *path, SDL_EnumerateDirectoryCallback cb, void *userdata)
 {
     SDL_EnumerationResult result = SDL_ENUM_CONTINUE;
     if (*path == '\0') {  // if empty (completely at the root), we need to enumerate drive letters.
@@ -38,7 +38,7 @@ bool SDL_SYS_EnumerateDirectory(const char *path, const char *dirname, SDL_Enume
         for (int i = 'A'; (result == SDL_ENUM_CONTINUE) && (i <= 'Z'); i++) {
             if (drives & (1 << (i - 'A'))) {
                 name[0] = (char) i;
-                result = cb(userdata, dirname, name);
+                result = cb(userdata, path, name);
             }
         }
     } else {
@@ -79,7 +79,7 @@ bool SDL_SYS_EnumerateDirectory(const char *path, const char *dirname, SDL_Enume
             if (!utf8fn) {
                 result = SDL_ENUM_FAILURE;
             } else {
-                result = cb(userdata, dirname, utf8fn);
+                result = cb(userdata, path, utf8fn);
                 SDL_free(utf8fn);
             }
         } while ((result == SDL_ENUM_CONTINUE) && (FindNextFileW(dir, &entw) != 0));