diff options
author | David Robillard <d@drobilla.net> | 2024-12-11 00:12:20 -0500 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2024-12-11 00:22:47 -0500 |
commit | c5c23c3e27ab765c8df28088fbec5f41b89bb8b8 (patch) | |
tree | 366e170112dc7855f7bf1f8c0e6940260e492b9e | |
parent | 790d111fb7b7c4393fa768980741348196b36740 (diff) | |
download | zix-c5c23c3e27ab765c8df28088fbec5f41b89bb8b8.tar.gz zix-c5c23c3e27ab765c8df28088fbec5f41b89bb8b8.tar.bz2 zix-c5c23c3e27ab765c8df28088fbec5f41b89bb8b8.zip |
Add ZixDirEntryVisitFunc
Although this type is only used once in the API, define it to avoid the
complicated syntax of inline function pointer parameters, which confuses both
people and clang-format.
-rw-r--r-- | include/zix/filesystem.h | 19 | ||||
-rw-r--r-- | src/posix/filesystem_posix.c | 8 | ||||
-rw-r--r-- | src/win32/filesystem_win32.c | 8 |
3 files changed, 20 insertions, 15 deletions
diff --git a/include/zix/filesystem.h b/include/zix/filesystem.h index 84d7206..dff4145 100644 --- a/include/zix/filesystem.h +++ b/include/zix/filesystem.h @@ -154,6 +154,17 @@ zix_remove(const char* ZIX_NONNULL path); */ /** + Function for reading input bytes from a stream. + + @param path Path to the directory being visited. + @param name Name of the directory entry. + @param data Opaque user data. +*/ +typedef void (*ZixDirEntryVisitFunc)(const char* ZIX_NONNULL path, + const char* ZIX_NONNULL name, + void* ZIX_NONNULL data); + +/** Visit every file in the directory at `path`. @param path A path to a directory. @@ -165,11 +176,9 @@ zix_remove(const char* ZIX_NONNULL path); parameter is the name of the directory entry (not its full path). */ ZIX_API void -zix_dir_for_each(const char* ZIX_NONNULL path, - void* ZIX_NULLABLE data, - void (*ZIX_NONNULL f)(const char* ZIX_NONNULL path, - const char* ZIX_NONNULL name, - void* ZIX_NONNULL data)); +zix_dir_for_each(const char* ZIX_NONNULL path, + void* ZIX_NULLABLE data, + ZixDirEntryVisitFunc ZIX_NONNULL f); /** Return whether the given paths point to files with identical contents. diff --git a/src/posix/filesystem_posix.c b/src/posix/filesystem_posix.c index 7553916..2ee323a 100644 --- a/src/posix/filesystem_posix.c +++ b/src/posix/filesystem_posix.c @@ -300,11 +300,9 @@ zix_remove(const char* const path) } void -zix_dir_for_each(const char* const path, - void* const data, - void (*const f)(const char* path, - const char* name, - void* data)) +zix_dir_for_each(const char* const path, + void* const data, + const ZixDirEntryVisitFunc f) { DIR* dir = opendir(path); if (dir) { diff --git a/src/win32/filesystem_win32.c b/src/win32/filesystem_win32.c index 196818b..235ee0f 100644 --- a/src/win32/filesystem_win32.c +++ b/src/win32/filesystem_win32.c @@ -172,11 +172,9 @@ zix_remove(const char* const path) } void -zix_dir_for_each(const char* const path, - void* const data, - void (*const f)(const char* path, - const char* name, - void* data)) +zix_dir_for_each(const char* const path, + void* const data, + const ZixDirEntryVisitFunc f) { static const TCHAR* const dot = TEXT("."); static const TCHAR* const dotdot = TEXT(".."); |