mirror of https://github.com/decompals/wibo.git
fix (#80)
This commit is contained in:
parent
ca9364a0df
commit
701134e596
2
LICENSE
2
LICENSE
|
@ -1,6 +1,6 @@
|
||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2022 Ash Wolf
|
Copyright (c) 2022-2024 Ash Wolf & Decompals
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -682,13 +682,18 @@ namespace kernel32 {
|
||||||
};
|
};
|
||||||
|
|
||||||
bool findNextFile(FindFirstFileHandle* handle) {
|
bool findNextFile(FindFirstFileHandle* handle) {
|
||||||
if ((handle->it != std::filesystem::directory_iterator()) && (handle->pattern == "")) {
|
// Check if iterator is valid before using it
|
||||||
// The caller (ie `FindFirstFileA`) was passed a path with a
|
if (!handle || handle->it == std::filesystem::directory_iterator()) {
|
||||||
// trailing period (like `include/.`). This behavior doesn't seem
|
return false;
|
||||||
// to be documented, so we treat it as an "find any file on this
|
|
||||||
// directory".
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If pattern is empty, just iterate
|
||||||
|
if (handle->pattern.empty()) {
|
||||||
|
handle->it++;
|
||||||
|
return handle->it != std::filesystem::directory_iterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Look for a matching file with the pattern
|
||||||
while (handle->it != std::filesystem::directory_iterator()) {
|
while (handle->it != std::filesystem::directory_iterator()) {
|
||||||
std::filesystem::path path = *handle->it;
|
std::filesystem::path path = *handle->it;
|
||||||
if (fnmatch(handle->pattern.c_str(), path.filename().c_str(), 0) == 0) {
|
if (fnmatch(handle->pattern.c_str(), path.filename().c_str(), 0) == 0) {
|
||||||
|
@ -696,6 +701,7 @@ namespace kernel32 {
|
||||||
}
|
}
|
||||||
handle->it++;
|
handle->it++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue