Browse Source

filesystem: SDL_EnumerateDirectory should return -1 or 0.

The callback requesting a non-error stop should not return a special value.
Ryan C. Gordon 1 year ago
parent
commit
9192485746
2 changed files with 5 additions and 2 deletions
  1. 4 1
      include/SDL3/SDL_filesystem.h
  2. 1 1
      src/filesystem/SDL_filesystem.c

+ 4 - 1
include/SDL3/SDL_filesystem.h

@@ -265,7 +265,10 @@ typedef struct SDL_PathInfo
  */
 extern DECLSPEC int SDLCALL SDL_CreateDirectory(const char *path);
 
-/* Callback for directory enumeration. Return 1 to keep enumerating, 0 to stop enumerating (no error), -1 to stop enumerating and report an error. `dirname` is the directory being enumerated, `fname` is the enumerated entry. */
+/* Callback for directory enumeration. Return 1 to keep enumerating,
+   0 to stop enumerating (no error), -1 to stop enumerating and
+   report an error. `dirname` is the directory being enumerated,
+   `fname` is the enumerated entry. */
 typedef int (SDLCALL *SDL_EnumerateDirectoryCallback)(void *userdata, const char *dirname, const char *fname);
 
 /**

+ 1 - 1
src/filesystem/SDL_filesystem.c

@@ -56,7 +56,7 @@ int SDL_EnumerateDirectory(const char *path, SDL_EnumerateDirectoryCallback call
     } else if (!callback) {
         return SDL_InvalidParamError("callback");
     }
-    return SDL_SYS_EnumerateDirectory(path, path, callback, userdata);
+    return (SDL_SYS_EnumerateDirectory(path, path, callback, userdata) < 0) ? -1 : 0;
 }
 
 int SDL_GetPathInfo(const char *path, SDL_PathInfo *info)