aboutsummaryrefslogtreecommitdiff
path: root/src/FileUtil.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2018-10-18 07:05:43 +0200
committerdec05eba <dec05eba@protonmail.com>2020-07-06 07:39:33 +0200
commit6bb79ef033c2a2e8f12c9da6409e3547af40417c (patch)
tree6fe6c5bea99cc0b38af92a7aa4714e5614de4868 /src/FileUtil.cpp
parent4e38f2af2b97850ec5b395d4e0ea8310e664e52f (diff)
Use ranges for dependency version
Diffstat (limited to 'src/FileUtil.cpp')
-rw-r--r--src/FileUtil.cpp27
1 files changed, 22 insertions, 5 deletions
diff --git a/src/FileUtil.cpp b/src/FileUtil.cpp
index b41808b..d33c94d 100644
--- a/src/FileUtil.cpp
+++ b/src/FileUtil.cpp
@@ -175,7 +175,11 @@ namespace sibs
tinydir_file file;
tinydir_readfile(&dir, &file);
if(_tinydir_strncmp(file.name, TINYDIR_STRING("."), 1) != 0)
- callbackFunc(&file);
+ {
+ bool doContinue = callbackFunc(&file);
+ if(!doContinue)
+ break;
+ }
tinydir_next(&dir);
}
@@ -193,7 +197,11 @@ namespace sibs
tinydir_file file;
tinydir_readfile(&dir, &file);
if(file.is_reg)
- callbackFunc(&file);
+ {
+ bool doContinue = callbackFunc(&file);
+ if(!doContinue)
+ break;
+ }
tinydir_next(&dir);
}
@@ -201,7 +209,7 @@ namespace sibs
}
// TODO: Handle failure (directory doesn't exist, no permission etc)
- void walkDirFilesRecursive(const _tinydir_char_t *directory, FileWalkCallbackFunc callbackFunc)
+ bool walkDirFilesRecursive(const _tinydir_char_t *directory, FileWalkCallbackFunc callbackFunc)
{
tinydir_dir dir;
tinydir_open(&dir, directory);
@@ -211,13 +219,22 @@ namespace sibs
tinydir_file file;
tinydir_readfile(&dir, &file);
if(file.is_reg)
- callbackFunc(&file);
+ {
+ bool doContinue = callbackFunc(&file);
+ if(!doContinue)
+ return false;
+ }
else if(_tinydir_strncmp(file.name, TINYDIR_STRING("."), 1) != 0)
- walkDirFilesRecursive(file.path, callbackFunc);
+ {
+ bool doContinue = walkDirFilesRecursive(file.path, callbackFunc);
+ if(!doContinue)
+ return false;
+ }
tinydir_next(&dir);
}
tinydir_close(&dir);
+ return true;
}
Result<StringView> getFileContent(const _tinydir_char_t *filepath)